@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Lora:ital,wght@0,400;0,500;1,400&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:#f4efe4;--cream-dark:#ebe4d4;--parchment:#e0d8c6;--ink:#2a2118;--ink-light:#5c4f3d;--ink-faint:#9c8e7a;--amber:#b8832a;--want:#4a6b4a;--should:#8b4a1e;--long:#3a5a7a;--surface:#fdfaf4;--border:#d4c9b0;--border-light:#e8e0cc}body{background:var(--cream);color:var(--ink);min-height:100vh;font-family:Lora,Georgia,serif}.app{max-width:720px;margin:0 auto;padding:0 20px 60px}.header{border-bottom:2px solid var(--ink);margin-bottom:32px;padding:40px 0 28px}.header-top{justify-content:space-between;align-items:baseline;display:flex}.header h1{letter-spacing:-.02em;font-family:Playfair Display,Georgia,serif;font-size:1.9rem;font-weight:700}.header-date{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.72rem}.header-sub{color:var(--ink-light);margin-top:4px;font-family:Lora,serif;font-size:.88rem;font-style:italic}.nav{border-bottom:1px solid var(--border);flex-wrap:wrap;margin-bottom:36px;display:flex}.nav-btn{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 18px 10px 0;font-family:Lora,serif;font-size:.85rem;transition:color .15s,border-color .15s}.nav-btn.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:500}.nav-btn:hover:not(.active){color:var(--ink-light)}.section-title{color:var(--ink);margin-bottom:4px;font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700}.section-sub{color:var(--ink-faint);margin-bottom:20px;font-size:.8rem;font-style:italic}.category-heading{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--border-light);margin-bottom:12px;padding-bottom:8px;font-family:JetBrains Mono,monospace;font-size:.65rem}.focus-card{background:var(--ink);color:var(--cream);border-radius:3px;margin-bottom:20px;padding:18px 20px}.focus-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#d4c9b099;margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:.6rem}.focus-title{color:var(--cream);margin-bottom:4px;font-family:Playfair Display,serif;font-size:1.05rem;font-weight:600;line-height:1.35}.focus-sub{color:#d4c9b0b3;margin-bottom:14px;font-size:.78rem;font-style:italic;line-height:1.5}.focus-done-btn{color:#d4c9b0cc;cursor:pointer;background:#f4efe41a;border:1px solid #f4efe440;border-radius:2px;align-items:center;gap:8px;padding:7px 16px;font-family:Lora,serif;font-size:.82rem;transition:all .15s;display:inline-flex}.focus-done-btn:hover{color:var(--cream);background:#f4efe42e}.focus-done-btn.done{color:#9fc99f;background:#4a6b4a59;border-color:#4a6b4a80}.deadline-block{margin-bottom:20px}.deadline-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;padding:14px 18px;display:flex}.deadline-card.urgent{border-left:3px solid var(--should);background:#8b4a1e0a}.deadline-card.soon{border-left:3px solid var(--amber)}.deadline-card.horizon{border-left:3px solid var(--border)}.deadline-card.overdue{background:#8b1e1e0a;border-left:3px solid #8b1e1e}.deadline-info{flex:1;min-width:0}.deadline-label{color:var(--ink);font-family:Playfair Display,serif;font-size:.92rem;font-weight:600;line-height:1.3}.deadline-sub{color:var(--ink-light);margin-top:2px;font-size:.75rem;font-style:italic}.deadline-right{text-align:right;flex-shrink:0}.deadline-days{font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:500}.deadline-days.urgent{color:var(--should)}.deadline-days.soon{color:var(--amber)}.deadline-days.horizon{color:var(--ink-faint)}.deadline-days.overdue{color:#8b1e1e}.deadline-date{color:var(--ink-faint);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:.6rem}.weekly-block{background:var(--surface);border:1px solid var(--border);border-radius:3px;margin-bottom:20px;overflow:hidden}.weekly-head{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 18px 10px;display:flex}.weekly-head-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-family:JetBrains Mono,monospace;font-size:.63rem}.weekly-head-count{color:var(--ink-faint);font-family:JetBrains Mono,monospace;font-size:.6rem}.weekly-task-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex}.weekly-task-row:last-child{border-bottom:none}.weekly-task-label{color:var(--ink);font-size:.85rem}.weekly-task-course{color:var(--ink-faint);margin-top:2px;font-family:JetBrains Mono,monospace;font-size:.6rem}.weekly-check{border:1.5px solid var(--border);cursor:pointer;width:28px;height:28px;color:var(--ink-faint);background:0 0;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;transition:all .15s;display:flex}.weekly-check.checked{background:var(--ink);border-color:var(--ink);color:var(--cream)}.gym-block{background:var(--surface);border:1px solid var(--border);border-radius:3px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:14px 18px;display:flex}.gym-info{flex:1}.gym-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px;font-family:JetBrains Mono,monospace;font-size:.63rem}.gym-dots{gap:5px;margin-bottom:4px;display:flex}.gym-dot{background:var(--parchment);border-radius:50%;width:10px;height:10px;transition:background .2s}.gym-dot.filled{background:var(--want)}.gym-note{color:var(--ink-faint);font-size:.72rem;font-style:italic}.gym-controls{flex-shrink:0;align-items:center;gap:10px;display:flex}.gym-count{color:var(--ink);text-align:center;min-width:20px;font-family:JetBrains Mono,monospace;font-size:1rem}.gym-btn{border:1px solid var(--border);cursor:pointer;width:28px;height:28px;color:var(--ink-light);background:0 0;border-radius:2px;justify-content:center;align-items:center;font-size:1rem;transition:all .15s;display:flex}.gym-btn:hover{border-color:var(--ink-light);color:var(--ink)}.stream-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;margin-bottom:16px;overflow:hidden}.stream-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:14px 20px 12px;display:flex}.stream-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:500}.stream-body{padding:16px 20px 18px}.stream-empty{color:var(--ink-faint);font-size:.85rem;font-style:italic}
