:root{color-scheme:light;--ink:#192d36;--muted:#6b7678;--teal:#1a6b59;--paper:#f5f6f2;--line:#e3e7e1;--white:#fff;--danger:#a63434;--radius:22px;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:16px;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button{border:0}button,input,select,summary{min-height:44px}button{touch-action:manipulation}button:disabled{cursor:wait;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #7ab9a8;outline-offset:3px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}p,h1,h2,h3{margin:0}p{line-height:1.65}h1{font-size:28px;letter-spacing:-1.2px;line-height:1.3}h2{font-size:18px;letter-spacing:-.5px;line-height:1.45}h3{font-size:17px}input,select{max-width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;color:var(--ink);font-size:16px}input::placeholder{color:#9ba39f}input[type=date]{font-size:14px;min-width:0;max-width:150px;padding:9px 7px}label{display:block;font-size:14px;font-weight:600}label span{color:var(--muted);font-weight:400}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button{font-weight:650}.app-shell{max-width:540px;margin:0 auto}.app-header{display:flex;justify-content:space-between;align-items:center;padding:calc(22px + env(safe-area-inset-top)) 22px 21px;gap:12px}.brand{display:flex;align-items:center;gap:9px;font-size:18px;font-weight:750;letter-spacing:-.7px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;background:var(--ink);color:#c6dfb4;border-radius:10px;font-size:25px;line-height:1}.mode-control select{background:transparent;border-color:#dbe1d8;font-size:13px;font-weight:650;border-radius:24px;padding:8px 10px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:8px 0 22px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.9px;color:var(--muted);margin-bottom:7px}.private-badge{font-size:11px;color:#52765c;white-space:nowrap;padding-bottom:4px}.private-badge span{font-size:8px;margin-right:3px}main{padding:0 20px calc(112px + env(safe-area-inset-bottom))}.total-card{background:var(--ink);border-radius:26px;color:#fff;padding:25px 24px 22px;margin-bottom:28px;position:relative;overflow:hidden}.total-card:after{content:"";position:absolute;width:160px;height:160px;border:1px solid #ffffff0d;border-radius:50%;right:-50px;top:-62px;box-shadow:0 0 0 24px #ffffff04;pointer-events:none}.total-top{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}.total-top h2{font-size:14px;color:#d8e1df;font-weight:500}.total-top>span{font-size:11px;color:#a5b6b6}.total-value{font-size:34px;font-weight:700;letter-spacing:-1.25px;line-height:1.35;margin:13px 0 5px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.total-description{font-size:11px;color:#adbfbc}.total-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid #ffffff20;margin-top:25px;padding-top:18px}.total-breakdown>div{display:flex;flex-direction:column;gap:5px;min-width:0}.total-breakdown span{color:#aec0bb;font-size:12px}.total-breakdown strong{font-size:17px;font-weight:550;overflow-wrap:anywhere;letter-spacing:-.3px;font-variant-numeric:tabular-nums}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:21px;margin-bottom:16px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-heading h2{min-width:0}.hint,.section-description{font-size:12px;color:var(--muted);line-height:1.7}.section-heading .hint{margin-top:4px}.cash-card{padding-bottom:18px}.money-input{display:flex;align-items:center;border-bottom:1px solid var(--line);margin:13px 0 10px;gap:8px}.money-input input{width:100%;min-width:0;border:0;border-radius:0;font-size:27px;font-weight:650;padding:10px 0;letter-spacing:-.8px;font-variant-numeric:tabular-nums}.money-input>span{font-size:16px;color:var(--muted)}.holdings-section{margin:26px 0 20px}.holdings-section>.section-heading{margin-bottom:14px}.count{font-size:13px;background:#e8ece3;color:#63755d;border-radius:7px;padding:2px 6px;vertical-align:2px;margin-left:4px}.text-button{color:var(--teal);background:transparent;font-size:13px;padding:7px 3px;white-space:nowrap;min-width:44px}.text-button>span{font-size:19px;vertical-align:-1px;margin-right:3px}.empty-card{padding:27px 16px;text-align:center;border:1px dashed #d0d9cc;border-radius:20px;background:#f0f3ec;color:var(--muted)}.empty-symbol{margin:0 auto 10px;background:#e4ebdf;color:#91a286;border-radius:50%;display:grid;place-items:center;width:37px;height:37px;font-size:23px}.empty-card strong{display:block;color:#465b4d;font-size:14px}.empty-card p{font-size:12px;margin:7px 0 16px}.empty-card button{font-size:13px;background:#fff;padding:9px 20px}.primary-button,.secondary-button{padding:13px 18px;border-radius:13px;line-height:1.5;font-size:15px;min-height:48px}.primary-button{color:#fff;background:var(--teal)}.secondary-button{color:var(--ink);border:1px solid #dce3d8;background:#f8faf6}.full-width{width:100%}.holding-card{padding:19px;margin-bottom:12px}.holding-top{display:flex;align-items:center;gap:9px;margin-bottom:18px}.ticker-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#edf1e8;color:#607455;font-size:11px;font-weight:750;flex-shrink:0}.holding-top h3{flex:1;overflow-wrap:anywhere}.remove-holding{border-radius:50%;width:44px;height:44px;background:transparent;color:#85918b;font-size:24px;font-weight:400;margin:-10px -10px -10px 0}.holding-fields{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(110px,1.1fr);gap:12px}.holding-fields input{display:block;width:100%;margin-top:7px;padding:11px 10px;min-width:0}.holding-fields label{font-size:12px;color:#64706a}.holding-weight{display:flex;gap:5px;flex-wrap:wrap;font-size:11px;color:var(--teal);padding-top:12px}.holding-card details{margin-top:8px}.holding-card details summary{font-size:12px;color:var(--muted);padding:10px 0;min-height:44px}.holding-card details input{display:block;width:100%;margin:6px 0 10px}.holding-card details label{font-size:12px}.preferences,.deposit-card{padding:0 21px}.preferences summary,.deposit-card summary{font-size:14px;font-weight:650;padding:18px 0;line-height:1.5}.preferences summary>span,.deposit-card summary>span{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px}.details-content{padding-bottom:20px}.details-content>label{margin:16px 0 7px}.details-content input,.details-content select{width:100%}.details-content #reserve-field>label{margin:16px 0 7px}.details-content button{margin-top:14px}.save-section{margin:22px 0 17px}.save-section .primary-button{min-height:54px}.save-status{text-align:center;color:var(--muted);font-size:11px;margin-top:10px;overflow-wrap:anywhere}.save-status.is-dirty{color:#8a6a30}.error-box{border:1px solid #e4c5c0;background:#fff2ee;color:var(--danger);padding:15px;border-radius:13px;font-size:13px;line-height:1.6;margin:14px 0;white-space:pre-line;overflow-wrap:anywhere}.device-status{margin:25px 0 0;text-align:center;color:var(--muted);font-size:10px}.device-status>p{line-height:1.8}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#99a798;margin-right:6px;vertical-align:1px}.install-hint{margin-top:13px;color:#8c9690}.install-hint span{display:inline-block;padding:0 4px;font-size:15px}.bottom-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;background:#fffffff5;border-top:1px solid #e1e5de;padding-bottom:env(safe-area-inset-bottom);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.bottom-nav>div{display:grid;grid-template-columns:repeat(3,1fr);max-width:540px;margin:auto;padding:8px 16px 6px}.bottom-nav button{display:flex;align-items:center;flex-direction:column;gap:4px;background:none;color:#8d9690;min-height:55px;font-size:10px;font-weight:550;padding:4px}.bottom-nav svg{width:23px;height:23px}.bottom-nav button[aria-selected=true]{color:var(--teal);font-weight:750}.tab-panel:focus{outline:none}.connection-card{text-align:center;padding:26px 24px;margin-top:3px}.state-badge{display:inline-block;color:#8a6f39;font-size:10px;font-weight:650;background:#f6efdf;border-radius:20px;padding:6px 11px}.connection-icon{display:grid;place-items:center;background:#edf2e7;width:70px;height:70px;border-radius:24px;color:#8fa280;font-size:40px;font-weight:300;margin:28px auto 20px}.connection-card h2{font-size:25px;letter-spacing:-.8px;line-height:1.45}.connection-card>p{font-size:13px;color:var(--muted);margin:16px 0 23px}.connection-card .small-note{font-size:10px;margin:13px 0 0}.connection-details p{font-size:13px;color:var(--muted);margin-top:14px}.future-result{margin-top:22px}.muted-tag{font-size:10px;color:#839087;white-space:nowrap}.future-result ul{list-style:none;padding:0;margin:12px 0 18px}.future-result li{padding:14px 0;border-bottom:1px solid #edf0e9}.future-result li span{font-size:13px;font-weight:650}.future-result li p{font-size:11px;color:var(--muted);margin-top:3px}.section-description{margin:-8px 0 22px}.history-card{padding:20px}.history-top{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;color:var(--muted)}.history-top span:last-child{background:#eef3e9;border-radius:8px;padding:4px 8px;font-size:10px;color:#64745b}.history-total{margin:13px 0 8px;font-size:25px;font-weight:650;letter-spacing:-.7px;overflow-wrap:anywhere}.history-detail{font-size:12px;color:var(--muted)}.history-contribution{margin-top:12px;font-size:12px;color:var(--teal);overflow-wrap:anywhere}.history-card details{margin-top:8px}.history-card summary{font-size:12px;color:var(--muted);padding:10px 0}.history-card details p{font-size:12px;color:var(--muted);padding:6px 0;border-bottom:1px solid #edf0e9;overflow-wrap:anywhere}.backup-card{margin-top:24px}.backup-card>p{font-size:12px;color:var(--muted);margin-top:11px}.backup-card>p.hint{font-size:11px}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:21px 0 12px}.backup-actions button{font-size:12px;padding:11px 5px}.danger-text{background:none;color:#a5665d;font-size:11px;min-height:44px;padding:10px 0;margin-right:15px}.demo-banner{margin:0 20px 25px;padding:15px 18px;background:#fff1d9;border-radius:16px;color:#75582a}.demo-banner strong{font-size:13px}.demo-banner p{font-size:11px;margin-top:5px}.demo-banner .text-button{color:#75582a;font-size:12px;padding-bottom:0}.toast{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 36px);width:max-content;background:#192d36f2;color:#fff;padding:13px 18px;font-size:12px;border-radius:14px;z-index:25;box-shadow:0 5px 25px #152e3320;overflow-wrap:anywhere}dialog{border:1px solid var(--line);border-radius:24px;max-width:calc(100% - 32px);width:440px;padding:0;color:var(--ink)}dialog::backdrop{background:#14272c77;backdrop-filter:blur(3px)}.dialog-content{padding:25px}.dialog-content>p:not(.eyebrow){font-size:13px;margin-top:15px;overflow-wrap:anywhere}.dialog-actions{display:flex;gap:10px;margin-top:23px}.dialog-actions button{flex:1;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-100px;background:#fff;z-index:99;padding:12px}.skip-link:focus{top:10px}
@media(min-width:600px){.app-shell{margin:25px auto;border:1px solid #e0e6db;border-radius:30px;background:var(--paper)}main{padding-left:28px;padding-right:28px}.app-header{padding-left:28px;padding-right:28px}.demo-banner{margin-left:28px;margin-right:28px}}
@media(max-width:350px){main{padding-left:15px;padding-right:15px}.app-header{padding-left:15px;padding-right:15px}.total-card{padding:22px 19px}.total-value{font-size:30px}.private-badge{font-size:9px}.holding-fields{grid-template-columns:1fr}.total-breakdown strong{font-size:15px}.date-control input{max-width:135px}.cash-card{padding:17px}.brand{font-size:16px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s ease,opacity .15s ease}.tab-panel{animation:appear .15s ease-out}@keyframes appear{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}}
/* Prevent iPhone focus zoom, and keep the brand link easy to tap. */
.mode-control select,input[type=date]{font-size:16px}.brand{min-height:44px}
