:root{--paper: #eef1f7;--surface: #ffffff;--ink: #1b2340;--muted: #5a6485;--line: #d5dbe9;--danger: #b3261e;--ok: #17835a;--accent: #3355e0;--on-accent: #ffffff;--accent-ink: color-mix(in oklab, var(--accent) 72%, var(--ink));--accent-wash: color-mix(in oklab, var(--accent) 12%, var(--surface));--radius: 14px;--radius-sm: 9px;--font-display: ui-rounded, "SF Pro Rounded", "Hiragino Maru Gothic ProN", "Nunito", "Segoe UI Variable Display", system-ui, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #10152c;--surface: #1a2142;--ink: #e9edf9;--muted: #a3acc9;--line: #2f3961;--danger: #ff8a80;--ok: #5fd3a2;--accent-ink: color-mix(in oklab, var(--accent) 55%, var(--ink));color-scheme:dark}}:root[data-theme=dark]{--paper: #10152c;--surface: #1a2142;--ink: #e9edf9;--muted: #a3acc9;--line: #2f3961;--danger: #ff8a80;--ok: #5fd3a2;--accent-ink: color-mix(in oklab, var(--accent) 55%, var(--ink));color-scheme:dark}[data-accent=cobalt]{--accent: #3355e0;--on-accent: #ffffff}[data-accent=marigold]{--accent: #eaa91c;--on-accent: #1b2340}[data-accent=jade]{--accent: #17835a;--on-accent: #ffffff}[data-accent=coral]{--accent: #f0705a;--on-accent: #1b2340}[data-accent=violet]{--accent: #7a4fd6;--on-accent: #ffffff}[data-accent=teal]{--accent: #0e8a93;--on-accent: #ffffff}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--font-body)}h1,h2,h3,.wordmark,.picker-name,.today-figure{font-family:var(--font-display)}h1{font-size:clamp(1.6rem,1.2rem + 2vw,2.25rem);line-height:1.15;letter-spacing:-.02em;font-weight:800;margin:0;text-wrap:balance}h2{font-size:1.125rem;line-height:1.3;font-weight:700;margin:0 0 .75rem}h3{font-size:1rem;font-weight:700;margin:0}p{margin:0 0 .75rem}a{color:var(--accent-ink)}hr{border:0;border-top:1px solid var(--line);margin:1.25rem 0}.muted{color:var(--muted)}.small{font-size:.875rem}.wordmark{font-weight:800;letter-spacing:.08em;font-size:.8125rem;color:var(--accent-ink);margin:0 0 1rem}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.5rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:600 .9375rem/1.2 var(--font-body);text-decoration:none;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--surface)}.btn-danger-quiet{color:var(--danger)}.btn-quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn-small{min-height:36px;padding:.3rem .7rem;font-size:.875rem}.btn-block{width:100%}.btn-icon{border:0;background:none;color:var(--muted);font-size:1.1rem;width:44px;height:44px;border-radius:50%;cursor:pointer}.actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.actions-start{justify-content:flex-start}.field{display:grid;gap:.3rem;margin-bottom:.9rem}.field-label,legend{font-weight:600;font-size:.875rem}.field-hint{color:var(--muted);font-size:.8125rem}input,select,textarea{width:100%;min-height:44px;padding:.5rem .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}input[type=radio]{width:auto;min-height:0;margin-right:.4rem;accent-color:var(--accent)}textarea{resize:vertical}fieldset{border:0;padding:0;margin:0 0 .9rem}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));column-gap:.9rem}.stack>*+*{margin-top:.25rem}.radio-set label{display:block;padding:.6rem 0}.radio-set legend{font-weight:400;font-size:1rem;margin-bottom:.25rem}.error-note{background:color-mix(in oklab,var(--danger) 12%,var(--surface));color:var(--danger);border-radius:var(--radius-sm);padding:.6rem .8rem;font-weight:600}.notice{background:var(--accent-wash);border-left:4px solid var(--accent);border-radius:var(--radius-sm);padding:.75rem 1rem;max-width:75ch}.loading{display:flex;align-items:center;gap:.6rem;color:var(--muted)}.spinner{width:18px;height:18px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.avatar{display:inline-grid;place-items:center;flex:none;background:var(--accent);border-radius:30%;line-height:1}.avatar-sm{width:32px;height:32px;font-size:1rem}.avatar-md{width:44px;height:44px;font-size:1.4rem}.avatar-xl{width:clamp(96px,26vw,136px);height:clamp(96px,26vw,136px);font-size:clamp(2.75rem,12vw,4rem)}.avatar-add{background:transparent;border:2px dashed var(--line);color:var(--muted);font-family:var(--font-display)}.swatches{display:flex;flex-wrap:wrap;gap:.4rem}.swatches legend{width:100%;margin-bottom:.4rem}.swatch{width:44px;height:44px;border-radius:30%;border:2px solid transparent;background:var(--paper);font-size:1.3rem;cursor:pointer}.swatch-color{background:var(--accent)}.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset}.look-preview{display:grid;place-items:center;margin-bottom:1rem}.auth,.picker{min-height:100dvh;display:grid;place-items:center;align-content:center;padding:1.5rem}.auth-card{width:min(100%,420px);background:var(--surface);border-radius:var(--radius);padding:1.75rem;border:1px solid var(--line)}.auth-card h1{font-size:1.6rem;margin-bottom:.5rem}.auth-card form{margin-top:1.25rem}.picker{text-align:center;gap:.25rem}.picker h1{font-size:clamp(2rem,1.2rem + 5vw,3.5rem)}.picker-grid{list-style:none;padding:0;margin:2rem 0;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1rem,4vw,2rem);max-width:900px}.picker-tile{display:grid;justify-items:center;gap:.6rem;padding:.5rem;border:0;background:none;color:inherit;cursor:pointer;border-radius:var(--radius)}.picker-tile .avatar{transition:transform .15s ease}.picker-tile:hover .avatar,.picker-tile:focus-visible .avatar{transform:translateY(-4px) rotate(-3deg)}.picker-name{font-weight:700;font-size:1.0625rem;max-width:136px;overflow-wrap:anywhere}.solo{max-width:900px;margin:0 auto}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}.nav{background:var(--surface);border-right:1px solid var(--line);padding:1.25rem .9rem;position:sticky;top:0;height:100dvh;overflow-y:auto}.nav ul{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.2rem}.nav a{display:flex;align-items:center;gap:.7rem;padding:.65rem .75rem;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;font-weight:600}.nav a:hover{background:var(--paper)}.nav a[aria-current=page]{background:var(--accent-wash);color:var(--accent-ink)}.nav-icon{width:20px;height:20px;flex:none;fill:currentColor;opacity:.85}.nav-label-short{display:none}.nav-profile{display:flex;align-items:center;gap:.7rem;width:100%;padding:.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:inherit;text-align:left;cursor:pointer;font:inherit}.nav-profile span{display:grid;min-width:0}.nav-profile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-profile small{color:var(--muted)}.content{min-width:0}.page{max-width:1080px;margin:0 auto;padding:clamp(1rem,3vw,2.25rem)}.page-narrow{max-width:640px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-head p{margin:.25rem 0 0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem}.columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1rem}.columns .panel{margin:0}@media(max-width:820px){.shell{grid-template-columns:minmax(0,1fr);padding-bottom:calc(64px + env(safe-area-inset-bottom))}.nav{position:fixed;inset:auto 0 0;height:auto;z-index:5;display:flex;padding:0 0 env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--line);overflow:visible}.nav-wordmark{display:none}.nav ul{display:contents}.nav li{flex:1;display:flex}.nav a{flex:1;flex-direction:column;gap:.1rem;padding:.5rem .2rem;min-height:64px;justify-content:center;font-size:.75rem;border-radius:0}.nav-label-full{display:none}.nav-label-short{display:inline}.nav-profile{order:9;flex:1;flex-direction:column;gap:.1rem;border:0;border-radius:0;background:none;padding:.4rem .2rem;justify-content:center;text-align:center}.nav-profile .avatar{width:28px;height:28px;font-size:.95rem}.nav-profile strong{display:none}.nav-profile small{color:var(--ink);font-weight:600;font-size:.75rem;white-space:nowrap}}.rows{list-style:none;margin:0;padding:0}.row{display:flex;align-items:center;gap:.8rem;padding:.7rem 0;border-top:1px solid var(--line);flex-wrap:wrap}.rows>.row:first-child{border-top:0;padding-top:0}.row-main{flex:1 1 180px;min-width:0;display:grid;gap:.1rem;overflow-wrap:anywhere}.row-actions{display:flex;flex-wrap:wrap;gap:.4rem}.planned{margin:0;display:grid;gap:.5rem}.planned div{display:grid;grid-template-columns:5rem 1fr;gap:.5rem}.planned dt{font-weight:700}.planned dd{margin:0;color:var(--muted)}.welcome{background:var(--accent);color:var(--on-accent);border-radius:calc(var(--radius) * 1.5);padding:clamp(1.5rem,5vw,3.5rem)}.welcome h1{font-size:clamp(1.8rem,1rem + 4vw,3.25rem);max-width:18ch;margin-bottom:.75rem}.welcome .muted{color:inherit;opacity:.85}.welcome-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 .75rem}.welcome .btn{border-color:transparent}.welcome .btn-primary{background:var(--on-accent);color:var(--accent)}.welcome .btn-quiet{color:inherit;text-decoration:underline}.welcome :focus-visible{outline-color:var(--on-accent)}.today{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem;align-items:center;background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:clamp(1.1rem,3vw,1.75rem);margin-bottom:1rem}.today-figure{font-size:clamp(3rem,2rem + 6vw,5rem);font-weight:800;line-height:1;letter-spacing:-.03em;margin:0 0 .75rem}.today-figure span{font-size:1rem;font-weight:600;letter-spacing:0;font-family:var(--font-body)}.today-stats{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.25rem;margin:0}.today-stats dt{font-size:.8125rem;opacity:.85}.today-stats dd{margin:0;font:700 1.25rem/1.2 var(--font-display)}@media(max-width:600px){.today{grid-template-columns:1fr}}.meter{height:12px;border-radius:99px;background:color-mix(in oklab,var(--on-accent) 28%,transparent);overflow:hidden}.meter span{display:block;height:100%;background:var(--on-accent);border-radius:99px;transition:width .4s ease}.meter-thin{height:6px;background:var(--paper);margin-top:.3rem}.meter-thin span{background:var(--accent)}.chart-readout{margin-bottom:.5rem}.chart-plot{position:relative;display:flex;align-items:flex-end;gap:4px;height:160px;border-bottom:1px solid var(--line)}.chart-col{flex:1;height:100%;display:flex;align-items:flex-end;padding:0;border:0;background:none;cursor:pointer;border-radius:4px 4px 0 0}.chart-col:hover,.chart-col[aria-pressed=true]{background:var(--paper)}.chart-bar{display:block;width:100%;min-height:3px;background:color-mix(in oklab,var(--accent) 45%,var(--surface));border-radius:4px 4px 0 0}.chart-col[data-met=true] .chart-bar{background:var(--accent)}.chart-col[data-today=true] .chart-bar{outline:2px solid var(--ink);outline-offset:1px}.chart-goal{position:absolute;left:0;right:0;border-top:2px dashed var(--muted);pointer-events:none}.chart-goal span{position:absolute;right:0;bottom:2px;font-size:.75rem;color:var(--muted);background:var(--surface);padding:0 .25rem}.chart-axis{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--muted);margin-top:.3rem}.bars{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.bars li{display:grid;grid-template-columns:minmax(0,8rem) 1fr auto;gap:.6rem;align-items:center}.bars-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.bars-track{height:10px;background:var(--paper);border-radius:99px;overflow:hidden}.bars-track span{display:block;height:100%;background:var(--accent);border-radius:99px}.bars-value{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.875rem}.group-head{margin:1.5rem 0 .75rem}.count{color:var(--muted);font-weight:600}.skill-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1rem}.skill{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:var(--radius);padding:1rem 1.1rem;display:grid;gap:.6rem;align-content:start}.skill[data-status=paused],.skill[data-status=archived]{border-top-color:var(--line)}.skill-top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.skill-top h3{font-size:1.125rem;margin-right:auto;overflow-wrap:anywhere}.skill p{margin:0}.tag{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:99px;background:var(--paper);color:var(--muted)}.tag-accent{background:var(--accent-wash);color:var(--accent-ink)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem;margin:0}.facts dt{font-size:.75rem;color:var(--muted)}.facts dd{margin:0;font-weight:600}.empty{text-align:center;padding:3rem 1rem;border:2px dashed var(--line);border-radius:var(--radius)}.explore h3{margin:1.25rem 0 .5rem;color:var(--muted);font-size:.875rem}.modal{border:0;padding:0;border-radius:var(--radius);background:var(--surface);color:var(--ink);width:min(100% - 1.5rem,600px);max-height:min(100dvh - 1.5rem,820px)}.modal::backdrop{background:#10152c99}.modal-body{padding:1.25rem}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-head h2{margin:0;font-size:1.25rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:0s!important}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:.5rem;top:-4rem;z-index:20;background:var(--surface);padding:.5rem .75rem;border-radius:var(--radius-sm)}.skip-link:focus{top:.5rem}.nav-more{display:none}.crumbs{font-size:.875rem;color:var(--muted);margin-bottom:.5rem}.page-read{max-width:820px}.lead{max-width:70ch}.actions-center{justify-content:center}.link{background:none;border:0;padding:0;color:var(--accent-ink);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;text-align:left}.check{display:flex;align-items:center;gap:.5rem;margin-bottom:.9rem;font-weight:600}input[type=checkbox]{width:22px;height:22px;min-height:0;flex:none;accent-color:var(--accent)}input[type=search]{flex:1 1 240px}.mono{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.875rem;line-height:1.5}.editor{tab-size:4;white-space:pre;overflow-wrap:normal;overflow-x:auto}.module-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.75rem}.module-head h2{margin:0 0 .25rem}.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}.inline-add{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.inline-add input{flex:1 1 160px}.tag-row{display:flex;flex-wrap:wrap;gap:.4rem}.tag-btn{border:0;cursor:pointer;min-height:32px}.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.empty-flat{border:0;padding:1.5rem .5rem}details.panel>summary{cursor:pointer;font-weight:700;font-family:var(--font-display)}details.panel[open]>summary{margin-bottom:.75rem}.columns-wide{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start}.segmented{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:.9rem;background:var(--surface)}.segmented button{border:0;background:none;color:var(--ink);padding:.5rem .9rem;min-height:40px;font:600 .875rem var(--font-body);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.pill{display:inline-block;font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:99px;background:var(--paper);color:var(--muted);white-space:nowrap}.pill[data-status=in_progress]{background:var(--accent-wash);color:var(--accent-ink)}.pill[data-status=completed]{background:color-mix(in oklab,var(--ok) 16%,var(--surface));color:var(--ok)}.pill[data-status=mastered]{background:var(--ok);color:var(--surface)}.pill[data-status=needs_revision]{background:color-mix(in oklab,var(--danger) 14%,var(--surface));color:var(--danger)}.lesson-list{list-style:none;margin:0;padding:0;counter-reset:lesson}.lesson-list li{counter-increment:lesson;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.6rem 0;border-top:1px solid var(--line)}.lesson-list li:before{content:counter(lesson);width:1.6rem;color:var(--muted);font-variant-numeric:tabular-nums}.lesson-list a,.lesson-list .grow{flex:1 1 200px;font-weight:600;overflow-wrap:anywhere}.prose{max-width:72ch;line-height:1.65;overflow-wrap:anywhere}.prose h2{font-size:1.3rem;margin:1.6rem 0 .5rem}.prose h3{font-size:1.1rem;margin:1.3rem 0 .4rem}.prose h4{font-size:1rem;margin:1rem 0 .3rem}.prose>:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.4rem;margin:0 0 .9rem}.prose li{margin-bottom:.25rem}.prose blockquote{margin:0 0 .9rem;padding:.4rem .9rem;border-left:4px solid var(--line);color:var(--muted)}code{font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.875em;background:var(--paper);padding:.1em .35em;border-radius:5px}pre{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.8rem 1rem;overflow-x:auto;margin:0 0 .9rem}pre code{background:none;padding:0;white-space:pre}.table-wrap{overflow-x:auto;margin-bottom:.9rem}table{border-collapse:collapse;width:100%;font-size:.9375rem}th,td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:.8125rem;color:var(--muted);font-weight:600}.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;gap:1.1rem}.steps>li{counter-increment:step;display:grid;gap:.5rem;padding-left:2.4rem;position:relative;justify-items:start}.steps>li:before{content:counter(step);position:absolute;left:0;top:0;width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:.875rem}.steps textarea{justify-self:stretch}.steps p{margin:0}.chat{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:1rem}.chat li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}.chat li[data-role=user]{background:var(--accent-wash);border-color:transparent}.chat-meta{font-weight:700;margin-bottom:.4rem}.chat-prompt{white-space:pre-wrap;font-family:inherit;background:none;border:0;padding:0;margin:0}.take{list-style:none;margin:0;padding:0;counter-reset:q}.take legend{font-weight:700;font-size:1.0625rem;margin-bottom:.6rem}.take li{counter-increment:q}.take legend:before{content:counter(q) ". ";color:var(--muted)}.choice{display:flex;align-items:flex-start;gap:.4rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:.4rem;cursor:pointer}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-wash)}.option-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.timer{font:700 1.5rem var(--font-display);font-variant-numeric:tabular-nums;margin:0}.review{padding-left:1.4rem}.review li{margin-bottom:1rem;padding-left:.6rem;border-left:4px solid var(--danger)}.review li[data-correct=true]{border-left-color:var(--ok)}.review p{margin-bottom:.25rem}.today[data-passed=false]{background:var(--ink);color:var(--paper)}.today-stats-wide{grid-column:1 / -1;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.lab{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:1rem;align-items:start}.lab .panel{margin:0}.lab h3{margin:1rem 0 .4rem}.hint{background:var(--accent-wash);border-radius:var(--radius-sm);padding:.5rem .75rem}.check-results{margin:1rem 0}.check-results ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.check-results li{padding:.4rem .7rem;border-radius:var(--radius-sm);background:color-mix(in oklab,var(--danger) 10%,var(--surface))}.check-results li[data-passed=true]{background:color-mix(in oklab,var(--ok) 12%,var(--surface))}.tasks .row[data-done=true] strong{text-decoration:line-through;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:1rem}.calendar[aria-busy=true]{opacity:.6}.cal-day{display:grid;justify-items:center;gap:.1rem;padding:.5rem .1rem;min-height:64px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.calendar-month .cal-dow{display:none}.calendar-month .cal-day:nth-child(-n+7) .cal-dow{display:block}.cal-dow{font-size:.75rem;color:var(--muted)}.cal-num{font:700 1.0625rem var(--font-display)}.cal-count{font-size:.75rem;color:var(--accent-ink);min-height:1em}.cal-day[data-today=true]{border-color:var(--accent);border-width:2px}.cal-day[data-outside=true]{opacity:.45}.cal-day[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.cal-day[aria-pressed=true] .cal-dow,.cal-day[aria-pressed=true] .cal-count{color:inherit}.habit-grid td,.habit-grid thead th:not(:first-child){text-align:center}.habit-grid th[data-today=true]{color:var(--accent-ink)}.habit-grid tbody th{font-weight:600;min-width:9rem}.habit-grid td:last-child{white-space:nowrap;text-align:right}.chart-plot-short{height:130px}.chart-labels{display:flex;gap:4px;margin-top:.3rem;font-size:.6875rem;color:var(--muted)}.chart-labels span{flex:1;text-align:center;overflow:hidden;white-space:nowrap}.chart-readout{min-height:1.5em}.bars-stacked li{grid-template-columns:1fr auto;row-gap:.2rem}.bars-stacked .bars-track,.bars-stacked .bars-note{grid-column:1 / -1}.stack-bar{display:flex;height:22px;border-radius:99px;overflow:hidden;gap:2px;margin-bottom:.75rem}.stack-bar span,.legend-dot{background:var(--line)}[data-status=mastered].legend-dot,.stack-bar [data-status=mastered]{background:var(--ink)}[data-status=completed].legend-dot,.stack-bar [data-status=completed]{background:var(--accent)}[data-status=needs_revision].legend-dot,.stack-bar [data-status=needs_revision]{background:var(--danger)}[data-status=in_progress].legend-dot,.stack-bar [data-status=in_progress]{background:color-mix(in oklab,var(--accent) 45%,var(--surface))}.legend{list-style:none;margin:0 0 .75rem;padding:0;display:grid;gap:.3rem}.legend-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.legend-dot{display:inline-block;width:.75rem;height:.75rem;border-radius:3px;margin-right:.3rem}.more-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.4rem}.more-list a{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;font-weight:600}@media(max-width:820px){.nav li[data-primary=false],.nav-profile{display:none}.nav-more{display:flex}}@media(min-width:821px){.nav a{padding:.5rem .75rem}}.panel,.columns>*,.lab>*{min-width:0}.table-wrap{position:relative}.columns{margin-bottom:1rem}.fnotes{position:fixed;right:1rem;bottom:1rem;z-index:6;display:grid;justify-items:end;gap:.6rem}.fnotes-button{display:inline-flex;align-items:center;gap:.45rem;min-height:48px;padding:.6rem 1rem;border:0;border-radius:99px;background:var(--ink);color:var(--paper);font:700 .9375rem var(--font-body);cursor:pointer;box-shadow:0 6px 18px #10152c47}.fnotes-button svg{width:20px;height:20px;fill:currentColor}.fnotes-panel{width:min(360px,calc(100vw - 2rem));max-height:min(70dvh,560px);overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:0 12px 32px #10152c4d}.fnotes-panel form{display:grid;gap:.5rem}.fnotes-panel h3{margin:1rem 0 .4rem;font-size:.875rem;color:var(--muted)}.fnotes-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.fnotes-list li{display:grid;overflow-wrap:anywhere}.chat-compact li{padding:.7rem .9rem}.chat-compact p{margin-bottom:.3rem}@media(max-width:820px){.fnotes{bottom:calc(64px + env(safe-area-inset-bottom) + .75rem);right:.75rem}.fnotes-button span{display:none}.fnotes-button{width:52px;height:52px;padding:0;justify-content:center}.content{padding-bottom:4.5rem}}@media(min-width:821px){.content{padding-bottom:4rem}}
