.nsa-modal { z-index: 14000; padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); background: rgba(1, 5, 13, .86); }
.nsa-modal:not(.show) { display: none; }
.nsa-modal.show { display: flex; align-items: center; justify-content: center; }
.nsa-card { width: min(100%, 480px); max-height: calc(100vh - 32px); max-height: calc(var(--app-vh, 100vh) - 32px); max-height: calc(100dvh - 32px); overflow: hidden; display: flex; flex-direction: column; background: radial-gradient(ellipse at 50% 0, #15364a 0, #081a29 35%, #07111f 75%); border: 1px solid #55717e; border-radius: 20px; box-shadow: 0 16px 60px #0009, inset 0 0 0 3px #071422; color: #edf6ff; text-align: left; }
.nsa-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 22px 16px; border-bottom: 1px solid #ad8c4266; background: linear-gradient(110deg, #102636c9, #08111d88); }
.nsa-head h2 { margin: 0; color: #ffe4a0; font: 750 21px/1.35 var(--font, system-ui, sans-serif); text-shadow: 0 2px 12px #e9ad3133; }
.nsa-close { flex: 0 0 auto; min-height: 36px; max-width: 110px; border: 1px solid #42546a; border-radius: 10px; padding: 6px 10px; background: #17263a; color: #dceaff; font-size: 12px; }
.nsa-content { overflow-y: auto; overscroll-behavior: contain; padding: 18px 20px 22px; -webkit-overflow-scrolling: touch; }
.nsa-content [hidden] { display: none !important; }
.nsa-state { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: #e4bd78; margin-bottom: 10px; }
.nsa-state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.nsa-state.is-connected { color: #73e9c0; }
.nsa-muted, .nsa-hint, .nsa-warning, .nsa-feedback { font-size: 13px; line-height: 1.65; margin: 0 0 14px; overflow-wrap: anywhere; }
.nsa-muted { color: #a8bad0; }
.nsa-feedback { color: #e5ca8f; margin-bottom: 0; }
.nsa-feedback:not(:empty) { margin: 0 0 14px; }
.nsa-feedback[data-kind="error"] { color: #ffb3ae; }
.nsa-feedback[data-kind="success"] { color: #83e5bc; }
.nsa-section { display: grid; gap: 12px; margin-top: 16px; }
.nsa-section h3 { font-size: 15px; line-height: 1.5; margin: 0; }
.nsa-section label { color: #c7d7e9; font-size: 12px; line-height: 1.5; }
.nsa-section p { margin-bottom: 0; }
.nsa-button { display: block; width: 100%; min-height: 44px; padding: 11px 14px; border-radius: 11px; border: 1px solid #38506a; background: #182b40; color: #e5f0fc; font: 600 13px/1.5 var(--font, system-ui, sans-serif); cursor: pointer; white-space: normal; overflow-wrap: anywhere; transition: background .15s, transform .15s; }
.nsa-button:active:not(:disabled) { transform: scale(.985); }
.nsa-button:focus-visible, .nsa-close:focus-visible, .nsa-input:focus-visible, .nsa-code:focus-visible { outline: 2px solid #74dfe4; outline-offset: 3px; }
.nsa-primary { background: linear-gradient(175deg, #fff1ae, #edbd4f 40%, #d99921 72%, #f3d16d); color: #152031; border: 1px solid #ffe9a1; box-shadow: inset 0 0 0 3px #b677173b, 0 3px 0 #77531f; font-size: 15px; }
.nsa-secondary { color: #c4d3e3; background: #101e30; }
.nsa-button:disabled, .nsa-close:disabled { opacity: .5; cursor: default; }
.nsa-code, .nsa-input { box-sizing: border-box; width: 100%; min-width: 0; padding: 12px; color: #e4f3ff; background: #06111f; border: 1px solid #3b526b; border-radius: 10px; font: 13px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; }
.nsa-code { user-select: text; }
.nsa-secret { resize: vertical; overflow-wrap: anywhere; white-space: pre-wrap; min-height: 82px; max-height: 180px; }
.nsa-backup { padding: 16px; background: #061a25b0; border: 1px solid #6fcfd699; border-radius: 14px; box-shadow: inset 0 0 22px #38d6da0a; }
.nsa-warning { color: #ecd49d; }
.nsa-logout { padding: 16px; border: 1px solid #726141; border-radius: 14px; background: #1e2330; }
.nsa-check { display: flex; align-items: flex-start; gap: 10px; padding: 3px 0; cursor: pointer; }
.nsa-check input { flex: 0 0 auto; width: 18px; height: 18px; accent-color: #e3b85e; margin: 1px 0 0; }
.nsa-amount-row { display: grid; gap: 8px; padding: 15px 0 8px; }
.nsa-amount-row .nsa-muted { margin-bottom: 0; }
.nsa-amount { display: flex; align-items: flex-start; gap: 8px; color: #f0d48e; font: 750 21px/1.5 var(--font, system-ui, sans-serif); }
.nsa-amount span { min-width: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.nsa-coin { width: 26px; height: 26px; flex: 0 0 26px; object-fit: contain; margin-top: 3px; }
.nsa-coin-fallback { flex: 0 1 auto; font-size: 12px; line-height: 1.5; padding-top: 6px; }
.nsa-footnote { font-size: 11px; color: #90a3ba; line-height: 1.6; margin: 18px 0 0; }
.nsa-ledger-list { display: grid; gap: 10px; }
.nsa-entry { border: 1px solid #30475e; background: #101e2f; border-radius: 10px; padding: 12px; font-size: 12px; line-height: 1.6; }
.nsa-entry-head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.nsa-entry-head strong { overflow-wrap: anywhere; }
.nsa-entry .nsa-muted { margin: 5px 0; font-size: 11px; }
.nsa-entry-balance { overflow-wrap: anywhere; color: #c6d7e7; }
.nsa-positive { color: #7fe6b5; }
.nsa-negative { color: #ffb8b1; }
.nsa-guest-notice, .nsa-panel-notice { padding: 15px; border: 1px solid #62dce1b0; border-radius: 12px; background: linear-gradient(130deg, #123a4866, #06121b); box-shadow: inset 0 0 16px #3ee3f20c; }
.nsa-guest-notice { margin: 6px 0 18px; }
.nsa-guest-notice h3 { color: #d6fcff; font-size: 17px; margin: 0 0 9px; }
.nsa-guest-notice .nsa-warning { color: #e8f4f9; font-size: 14px; margin: 0; }
.nsa-panel-notice { color: #d9f8fa; font-size: 14px; line-height: 1.65; }
.nsa-register, .nsa-login, .nsa-mail { gap: 10px; }
.nsa-register > h3, .nsa-login > h3, .nsa-mail > h3, .nsa-restore > h3, .nsa-delete > h3 { display: none; }
.nsa-password-row { display: flex; align-items: stretch; min-width: 0; gap: 8px; }
.nsa-password-row .nsa-input { flex: 1 1 0; width: 0; }
.nsa-password-row .nsa-text-button { flex: 0 0 76px; min-height: 44px; padding: 6px; border: 1px solid #3b526b; border-radius: 10px; white-space: normal; }
.nsa-register h3, .nsa-login h3, .nsa-mail h3, .nsa-delete h3 { color: #ffe3a3; font-size: 21px; text-align: center; margin-bottom: 6px; }
.nsa-section .nsa-field-hint { font-size: 12px; margin: -4px 0 4px; }
.nsa-section label:not(.nsa-check) { font-size: 14px; font-weight: 650; }
.nsa-text-button { justify-self: end; border: 0; background: transparent; color: #83e5e9; cursor: pointer; padding: 5px 3px; font-size: 12px; line-height: 1.5; min-height: 30px; }
.nsa-text-button:focus-visible { outline: 2px solid #74dfe4; outline-offset: 2px; }
.nsa-input[aria-invalid="true"] { border-color: #f37e78; box-shadow: 0 0 0 1px #f37e7866; }
.nsa-field-error { margin: -4px 0 4px; color: #ffaaa1; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.nsa-code-button { justify-self: end; width: auto; min-width: 130px; border-color: #4caab3; color: #b9f9fc; background: #0a2534; margin-bottom: 5px; }
.nsa-contact-card { display: grid; gap: 10px; padding: 14px; border: 1px solid #2f5362; background: #0c2030; border-radius: 12px; }
.nsa-contact-value { overflow-wrap: anywhere; color: #d7edf5; font-size: 14px; margin: 0; }
.nsa-verified-state { color: #deb97d; font-size: 12px; }
.nsa-verified-state.is-verified { color: #82e9ba; }
.nsa-button-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nsa-button-pair > .nsa-text-button { justify-self: stretch; min-height: 44px; overflow-wrap: anywhere; }
.nsa-text-button:disabled { opacity: .45; cursor: default; }
.nsa-danger { border-color: #e7857b; color: #ffc2b8; background: linear-gradient(150deg, #47262e, #211821); }
.nsa-delete { border: 1px solid #d99074; border-radius: 14px; padding: 18px; background: #191a24; }
.nsa-delete .nsa-warning { color: #ffc4b2; font-size: 14px; }
.nsa-delete .nsa-check { padding: 8px 0; }
.nsa-delete .nsa-check input { accent-color: #eb8b7a; }
.nsa-identity { border-bottom: 1px solid #325265; padding-bottom: 16px; }
.nsa-identity h3 { color: #c2f4f7; }
.nsa-register .nsa-primary, .nsa-mail .nsa-primary { margin-top: 8px; }
@media (prefers-reduced-motion: reduce) { .nsa-button { transition: none; } }
@media (max-width: 370px) { .nsa-head { padding: 15px; } .nsa-content { padding: 15px; } .nsa-backup { padding: 12px; } }
