/* Shared Ledger design system for the signed-in Runway application. */
:root[data-theme]{ --rw-bg: #020713; --rw-surface: #0a1423; --rw-surface-raised: #102235; --rw-line: rgba(150, 200, 255, .19); --rw-line-soft: rgba(150, 200, 255, .1); --rw-text: #f7f9ff; --rw-muted: #afc7da; --rw-dim: #8da7bc; --rw-blue: #96c8ff; --rw-gold: #d2b75b; --rw-danger: #ffab9b; --rw-warning: #ffb05c; --chart-account-1: #96c8ff; --chart-account-2: #d2b75b; --chart-fill: #6ea8dc; --chart-grid: rgba(150, 200, 255, .12); --chart-zero: #ffab9b; --chart-hover: #afc7da; --chart-point-border: #0a1423; font-family: "DM Sans Variable", "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--rw-text); background: var(--rw-bg); color-scheme: var(--rw-color-scheme); -webkit-font-smoothing: antialiased; --rw-input: #060d18; --rw-search: #07101c; --rw-select: #0a1524; --rw-placeholder: #839db4; --rw-primary-ink: #060b19; --rw-primary: #f7f9ff; --rw-primary-hover: #d7eaff; --rw-link-hover: #d2e9ff; --rw-selection: #355c81; --rw-selection-text: #ffffff; --rw-logo-start: #1c3b5b; --rw-logo-ring: #081321; --rw-slash: #506b82; --rw-card-start: #101e2e; --rw-card-end: #080f1b; --rw-card-second: #101b2b; --rw-balance: #dfedff; --rw-projection: #deedff; --rw-withdrawal: #b2c1d1; --rw-cleared: #b5dcff; --rw-pending: #e1c77d; --rw-error-surface: #2c1a22; --rw-error-text: #ffb4a4; --rw-toast: #152b43; --rw-dialog-start: #122237; --rw-dialog-end: #080f1c; --rw-segment: #254463; --rw-segment-text: #e1efff; --rw-toast-shadow: #0008; --rw-dialog-shadow: #000a; --rw-panel-start: rgba(18, 33, 51, .94); --rw-panel-end: rgba(7, 15, 27, .97); --rw-panel-shadow: rgba(0, 0, 0, .15); --rw-sidebar: rgba(5, 12, 23, .95); --rw-nav-end: rgba(6, 11, 25, .7); --rw-banner-end: rgba(7, 17, 30, .9); --rw-backdrop: rgba(0, 4, 12, .75); --rw-page-grid: rgba(150, 200, 255, .035); --rw-color-scheme: dark; }
:root[data-theme="light"]{ --rw-bg: #eaf1f6; --rw-surface: #ffffff; --rw-surface-raised: #dbeaf4; --rw-line: rgba(60, 120, 170, .24); --rw-line-soft: rgba(60, 120, 170, .13); --rw-text: #0c2035; --rw-muted: #3d5971; --rw-dim: #546f86; --rw-blue: #286499; --rw-gold: #8b6817; --rw-danger: #ac3e30; --rw-warning: #a84900; --chart-account-1: #3076b5; --chart-account-2: #9a761c; --chart-fill: #6ea8dc; --chart-grid: rgba(60, 120, 170, .16); --chart-zero: #bd5545; --chart-hover: #536c82; --chart-point-border: #ffffff; --rw-color-scheme: light; --rw-input: #ffffff; --rw-search: #f8fbfd; --rw-select: #f8fbfd; --rw-placeholder: #627d92; --rw-primary-ink: #ffffff; --rw-primary: #112b46; --rw-primary-hover: #1e466b; --rw-link-hover: #194c7a; --rw-selection: #c5dff5; --rw-selection-text: #0c2035; --rw-logo-start: #d7eaff; --rw-logo-ring: #f8fbfd; --rw-slash: #849bb0; --rw-card-start: #f3f9ff; --rw-card-end: #ffffff; --rw-card-second: #fcfaf2; --rw-balance: #122e49; --rw-projection: #122e49; --rw-withdrawal: #526b80; --rw-cleared: #245e90; --rw-pending: #826213; --rw-error-surface: #fff0ed; --rw-error-text: #a13d30; --rw-toast: #e1eef9; --rw-dialog-start: #f7fbff; --rw-dialog-end: #ffffff; --rw-segment: #d7e9f8; --rw-segment-text: #17476d; --rw-toast-shadow: #16334e20; --rw-dialog-shadow: #16334e2e; --rw-panel-start: rgba(255, 255, 255, .96); --rw-panel-end: rgba(247, 251, 255, .96); --rw-panel-shadow: rgba(27, 61, 91, .055); --rw-sidebar: rgba(248, 251, 253, .95); --rw-nav-end: rgba(247, 251, 255, .85); --rw-banner-end: rgba(248, 251, 253, .94); --rw-backdrop: rgba(29, 50, 72, .3); --rw-page-grid: rgba(60, 120, 170, .045); }
:root[data-theme]{--bg:var(--rw-bg);--bg2:var(--rw-surface);--surface:var(--rw-surface);--surface2:var(--rw-surface-raised);--text:var(--rw-text);--text2:var(--rw-muted);--text3:var(--rw-dim);--glass-border:var(--rw-line);--input-bg:var(--rw-input);--grid:var(--chart-grid);--blue:var(--rw-blue);--emerald:var(--rw-blue);--teal:var(--rw-blue);--warn:var(--rw-warning);--coinara-blue-light:var(--rw-blue);--coinara-blue:var(--rw-blue);--coinara-gold:var(--rw-gold);--shadow:0 15px 40px var(--rw-panel-shadow)}
:root[data-theme] body{font-family:"DM Sans Variable","DM Sans",sans-serif;font-weight:400;color:var(--rw-text);background-color:var(--rw-bg);background-image:linear-gradient(var(--rw-page-grid) 1px,transparent 1px),linear-gradient(90deg,var(--rw-page-grid) 1px,transparent 1px),radial-gradient(ellipse at 80% 0%,rgba(60,120,170,.18),transparent 55%);background-size:48px 48px,48px 48px,100% 100vh;background-attachment:fixed}
:root[data-theme] #bg{display:none}
:root .app .topbar,:root .app .card,:root .app .stat,:root .app .month-card,:root .app .cash-account{background:linear-gradient(140deg,var(--rw-panel-start),var(--rw-panel-end));border:1px solid var(--rw-line);border-radius:22px;box-shadow:0 15px 40px var(--rw-panel-shadow);backdrop-filter:none}
:root .app .card{padding:24px 26px}:root .app .card h2{font-size:17px;font-weight:500;letter-spacing:-.02em;text-transform:none}
:root .app .overview-heading{padding:32px 0 28px;margin:0;align-items:center}:root .app .overview-heading h2{font-size:clamp(32px,3.2vw,46px);font-weight:300;letter-spacing:-.045em;line-height:1.16;margin:10px 0 11px}:root .app .overview-heading p{font-size:13px;color:var(--rw-muted)}
:root .app .eyebrow{font-size:9px;letter-spacing:.14em;color:var(--rw-dim)}
:root .app .section-tabs,:root .app .tabs{background:var(--rw-sidebar);border:1px solid var(--rw-line);box-shadow:none;backdrop-filter:none}
:root .app .section-tab,:root .app .tab{font-weight:500;text-transform:none;letter-spacing:0;color:var(--rw-muted)}
:root .app .section-tab.active,:root .app .section-tab[aria-selected="true"],:root .app .tab.active{color:var(--rw-text);background:linear-gradient(110deg,rgba(60,120,170,.26),var(--rw-nav-end));border-color:var(--rw-line);box-shadow:none}
:root .app .tab-icon,:root .app .tab.active .tab-icon{color:var(--rw-blue);filter:none;transform:none}
:root .app .stat{padding:24px 26px}:root .app .stat:hover{transform:none;filter:none;box-shadow:0 15px 40px var(--rw-panel-shadow)}
:root .app .stat.hero,:root .app .cash-account:first-child{background:radial-gradient(ellipse at 100% 0%,rgba(60,120,170,.25),transparent 72%),linear-gradient(135deg,var(--rw-card-start),var(--rw-card-end));border-color:rgba(150,200,255,.3)}
:root .app .cash-account:nth-child(2),:root .app .stats .stat:nth-child(2){background:radial-gradient(ellipse at 100% 0%,rgba(194,166,51,.12),transparent 72%),linear-gradient(135deg,var(--rw-card-second),var(--rw-card-end))}
:root .app .stat.hero::after{display:none}:root .app .stat.hero .big{background:none;-webkit-text-fill-color:currentColor;color:var(--rw-balance)}
:root .app .stat .big,:root .app .cash-amount{font-size:clamp(36px,3.6vw,50px);font-weight:300;letter-spacing:-.045em;color:var(--rw-balance)}
:root .app .cash-account h3{font-size:14px;font-weight:500}:root .app .cash-account{padding:24px 26px}:root .app .cash-account dl{border-top:1px solid var(--rw-line-soft);padding-top:10px}
:root .app .cash-heading h2{font-size:17px;font-weight:500}:root .app .cash-accounts{gap:20px;margin:22px 0}
:root .app .cash-forecast-summary>div,:root .app .cf,:root .app .strat,:root .app .order-item,:root .app .bill,:root .app .helpbox,:root .app .review-metric{border:1px solid var(--rw-line-soft);background:rgba(60,120,170,.06);box-shadow:none;border-radius:12px}
:root .app .cash-forecast-summary strong{font-size:30px;font-weight:300;letter-spacing:-.035em}:root .app .cash-badge,:root .app .chip{font-size:10px;font-weight:500;border-radius:999px;color:var(--rw-blue);background:rgba(60,120,170,.1);border-color:var(--rw-line)}
:root .app table{border-collapse:collapse}:root .app th{background:rgba(60,120,170,.067);color:var(--rw-dim);border-color:var(--rw-line-soft);font-size:9px;font-weight:500;letter-spacing:.1em;padding-top:13px;padding-bottom:13px}
:root .app td{color:var(--rw-muted);border-color:var(--rw-line-soft);font-size:12px;padding-top:17px;padding-bottom:17px}:root .app td strong{font-weight:400;color:var(--rw-text)}
:root .app tbody tr:hover{background:rgba(60,120,170,.067)}:root .app .cash-forecast-actions button{color:var(--rw-blue)}:root .app .cash-forecast-actions .cash-forecast-delete{color:var(--rw-danger)}
:root .app .cash-forecast-start,:root .app .cash-forecast-table thead,:root .app .month-head{background:rgba(60,120,170,.06)}
:root .app .btn,:root dialog .btn,:root .modal .btn{border-radius:999px;font-family:inherit;font-size:12px;font-weight:500;letter-spacing:0;min-height:42px;padding:11px 18px;box-shadow:none}
:root .app .btn-primary,:root dialog .btn-primary,:root .modal .btn-primary{background:var(--rw-primary);color:var(--rw-primary-ink);border:1px solid var(--rw-primary)}
:root .app .btn-ghost,:root dialog .btn-ghost,:root .modal .btn-ghost{background:rgba(60,120,170,.1);color:var(--rw-text);border:1px solid var(--rw-line)}
:root .app .btn-danger,:root dialog .btn-danger,:root .modal .btn-danger{color:var(--rw-danger);background:var(--rw-error-surface);border-color:var(--rw-danger)}
:root .app input:not([type=checkbox]):not([type=range]),:root .app select,:root .app textarea,:root dialog[id] input:not([type=checkbox]),:root dialog[id] select,:root dialog[id] textarea,:root .modal input,:root .modal select,:root .modal textarea{font-family:inherit;font-weight:400;background:var(--rw-input);color:var(--rw-text);border:1px solid var(--rw-line);border-radius:12px;min-height:42px;box-shadow:none}
:root input::placeholder,:root textarea::placeholder{color:var(--rw-placeholder)}
:root .app .strat.sel,:root .app .seg-btn.on,:root .app .paidtoggle.on{background:var(--rw-segment);color:var(--rw-segment-text);border-color:var(--rw-line);box-shadow:none}
:root .app .seg,:root .app .paidtoggle{background:var(--rw-search);color:var(--rw-muted);border-color:var(--rw-line)}
:root .app .notice.good,:root .app .sync-status.ok{background:rgba(60,120,170,.1);color:var(--rw-blue);border-color:var(--rw-line)}
:root .app .notice.bad,:root .app .bill.overdue,:root .app .formwarn .w{background:rgba(194,166,51,.1);color:var(--rw-warning);border-color:rgba(194,166,51,.24)}
:root .app .cash-warning,:root .app .warn{color:var(--rw-warning)}:root .app .pos,:root .app .linklike{color:var(--rw-blue)}
:root .app .tl-dot{background:var(--rw-surface);border-color:var(--rw-blue)}:root .app .tl-item.final .tl-dot{background:var(--rw-gold);box-shadow:none}
:root dialog[id],:root .modal{font-family:"DM Sans Variable",sans-serif;color:var(--rw-text);background:linear-gradient(140deg,var(--rw-dialog-start),var(--rw-dialog-end));border:1px solid var(--rw-line);border-radius:22px;box-shadow:0 24px 64px var(--rw-dialog-shadow)}
:root dialog[id] h2,:root .modal h2{font-size:20px;font-weight:500;letter-spacing:-.02em;text-transform:none}
:root dialog[id]::backdrop,:root .overlay{background:var(--rw-backdrop);backdrop-filter:blur(6px)}
:root .app .cash-forecast-action{box-shadow:none}:root .app .cash-forecast-confirm{background:rgba(60,120,170,.1);border-color:var(--rw-line)}
@media(max-width:650px){:root .app .card,:root .app .stat,:root .app .cash-account{padding:20px 17px}:root .app .overview-heading{align-items:flex-start;padding:25px 0 20px}:root .app .overview-heading h2{font-size:32px}:root .app .cash-heading{flex-wrap:wrap}:root .app .btn{padding:10px 14px}:root .app .cash-amount{font-size:36px}}
:root dialog[id]{margin:auto}
:root .app .legendrow span:first-child i{background:var(--chart-account-1)!important}:root .app .legendrow span:nth-child(2) i{background:var(--chart-account-2)!important}

/* Secondary surfaces use the same tokens as Overview, including auth and onboarding. */
:root .modal{position:relative;padding:26px;max-height:calc(100dvh - 40px);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rw-line) transparent}
:root .modal .x{display:grid;place-items:center;top:10px;right:10px;width:40px;height:40px;border-radius:50%;font-size:18px;color:var(--rw-muted);background:transparent}
:root .modal .x:hover{background:var(--rw-segment);color:var(--rw-text)}
:root .modal:has(>.x)>h2{padding-right:28px}
:root .modal :is(.preferences-box,.billing-box,.helpbox,.passkey-item),:root .app :is(.copilot-mode,.copilot-finding,.copilot-exact-stat){background:linear-gradient(140deg,var(--rw-panel-start),var(--rw-panel-end));border:1px solid var(--rw-line-soft);border-radius:16px;box-shadow:none}
:root .modal :is(.chip,.chip.on){color:var(--rw-blue);background:rgba(60,120,170,.1);border:1px solid var(--rw-line);font-size:10px;font-weight:500}
:root .modal :is(.sync-status,.preference-toggle){background:var(--rw-search);color:var(--rw-muted);border-color:var(--rw-line-soft)}
:root .modal .sync-status.ok{color:var(--rw-blue)}
:root :is(.modal,.app) :is(.sync-status.err,.copilot-status.error){background:var(--rw-error-surface);color:var(--rw-error-text);border-color:var(--rw-danger)}
:root .modal input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:0 0 18px;accent-color:var(--rw-blue)}
:root :is(.modal,.web-onboarding) .linklike{color:var(--rw-blue);font:inherit;font-size:13px;min-height:40px}
:root #syncOverlay .modal{max-width:580px}
:root #authGate .modal{padding:28px 24px}
:root #authGate .syncrow{gap:10px}
:root #authGate :is(#gateSignin,#gateSignup){width:100%;justify-content:center}
:root #authGate :is(#gateSwitchMode,#gateReset){width:100%;min-height:36px}
:root #authGate .auth-providers{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
:root #authGate .auth-hint{line-height:1.55}
:root :is(.modal,dialog) :is(input,select,textarea){max-width:100%}
:root :is(.app,.modal,dialog,.web-onboarding) :is(button,input,select,textarea,a,[tabindex]):focus-visible{outline:2px solid var(--rw-blue);outline-offset:3px}
:root .app .copilot-mode.active{background:var(--rw-segment);color:var(--rw-segment-text);border-color:var(--rw-line);box-shadow:none}
:root .app .copilot-mode-icon,:root .app .copilot-mode.active .copilot-mode-icon{color:var(--rw-blue)}
:root .web-onboarding{font-family:inherit;background:var(--rw-bg);color:var(--rw-text);background-image:linear-gradient(var(--rw-page-grid) 1px,transparent 1px),linear-gradient(90deg,var(--rw-page-grid) 1px,transparent 1px),radial-gradient(ellipse at 80% 0%,rgba(60,120,170,.18),transparent 55%);background-size:48px 48px,48px 48px,100% 100vh}
:root .web-onboarding :is(.web-onboarding-rail,.web-ob-choice,.web-ob-result-card,.web-ob-feature,.web-ob-plan){background:linear-gradient(140deg,var(--rw-panel-start),var(--rw-panel-end));color:var(--rw-text);border-color:var(--rw-line);border-radius:22px;box-shadow:0 15px 40px var(--rw-panel-shadow)}
:root .web-onboarding :is(.web-ob-metric,.web-ob-summary div,.web-ob-review,.web-ob-choice-icon,.web-ob-cadence,.web-ob-quick-values button){background:var(--rw-search);color:var(--rw-text);border-color:var(--rw-line-soft)}
:root .web-onboarding :is(.web-onboarding-progress-copy,.web-onboarding-rail>p,.web-onboarding-rail li,.web-onboarding-trust,.web-ob-lede,.web-ob-choice-copy small,.web-ob-field label,.web-ob-field-note,.web-ob-result-label,.web-ob-result-note,.web-ob-metric span,.web-ob-feature p,.web-ob-summary span,.web-ob-plan-price small,.web-ob-plan ul,.web-ob-free){color:var(--rw-muted)}
:root .web-onboarding :is(.web-onboarding-progress-copy strong,.web-onboarding-manual,.web-ob-eyebrow,.web-ob-choice-icon,.web-ob-choice-check,.web-ob-quick-values button,.web-ob-button.text,.web-onboarding-trust svg,.web-ob-plan-kicker,.web-ob-plan li svg,.web-ob-feature>svg){color:var(--rw-blue)}
:root .web-onboarding :is(.web-onboarding-trust b,.web-ob-metric b,.web-ob-review b){color:var(--rw-text)}
:root .web-onboarding :is(.web-ob-choice.is-selected,.web-ob-plan.is-selected,.web-ob-cadence button.is-selected){background:var(--rw-segment);color:var(--rw-segment-text);border-color:var(--rw-blue);box-shadow:none}
:root .web-onboarding :is(.web-ob-choice:hover,.web-ob-plan:hover){border-color:var(--rw-blue);transform:none}
:root .web-onboarding .web-onboarding-progress{background:var(--rw-line-soft)}
:root .web-onboarding .web-onboarding-progress i{background:var(--rw-blue)}
:root .web-onboarding .web-onboarding-rail li::before{border-color:var(--rw-line);color:var(--rw-muted)}
:root .web-onboarding .web-onboarding-rail li.is-active{color:var(--rw-text)}
:root .web-onboarding .web-onboarding-rail li.is-active::before{background:var(--rw-segment);color:var(--rw-blue);border-color:var(--rw-blue)}
:root .web-onboarding .web-onboarding-rail li.is-complete::before{background:var(--rw-card-second);color:var(--rw-gold);border-color:var(--rw-gold)}
:root .web-onboarding :is(.web-ob-actions,.web-onboarding-trust){border-color:var(--rw-line-soft)}
:root .web-onboarding .web-ob-field input{background:var(--rw-input);color:var(--rw-text);border-color:var(--rw-line);border-radius:12px;font-family:inherit;font-weight:400}
:root .web-onboarding .web-ob-button.primary{background:var(--rw-primary);color:var(--rw-primary-ink);box-shadow:none}
:root .web-onboarding .web-ob-button.primary:hover{background:var(--rw-primary-hover)}
:root .web-onboarding .web-ob-button.secondary{background:var(--rw-search);color:var(--rw-text);border-color:var(--rw-line)}
:root .web-onboarding .web-ob-result-card.primary{background:radial-gradient(ellipse at 100% 0%,rgba(60,120,170,.25),transparent 72%),linear-gradient(135deg,var(--rw-card-start),var(--rw-card-end))}
:root .web-onboarding .web-ob-result-value{color:var(--rw-balance);font-weight:300}
:root .web-onboarding :is(.web-ob-callout,.web-ob-callout svg,.web-ob-feature-tag){color:var(--rw-gold)}
:root .web-onboarding .web-ob-notice{background:var(--rw-error-surface);color:var(--rw-error-text);border-color:var(--rw-danger)}
:root .web-onboarding .web-ob-cadence button{color:var(--rw-muted)}
@media(max-width:700px){
 :root .web-onboarding .web-ob-actions{background:var(--rw-bg);padding-bottom:max(16px,env(safe-area-inset-bottom))}
 :root .overlay{padding:12px}
 :root .modal{padding:22px 18px;max-height:calc(100dvh - 24px);border-radius:22px}
 :root #authGate .modal{padding:24px 18px}
 :root .modal .preferences-grid{grid-template-columns:minmax(0,1fr)}
 :root :is(.app,.modal,dialog) :is(input:not([type=checkbox]):not([type=range]),select,textarea){font-size:16px;min-width:0}
 :root :is(.app,.modal,dialog) .btn{min-height:44px}
 :root :is(.app,.modal) :is(.iconbtn,.x){min-width:44px;min-height:44px}
 :root .app .cash-forecast-action{min-width:44px;min-height:44px}
 :root .app .tabs{padding-bottom:env(safe-area-inset-bottom)}
 :root .app .overview-heading h2{overflow-wrap:anywhere}
 :root .dialog-actions{flex-wrap:wrap}
 :root .dialog-actions .btn{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){:root .app *,:root .modal *,:root .web-onboarding *{scroll-behavior:auto;animation:none;transition:none}}
:root .web-onboarding .web-ob-button{display:inline-flex;align-items:center;gap:8px;font-weight:500}
@media(max-width:640px){
 :root .app .ws-switch{display:grid;grid-template-columns:repeat(5,minmax(44px,1fr));width:100%;gap:8px}
 :root .app .ws-switch select{grid-column:1/-1;width:100%;max-width:none}
 :root .app .ws-switch .iconbtn{justify-self:center}
 :root .app .overview-heading{padding-top:18px;padding-bottom:18px}
}
@media(max-width:420px){:root dialog[id] .cash-manual-fields{display:grid;grid-template-columns:minmax(0,1fr)}:root dialog[id] .cash-split-row{align-items:stretch}:root dialog[id] .cash-split-row label{flex:1 1 100%}}
:root .app .cash-table:has(.cash-empty){min-width:0}
@media(max-width:420px){:root .app .cash-filters label{flex:1 1 100%}:root .app .cash-empty{padding:24px 12px!important}}
/* ID-scoped legacy bank dialogs must not override the shared surface. */
:root #privateCash dialog{color:var(--rw-text);background:linear-gradient(140deg,var(--rw-dialog-start),var(--rw-dialog-end));border:1px solid var(--rw-line);border-radius:22px;box-shadow:0 24px 64px var(--rw-dialog-shadow);max-height:calc(100dvh - 40px);overscroll-behavior:contain;scrollbar-width:thin}
:root #privateCash dialog::backdrop{background:var(--rw-backdrop);backdrop-filter:blur(6px)}
:root #privateCash dialog :is(input:not([type=checkbox]),select,textarea){font-family:inherit;color:var(--rw-text);background:var(--rw-input);border:1px solid var(--rw-line);border-radius:12px;min-height:44px}
@media(max-width:700px){:root #privateCash dialog{padding:22px 18px;max-height:calc(100dvh - 24px)}:root #privateCash dialog :is(input:not([type=checkbox]),select,textarea){font-size:16px}}
