:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1c3431;background:#f4f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#126e5c}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(24px,3.5vw,35px);letter-spacing:-.04em}h2{font-size:22px;letter-spacing:-.025em;margin-bottom:16px}h3{font-size:16px;margin-bottom:12px}p{line-height:1.45}.muted,.hint,.small{color:#6a7d78}.small{font-size:12px}.hint{font-size:13px;line-height:1.5}.num{font-variant-numeric:tabular-nums}.danger{color:#b34040}.success{color:#176f53}.green{color:#116c51}.amber{color:#99621d}.nowrap{white-space:nowrap}.wrap{overflow-wrap:anywhere}.loading-screen{min-height:100vh;display:grid;place-items:center;color:#56847c}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 70% 10%,#c9ebdb 0,transparent 40%),#eff4ef}.auth-card{width:min(450px,100%);background:white;border:1px solid #e0eae4;border-radius:22px;padding:30px;box-shadow:0 15px 60px #1b50351b}.auth-mark{height:48px;width:48px;background:#15574b;color:white;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:27px;margin-bottom:18px}.auth-card h1{margin-bottom:6px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#45615a;min-width:0}.field input,.field select,.field textarea,input.filter{width:100%;padding:11px 12px;border:1px solid #d8e4de;border-radius:11px;background:white;color:#1d3631;min-height:42px;outline:none}.field input:focus,.field select:focus,.field textarea:focus,input.filter:focus{border-color:#198367;box-shadow:0 0 0 3px #24b08121}.field textarea{resize:vertical;min-height:76px}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{display:grid;gap:14px}.card{background:white;border:1px solid #e0e8e2;border-radius:17px;padding:20px;box-shadow:0 2px 5px #1d553006}.card.flat{box-shadow:none}.btn{border:0;border-radius:11px;padding:10px 14px;background:#165b4d;color:white;font-weight:650;min-height:41px}.btn:hover{background:#0d453a}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#e8f2ec;color:#195c4c}.btn.secondary:hover{background:#d7e9dc}.btn.ghost{background:transparent;color:#225a50;border:1px solid #d8e3dc}.btn.ghost:hover{background:#f0f6f2}.btn.warning{background:#f8e8db;color:#8c471d}.btn.tiny{padding:5px 9px;min-height:30px;font-size:12px}.btn.wide{width:100%}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap-row{flex-wrap:wrap}.badge{display:inline-flex;padding:4px 8px;font-weight:700;font-size:11px;letter-spacing:.02em;border-radius:20px;background:#e6f4eb;color:#1b7156}.badge.amber{background:#fff0d7;color:#97651f}.badge.gray{background:#f1f3f1;color:#687970}.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100dvh}.sidebar{background:#173e38;color:#d7e7e0;padding:27px 16px;display:flex;flex-direction:column;gap:22px;min-height:100dvh}.brand{display:flex;align-items:center;gap:11px;padding:0 11px;font-size:19px;font-weight:850;color:white;letter-spacing:-.04em}.brand-icon{display:grid;place-items:center;background:#daf3e2;color:#125f4d;width:38px;height:38px;border-radius:12px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;text-align:left;color:#d0e0d9;border-radius:10px;padding:11px 13px;font-size:14px;display:flex;gap:12px;align-items:center;width:100%}.nav button:hover,.nav button.active{background:#2a594c;color:white}.nav button.active{font-weight:700}.sidebar-foot{margin-top:auto;padding:12px;color:#9ab9aa;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.main{min-width:0;padding:30px clamp(14px,3.4vw,52px) 70px;max-width:1500px;width:100%;margin:auto}.topbar{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:26px}.topbar h1{margin-bottom:3px}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{background:white;border:1px solid #e1e9e2;border-radius:16px;padding:19px;min-width:0}.metric.accent{background:#174d43;color:white;border-color:#174d43}.metric.accent .muted{color:#c3e6d6}.metric .val{font-size:clamp(19px,2.1vw,27px);font-weight:800;letter-spacing:-.04em;overflow-wrap:anywhere;margin-top:9px}.metric .title{font-size:12px;font-weight:680;color:#60766c}.metric.accent .title{color:#cbe3d8}.section-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}.box-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.box-heading h2,.box-heading h3{margin:0}.broker-list{display:grid;gap:12px}.broker-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eef2ed}.broker-row:last-child{border-bottom:0}.broker-row strong{font-size:15px}.broker-row .hint{margin-top:3px}.money-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.money-pill{background:#eff5f1;border-radius:8px;padding:6px 8px;font-weight:730;font-size:13px}.card .big-number{font-size:28px;letter-spacing:-.04em;font-weight:810;margin-top:7px}.notice{background:#fff8e9;border:1px solid #f4e3bc;border-radius:12px;padding:12px 14px;color:#775c2c;font-size:13px;line-height:1.45;margin:12px 0}.info{background:#eaf4ef;border-color:#d6ebdd;color:#355e4c}.filterbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}.filterbar>*{max-width:240px;min-width:140px}.table-wrap{width:100%;overflow-x:auto;border:1px solid #e4ece6;border-radius:12px;background:white}table{width:100%;border-collapse:collapse;font-size:13px}thead{background:#eff6f0;color:#466d58;font-size:12px;text-align:left}th,td{padding:11px 12px;border-bottom:1px solid #edf1ed;vertical-align:middle}tbody tr:last-child td{border-bottom:0}td.r,th.r{text-align:right}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:290px}.account-card{border:1px solid #e0e9e0;border-radius:13px;padding:15px;margin-bottom:10px}.account-card .total{font-weight:800;font-size:20px;white-space:nowrap}.acct-heading{font-weight:750;margin-bottom:5px}.alias-input{width:100%;max-width:300px;padding:8px;border-radius:8px;border:1px solid #d0dfd6}.form-panel{background:#f8faf8;border:1px solid #e6ede7;border-radius:13px;padding:16px;margin-bottom:16px}.panel-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}.empty{text-align:center;padding:30px;color:#7a8f83}.progress{height:8px;background:#e6eee8;border-radius:20px;overflow:hidden}.progress>span{display:block;height:100%;background:#217b5f;border-radius:20px;max-width:100%}.month-tabs{display:flex;gap:8px;align-items:center}.month-tabs strong{min-width:100px;text-align:center}.helper{font-size:13px;color:#6a8276;margin:10px 0}.hstack{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.divider{border:0;border-top:1px solid #e9eee8;margin:15px 0}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#183f36;color:white;padding:11px 18px;border-radius:12px;box-shadow:0 12px 40px #0002;z-index:100;display:none;max-width:min(600px,95vw);font-size:14px}#toast.show{display:block}.nav-mobile{display:none}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.footer-note{font-size:12px;color:#718a7d;margin-top:25px}.empty-source{padding:25px;text-align:center;color:#6d8278}@media(max-width:1150px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.section-grid{grid-template-columns:1fr}}@media(max-width:790px){.app-shell{display:block}.sidebar{min-height:0;position:sticky;top:0;z-index:40;padding:10px 12px;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.brand{padding:0;font-size:15px;white-space:nowrap}.brand-icon{width:28px;height:28px;border-radius:8px;font-size:16px}.sidebar .nav,.sidebar-foot{display:none}.nav-mobile{display:flex;background:#fff;position:fixed;bottom:0;left:0;right:0;z-index:50;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom));border-top:1px solid #e2e8e2;justify-content:space-around;box-shadow:0 -3px 20px #0000000b}.nav-mobile button{border:0;background:transparent;display:grid;justify-items:center;gap:4px;color:#718578;font-size:10px;padding:5px 2px;min-width:53px}.nav-mobile button.active{color:#156047;font-weight:850}.nav-mobile .sym{font-size:19px}.main{padding:20px 13px 100px}.topbar{align-items:center}.topbar h1{font-size:25px}.top-actions .btn{font-size:12px;padding:8px}.field-row.three{grid-template-columns:repeat(2,minmax(0,1fr))}.goal-grid{grid-template-columns:1fr}.card{padding:15px}.metric{padding:14px}.metric .val{font-size:21px}.filterbar>*{flex:1;max-width:unset;min-width:110px}}@media(max-width:410px){.metrics{gap:8px}.metric .val{font-size:18px}.field-row{grid-template-columns:1fr}.field-row.three{grid-template-columns:1fr}.auth-card{padding:22px}.sidebar{padding:8px 10px}.top-actions .btn:nth-child(2){display:none}}

.mobile-switch{display:none}@media(max-width:790px){.mobile-switch{display:block;max-width:165px;min-width:126px;background:#e1f1e7;color:#174e3f;border:0;border-radius:9px;padding:8px;font-weight:700;font-size:12px;flex:1}}

/* v2 monthly budget planning */
.badge.red{background:#fde7e6;color:#a92d2b}.budget-progress{height:13px;background:#e8f0eb;border-radius:15px;overflow:hidden;margin:9px 0}.budget-progress span{display:block;background:#258262;height:100%;border-radius:15px;transition:width .18s ease}.budget-progress.warn span{background:#d69828}.budget-progress.over span{background:#cc514a}.plan-summary{margin-bottom:15px}.plan-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:14px 0 18px}.plan-line{border:1px solid #e3ece7;border-radius:13px;padding:14px;display:grid;gap:7px;min-width:0}.plan-line .small{font-size:12px}.plan-edit{background:#f8faf8;border:1px solid #e2eee5;border-radius:12px;padding:15px;margin-top:17px}.plan-edit summary{cursor:pointer;font-weight:700;color:#205f4d;margin-bottom:7px}.plan-edit[open] summary{margin-bottom:16px}.plan-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.plan-share{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #e9eee8;font-size:13px}.plan-input{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.plan-input input{width:80px;border-radius:8px;border:1px solid #d9e3dc;padding:8px;min-height:36px;text-align:right;background:white}.plan-overview-warnings{border-top:1px solid #ecf0ec;margin-top:14px;padding-top:10px;display:grid;gap:7px;font-size:13px}@media(max-width:790px){.plan-lines{grid-template-columns:1fr}.plan-form-grid{grid-template-columns:1fr}.plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:410px){.plan-summary .val{font-size:17px}}
