*{box-sizing:border-box} :root{font-family:system-ui,-apple-system,sans-serif;color:#193930;background:#f4f6f2;font-size:15px;font-synthesis:none}body{margin:0}header,main,nav{max-width:760px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:26px 22px 18px}h1{font-size:23px;letter-spacing:-.8px;margin:7px 0}h2{font-size:20px;margin:0}h3{font-size:16px;margin:0 0 16px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:#648276}.dot{color:#76aa55}main{padding:8px 18px 110px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 14px}.subtle,small{color:#64776e;font-size:12px;line-height:1.6}.card{background:white;border:1px solid #e2e9df;border-radius:18px;padding:20px;margin-bottom:14px}.hero{background:#173f32;color:white;border:0;padding:25px}.hero .subtle{color:#bed0c2}.hero strong{font-size:36px;display:block;letter-spacing:-1px;margin:10px 0 18px}.hero-footer{display:flex;justify-content:space-between;border-top:1px solid #466354;padding-top:15px;font-size:13px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid .card{margin:0;padding:17px}.metric-label{display:block;color:#64776e;font-size:11px;margin-bottom:9px}.metric-value{font-size:21px;font-weight:700;letter-spacing:-.4px}.badge{background:#e8f0e3;color:#365c35;border-radius:30px;padding:6px 10px;font-size:11px;display:inline-block}.progress{height:8px;background:#edf0e9;border-radius:10px;margin:14px 0;overflow:hidden}.progress i{height:100%;display:block;background:#82ab5b;border-radius:10px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row+.row{margin-top:12px}button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:11px 14px;background:#1d513c;color:white;min-height:44px}button.secondary{background:#edf2e8;color:#294c37}button.link{background:none;color:#286344;padding:7px}.icon{background:transparent;color:#244e3b;font-size:25px}nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;border-top:1px solid #e2e7df;padding:8px 5px calc(8px + env(safe-area-inset-bottom));z-index:3}nav button{width:20%;background:transparent;color:#708075;font-size:11px;padding:7px 0}nav button span{display:block;font-size:21px;margin-bottom:4px}nav button.active{color:#1c5539;background:#edf3e7}.stock{width:100%;text-align:left;color:inherit;display:block}.stock:hover{border-color:#87a779}.avatar{width:39px;height:39px;display:grid;place-items:center;background:#edf1e5;border-radius:12px;font-weight:750;font-size:13px}.identity{display:flex;align-items:center;gap:12px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;font-size:14px}.mini-grid small{display:block}.positive{color:#347044}.negative{color:#aa473b}.bars{display:flex;align-items:flex-end;gap:6px;height:148px;margin:24px 0 8px}.bar-slot{flex:1;text-align:center;min-width:0}.bar{background:#81a969;border-radius:5px 5px 0 0;min-height:2px;width:100%}.bar-slot small{font-size:10px}.bar-slot button{background:none;color:inherit;border-radius:0;padding:0;min-height:0;width:100%;font-size:10px}.bar-slot button span{display:block}.legend-row{display:grid;grid-template-columns:85px 1fr 70px;gap:10px;align-items:center;margin:14px 0;font-size:12px}.track{height:8px;background:#edf1e8;border-radius:9px;overflow:hidden}.track i{height:100%;display:block;background:#84a970}.legend-row strong{text-align:right}.details{display:grid;grid-template-columns:1fr 1fr;gap:18px}.details small{display:block}.details strong{font-size:16px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}td,th{text-align:right;padding:12px 8px;border-bottom:1px solid #e9ede6}td:first-child,th:first-child{text-align:left}th{font-weight:600;color:#64776e}label{display:block;margin:15px 0 6px;font-size:13px}input,select{width:100%;min-height:46px;padding:12px;border:1px solid #cbd7c6;border-radius:9px;font:inherit;background:white;color:#193930}input:focus,select:focus,button:focus-visible{outline:3px solid #b0cb8f;outline-offset:2px}.check{display:flex;align-items:center;gap:9px}.check input{width:21px;min-height:21px;accent-color:#315e3d}.months{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.months label{font-size:12px;margin:6px 0}dialog{border:0;border-radius:20px;padding:24px;width:calc(100% - 24px);max-width:550px;max-height:90vh;overflow:auto;color:#193930}dialog::backdrop{background:#15271dcc}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}.error{color:#a63327;font-size:13px}.empty{padding:25px;text-align:center}.forecast-chart{width:100%;height:auto;display:block}.chart-labels{display:flex;justify-content:space-between;font-size:11px;color:#64776e}.key{display:flex;gap:18px;margin-top:12px;font-size:11px}.notice{background:#edf1e4;border-radius:12px;padding:13px;font-size:12px;line-height:1.6}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:#173f32;color:white;border-radius:10px;padding:12px 18px;z-index:10;display:none;width:max-content;max-width:90%}details summary{cursor:pointer;font-size:13px;padding:10px 0}details p{font-size:12px;color:#64776e;line-height:1.7}@media(min-width:650px){header{padding-top:35px}.grid{grid-template-columns:repeat(4,1fr)}.hero strong{font-size:44px}.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portfolio-grid .card{margin:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

[hidden]{display:none!important}button:disabled{cursor:wait;opacity:.62}.auth-wrap{max-width:470px;margin:0 auto}.auth-hero strong{font-size:35px;line-height:1.15;margin-bottom:12px}.auth-hero p{color:#d8e5dc;font-size:13px;line-height:1.6;margin-bottom:0}.auth-card h2{font-size:23px;line-height:1.25}.auth-card>p{line-height:1.6}.auth-card button{width:100%}.auth-actions{display:flex;flex-direction:column;gap:10px;margin-top:22px}.auth-divider{border-top:1px solid #e2e9df;margin-top:24px}.auth-mark{display:grid;place-items:center;width:48px;height:48px;background:#edf2e8;color:#315e3d;font-size:28px;border-radius:14px;margin-bottom:20px}.account-email{overflow-wrap:anywhere;font-size:14px}.account-exit{border-top:1px solid #e2e9df;margin-top:24px;padding-top:20px}.account-exit button{width:100%}#auth-message{margin-top:20px;margin-bottom:0}.auth-card .error{line-height:1.5}@media(max-width:400px){.auth-hero{padding:22px}.auth-hero strong{font-size:31px}}

.market-metrics{grid-template-columns:1fr 1fr;margin-bottom:18px}.market-metrics .card:last-child{grid-column:1/-1}.market-metrics small{display:block;margin-top:7px}.market-date{font-size:19px}.market-section{margin-top:18px}.market-controls{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-bottom:12px}.market-controls label{margin-top:0}.market-chart{display:block;width:100%;height:auto;margin-top:15px}.market-chart text{font-family:inherit;font-size:11px;fill:#64776e}.market-search{display:flex;gap:8px;align-items:stretch}.market-search input{min-width:0}.market-search button{padding:10px}.market-result{display:block;text-align:left;width:100%;margin-top:10px}.market-result strong{display:block;font-size:14px;overflow-wrap:anywhere}.market-result span{display:block;font-size:11px;line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.market-links{margin-top:20px}.market-link-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e9ede6;padding:12px 0;gap:10px}.market-link-row strong{font-size:13px}.market-link-row small{display:block}.market-link-row button{font-size:12px}.market-key-save{margin-top:14px;width:100%}.dividend-table td{vertical-align:top}.dividend-table th{white-space:normal;min-width:95px}.dividend-table td:first-child{min-width:120px}.dividend-table details p{white-space:normal;min-width:160px}.dividend-table summary{font-size:11px}.dividend-table button{white-space:normal}@media(min-width:650px){.market-metrics{grid-template-columns:repeat(3,1fr)}.market-metrics .card:last-child{grid-column:auto}}@media(max-width:380px){nav button{font-size:10px}.market-metrics .metric-value{font-size:18px}.market-controls select{font-size:13px;padding:10px}}

/* Main areas and the local investment subpages. */
nav button{width:33.333%;font-size:12px}.investment-tabs{max-width:760px;margin:0 auto 8px;padding:0 18px;display:flex;gap:5px;overflow-x:auto}.investment-tabs button{flex:1;min-width:0;background:#e8eee3;color:#536a5b;font-size:12px;padding:10px 7px}.investment-tabs button.active{background:#1d513c;color:white}.expense-overview{display:grid;gap:25px;margin-top:24px}.expense-chart{width:230px;height:230px;border-radius:50%;margin:auto;display:grid;place-items:center}.expense-chart>div{background:white;border-radius:50%;width:166px;height:166px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;text-align:center}.expense-chart strong{display:block;font-size:20px;overflow-wrap:anywhere;max-width:150px}.expense-chart small{margin-bottom:8px}.empty-chart{background:#edf1e8}.empty-chart strong{font-size:17px}.expense-category{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;padding:10px 0;border-bottom:1px solid #edf1e8}.expense-category small{display:block}.category-dot{height:10px;width:10px;border-radius:50%}.expense-item{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;color:inherit;gap:12px}.expense-item>div{min-width:0}.expense-item strong{display:block;overflow-wrap:anywhere}.expense-item .badge{margin-bottom:8px}.expense-item>strong{white-space:nowrap}.expense-total{background:#173f32;color:white;display:flex;justify-content:space-between;align-items:center;gap:15px}.expense-total strong{font-size:25px}.settings-menu{display:flex;flex-direction:column;gap:12px;margin:20px 0}.settings-menu button{display:flex;justify-content:space-between;align-items:center;text-align:left}.faq-list details{border-bottom:1px solid #e2e9df}.faq-list summary{font-weight:600;line-height:1.5;padding:14px 0}.faq-list p{font-size:13px}.other-question{margin-top:24px}textarea{width:100%;padding:12px;border:1px solid #cbd7c6;border-radius:9px;font:inherit;resize:vertical;color:#193930;min-height:120px}textarea:focus{outline:3px solid #b0cb8f;outline-offset:2px}.pin-card{margin-top:20px}.pin-card form p{line-height:1.6}.pin-card button{width:100%;margin-top:8px}.pin-card .pin-submit{margin-top:22px}.pin-input{font-size:28px;letter-spacing:12px;text-align:center}.pin-card .auth-mark{margin:auto}.pin-card>.account-email{text-align:center}.danger{color:#a63327!important}.hero-footer{gap:12px;flex-wrap:wrap}.identity{min-width:0}.metric-value{overflow-wrap:anywhere}@media(min-width:650px){.expense-overview{grid-template-columns:250px 1fr;align-items:center}}@media(max-width:380px){.investment-tabs button{font-size:11px;padding:10px 4px}.expense-total strong{font-size:21px}.section-head h2{font-size:19px}.section-head>button{font-size:12px}}

.remember-pin{display:flex;align-items:center;gap:9px}.remember-pin input{width:21px;min-height:21px;accent-color:#315e3d}
.premium-lock{border:1px solid #c9b887;background:#faf8ef;text-align:center}.premium-price{font-size:36px;font-weight:750;color:#194737}.premium-price small{font-size:16px;font-weight:400}.premium-features li{margin-bottom:12px}.manual-slide{margin-top:18px;min-height:340px;border-radius:18px;background:#f4f7f0;padding:20px}.manual-slide h3{font-size:24px;color:#194737;margin-top:0}.manual-slide p,.manual-slide li{line-height:1.6}.manual-slide li{margin-bottom:12px}.manual-content{position:relative;min-height:230px}.manual-blur{filter:blur(7px);padding-top:25px;user-select:none}.manual-line{height:18px;background:#8faaa0;margin:18px 0;border-radius:10px}.manual-line.short{width:74%}.manual-overlay{position:absolute;inset:20px 0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.manual-nav{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.manual-nav button{flex:1}
/* Daily closing prices, without intraday assumptions. */
.market-chart-caption{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-top:20px}.market-chart-caption>span{font-size:12px;color:#64776e}.market-chart-caption>strong{font-size:21px;margin-left:auto}.market-chart-caption>small{width:100%;text-align:right}.market-holdings td{vertical-align:top}.market-holdings td:first-child{max-width:155px;white-space:normal}.market-holdings small{display:block;font-size:10px}.market-dividend-totals,.market-upcoming-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.market-dividend-totals>div,.market-upcoming-months>div{border:1px solid #e2e9df;border-radius:12px;padding:13px;overflow-wrap:anywhere}.market-dividend-totals strong,.market-upcoming-months strong{display:block;font-size:19px}.market-dividend-totals small,.market-upcoming-months small{font-size:11px}.market-controls>div{min-width:0}.market-controls select{font-size:12px;padding:10px 6px}.market-metrics .metric-value{font-size:20px}@media(max-width:360px){.market-controls{grid-template-columns:1fr}.market-metrics .metric-value{font-size:17px}.market-dividend-totals,.market-upcoming-months{gap:6px}.market-dividend-totals>div,.market-upcoming-months>div{padding:9px}}

.credit-row{border-top:1px solid #e2e9df;margin-top:17px;padding-top:12px}.credit-row>button{padding-left:0;text-align:left}.credit-row>strong{display:block;font-size:22px;margin:4px 0}.credit-row>small{display:block}.credit-overview>.row strong{font-size:23px}.credit-overview .row{flex-wrap:wrap}#expense-credit-fields{padding:4px 0 14px;border-bottom:1px solid #e2e9df;margin-bottom:15px}
