:root{--ink:#131210;--bg:#131210;--panel:#1c1a16;--bg-elevated:#1c1a16;--line:#2e2a22;--border:#2e2a22;--bg-input:#0f0e0b;--parchment:#ede6d6;--text-heading:#f4efe2;--text:#d8d1c2;--comment:#8c8474;--text-muted:#8c8474;--amber:#e8b04b;--accent:#e8b04b;--accent-dim:#e8b04b24;--accepted:#4fb286;--success:#4fb286;--warning:#e8b04b;--danger:#e05a6b;--streak-at-risk:#e8b04b;--easy:#57b894;--med:#e8b04b;--hard:#e05a6b;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-serif:"Newsreader", Georgia, serif;--font:var(--font-mono);--cell:12px;--radius:6px;--transition-fast:.15s ease;--transition-std:.25s ease;--z-modal:50;--z-fab:40;--z-toast:60;--shadow-modal:0 24px 80px #0000008c}*,:before,:after{box-sizing:border-box}html{font-size:16px}body{min-height:100svh;font-family:var(--font-mono);background:var(--ink);color:var(--parchment);margin:0;line-height:1.5}#root{min-height:100svh}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}h1,h2{font-family:var(--font-mono);color:var(--text-heading);letter-spacing:-.01em;font-weight:700}.app{max-width:960px;margin:0 auto;padding:0 1.25rem 3rem}.hero{padding:3rem 0 2rem}.hero-inner{text-align:left}.eyebrow{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--comment);margin:0 0 .5rem;font-size:.75rem}.hero h1{margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.35rem)}.sub{color:var(--text-muted);max-width:36rem;margin:0 0 1.25rem}.hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.container{flex-direction:column;gap:1.5rem;display:flex}.banner{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);padding:.75rem 1rem}.banner.error{color:#f9a8b0;border-color:#e05a6b66}.muted{color:var(--text-muted)}.diff-easy{color:#57b894}.diff-med{color:#e8b04b}.diff-hard{color:#e05a6b}.diff-unk{color:var(--text-muted)}.milestone-card{border-radius:var(--radius);background:#e8b04b0d;border:1px solid #e8b04b2e;padding:1.25rem}.milestone-copy h2{margin:0 0 .25rem}.milestone-copy p{color:var(--text-muted);margin:0 0 1rem}.milestone-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.milestone-fill{background:var(--amber);transform-origin:0;border-radius:999px;width:100%;height:100%;transition:transform .4s;transform:scaleX(0)}.milestone-foot{color:var(--text-muted);margin:.75rem 0 0;font-size:.85rem}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-head h2{margin:0;font-size:1.1rem}.segmented{border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.seg{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:.4rem .85rem}.seg.active{background:var(--accent-dim);color:var(--text-heading)}.heatmap-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.heatmap-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.heatmap-header h2{margin:0;font-size:1.1rem}.heatmap-header-right{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.heatmap-month-labels{gap:3px;margin-bottom:2px;display:flex}.month-label{color:var(--text-muted);white-space:nowrap;text-align:left;font-size:.6rem;line-height:1}.heatmap-legend{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.75rem;display:inline-flex}.legend-swatch{border-radius:3px;width:12px;height:12px}.heatmap-wrap{align-items:stretch;gap:.5rem;display:flex}.heatmap-dow{grid-template-rows:repeat(7, var(--cell));gap:3px;padding-top:0;display:grid}.dow-label{color:var(--text-muted);font-size:.65rem;line-height:var(--cell);text-align:right;padding-right:.25rem}.heatmap-scroll{flex:1;padding-bottom:.25rem;overflow-x:auto}.heatmap-columns{flex-direction:row;gap:3px;min-width:min-content;display:flex}.week-col{flex-direction:column;gap:3px;display:flex}.heat-cell{width:var(--cell);height:var(--cell);background:#221f18;border-radius:3px}.heat-cell.empty{opacity:.2}.heat-cell.lvl0{background:#221f18}.heat-cell.lvl1{background:#e8b04b33}.heat-cell.lvl2{background:#e8b04b6b}.heat-cell.lvl3{background:#e8b04ba8}.heat-cell.lvl4{background:#e8b04beb}.legend-swatch.lvl0{background:#221f18}.legend-swatch.lvl1{background:#e8b04b33}.legend-swatch.lvl2{background:#e8b04b6b}.legend-swatch.lvl3{background:#e8b04ba8}.legend-swatch.lvl4{background:#e8b04beb}.heatmap-empty{color:var(--text-muted);margin:1rem 0 0;font-size:.9rem}.month-calendar-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.mc-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.mc-nav-btn{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mc-nav-btn:hover:not(:disabled){color:var(--text-heading);background:#ffffff0f}.mc-nav-btn:disabled{opacity:.25;cursor:default}.mc-month-label{color:var(--text-heading);letter-spacing:-.01em;font-size:1rem;font-weight:700}.mc-dow-row{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;display:grid}.mc-dow-label{font-family:var(--font-mono);text-align:center;text-transform:none;letter-spacing:0;color:var(--comment);padding-bottom:.4rem;font-size:.65rem;font-weight:600}.mc-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.mc-cell{cursor:default;min-height:64px;transition:border-color var(--transition-fast), background var(--transition-fast);border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:flex-start;gap:2px;padding:5px 5px 4px;display:flex;position:relative}.mc-cell--null{pointer-events:none;background:0 0;border-color:#0000}.mc-cell--future{border-color:var(--border);opacity:.35;pointer-events:none;background:0 0}.mc-cell--empty{border-color:var(--border);background:0 0}.mc-cell--lvl1{cursor:pointer;background:#e8b04b14;border-color:#e8b04b33}.mc-cell--lvl2{cursor:pointer;background:#e8b04b2e;border-color:#e8b04b66}.mc-cell--lvl3{cursor:pointer;background:#e8b04b52;border-color:#e8b04ba6}.mc-cell--lvl1:hover,.mc-cell--lvl2:hover,.mc-cell--lvl3:hover{filter:brightness(1.12)}.mc-cell--today{box-shadow:inset 0 0 0 2px var(--amber)}.mc-cell--selected{box-shadow:inset 0 0 0 2px var(--amber);filter:brightness(1.12)}.mc-day-num{color:var(--text-muted);align-self:flex-start;font-size:.7rem;font-weight:600;line-height:1}.mc-cell--lvl1 .mc-day-num,.mc-cell--lvl2 .mc-day-num,.mc-cell--lvl3 .mc-day-num{color:var(--text-heading)}.mc-cell--today .mc-day-num{color:var(--accent)}.mc-cell--today.mc-cell--lvl1 .mc-day-num,.mc-cell--today.mc-cell--lvl2 .mc-day-num,.mc-cell--today.mc-cell--lvl3 .mc-day-num{color:var(--text-heading)}.mc-empty{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:2rem 0;font-size:.9rem}.mc-count-badge{font-family:var(--font-mono);color:var(--text-heading);margin-top:2px;font-size:.7rem;font-weight:700;line-height:1}.mc-legend{flex-wrap:wrap;gap:1rem;margin-top:.875rem;display:flex}.mc-legend-item{color:var(--text-muted);letter-spacing:.02em;align-items:center;gap:.3rem;font-size:.65rem;display:flex}.mc-legend-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.mc-legend-swatch--lvl1{background:#e8b04b14;border:1px solid #e8b04b33}.mc-legend-swatch--lvl2{background:#e8b04b2e;border:1px solid #e8b04b66}.mc-legend-swatch--lvl3{background:#e8b04b52;border:1px solid #e8b04ba6}@media (width>=640px){.mc-cell{min-height:88px;padding:7px 7px 5px}.mc-day-num{font-size:.75rem}}@media (width<=360px){.mc-grid,.mc-dow-row{gap:2px}.mc-cell{padding:4px 3px 3px}.mc-day-num{font-size:.6rem}}.cdd-placeholder{min-height:0}.cdd-placeholder:has(.cdd-card){min-height:160px}.cdd-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;animation:.2s forwards cdd-in}@keyframes cdd-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.cdd-card{animation:none}}.cdd-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.cdd-date{color:var(--text-heading);letter-spacing:-.02em;margin:0;font-size:1.1rem;font-weight:700}.cdd-count{color:var(--text-muted);margin:.2rem 0 0;font-size:.8rem}.cdd-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.cdd-item{flex-direction:column;gap:.25rem;display:flex}.cdd-item+.cdd-item{border-top:1px solid var(--border);padding-top:.75rem}.cdd-item-top{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.cdd-item-title{color:var(--text-heading);font-size:.925rem;font-weight:600;text-decoration:none}.cdd-item-title:hover{color:var(--accent);text-decoration:underline}.cdd-item-notes{color:var(--text-muted);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.85rem;line-height:1.5}.recent-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.recent-card h2{margin:0}.solve-history-head{justify-content:space-between;align-items:baseline;margin-bottom:1rem;display:flex}.history-empty{text-align:center;color:var(--text-muted);padding:2rem 0;font-size:.9rem}.load-more-row{text-align:center;margin-top:1rem}.recent-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.recent-note{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:480px;font-size:.8rem;overflow:hidden}@media (hover:none),(pointer:coarse){.recent-item .edit-btn{opacity:1;position:static;transform:none}.recent-item{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.recent-main{padding-right:0!important}}.recent-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.history-group+.history-group{margin-top:1.5rem}.history-group-label{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--comment);margin:0 0 .5rem;font-size:.8rem;font-weight:400}.recent-item{background:var(--bg-input);border:1px solid var(--border);transition:background var(--transition-fast);border-radius:8px;padding:.65rem .75rem;list-style:none;position:relative}.recent-item:hover{background:color-mix(in srgb, var(--bg-input), white 3%)}.recent-item .edit-btn{opacity:0;transition:opacity var(--transition-fast);position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.recent-item:hover .edit-btn{opacity:1}.recent-main{flex-direction:column;gap:.15rem;min-width:0;padding-right:3rem;display:flex}.recent-title{color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.recent-meta{color:var(--text-muted);font-size:.8rem}.recent-date{color:var(--text-muted);font-size:.75rem}.pill{border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.pill.diff-easy{color:#57b894;background:#57b89426}.pill.diff-medium{color:#e8b04b;background:#e8b04b26}.pill.diff-hard{color:#e05a6b;background:#e05a6b26}.pill.diff-unknown{color:var(--text-muted);background:#7a819433}.metrics-row{grid-template-columns:1fr 1fr 2fr;gap:.75rem;display:grid}.metric-cell{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.metric-value{color:var(--text-heading);letter-spacing:-.02em;font-size:1.75rem;font-weight:700;line-height:1.1}.metric-label{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--comment);margin-top:.25rem;font-size:.7rem;font-weight:400}.metric-top-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.range-toggle{gap:.2rem;display:flex}.range-toggle button{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-radius:4px;padding:.15rem .35rem;font-size:.65rem;font-weight:600}.range-toggle button.active{background:var(--accent-dim);color:var(--accent)}.difficulty-cell{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;justify-content:center;padding:1rem 1.25rem;display:flex}.diff-cell-label{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--comment);margin-bottom:.5rem;font-size:.7rem;font-weight:400}.diff-bar-track{background:var(--border);border-radius:999px;height:8px;display:flex;overflow:hidden}.diff-segment{height:100%}.diff-segment.easy{background:#57b894}.diff-segment.medium{background:#e8b04b}.diff-segment.hard{background:#e05a6b}.diff-dot.easy{background:#57b894}.diff-dot.medium{background:#e8b04b}.diff-dot.hard{background:#e05a6b}.diff-dot.unknown{background:var(--text-muted)}.diff-legend{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.diff-legend-item{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.72rem;display:flex}.diff-dot{border-radius:999px;width:6px;height:6px}@media (width<=520px){.metrics-row{grid-template-columns:1fr 1fr}.difficulty-cell{grid-column:1/-1}}@media (width<=380px){.metrics-row{grid-template-columns:1fr}.difficulty-cell{grid-column:auto}}.top-bar{justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-top:1.5rem;display:flex}.app-label{font-family:var(--font-mono);color:var(--comment);text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:500}.app-label-prompt{color:var(--amber)}.section-filename{font-family:var(--font-mono);color:var(--comment);text-transform:none;letter-spacing:0;margin:0;font-size:.85rem;font-weight:500}.section-comment{font-family:var(--font-mono);color:var(--comment);text-transform:none;letter-spacing:0;margin:0;font-size:.85rem;font-weight:400}.streak-block{background:var(--bg-elevated);border:1px solid var(--border);border-left:2px solid var(--amber);border-radius:var(--radius);padding:1.5rem 1.5rem 1.75rem}.streak-code-line{flex-wrap:wrap;align-items:baseline;gap:0;margin-bottom:.2rem;display:flex}.streak-code-prefix{font-family:var(--font-mono);color:var(--comment);font-size:clamp(1rem,2.5vw,1.2rem);font-weight:400}.streak-comment{font-family:var(--font-mono);color:var(--comment);font-size:1rem;font-weight:400}.streak-cursor{background:var(--amber);vertical-align:text-bottom;width:.55ch;height:1.05em;margin-left:.1ch;animation:1.1s step-end infinite streak-blink;display:inline-block}@keyframes streak-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.streak-cursor{animation:none}}.streak-number{letter-spacing:-.04em;color:var(--text-heading);font-size:clamp(2.75rem,9vw,3.5rem);font-weight:800;line-height:1}.streak-label{color:var(--text-muted);margin-bottom:.35rem;font-size:.85rem}.streak-message{color:var(--text);font-size:1rem;font-family:var(--font-serif);margin-top:.75rem;font-style:italic}.streak-number--at-risk{color:var(--streak-at-risk)}.streak-warning--amplified{font-size:1rem;font-weight:600;font-family:var(--font-mono);color:var(--text-heading);background:#e8b04b1f;border:1px solid #e8b04b40;border-radius:999px;align-items:center;gap:.35rem;margin-top:.75rem;padding:.3rem .75rem;font-style:normal;display:inline-flex}.streak-today-ack{color:var(--success);font-size:.85rem;font-family:var(--font-serif);margin-top:.5rem;font-style:italic}.streak-warning{color:var(--streak-at-risk);font-size:.85rem;font-family:var(--font-serif);margin-top:.5rem;font-style:italic}@media (width<=639px){.hide-mobile{display:none!important}}.week-strip{justify-content:space-between;gap:.25rem;margin-top:1rem;display:flex}.week-strip-day{flex-direction:column;flex:1;align-items:center;gap:.3rem;display:flex}.week-strip-label{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--comment);font-size:.65rem;font-weight:600;line-height:1}.week-strip-circle{border:2px solid var(--border);width:28px;height:28px;transition:background var(--transition-fast), border-color var(--transition-fast);background:0 0;border-radius:50%;flex-shrink:0}.week-strip-circle--filled{background:var(--amber);border-color:var(--amber)}.week-strip-circle--today{box-shadow:0 0 0 2px var(--bg-elevated), 0 0 0 4px var(--amber)}@media (width<=639px){.week-strip-circle{width:24px;height:24px}}.log-fab{z-index:var(--z-fab);background:var(--amber);width:52px;height:52px;color:var(--ink);cursor:pointer;transition:filter var(--transition-fast), transform .1s ease;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:1.5rem;font-weight:300;line-height:1;display:none;position:fixed;bottom:1.5rem;right:1.25rem;box-shadow:0 4px 20px #e8b04b4d}.log-fab:hover{filter:brightness(1.08)}.log-fab:active{transform:scale(.95)}@keyframes fab-pulse{0%,to{box-shadow:0 4px 20px #e8b04b4d}50%{box-shadow:0 4px 28px #e8b04b8c,0 0 0 6px #e8b04b1f}}.log-fab--at-risk{animation:2s ease-in-out infinite fab-pulse}@media (prefers-reduced-motion:reduce){.log-fab--at-risk{animation:none}}@media (width<=639px){.log-fab{display:flex}}.toast{background:var(--bg-elevated);color:var(--text-heading);z-index:var(--z-toast);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);border:1px solid #e8b04b4d;border-radius:999px;padding:.6rem 1.25rem;font-size:.875rem;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(8px);box-shadow:0 8px 32px #0006}.toast.visible{opacity:1;transform:translate(-50%)translateY(0)}@media (width<=639px){.toast{bottom:5rem}}.footer{text-align:center;color:var(--text-muted);margin-top:2rem;padding:1rem 0;font-size:.85rem}.btn-primary{font:inherit;cursor:pointer;background:var(--amber);color:var(--ink);border:none;border-radius:8px;padding:.55rem 1.1rem;font-weight:600}.btn-primary:hover{filter:brightness(1.05)}.btn-ghost{border:1px solid var(--border);color:var(--text-heading);cursor:pointer;font:inherit;background:0 0;border-radius:8px;padding:.35rem .6rem}.btn-ghost.small{font-size:.8rem}.btn-danger{color:#f9a8b0;cursor:pointer;font:inherit;background:#e05a6b1a;border:1px solid #e05a6b80;border-radius:8px;padding:.55rem .9rem}.modal-backdrop{z-index:var(--z-modal);background:#000000a6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:min(480px,100%);box-shadow:0 24px 80px #00000073}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-head h2{margin:0;font-size:1.1rem}.modal-form{flex-direction:column;gap:.85rem;padding:1.25rem;display:flex}.field{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.field span{color:var(--text-heading);font-weight:600}.field input,.field select,.field textarea{font:inherit;font-family:var(--font-mono);border:1px solid var(--border);background:var(--bg-input);color:var(--text-heading);border-radius:8px;padding:.5rem .65rem}.field textarea{resize:vertical}.field-hint{color:var(--text-muted);font-size:.75rem}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=520px){.field-row{grid-template-columns:1fr}}.form-error{color:#f9a8b0;margin:0;font-size:.85rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.25rem;display:flex}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-ghost:hover{background:#ffffff0d}@media (width<=639px){.app{padding-bottom:5rem}}.plan-list{flex-direction:column;gap:.5rem;display:flex}.plan-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.plan-row.is-complete{opacity:.6}.plan-row.is-complete .plan-row-title{text-decoration:line-through}.plan-check{border:1px solid var(--line);background:var(--bg-input);width:1.4rem;height:1.4rem;color:var(--accepted);font-family:var(--font-mono);cursor:pointer;border-radius:4px;flex:none;place-items:center;display:grid}.plan-check[aria-checked=true]{border-color:var(--accepted);cursor:default}.plan-row-title{overflow-wrap:anywhere;min-width:0;color:var(--text);flex:auto}.plan-row-num{color:var(--comment)}.plan-diff{font-size:.75rem;font-family:var(--font-mono);flex:none}.plan-diff-easy{color:var(--easy)}.plan-diff-med{color:var(--med)}.plan-diff-hard{color:var(--hard)}.today-view{flex-direction:column;gap:1rem;display:flex}.today-head{flex-direction:column;gap:.25rem;display:flex}.today-topic{margin:0;font-size:1.25rem}.today-progress{color:var(--text-muted);margin:0;font-size:.85rem}.today-rest{color:var(--text-muted);text-align:center;padding:2rem 0}.today-complete{flex-direction:column;gap:.35rem;padding:1.5rem 0 .5rem;display:flex}.today-complete-msg{font-family:var(--font-mono);color:var(--success);margin:0;font-size:1rem}.today-complete-sub{font-family:var(--font-serif);color:var(--text-muted);margin:0;font-size:.9rem;font-style:italic}.week-view{flex-direction:column;gap:1rem;display:flex}.week-nav{gap:.5rem;display:flex}.week-grid{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=720px){.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}.week-day{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.week-day.is-today{border-color:var(--amber)}.week-day .plan-row{background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.2rem 0}.week-day-head{color:var(--comment);justify-content:space-between;font-size:.75rem;display:flex}.week-topic{color:var(--text-heading);margin:0;font-size:.8rem}.week-off,.week-empty{color:var(--text-muted);margin:0;font-size:.8rem}.study-plan{flex-direction:column;gap:1.25rem;display:flex}.study-tabs{border-bottom:1px solid var(--line);gap:.25rem;display:flex}.study-tab{color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem .75rem;font-size:.9rem}.study-tab.is-active{color:var(--text-heading);border-bottom-color:var(--amber)}.top-tabs{gap:.25rem;display:flex}.top-tab{color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.4rem .6rem;font-size:.9rem}.top-tab.is-active{color:var(--text-heading);border-bottom-color:var(--amber)}
