:root{--accent:#5b8def;--accent2:#7c6bf0;--green:#4ade80;--amber:#fbbf24;--red:#f87171;--pink:#f472b6;--radius:14px;--radius-sm:10px}[data-theme=dark]{--bg:#0f1117;--bg2:#161822;--bg3:#1c1f2e;--card:#1a1d2b;--card-hover:#22263a;--text:#e8ecf4;--text2:#9ca3b8;--text3:#636a80;--border:#ffffff12;--header-bg:#0f1117eb;--toggle-bg:#2a2d3e;--toggle-knob:#e8ecf4;--green-bg:#4ade8014;--green-border:#4ade802e;--amber-bg:#fbbf2414;--amber-border:#fbbf242e;--accent-bg:#5b8def1a;--accent-border:#5b8def2e;--pink-bg:#f472b614;--pink-border:#f472b62e;--done-bg:#636a8014;--done-border:#636a8026}[data-theme=light]{--bg:#f4f5fa;--bg2:#fff;--bg3:#e8ebf2;--card:#fff;--card-hover:#f0f2f8;--text:#1a1d2b;--text2:#5a6178;--text3:#8b92a8;--border:#00000012;--header-bg:#f4f5faeb;--toggle-bg:#d5d9e5;--toggle-knob:#fff;--green-bg:#4ade8014;--green-border:#4ade8047;--amber-bg:#fbbf2414;--amber-border:#fbbf2452;--accent-bg:#5b8def12;--accent-border:#5b8def38;--pink-bg:#f472b60f;--pink-border:#f472b638;--done-bg:#636a800f;--done-border:#636a801f}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:DM Sans,sans-serif;transition:background .35s,color .35s}.header{z-index:100;background:var(--header-bg);-webkit-backdrop-filter:blur(20px)saturate(1.4);border-bottom:1px solid var(--border);transition:background .35s;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:12px;max-width:780px;margin:0 auto;padding:14px 20px;display:flex}.header-left{flex:1;min-width:0}.header-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;font-size:.62rem;font-weight:600}.header-title{letter-spacing:-.02em;color:var(--text);font-family:Playfair Display,serif;font-size:1.15rem;font-weight:600}.header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.status-badge{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);white-space:nowrap;border-radius:100px;align-items:center;gap:6px;padding:5px 11px;font-size:.68rem;font-weight:600;display:flex}.status-badge .dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2.5s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}.theme-toggle{background:var(--toggle-bg);cursor:pointer;border:none;border-radius:100px;width:50px;height:26px;transition:background .35s;position:relative}.theme-toggle:after{content:"";background:var(--toggle-knob);border-radius:50%;width:20px;height:20px;transition:transform .35s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}[data-theme=light] .theme-toggle:after{transform:translate(24px)}.toggle-icons{pointer-events:none;justify-content:space-between;align-items:center;padding:0 5px;font-size:.65rem;display:flex;position:absolute;inset:0}.main{max-width:780px;margin:0 auto;padding:32px 20px 60px}.intro-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:32px;padding:22px 24px;animation:.5s both fadeUp}.intro-label{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:.62rem;font-weight:600}.intro-text{color:var(--text2);white-space:pre-wrap;font-size:.92rem;line-height:1.65}.progress-strip{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:20px;margin-bottom:32px;padding:18px 22px;animation:.5s 70ms both fadeUp;display:flex}.progress-stats{flex-shrink:0;gap:24px;display:flex}.stat{text-align:center}.stat-num{margin-bottom:3px;font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:500;line-height:1}.stat-num.green{color:var(--green)}.stat-num.accent{color:var(--accent)}.stat-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text3);font-size:.62rem;font-weight:600}.progress-bar-wrap{flex:1}.progress-bar-label{color:var(--text3);justify-content:space-between;margin-bottom:7px;font-size:.7rem;font-weight:500;display:flex}.progress-bar-track{background:var(--bg3);border-radius:100px;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--green), var(--accent));border-radius:100px;height:100%;transition:width 1s}.section-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:12px;padding-left:2px;font-size:.62rem;font-weight:700}.milestones{flex-direction:column;gap:10px;margin-bottom:32px;display:flex}.milestone-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);cursor:default;align-items:center;gap:16px;padding:16px 20px;transition:background .2s,border-color .2s,transform .2s;animation:.45s both fadeUp;display:flex;position:relative;overflow:hidden}.milestone-card:before{content:"";border-radius:3px 0 0 3px;width:3px;position:absolute;top:0;bottom:0;left:0}.milestone-card.urgent:before{background:var(--amber)}.milestone-card.soon:before{background:var(--accent)}.milestone-card.mid:before{background:var(--accent2)}.milestone-card.late:before{background:var(--pink)}.milestone-card:hover{background:var(--card-hover);transform:translate(2px)}.milestone-num{color:var(--text3);text-align:right;flex-shrink:0;width:25px;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500}.milestone-icon{text-align:center;flex-shrink:0;width:30px;font-size:1.2rem}.milestone-body{flex:1;min-width:0}.milestone-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:.88rem;font-weight:600;overflow:hidden}.milestone-tag{letter-spacing:.07em;text-transform:uppercase;color:var(--text3);font-size:.62rem;font-weight:600}.milestone-date{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.date-pill{white-space:nowrap;border:1px solid;border-radius:100px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:500}.date-pill.urgent{color:var(--amber);background:var(--amber-bg);border-color:var(--amber-border)}.date-pill.soon{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.date-pill.mid{color:#a78bfa;background:#a78bfa17;border-color:#a78bfa2e}.date-pill.late{color:var(--pink);background:var(--pink-bg);border-color:var(--pink-border)}.days-left{color:var(--text3);font-size:.6rem;font-weight:500}.completed-section{margin-bottom:20px}.completed-header{cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-bottom:12px;display:flex}.completed-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-size:.62rem;font-weight:700}.completed-count{color:var(--green);background:var(--green-bg);border:1px solid var(--green-border);border-radius:100px;padding:2px 8px;font-size:.62rem;font-weight:600}.completed-list{flex-direction:column;gap:8px;display:flex}.done-card{background:var(--done-bg);border:1px solid var(--done-border);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:12px 16px;animation:.35s both fadeUp;display:flex}.done-check{background:var(--green);color:#0f1117;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.6rem;font-weight:700;display:flex}.done-name{color:var(--text3);text-decoration:line-through;-webkit-text-decoration-color:var(--text3);text-decoration-color:var(--text3);flex:1;font-size:.83rem}.done-date{color:var(--green);opacity:.7;white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:.65rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.milestone-card:first-child{animation-delay:80ms}.milestone-card:nth-child(2){animation-delay:.14s}.milestone-card:nth-child(3){animation-delay:.2s}.milestone-card:nth-child(4){animation-delay:.26s}.footer{text-align:center;color:var(--text3);border-top:1px solid var(--border);max-width:780px;margin:0 auto;padding:20px;font-size:.68rem}@media (max-width:520px){.progress-strip{flex-direction:column;align-items:stretch;gap:14px}.progress-stats{justify-content:space-around}.milestone-name{font-size:.82rem}.header-inner{padding:12px 16px}.main{padding:24px 16px 48px}}.btn-primary{background:linear-gradient(90deg, var(--accent2), var(--accent));color:#fff;cursor:pointer;border:none;border-radius:999px;padding:10px 24px;font-weight:500}.btn-secondary{background:var(--bg3);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:10px 24px;font-weight:500}.glass-card{background:var(--card);border:1px solid var(--border);border-radius:14px}.gradient-text{background:linear-gradient(90deg, var(--accent2), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text}
