:root{--ink: #fdfdfc;--ink-2: #ffffff;--paper: #2c2825;--text-2: #635c51;--slate: #7a7268;--slate-dark: #5c5449;--line: #e8e6e1;--line-strong: #dcd9d2;--surface-hover: #f5f4f1;--on-accent: #211d19;--sage: #4f7a63;--sage-dim: #3e6350;--sage-rgb: 79, 122, 99;--amber: #9c6b1f;--amber-rgb: 156, 107, 31;--danger: #a8493c;--danger-rgb: 168, 73, 60;--blue: #1f6c9f;--blue-rgb: 31, 108, 159;--slate-rgb: 122, 114, 104;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: var(--font-body);--font-mono: var(--font-body);--font-hand: "Caveat", "Segoe Print", "Bradley Hand", cursive;--radius: 8px;--transition: .12s cubic-bezier(.4, 0, .2, 1);--transition-slow: .26s cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.23, 1, .32, 1)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--ink);color:var(--paper);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}::selection{background:rgba(var(--amber-rgb),.18)}:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}a,button{font-family:inherit}.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--ink)}.auth-card{width:100%;max-width:380px;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);padding:36px 32px;text-align:center}.auth-mark{width:40px;height:40px;margin:0 auto 18px;border-radius:8px;background:var(--sage);color:var(--on-accent);font-family:var(--font-mono);font-weight:500;display:flex;align-items:center;justify-content:center;font-size:14px}.auth-title{font-family:var(--font-display);font-size:28px;font-weight:600;margin:0 0 8px}.auth-sub{color:var(--slate);font-size:14px;line-height:1.5;margin:0 0 28px}.auth-form{display:flex;flex-direction:column;gap:14px;text-align:left}.auth-form label{font-size:12px;color:var(--slate);display:flex;flex-direction:column;gap:6px}.auth-form .hint{color:var(--slate-dark)}.auth-form input{font-family:var(--font-body);font-size:14px;padding:10px 12px;border-radius:6px;border:1px solid var(--line);background:var(--ink);color:var(--paper)}.auth-form input:focus{outline:2px solid var(--sage);outline-offset:1px}.link-btn{margin-top:16px;background:none;border:none;color:var(--sage);font-size:13px;cursor:pointer;text-decoration:underline}.auth-msg{min-height:18px;font-size:13px;color:var(--danger);margin:14px 0 0}.auth-config-warning{font-size:12px;color:var(--amber);margin-top:10px}.btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:6px;border:1px solid transparent;font-weight:500;padding:10px 16px;font-size:14px}.btn{transition:background var(--transition),border-color var(--transition),color var(--transition),transform .14s var(--ease-out)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--paper);color:var(--ink-2, #fff)}.btn-primary:hover{background:#423c35}.btn-ghost{background:transparent;color:var(--text-2);border-color:var(--line-strong)}.btn-ghost:hover{color:var(--paper);background:var(--surface-hover)}.btn-sm{padding:8px 12px;font-size:13px}@media (max-width: 767px){.btn,.btn-sm{min-height:44px}.task-del,.event-del,.settings-icon-btn{padding:10px}}.app-shell{display:flex;align-items:flex-start;min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;width:232px;flex-shrink:0;background:var(--ink);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 14px;transition:width var(--transition-slow),padding var(--transition-slow);overflow:hidden}.sidebar.collapsed{width:68px;padding:20px 10px}.sidebar.collapsed .sidebar-logo{justify-content:center;padding:0}.sidebar-logo{display:flex;align-items:center;gap:10px;margin-bottom:26px;padding:0 4px}.sidebar-logo-mark{color:var(--paper);flex-shrink:0}.brand{font-family:var(--font-hand);font-size:22px;font-weight:700;line-height:1;white-space:nowrap}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0}.sidebar-nav-item{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:8px;background:none;border:1px solid transparent;color:var(--slate);font-family:var(--font-hand);font-size:17px;font-weight:500;line-height:1.15;cursor:pointer;white-space:nowrap;text-align:left}.sidebar.collapsed .sidebar-nav-item{justify-content:center;padding:12px}.sidebar-nav-item{transition:background var(--transition),color var(--transition),transform .14s var(--ease-out)}.sidebar-nav-item:hover{color:var(--paper);background:var(--surface-hover)}.sidebar-nav-item:active{transform:scale(.98)}.sidebar-nav-item.active{color:var(--paper);background:var(--surface-hover);font-weight:700}.sidebar-nav-icon{color:inherit;flex-shrink:0}.sidebar-nav-label{overflow:hidden;text-overflow:ellipsis}.sidebar-tooltip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--ink);border:1px solid var(--line);color:var(--paper);font-family:var(--font-body);font-size:12px;font-weight:500;padding:6px 10px;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition);z-index:10}.sidebar-nav-item:hover .sidebar-tooltip,.sidebar-footer-btn:hover .sidebar-tooltip{opacity:1;visibility:visible}.sidebar-footer{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.sidebar-footer-btn{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:8px;background:none;border:none;color:var(--slate);font-family:var(--font-hand);font-size:17px;line-height:1.15;cursor:pointer;white-space:nowrap;text-align:left}.sidebar.collapsed .sidebar-footer-btn{justify-content:center;padding:10px}.sidebar-footer-btn{transition:background var(--transition),color var(--transition)}.sidebar-footer-btn:hover{color:var(--paper);background:var(--surface-hover)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:55;animation:fadeIn .2s ease-out}.mobile-menu-btn{display:none;align-items:center;justify-content:center;background:none;border:1px solid var(--line);border-radius:8px;color:var(--paper);cursor:pointer;padding:8px}.mobile-menu-btn:hover{background:var(--surface-hover)}@media (max-width: 767px){.sidebar-backdrop{display:block}.mobile-menu-btn{display:flex}.sidebar{position:fixed;top:0;left:0;height:100dvh;width:260px;padding:20px 14px;transform:translate(-100%);transition:transform var(--transition-slow);z-index:60}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:260px;padding:20px 14px}.sidebar.collapsed .sidebar-nav-item,.sidebar.collapsed .sidebar-footer-btn{justify-content:flex-start;padding:10px 12px}}.main-content{flex:1 1 auto;min-width:0;padding:24px;max-width:1180px;margin:0 auto}.content-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:28px}.content-title{font-family:var(--font-hand);font-size:32px;font-weight:700;line-height:1;margin:0 auto 0 0;color:var(--paper);animation:fadeInUp .22s var(--ease-out) both}.today{font-size:13px;color:var(--text-2);white-space:nowrap}@media (max-width: 560px){.content-header{flex-wrap:wrap;align-items:center;gap:8px 12px}.mobile-menu-btn{order:1}.content-title{order:2;flex-basis:100%;margin:0}.today{order:3;flex-basis:100%;white-space:normal}}@media (max-width: 480px){.today{font-size:12px}.content-title{font-size:27px}}.overview-tiles{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--radius);padding:10px}.overview-tile{display:flex;align-items:baseline;justify-content:space-between;gap:16px;width:100%;text-align:left;background:none;border:none;border-radius:6px;padding:11px 12px;cursor:pointer;transition:background var(--transition),transform .14s var(--ease-out)}.overview-tile:hover{background:var(--surface-hover)}.overview-tile:active{transform:scale(.98)}.overview-tile-label{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-tile-value{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-size:14px;font-weight:600;color:var(--paper)}.overview-tile-chevron{color:var(--slate);flex-shrink:0;transition:transform .16s var(--ease-out)}.overview-tile:hover .overview-tile-chevron{transform:translate(2px)}.vitality{border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin-bottom:28px}.vitality-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:20px;margin-bottom:22px}.vitality-eyebrow{font-family:var(--font-hand);font-size:22px;font-weight:700;line-height:1;color:var(--paper)}.countdowns{display:flex;gap:10px}.countdown{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.countdown-label{font-size:12px;color:var(--text-2)}.countdown-value{padding:2px 8px;border-radius:6px;background:rgba(var(--amber-rgb),.12);color:var(--amber);font-size:14px;font-weight:600}.vitality-bars{display:flex;flex-direction:column;gap:14px;max-width:620px}.vbar-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.vbar-label span:first-child{color:var(--text-2)}.vbar-label span:last-child{color:var(--paper);font-weight:600}.vbar-track{height:6px;border-radius:3px;background:var(--surface-hover);overflow:hidden}.vbar-fill{height:100%;width:0%;border-radius:3px;background:var(--slate);transition:width .5s ease}.weekly-review{border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin-bottom:28px}.weekly-review-head{margin-bottom:20px}.weekly-review-head h2{font-family:var(--font-hand);font-size:21px;line-height:1;font-weight:700;margin:0}.weekly-review-head h2 .weekly-review-period{font-family:var(--font-body);font-size:13px;color:var(--text-2);font-weight:400}.weekly-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:22px 24px}@media (max-width: 820px){.weekly-stats{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.weekly-stats{grid-template-columns:repeat(2,1fr)}}.weekly-stat{text-align:left}.weekly-stat-value{display:block;font-size:22px;color:var(--paper);font-weight:600}.weekly-stat-label{display:block;font-size:12px;color:var(--text-2);margin-top:3px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 820px){.grid{grid-template-columns:1fr}.countdowns{gap:14px}.main-content{padding:16px}}@media (max-width: 767px){.main-content{padding:16px}.card,.vitality,.weekly-review{padding:18px}.content-header{margin-bottom:22px}}.card{border:1px solid var(--line);border-radius:var(--radius);padding:22px}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}.card-head h2{font-family:var(--font-hand);font-size:21px;line-height:1;margin:0;font-weight:700}.eyebrow{font-size:12px;color:var(--text-2)}input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--paper)}@media (max-width: 767px){input[type=checkbox]{width:20px;height:20px}}.inline-form input,.inline-form select,.study-controls select,.study-topic-select,.ems-settings-form input,.workout-form input,.health-form textarea{font-family:var(--font-body);font-size:13px;padding:8px 10px;border-radius:6px;border:1px solid var(--line-strong);background:var(--ink-2);color:var(--paper);transition:border-color var(--transition)}.inline-form input:hover,.inline-form select:hover,.study-controls select:hover,.study-topic-select:hover{border-color:var(--slate)}.inline-form{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.inline-form input[type=text]{flex:1;min-width:100px}@media (max-width: 767px){input,select,textarea{max-width:100%}.inline-form{flex-direction:column}.inline-form input,.inline-form select,.inline-form button{width:100%}.ems-settings-form,.study-controls{flex-direction:column;align-items:stretch}.study-controls select{width:100%}.exercise-input-row{flex-direction:column}.exercise-input-row input,.exercise-input-row button{width:100%}}.task-list,.event-list,.log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:320px;overflow-y:auto}.task-item{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line)}.task-item:last-child{border-bottom:none}.task-item.done{opacity:.45}.task-item.done .task-title{text-decoration:line-through}.task-title{flex:1;font-size:14px}.task-tag{font-size:11px;padding:1px 7px;border-radius:5px;background:var(--surface-hover);color:var(--text-2);flex-shrink:0}.task-due{font-size:12px;color:var(--text-2);flex-shrink:0}.task-del,.event-del{background:none;border:none;color:var(--slate);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:5px;transition:color var(--transition),background var(--transition)}.task-del:hover,.event-del:hover{color:var(--danger);background:var(--surface-hover)}.event-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line);font-size:14px}.event-item:last-child{border-bottom:none}.event-when{font-size:12px;color:var(--text-2);display:block;margin-bottom:1px}.progress-rows{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}.progress-row-static{font-size:14px}.progress-row-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px}.progress-row-head label{color:var(--text-2)}.progress-row-head-right{display:flex;align-items:center;gap:6px}.progress-row-value{color:var(--paper);font-weight:600}.progress-row-detail{font-size:12px;color:var(--text-2);margin:7px 0 0}.settings-icon-btn{background:none;border:none;color:var(--slate);cursor:pointer;font-size:14px;padding:3px 5px;line-height:1;border-radius:5px;transition:color var(--transition),background var(--transition)}.settings-icon-btn:hover{color:var(--paper);background:var(--surface-hover)}.ems-settings-form{display:flex;align-items:flex-end;gap:8px;margin-top:10px;padding:12px;background:var(--surface-hover);border-radius:var(--radius)}.ems-settings-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2);flex:1}.progress-hint{font-size:12.5px;color:var(--text-2);line-height:1.5;margin:-2px 0 16px}.log{margin-top:22px}.log h3{font-size:12px;color:var(--text-2);font-weight:400;margin:0 0 10px}.log-list li{font-size:13px;color:var(--text-2);padding:8px 4px;border-bottom:1px solid var(--line)}.log-list li:last-child{border-bottom:none}.health-form{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.health-field label{display:flex;justify-content:space-between;font-size:12px;color:var(--slate);margin-bottom:4px}.health-field input[type=range]{width:100%;accent-color:var(--paper)}.health-form textarea{font-family:var(--font-body);font-size:13px;padding:8px 10px;border-radius:6px;border:1px solid var(--line);background:var(--ink);color:var(--paper);resize:vertical}.chart-wrap{margin-bottom:12px}.chart-tooltip{background:var(--ink-2);border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;font-size:12px}.chart-tooltip-label{color:var(--text-2);margin-bottom:4px}.chart-tooltip-row{display:flex;justify-content:space-between;gap:12px}.chart-tooltip-key{color:var(--paper);display:flex;align-items:center;gap:6px}.chart-tooltip-key:before{content:"";width:8px;height:2px;background:var(--dot);display:inline-block}.chart-tooltip-value{color:var(--paper);font-weight:600}.study-phase-banner{font-size:13px;color:var(--text-2);margin:0 0 16px}.study-phase-banner strong{color:var(--paper);font-weight:600}.study-stats{display:flex;flex-wrap:wrap;gap:18px 28px;margin-bottom:18px}.study-stat-label{display:block;font-size:12px;color:var(--text-2);margin-bottom:2px}.study-stat-value{display:block;font-size:20px;color:var(--paper);font-weight:600}.study-breakdown{margin-bottom:18px}.study-breakdown-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--surface-hover);margin-bottom:14px}.study-breakdown-segment{height:100%;transition:width .5s ease}.study-breakdown-segment+.study-breakdown-segment{border-left:1px solid var(--ink)}.study-breakdown-legend{display:flex;flex-direction:column;gap:9px}.study-breakdown-legend-row{display:flex;align-items:center;justify-content:space-between;font-size:13px}.study-breakdown-legend-label{display:flex;align-items:center;gap:8px;color:var(--text-2)}.study-breakdown-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.study-breakdown-pct{color:var(--slate)}.study-breakdown-value{color:var(--paper);font-weight:600}.study-timer-display{font-size:44px;font-weight:600;letter-spacing:-.01em;text-align:center;color:var(--paper);background:var(--surface-hover);border-radius:var(--radius);padding:22px;margin-bottom:18px}.study-controls{display:flex;gap:8px;flex-wrap:wrap}.study-controls select:disabled,.study-topic-select:disabled{opacity:.55}.study-topic-row{margin-bottom:14px}.study-topic-label{display:block;font-size:12px;color:var(--text-2);margin-bottom:6px}.study-topic-select{width:100%}.study-confirm{background:var(--surface-hover);border-radius:var(--radius);padding:14px;margin-top:14px}.study-confirm p{margin:0 0 10px;font-size:14px}.study-confirm-actions{display:flex;gap:8px}.workout-form{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.workout-form input[type=text],.workout-form input[type=number]{font-family:var(--font-body);font-size:13px;padding:8px 10px;border-radius:6px;border:1px solid var(--line);background:var(--ink);color:var(--paper)}.workout-duration{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--slate);gap:10px}.workout-duration input[type=number]{width:80px}.exercise-builder{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.exercise-builder-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.exercise-draft-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.exercise-draft-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;background:var(--ink);border:1px solid var(--line);font-size:12px;color:var(--paper)}.exercise-input-row{display:flex;gap:6px;flex-wrap:wrap}.exercise-input-row input{flex:1;min-width:70px}.exercise-input-row input[type=text]{flex:2;min-width:110px}.workout-item{display:flex;flex-direction:column;gap:6px}.workout-item-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.workout-expand-btn{display:flex;align-items:center;gap:8px;flex:1;min-width:0;background:none;border:none;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;padding:0;text-align:left}.workout-chevron{font-family:var(--font-mono);color:var(--slate);font-size:14px;width:14px;flex-shrink:0;text-align:center}.exercise-list{list-style:none;margin:0;padding:0 0 0 22px;display:flex;flex-direction:column;gap:4px}.exercise-list li{font-size:12px;color:var(--paper);padding:5px 8px;border-radius:5px;background:var(--ink-2)}.plan-section{display:flex;flex-direction:column;gap:28px;margin-bottom:28px}.plan-section>*{animation:fadeInUp .32s var(--ease-out) both}.plan-section>*:nth-child(2){animation-delay:40ms}.plan-section>*:nth-child(3){animation-delay:80ms}.plan-section>*:nth-child(4){animation-delay:.12s}.plan-section>*:nth-child(n+5){animation-delay:.16s}.plan-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 820px){.plan-two-col{grid-template-columns:1fr}}.timeline-empty{color:var(--text-2);font-size:13px}.timeline-filter-bar{display:inline-flex;gap:2px;margin-bottom:20px;padding:2px;background:var(--surface-hover);border-radius:7px}.timeline-filter-btn{border:none;background:none;border-radius:5px;padding:5px 11px;font-size:12.5px;color:var(--text-2);cursor:pointer;transition:background var(--transition),color var(--transition)}.timeline-filter-btn:hover{color:var(--paper)}.timeline-filter-btn.active{color:var(--paper);background:var(--ink-2);font-weight:600}.nextup-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:18px}@media (max-width: 640px){.nextup-grid{grid-template-columns:1fr}}.nextup-block h3{font-size:12px;color:var(--text-2);font-weight:400;margin:0 0 10px}.nextup-topics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.nextup-topics li{font-size:14px;color:var(--paper);padding:8px 0;border-bottom:1px solid var(--line)}.nextup-topics li:last-child{border-bottom:none}.nextup-deadline{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0;font-size:14px;color:var(--paper)}.nextup-deadline strong{font-weight:600}.nextup-deadline-days{flex-shrink:0;padding:2px 8px;border-radius:6px;background:rgba(var(--amber-rgb),.12);color:var(--amber);font-size:12px;font-weight:600;white-space:nowrap}.nextup-deadline-date{font-size:12px;color:var(--text-2);margin:4px 0 0}.nextup-deadline-empty{color:var(--text-2);font-size:14px;margin:0}.nextup-rhythm{font-size:13px;color:var(--text-2);background:var(--surface-hover);border-radius:var(--radius);padding:12px 14px;margin:0;line-height:1.55}.burndown-badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 9px;border-radius:6px;margin-bottom:14px}.burndown-badge.ontrack{background:rgba(var(--sage-rgb),.14);color:var(--sage-dim)}.burndown-badge.behind{background:rgba(var(--amber-rgb),.14);color:var(--amber)}.timeline{position:relative}@media (max-width: 767px){.timeline{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}.timeline-tracks{min-width:540px}}.timeline-tracks{position:relative;padding-top:24px}.timeline-track{position:relative;height:28px;background:var(--surface-hover);border-radius:6px}.timeline-bar{position:absolute;top:0;height:100%;border-radius:5px;transition:box-shadow var(--transition)}.timeline-bar.done{background:#e0ddd5}.timeline-bar.current{background:var(--slate)}.timeline-bar.future{background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}.timeline-bar.selected{box-shadow:0 0 0 2px var(--paper);z-index:3}.timeline-deadline-track{position:relative;height:14px;margin-top:10px}.timeline-deadline{position:absolute;top:3px;width:8px;height:8px;padding:0;margin:0;border:none;border-radius:50%;background:var(--slate);transform:translate(-50%);cursor:pointer;font:inherit;transition:box-shadow var(--transition),background var(--transition)}.timeline-deadline:hover{background:var(--paper)}.timeline-deadline:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.timeline-deadline.range{top:5px;height:4px;border-radius:2px;transform:translate(0);background:var(--line-strong)}.timeline-deadline.critical{background:var(--danger);border-radius:1px;transform:translate(-50%) rotate(45deg)}.timeline-deadline.critical.range{transform:translate(0) rotate(0);background:rgba(var(--danger-rgb),.4)}.timeline-deadline.selected{box-shadow:0 0 0 2px var(--paper);z-index:3}.timeline-event-track{position:relative;height:14px;margin-top:2px}.timeline-event{position:absolute;top:3px;width:8px;height:8px;padding:0;margin:0;border:none;border-radius:2px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--slate);transform:translate(-50%);cursor:pointer;font:inherit;transition:box-shadow var(--transition)}.timeline-event:hover{box-shadow:inset 0 0 0 1.5px var(--paper)}.timeline-event:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.timeline-event.selected{box-shadow:0 0 0 2px var(--paper);z-index:3}.timeline-today{position:absolute;top:18px;bottom:0;width:1.5px;background:var(--paper);z-index:2}.timeline-today-label{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:11px;color:var(--text-2);white-space:nowrap}.timeline-legend{display:flex;flex-wrap:wrap;gap:4px;margin:18px 0 0}.timeline-legend-item{display:inline-flex;align-items:center;gap:7px;background:none;border:none;border-radius:6px;padding:5px 9px;font-size:12.5px;color:var(--text-2);cursor:pointer;transition:background var(--transition),color var(--transition)}.timeline-legend-item:hover{color:var(--paper);background:var(--surface-hover)}.timeline-legend-item.current{color:var(--paper);font-weight:600}.timeline-legend-item.active{color:var(--paper);background:var(--surface-hover)}.timeline-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--line-strong)}.timeline-legend-item.done .timeline-dot{background:#cfc9bd}.timeline-legend-item.current .timeline-dot{background:var(--slate)}.timeline-detail{background:var(--surface-hover);border-radius:var(--radius);padding:12px 14px;margin-top:12px;font-size:13px}.timeline-detail-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;gap:12px;flex-wrap:wrap}.timeline-detail-head strong{font-size:14px;font-weight:600}.timeline-detail-dates{font-size:12px;color:var(--text-2)}.timeline-detail p{margin:0;color:var(--text-2);line-height:1.5}.log-list li.deadline-item,.log-list li.timeline-event-item{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;transition:background var(--transition)}.log-list li.deadline-item:hover,.log-list li.timeline-event-item:hover{background:var(--surface-hover)}.log-list li.deadline-critical{color:var(--danger)}.log-list li.deadline-selected,.log-list li.timeline-event-selected{background:var(--surface-hover);font-weight:500}.timeline-list-text{flex:1;min-width:0}.subject-accordion{display:flex;flex-direction:column}.subject-group{padding:14px 0;border-bottom:1px solid var(--line)}.subject-group:first-child{padding-top:4px}.subject-group:last-child{border-bottom:none}.subject-header{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;color:var(--paper);cursor:pointer;padding:0;font-family:inherit;gap:12px}.subject-header-main{display:flex;align-items:baseline;gap:10px;min-width:0}.subject-name{font-size:14px;font-weight:600}.subject-header-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.subject-open-count{font-size:12px;color:var(--text-2)}.subject-chevron{color:var(--slate);font-size:16px;width:14px;text-align:center}.priority-badge{font-size:11px;padding:1px 7px;border-radius:5px;background:var(--surface-hover);color:var(--text-2);flex-shrink:0}.priority-badge.sehr-hoch,.priority-badge.hoch{color:var(--amber);background:rgba(var(--amber-rgb),.12)}.subject-progress-track{height:4px;border-radius:2px;background:var(--surface-hover);overflow:hidden;margin-top:10px}.subject-progress-fill{height:100%;background:var(--slate);border-radius:2px;transition:width .4s ease}.topic-category-groups{display:flex;flex-direction:column;gap:16px;margin-top:14px}.topic-category-group:first-child .topic-category-heading{margin-top:0}.topic-category-heading{margin:0 0 8px;font-size:12px;font-weight:400;color:var(--text-2)}.topic-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.topic-item{display:flex;flex-direction:column;gap:6px;padding:8px 6px;border-radius:6px;border-bottom:1px solid var(--line);font-size:14px;transition:background .5s ease}.topic-item:last-child{border-bottom:none}.topic-item.highlight{background:rgba(var(--amber-rgb),.16)}.topic-row{display:flex;align-items:flex-start;gap:8px}.topic-row input[type=checkbox]{margin-top:3px}.topic-item.done{opacity:.5}.topic-item.done .topic-title{text-decoration:line-through}.topic-title{flex:1}.topic-title-btn{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0;background:none;border:none;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;padding:0;text-align:left}.topic-subtask-count{font-size:12px;color:var(--text-2);flex-shrink:0;margin-top:1px}.topic-chevron{color:var(--slate);font-size:14px;width:14px;flex-shrink:0;text-align:center;line-height:1.2}.topic-progress-track{height:3px;border-radius:2px;background:var(--surface-hover);overflow:hidden;margin-left:26px}.topic-progress-fill{height:100%;background:var(--slate);border-radius:2px;transition:width .4s ease}.subtask-list{list-style:none;margin:4px 0 2px 26px;padding:0;display:flex;flex-direction:column;gap:2px}.subtask-item{display:flex;align-items:flex-start;gap:8px;padding:5px 6px;border-radius:5px;font-size:13px;color:var(--paper)}.subtask-item input[type=checkbox]{margin-top:2px}.subtask-item.done{opacity:.5}.subtask-item.done .subtask-title{text-decoration:line-through}.subtask-title{flex:1}@media (max-width: 480px){.subtask-list,.topic-progress-track{margin-left:14px}}.buffer-week-badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:2px 9px;border-radius:6px;background:var(--surface-hover);color:var(--text-2);margin-bottom:14px}.weekly-focus-rows{display:flex;flex-direction:column;margin-bottom:16px}.weekly-focus-row{display:flex;align-items:flex-start;gap:12px;padding:12px 8px;border-radius:6px;border-bottom:1px solid var(--line)}.weekly-focus-row:last-child{border-bottom:none}.weekly-focus-row.clickable{cursor:pointer;transition:background var(--transition),transform .14s var(--ease-out)}.weekly-focus-row.clickable:hover{background:var(--surface-hover)}.weekly-focus-row.clickable:active{transform:scale(.99)}.weekly-focus-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;flex-shrink:0;background:var(--surface-hover);color:var(--text-2)}.weekly-focus-icon.priority-hoch,.weekly-focus-icon.priority-sehr-hoch{background:rgba(var(--amber-rgb),.12);color:var(--amber)}.weekly-focus-subject{display:block;font-size:12px;color:var(--text-2);margin-bottom:2px}.weekly-focus-topic{font-size:14px}.weekly-focus-note{font-size:12.5px;color:var(--text-2);line-height:1.5;margin:0 0 14px}.weekly-focus-progress{display:flex;align-items:center;gap:10px}.weekly-focus-progress-track{flex:1;height:5px;border-radius:3px;background:var(--surface-hover);overflow:hidden}.weekly-focus-progress-fill{height:100%;background:var(--slate);border-radius:3px;transition:width .4s ease}.weekly-focus-progress-label{font-size:12px;color:var(--text-2);white-space:nowrap}.links-form{margin-bottom:18px}.links-category{margin-top:18px}.links-category:first-of-type{margin-top:14px}.links-category-heading{margin:0 0 10px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate)}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.link-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:8px;background:var(--ink);border:1px solid var(--line)}.link-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.link-card-title{font-weight:500;font-size:14px;color:var(--paper);text-decoration:none}.link-card-title:hover{color:var(--sage)}.link-card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.link-card-open,.link-card-del{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:none;border:none;color:var(--slate);cursor:pointer;transition:color var(--transition),background var(--transition),transform .14s var(--ease-out)}.link-card-open:hover{color:var(--sage);background:rgba(var(--sage-rgb),.12)}.link-card-del:hover{color:var(--danger);background:rgba(var(--danger-rgb),.12)}.link-card-open:active,.link-card-del:active{transform:scale(.9)}.link-card-url{font-family:var(--font-mono);font-size:11px;color:var(--slate)}.link-card-desc{font-size:12px;color:var(--slate);line-height:1.45;margin:0}.link-card-badge{align-self:flex-start;margin-top:4px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:4px;background:rgba(var(--slate-rgb),.18);color:var(--slate)}@media (max-width: 767px){.link-card-open,.link-card-del{width:32px;height:32px}.links-grid{grid-template-columns:1fr}}.foot{text-align:center;color:var(--slate);font-size:12px;margin-top:32px;padding-bottom:12px}
