:root{--navy:#09264a;--navy2:#123b68;--blue:#2673e8;--green:#18a76f;--red:#e45555;--gold:#f3b83f;--ink:#12233d;--muted:#6c7b90;--line:#e7edf4;--bg:#f3f7fb;--card:#fff;--radius:20px;--shadow:0 12px 35px rgba(20,54,90,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:16px}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:linear-gradient(130deg,var(--navy),#164a7e 53%,#eef5fb 53%);padding:48px;gap:60px;align-items:center}.auth-brand{align-self:start;color:#fff;display:flex;align-items:center;gap:14px}.auth-brand strong{font-size:22px;display:block}.auth-brand span{opacity:.76;font-size:14px}.brand-mark{width:54px;height:54px;border-radius:18px;background:linear-gradient(145deg,#ffd261,#f1a51e);display:grid;place-items:center;color:var(--navy);font-size:25px;font-weight:800;box-shadow:0 10px 25px #001b3740}.brand-mark.small{width:38px;height:38px;border-radius:12px;font-size:18px}.auth-card{background:#fff;padding:42px;border-radius:28px;max-width:480px;width:100%;box-shadow:0 30px 80px #03172d29}.auth-card h1{font-size:38px;margin:6px 0 12px}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:800;color:var(--blue);margin:0 0 6px}.muted{color:var(--muted);line-height:1.65}.btn{border:0;border-radius:12px;padding:13px 18px;font-weight:700;transition:.2s}.btn:hover{transform:translateY(-1px)}.primary{background:var(--blue);color:white;box-shadow:0 7px 18px #2673e82b}.secondary{background:#edf3fa;color:var(--navy)}.google-btn{width:100%;background:#fff;border:1px solid #747775;margin-top:20px;color:#1f1f1f;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;font-size:14px}.google-g{width:20px;height:20px;display:block;flex:0 0 20px}.divider{text-align:center;border-top:1px solid var(--line);margin:25px 0 18px;height:0}.divider span{background:#fff;color:#98a3b2;padding:0 12px;position:relative;top:-12px;font-size:13px}.auth-card label,dialog label{display:block;font-weight:700;font-size:14px;margin:13px 0}.auth-card input,dialog input,dialog textarea,dialog select{width:100%;margin-top:7px;border:1px solid #dce4ed;border-radius:11px;padding:12px;background:#fbfdff;color:var(--ink);outline:none}.auth-card input:focus,dialog input:focus,dialog textarea,dialog select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2673e816}.auth-card .primary,.text-btn{width:100%;margin-top:10px}.text-btn{background:transparent;color:var(--blue)}.form-message{font-size:14px;color:var(--red);min-height:20px}
.app{min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,var(--navy),#061d37);color:white;position:fixed;inset:0 auto 0 0;padding:25px 18px;display:flex;flex-direction:column;z-index:5}.logo{display:flex;align-items:center;gap:12px;font-weight:800;font-size:18px;padding:0 8px 32px}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#b8cae0;text-align:left;padding:13px 15px;border-radius:12px;font-weight:600}.nav-item span{display:inline-block;width:28px}.nav-item:hover,.nav-item.active{background:#ffffff16;color:white}.profile{margin-top:auto;border-top:1px solid #ffffff1c;padding:20px 5px 0;display:grid;grid-template-columns:40px 1fr 30px;align-items:center;gap:10px}.profile strong,.profile span{display:block;overflow:hidden;text-overflow:ellipsis}.profile strong{font-size:13px}.profile span{font-size:11px;color:#91a9c4}.profile button{background:transparent;border:0;color:#bdd0e4;font-size:20px}.avatar{width:40px;height:40px;border-radius:13px;background:#d9edff;color:var(--navy);display:grid;place-items:center;font-weight:800}
main{margin-left:260px;padding:32px 38px 100px;max-width:1600px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}header h1{font-size:30px;margin:0}.header-actions{display:flex;gap:10px}.icon-btn{width:45px;height:45px;border-radius:13px;border:1px solid var(--line);background:white}.compact{padding:11px 16px}.view{display:none}.view.active{display:block}.dashboard-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:20px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:23px;box-shadow:var(--shadow)}.panel h2{font-size:19px;margin:0}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.badge{background:#edf4ff;color:var(--blue);padding:6px 10px;border-radius:20px;font-size:12px;font-weight:800}.side-stack{display:grid;gap:20px}.task-list{display:grid;gap:10px}.task-item{border:1px solid var(--line);border-radius:14px;padding:13px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.task-item.done{background:#f2fbf7;border-color:#caefdf}.task-info{display:flex;align-items:center;gap:12px}.task-status{width:38px;height:38px;border:0;border-radius:11px;background:#eef3f8;color:#8091a5;font-size:18px}.done .task-status{background:var(--green);color:white}.task-info strong,.task-info span{display:block}.task-info strong{font-size:14px}.task-info span{font-size:12px;color:var(--muted);margin-top:3px}.task-actions{display:flex;gap:7px}.task-actions button{width:36px;height:36px;border-radius:10px;border:0;font-weight:800}.yes{background:#dff7ec;color:#08794c}.no{background:#fee9e9;color:#c33}.delete{background:#f1f4f8;color:#7b8796}.empty{text-align:center;padding:42px 15px;color:var(--muted);display:grid;gap:5px}.empty div{margin:auto;width:50px;height:50px;border-radius:16px;background:#eef4fa;display:grid;place-items:center;color:var(--blue);font-size:22px}.empty strong{color:var(--ink)}.result-content{display:flex;align-items:center;gap:22px}.progress-ring{--progress:0;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) calc(var(--progress)*1%),#e9eef4 0);position:relative;flex:0 0 auto}.progress-ring:after{content:"";position:absolute;inset:11px;border-radius:50%;background:white}.progress-ring span{z-index:1;font-size:24px;font-weight:800}.result-content h2{font-size:25px}.result-content p{font-size:13px}.balance{display:block;font-size:29px;margin:8px 0 18px}.money-row{display:flex;gap:16px;justify-content:space-between}.money-row span{font-size:12px;color:var(--muted)}.money-row b{display:block;color:var(--ink);font-size:14px;margin-top:4px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot.income{background:var(--green)}.dot.expense{background:var(--red)}.link-btn{border:0;background:transparent;color:var(--blue);font-weight:700}.trend-panel{margin-top:20px}.bar-chart{height:180px;display:flex;gap:12px;align-items:end;padding:10px 5px 0}.bar-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.bar{width:min(42px,70%);min-height:4px;border-radius:9px 9px 3px 3px;background:linear-gradient(#4e93f3,#246bd1);transition:.3s}.bar-col span{font-size:11px;color:var(--muted)}.bar-col b{font-size:11px}.section-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-toolbar h2{margin:0}.section-toolbar p{margin:5px 0 0}.finance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.money-card{border-radius:18px;padding:22px;color:#fff;display:grid;gap:8px;box-shadow:var(--shadow)}.money-card.dark{background:linear-gradient(135deg,var(--navy),#164f83)}.money-card.green{background:linear-gradient(135deg,#078a59,#25bb82)}.money-card.red{background:linear-gradient(135deg,#c94148,#ee6a65)}.money-card span,.money-card small{opacity:.8}.money-card strong{font-size:25px}.income-btn{background:#e0f7ed;color:#087b4f}.expense-btn{background:#feeaea;color:#b83c3c;margin-left:8px}.segmented{background:#e9eff6;padding:4px;border-radius:12px}.segmented button{border:0;background:transparent;border-radius:9px;padding:8px 15px;color:var(--muted)}.segmented button.active{background:white;color:var(--ink);box-shadow:0 3px 9px #1c365c14}.finance-grid,.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.line-chart{height:220px;display:flex;align-items:center;justify-content:center}.line-chart svg{width:100%;height:100%;overflow:visible}.transactions-panel{margin-top:20px}.transaction{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.transaction:last-child{border:0}.tx-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#e7f8f0;color:var(--green);font-weight:800}.transaction.expense .tx-icon{background:#feecec;color:var(--red)}.transaction strong,.transaction span{display:block}.transaction span{font-size:12px;color:var(--muted)}.tx-amount{text-align:right;color:var(--green)}.transaction.expense .tx-amount{color:var(--red)}.compare-chart{padding-top:20px}.compare-row{display:grid;grid-template-columns:100px 1fr 100px;gap:12px;align-items:center;margin:16px 0;font-size:13px}.compare-track{height:13px;background:#edf1f5;border-radius:20px;overflow:hidden}.compare-fill{height:100%;border-radius:20px;background:var(--green)}.compare-fill.expense{background:var(--red)}.tall{height:260px}.settings-card{max-width:800px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.setting-row span{display:block;color:var(--muted);font-size:13px;margin-top:4px}
dialog{border:0;border-radius:22px;padding:0;width:min(540px,calc(100% - 28px));box-shadow:0 35px 90px #0a1b3040}dialog::backdrop{background:#071a2f99;backdrop-filter:blur(4px)}dialog form{padding:27px}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{margin:0}.close-dialog{border:0;background:#eef2f6;width:36px;height:36px;border-radius:10px;font-size:22px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog textarea{min-height:70px;resize:vertical}.full{width:100%;margin-top:12px}.toast{position:fixed;right:22px;top:22px;background:var(--navy);color:#fff;padding:13px 18px;border-radius:12px;z-index:50;box-shadow:var(--shadow);transform:translateY(-90px);opacity:0;transition:.25s}.toast.show{transform:translateY(0);opacity:1}.mobile-nav{display:none}
@media(max-width:1000px){.sidebar{width:220px}main{margin-left:220px;padding:25px}.dashboard-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.finance-grid,.stats-grid{grid-template-columns:1fr}}
@media(max-width:720px){body{background:#f5f8fb}.auth-screen{display:flex;flex-direction:column;align-items:stretch;padding:24px 18px;background:linear-gradient(165deg,var(--navy) 0 31%,var(--bg) 31%);gap:50px}.auth-card{padding:26px 20px;border-radius:22px}.auth-card h1{font-size:30px}.sidebar{display:none}main{margin:0;padding:22px 15px 95px}header{margin-bottom:18px}header h1{font-size:24px}.header-actions .compact{font-size:0;width:44px;padding:0}.header-actions .compact:first-letter{font-size:20px}.dashboard-grid{display:block}.side-stack{grid-template-columns:1fr;margin-top:15px}.panel{padding:18px;border-radius:17px}.trend-panel{margin-top:15px}.result-content{gap:15px}.progress-ring{width:100px;height:100px}.finance-summary{grid-template-columns:1fr}.finance-summary .money-card{padding:18px}.section-toolbar{align-items:flex-start;gap:12px}.section-toolbar>div:last-child{display:flex}.section-toolbar .btn{padding:10px;font-size:13px}.finance-grid{gap:15px}.money-row{gap:8px}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;inset:auto 0 0;background:#fff;border-top:1px solid var(--line);z-index:8;padding:7px 8px max(7px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:transparent;color:#7a8a9e;display:grid;gap:2px;place-items:center;font-size:18px;padding:4px}.mobile-nav span{font-size:10px}.mobile-nav button.active{color:var(--blue)}.task-item{grid-template-columns:1fr}.task-actions{justify-content:flex-end}.two-cols{grid-template-columns:1fr}.finance-grid,.stats-grid{grid-template-columns:1fr}.compare-row{grid-template-columns:70px 1fr 85px}.setting-row{gap:15px}.bar-chart{gap:5px}}
