:root{
  --navy:#0b1f3a;--blue:#2563eb;--teal:#0f9f8f;--bg:#f4f7fb;--card:#fff;--text:#111827;--muted:#667085;
  --line:#e6ebf2;--green:#16803f;--red:#c63c3c;--amber:#b56a00;--shadow:0 8px 28px rgba(11,31,58,.08);
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);min-height:100vh}
button,input,select,textarea{font:inherit}.app-shell{max-width:760px;margin:0 auto;min-height:100vh;padding-bottom:92px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px;background:rgba(244,247,251,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(230,235,242,.85)}.topbar h1,.section-head h2,.section-head h3,.panel h3,.hero-card h2{margin:3px 0}.eyebrow{margin:0;font-size:.72rem;letter-spacing:.12em;font-weight:800;color:var(--blue)}.muted{color:var(--muted)}.hidden{display:none!important}
main{padding:0 16px}.view{display:none}.view.active{display:block}.date-row{display:flex;align-items:center;justify-content:space-between;padding:16px 2px 12px}.date-row>div{display:flex;flex-direction:column;gap:3px}.hero-card,.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:18px;margin:10px 0 16px}.intro-card{padding:24px;background:linear-gradient(160deg,#0b1f3a,#163f73);color:#fff}.intro-card .eyebrow,.intro-card .muted{color:#bcd2ff}.intro-card p{line-height:1.55}.current-card{border:1px solid #d8e5ff}.card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:800;letter-spacing:.06em}.pill.blue{background:#eaf1ff;color:#1f5ed8}.pill.green{background:#e9f8ef;color:var(--green)}.pill.amber{background:#fff3df;color:var(--amber)}.pill.red{background:#feecec;color:var(--red)}.timer{font-size:3rem;font-weight:800;letter-spacing:-.04em;margin:20px 0 18px}.action-row{display:flex;gap:10px;flex-wrap:wrap}.compact{padding:14px 16px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:24px 2px 10px}.section-head h2{font-size:1.5rem}.section-head h3{font-size:1.08rem}.sticky-head{padding-top:8px}.intro-copy{margin:0 2px 14px;line-height:1.5}.stack-sm{display:grid;gap:10px}.timeline{display:grid;gap:10px}.timeline-item,.list-card{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-time{min-width:72px;font-weight:800;color:var(--navy)}.timeline-main{flex:1}.timeline-main strong{display:block}.timeline-main small{display:block;color:var(--muted);margin-top:3px}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);flex:0 0 auto}.priority-card{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:17px;padding:14px}.priority-strip{width:5px;align-self:stretch;border-radius:999px;background:var(--blue)}.priority-strip.must{background:var(--red)}.priority-strip.optional{background:#98a2b3}.priority-main{flex:1}.priority-title{font-weight:800}.progress{height:7px;background:#eef2f7;border-radius:99px;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:var(--blue);border-radius:99px}.meta{font-size:.82rem;color:var(--muted)}
.btn{border:0;border-radius:14px;padding:11px 15px;font-weight:800;cursor:pointer}.btn.small{padding:9px 12px}.btn.primary{background:var(--navy);color:#fff}.btn.secondary{background:#eaf1ff;color:#164eb5}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.btn.danger{background:#fff0f0;color:var(--red)}.btn.wide{width:100%}.text-btn{border:0;background:none;color:var(--blue);font-weight:800;padding:8px;cursor:pointer}.icon-btn{width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:#fff;font-size:1.5rem;line-height:1;cursor:pointer}.bottom-nav{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);display:grid;grid-template-columns:repeat(6,1fr);gap:2px;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px 6px max(8px,env(safe-area-inset-bottom))}.nav-item{border:0;background:none;color:#7b8492;display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 0;font-size:1rem}.nav-item small{font-size:.66rem}.nav-item.active{color:var(--blue);font-weight:800}.month-row{display:flex;align-items:center;justify-content:center;gap:16px;margin:14px 0}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px}.metric small{display:block;color:var(--muted);margin-bottom:5px}.metric strong{font-size:1.35rem}.metric.profit{grid-column:1/-1;background:linear-gradient(135deg,#0b1f3a,#164f82);color:white}.metric.profit small{color:#d1def5}.money-pos{color:var(--green)}.money-neg{color:var(--red)}.status-line{padding:10px 0;color:var(--muted);font-size:.9rem}
.modal{border:0;padding:0;background:transparent;width:min(560px,calc(100% - 24px));max-height:92vh}.modal::backdrop{background:rgba(7,16,29,.56);backdrop-filter:blur(4px)}.modal-card{background:#fff;border-radius:24px;padding:18px;display:grid;gap:13px;max-height:90vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:3px 0 0;font-size:1.3rem}.modal label{display:grid;gap:7px;font-size:.84rem;font-weight:700;color:#344054}.modal input,.modal select,.modal textarea,.login-card input{width:100%;border:1px solid #d8dee8;border-radius:13px;padding:12px;background:#fff;color:var(--text);outline:none}.modal input:focus,.modal select:focus,.modal textarea:focus,.login-card input:focus{border-color:#8cb3ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-action{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px 12px;display:flex;align-items:center;gap:10px;text-align:left;font-weight:800}.toast{position:fixed;z-index:100;left:50%;bottom:100px;transform:translate(-50%,20px);background:#111827;color:#fff;border-radius:12px;padding:11px 14px;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100% - 32px);font-size:.9rem}.toast.show{opacity:1;transform:translate(-50%,0)}.empty{border:1px dashed #cfd7e3;border-radius:16px;padding:18px;color:var(--muted);text-align:center}.mini-actions{display:flex;gap:7px;flex-wrap:wrap}.mini-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 9px;font-size:.78rem;font-weight:800}.danger-text{color:var(--red)}
.login-page{display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,#f5f8fc,#e8eef8)}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;box-shadow:var(--shadow)}.login-card h1{margin:6px 0}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--navy);color:#fff;font-weight:900;font-size:1.2rem;margin-bottom:18px}.stack{display:grid;gap:13px;margin-top:20px}.stack label{display:grid;gap:7px;font-size:.85rem;font-weight:700}.form-error{color:var(--red);font-size:.85rem;margin:0}.form-error:empty{display:none}.report-bar{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.report-bar:last-child{border:0}.report-bar strong{font-size:1rem}
@media (min-width:700px){main{padding:0 22px}.topbar{padding-left:24px;padding-right:24px}.metric-grid{grid-template-columns:repeat(4,1fr)}.metric.profit{grid-column:span 2}.bottom-nav{border-radius:18px 18px 0 0}.hero-card,.panel{padding:22px}}
@media (max-width:420px){.form-row{grid-template-columns:1fr}.timer{font-size:2.55rem}.bottom-nav{grid-template-columns:repeat(6,1fr)}.nav-item small{font-size:.6rem}.quick-grid{grid-template-columns:1fr 1fr}.metric strong{font-size:1.18rem}}
