:root{color:#17201a;background:#f4f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,rgba(25,110,98,.15),transparent 38%),linear-gradient(225deg,rgba(194,83,62,.12),transparent 42%),#f4f7f5}button,input,select{font:inherit}button{cursor:pointer}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:32px 0}.auth-shell{align-items:center;display:flex;min-height:100vh;padding:24px}.auth-panel{margin:0 auto;max-width:760px;width:100%}.auth-panel h1{max-width:720px}.env-list{display:grid;gap:10px;margin-top:26px}.env-list code{background:#fff;border:1px solid rgba(23,32,26,.12);border-radius:6px;color:#17201a;padding:12px}.hero{align-items:end;display:flex;justify-content:space-between;gap:24px;min-height:250px;padding:28px 0}.eyebrow{color:#196e62;font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 12px;text-transform:uppercase}h1,h2,p{margin-top:0}h1{font-size:clamp(2.75rem,7vw,5.7rem);letter-spacing:0;line-height:.95;margin-bottom:20px;max-width:820px}h2{font-size:1.05rem;margin:0}.hero-copy{color:#56615a;font-size:1.08rem;line-height:1.55;max-width:520px}.month-control,.panel,.metric{background:#ffffffe0;border:1px solid rgba(23,32,26,.1);border-radius:8px;box-shadow:0 18px 45px #17201a14}.month-control{min-width:215px;padding:16px}label,.month-control label{color:#4b5750;display:grid;font-size:.86rem;font-weight:700;gap:8px}input,select{background:#fff;border:1px solid rgba(23,32,26,.16);border-radius:6px;color:#17201a;min-height:44px;padding:10px 12px;width:100%}input:focus,select:focus,button:focus-visible{outline:3px solid rgba(25,110,98,.24);outline-offset:2px}.summary-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.summary-grid.expanded{grid-template-columns:repeat(5,minmax(0,1fr))}.metric{min-height:118px;padding:18px}.metric span{color:#5f6a63;display:block;font-size:.86rem;font-weight:800;margin-bottom:20px}.metric strong{display:block;font-size:clamp(1.45rem,3vw,2.35rem);line-height:1;overflow-wrap:anywhere}.metric.green{border-top:4px solid #2c8c5d}.metric.red{border-top:4px solid #c2533e}.metric.blue{border-top:4px solid #3e6f9e}.metric.amber{border-top:4px solid #d49321}.insight-grid,.portfolio-grid,.credit-grid{display:grid;gap:20px;margin-bottom:20px}.insight-grid{grid-template-columns:1.35fr .9fr}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.credit-grid{grid-template-columns:1.2fr .8fr}.workspace{align-items:stretch;display:grid;gap:20px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.panel{padding:20px}.panel-header{align-items:center;display:flex;justify-content:space-between;gap:12px;margin-bottom:18px}.transaction-form,.account-form{display:grid;gap:14px}.segmented-control{background:#e4ebe8;border:1px solid rgba(23,32,26,.08);border-radius:7px;display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;padding:4px}.segmented-control.compact{grid-template-columns:repeat(3,minmax(70px,1fr));width:min(310px,100%)}.segmented-control.three-up{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented-control button{background:transparent;border:0;border-radius:5px;color:#4c5750;font-size:.84rem;font-weight:800;min-height:36px;min-width:0;overflow:hidden;padding:7px 10px;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.segmented-control button.active{background:#fff;box-shadow:0 4px 14px #17201a1a;color:#17201a}.segmented-control button:disabled{cursor:not-allowed;opacity:.7}.primary-action{background:#196e62;border:0;border-radius:6px;color:#fff;font-weight:900;min-height:48px;padding:12px 16px}.secondary-action,.google-action{border-radius:6px;font-weight:900;min-height:44px;padding:10px 14px}.secondary-action{background:#eef3f1;border:1px solid rgba(23,32,26,.12);color:#17201a;margin-top:12px;width:100%}.secondary-action.no-margin{margin-top:0}.text-button{background:transparent;border:1px solid rgba(23,32,26,.12);border-radius:6px;color:#196e62;font-size:.82rem;font-weight:900;min-height:34px;padding:6px 10px}.google-action{align-items:center;background:#fff;border:1px solid rgba(23,32,26,.14);box-shadow:0 14px 32px #17201a14;color:#17201a;display:inline-flex;gap:12px;margin-top:14px}.google-action span{align-items:center;background:#196e62;border-radius:50%;color:#fff;display:inline-flex;font-weight:900;height:26px;justify-content:center;width:26px}.auth-error{background:#c2533e1f;border:1px solid rgba(194,83,62,.22);border-radius:8px;color:#8d2e20;margin-top:18px;padding:12px}.auth-error.dashboard-error{max-width:680px}.user-pill{align-items:center;display:flex;gap:10px;margin-bottom:8px}.user-pill img{border-radius:50%;height:32px;width:32px}.user-pill span{color:#4b5750;font-size:.86rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-status{color:#68736d;font-size:.8rem;font-weight:800;margin-bottom:14px}.budget-list{display:grid;gap:18px}.budget-row{display:grid;gap:9px}.budget-row div:first-child{align-items:center;display:flex;justify-content:space-between;gap:14px}.budget-row span{color:#68736d;font-size:.88rem}.progress-track{background:#dfe8e4;border-radius:999px;height:10px;overflow:hidden}.progress-track span{background:linear-gradient(90deg,#196e62,#e0a32f);display:block;height:100%}.goal-panel{align-items:center;display:flex;flex-direction:column;text-align:center}.goal-ring{align-items:center;background:radial-gradient(circle at center,#ffffff 59%,transparent 60%),conic-gradient(#196e62 var(--progress),#dfe8e4 0);border-radius:50%;display:flex;height:170px;justify-content:center;margin:12px 0 20px;width:170px}.goal-ring span{font-size:2rem;font-weight:900}.credit-panel{align-items:center;display:flex;flex-direction:column}.credit-panel .panel-header,.credit-form .panel-header{width:100%}.credit-score-ring{align-items:center;background:radial-gradient(circle at center,#ffffff 59%,transparent 60%),conic-gradient(#3e6f9e var(--progress),#dfe8e4 0);border-radius:50%;display:flex;height:190px;justify-content:center;margin:8px 0 20px;width:190px}.credit-score-ring span{font-size:2.4rem;font-weight:900}.credit-stats{width:100%}.credit-form{display:grid;gap:14px}.goal-panel p{color:#5f6a63;line-height:1.5;margin-bottom:0}.status{border-radius:999px;font-size:.78rem;font-weight:900;padding:6px 10px}.status.positive{background:#2c8c5d1f;color:#17613e}.status.negative{background:#c2533e1f;color:#9d3728}.status.green{background:#2c8c5d1f;color:#17613e}.status.blue{background:#3e6f9e1f;color:#2c5681}.status.amber{background:#d4932129;color:#8a5b0e}.status.red{background:#c2533e1f;color:#9d3728}.cashflow-panel{overflow:hidden}.cashflow-bar{background:#dfe8e4;border-radius:999px;height:16px;margin-bottom:20px;overflow:hidden;position:relative}.cashflow-bar span{bottom:0;display:block;left:0;position:absolute;top:0}.income-bar{background:#cfded9}.cashflow-marker.positive{background:linear-gradient(90deg,#196e62,#2c8c5d)}.cashflow-marker.negative{background:linear-gradient(90deg,#c2533e,#9d3728)}.mini-stats{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.mini-stats div{background:#f5f8f6;border:1px solid rgba(23,32,26,.08);border-radius:8px;min-height:76px;padding:12px}.mini-stats span,.balance-line span,.panel-detail,.account-row span{color:#68736d;display:block;font-size:.84rem}.mini-stats strong,.balance-line strong{display:block;font-size:1.1rem;margin-top:10px;overflow-wrap:anywhere}.net-worth-stack,.account-list{display:grid;gap:10px}.balance-line,.account-row{align-items:center;background:#fff;border:1px solid rgba(23,32,26,.08);border-radius:8px;display:flex;gap:14px;justify-content:space-between;min-height:62px;padding:12px 14px}.balance-line.green{border-left:4px solid #2c8c5d}.balance-line.red{border-left:4px solid #c2533e}.balance-line.blue{border-left:4px solid #3e6f9e}.account-panel .panel-header{align-items:start}.account-panel .panel-header>strong{font-size:1.25rem;overflow-wrap:anywhere;text-align:right}.panel-detail{margin-top:5px}.account-row strong{display:block}.transactions-panel{margin-bottom:24px}.transaction-list{display:grid;gap:10px}.transaction{align-items:center;background:#fff;border:1px solid rgba(23,32,26,.08);border-radius:8px;display:flex;justify-content:space-between;gap:16px;min-height:72px;padding:14px 16px}.transaction strong{display:block;margin-bottom:6px}.transaction span{color:#6a746e;font-size:.9rem}.transaction-meta{align-items:center;display:flex;gap:12px}.transaction-meta .income{color:#2c8c5d;font-weight:900}.transaction-meta .expense{color:#c2533e;font-weight:900}.icon-button{align-items:center;background:#eef3f1;border:0;border-radius:50%;color:#5a3129;display:inline-flex;font-size:1.35rem;font-weight:600;height:34px;justify-content:center;line-height:1;width:34px}.empty-state{color:#64706a;margin-bottom:0;padding:14px 0}@media (max-width: 920px){.hero{align-items:stretch;flex-direction:column}.summary-grid,.summary-grid.expanded,.workspace,.insight-grid,.portfolio-grid,.credit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.goal-panel{grid-column:1 / -1}}@media (max-width: 640px){.app-shell{width:min(100% - 24px,1180px);padding:16px 0}.hero{gap:18px;min-height:0;padding:10px 0 18px}h1{font-size:clamp(2.35rem,13vw,3.15rem);line-height:1.02;margin-bottom:14px;max-width:100%;overflow-wrap:break-word}.eyebrow{font-size:.74rem;margin-bottom:10px}.hero-copy{font-size:1rem;line-height:1.45;max-width:100%}.month-control{min-width:0;padding:16px;width:100%}.month-control input[type=month]{-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:100%;min-width:0;text-align:left}.summary-grid,.summary-grid.expanded,.workspace,.insight-grid,.portfolio-grid,.credit-grid,.mini-stats{grid-template-columns:1fr}.panel-header,.transaction,.account-row,.balance-line{align-items:stretch;flex-direction:column}.transaction-meta{justify-content:space-between}.segmented-control.three-up{gap:3px;padding:3px}.segmented-control.three-up button{font-size:.74rem;min-height:34px;padding:6px 5px}}
