:root{--page-bg: #F2EDE4;--card-bg: #FEFCF8;--card-alt: #F8F3EC;--card-hover: #F0EBE2;--border: #DDD5C6;--border-sub: #EAE2D6;--text: #1C1814;--text-2: #5A5048;--text-3: #9A8E80;--text-4: #C8BFB4;--amber: #B8620A;--amber-bg: #FDF3E7;--amber-bdr: #EDCFA0;--mono: "IBM Plex Mono", ui-monospace, monospace;--serif: "Playfair Display", Georgia, serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--page-bg);color:var(--text);font-family:var(--mono)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--border-sub)}::-webkit-scrollbar-thumb{background:var(--text-4);border-radius:2px}button{font-family:var(--mono);cursor:pointer}a{color:inherit}.wrap{max-width:900px;margin:0 auto;padding:0 24px}.masthead{background:var(--card-bg);border-bottom:1px solid var(--border);padding:32px 0 28px}.title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:26px;flex-wrap:wrap}.kicker{font-family:var(--serif);font-size:11px;letter-spacing:5px;color:var(--text-3);text-transform:uppercase;margin-bottom:4px}.site-title{font-family:var(--serif);font-size:clamp(30px,6vw,42px);font-weight:900;line-height:1;letter-spacing:-1px}.site-sub{font-size:11px;color:var(--text-3);margin-top:10px;line-height:1.7;max-width:560px}.reset-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border-radius:4px;padding:8px 16px;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:700;border:1px solid var(--border);background:var(--card-alt);color:var(--text-2);transition:background .15s ease}.btn-danger{background:#fff0f0;border-color:#e0a0a0;color:#c03030}.btn-danger:hover{background:#ffe0e0}.btn-danger-solid{background:#c03030;border-color:#a02020;color:#fff}.reset-warn{font-size:10px;color:#a03030;letter-spacing:1px;font-weight:700}.dash{display:grid;grid-template-columns:auto 1fr 200px;gap:16px;align-items:stretch}.card{background:var(--card-alt);border:1px solid var(--border);border-radius:8px;padding:20px}.card-label{font-size:9px;color:var(--text-3);letter-spacing:3px;text-transform:uppercase;margin-bottom:12px}.streak-card.lit{background:var(--amber-bg);border-color:var(--amber-bdr)}.streak-card.lit .card-label{color:#a06020}.streak-num{font-family:var(--serif);font-size:60px;font-weight:900;line-height:1;letter-spacing:-2px;color:var(--border)}.streak-card.lit .streak-num{color:var(--amber);text-shadow:0 0 30px #B8620A44}.streak-unit{font-size:10px;color:var(--text-4);letter-spacing:2px;margin-top:4px}.streak-card.lit .streak-unit{color:#a06020}.streak-best{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-sub)}.streak-card.lit .streak-best{border-color:var(--amber-bdr)}.streak-best-num{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--text-2);line-height:1}.cal-scroll{overflow-x:auto;padding-bottom:4px}.cal-legend{margin-top:12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:8px;color:var(--text-3)}.cal-dot{width:8px;height:8px;border-radius:1px;flex-shrink:0}.mini-prog{margin-bottom:12px}.mini-prog-row{display:flex;justify-content:space-between;margin-bottom:4px}.mini-prog-label{font-size:9px;color:var(--text-3);letter-spacing:2px;text-transform:uppercase}.mini-prog-count{font-size:9px;font-weight:700}.mini-prog-bar{height:3px;background:var(--border-sub);border-radius:2px}.mini-prog-fill{height:100%;border-radius:2px;transition:width .4s ease}.prog-total{margin-top:4px;padding-top:12px;border-top:1px solid var(--border)}.prog-total-num{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--text-2);line-height:1;margin-top:2px}.prog-total-den{font-size:11px;font-family:var(--mono);font-weight:400;color:var(--text-3)}.tabs{display:flex;border-bottom:1px solid var(--border);background:var(--card-bg)}.tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-3);padding:18px 28px 16px;font-size:12px;letter-spacing:2px;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:3px;margin-bottom:-1px;transition:color .15s ease}.tab-btn.active{color:var(--text);border-bottom-color:var(--text);font-weight:700}.tab-sub{font-size:9px;letter-spacing:1px;color:var(--text-4)}.tab-btn.active .tab-sub{color:var(--text-3)}.track-tagline{font-size:11px;color:var(--text-2);line-height:1.8;padding:18px 20px;margin:20px 0 18px;background:var(--card-alt);border:1px solid var(--border-sub);border-left:3px solid var(--border);border-radius:0 8px 8px 0}.phase{margin-bottom:6px}.phase-hdr{display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--card-bg);border:1px solid var(--border-sub);border-radius:8px;cursor:pointer;transition:background .15s ease}.phase-hdr:hover{background:var(--card-hover)}.phase-hdr.open{background:var(--card-alt);border-color:var(--border);border-radius:8px 8px 0 0}.arrow{transition:transform .15s ease;display:inline-block;font-size:9px;flex-shrink:0}.arrow.open{transform:rotate(90deg)}.phase-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.phase-name{flex:1;font-size:10px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;line-height:1.5;min-width:0}.phase-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.phase-bar{width:60px;height:2px;background:var(--border-sub);border-radius:1px}.phase-bar-fill{height:100%;border-radius:1px;opacity:.7}.phase-count{font-size:9px;color:var(--text-3);min-width:34px;text-align:right}.phase-body{border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;overflow:hidden}.phase-blurb{font-size:10.5px;color:var(--text-2);line-height:1.75;padding:12px 16px;background:var(--card-alt);border-bottom:1px solid var(--border-sub);font-style:italic}.res-block{padding:12px 16px 14px;background:var(--card-bg);border-bottom:1px solid var(--border-sub)}.res-title{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--text-3);margin-bottom:10px}.res-item{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:11px;line-height:1.6;color:var(--text-2)}.res-badge{font-size:8px;letter-spacing:1px;text-transform:uppercase;padding:2px 6px;border-radius:3px;border:1px solid var(--border);color:var(--text-3);background:var(--card-alt);flex-shrink:0}.res-item a{color:#1a65a0;text-decoration-color:#1a65a055;text-underline-offset:2px}.res-item a:hover{text-decoration-color:#1a65a0}.week-row{transition:background .15s ease;cursor:pointer;background:var(--card-bg);border-top:1px solid var(--border-sub)}.week-row.alt{background:#fafaf6}.week-row.expanded{background:var(--card-alt)}.week-row:hover{background:var(--card-hover)}.week-main{display:flex;align-items:center;padding:10px 16px;gap:12px}.check-btn{width:20px;height:20px;border:1px solid var(--border);border-radius:3px;background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;transition:transform .1s ease;padding:0}.check-btn:hover{transform:scale(1.1)}.week-num{font-size:9px;color:var(--text-3);width:30px;flex-shrink:0;font-weight:700}.week-focus{flex:1;font-size:12.5px;font-weight:500;line-height:1.5;min-width:0}.week-focus.done{color:var(--text-4);text-decoration:line-through}.week-exercise{padding:0 16px 14px 74px;border-top:1px solid var(--border-sub);background:var(--card-alt)}.week-exercise p{font-size:11.5px;color:var(--text-2);line-height:1.85;margin-top:12px}.content{padding-bottom:80px}.footer{text-align:center;font-size:9px;color:var(--text-4);letter-spacing:2px;text-transform:uppercase;padding:20px 0 40px}@media (max-width: 900px){.dash{grid-template-columns:1fr 1fr}.dash .cal-card{grid-column:1 / -1;order:3}}@media (max-width: 600px){.wrap{padding:0 14px}.masthead{padding:24px 0 22px}.dash{grid-template-columns:1fr}.streak-num{font-size:48px}.tabs{position:sticky;top:0;z-index:10}.tab-btn{flex:1;padding:14px 8px 12px}.phase-hdr{padding:13px 12px;gap:9px}.phase-bar{display:none}.phase-name{letter-spacing:1.5px}.week-main{padding:12px;gap:9px;align-items:flex-start}.check-btn{width:24px;height:24px;font-size:12px;margin-top:-2px}.week-num{width:26px}.week-exercise{padding:0 14px 14px}.res-item{flex-wrap:wrap}}
