.lec{--bg:var(--cat-lecture-bg);--fg:var(--cat-lecture-fg)}.sem{--bg:var(--cat-seminar-bg);--fg:var(--cat-seminar-fg)}.dl{--bg:var(--cat-deadline-bg);--fg:var(--cat-deadline-fg)}.vfu{--bg:var(--cat-vfu-bg);--fg:var(--cat-vfu-fg)}.own{--bg:var(--cat-own-bg);--fg:var(--cat-own-fg)}.cal-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.cal-head .t{flex:1 1 0;min-width:0}.cal-head h1{-webkit-hyphens:manual;hyphens:manual;white-space:nowrap}.cal-head .t .meta{margin-top:2px}.cal-head .nav{gap:2px;display:flex}.cal-head .new-mobile{margin-left:auto}.cal-tools{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.cal-tools .seg{flex:1;max-width:22rem}.cal-tools .seg button{flex:1}.cal-tools .new{margin-left:auto}@media (width<=767px){.calendar .cal-head{padding-right:44px}.cal-tools .new{display:none}.cal-tools .settings-link{margin-left:auto}}@media (width>=768px){.cal-head .new-mobile{display:none}}.seg{background:var(--color-sunken);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.seg button{min-height:38px;padding:0 var(--space-3);color:var(--color-ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;background:0 0;border:0;border-radius:4px}.seg button[aria-pressed=true]{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-1)}.cal-empty,.cal-note{margin-bottom:var(--space-5)}.cal-empty p,.cal-note p{margin:0 0 var(--space-3)}.legend{align-items:center;gap:var(--space-2) var(--space-4);font-size:var(--text-xs);color:var(--color-ink-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.legend i{background:var(--fg);border-radius:2px;width:10px;height:10px;display:inline-block}.legend .import-status{color:var(--color-ink-3);align-items:center;gap:6px;margin-left:auto;text-decoration:none;display:inline-flex}.legend .import-status:hover{color:var(--color-ink-2);text-decoration:underline}.strip{margin-bottom:var(--space-6);grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.strip button{padding:var(--space-2) 0;border-radius:var(--radius-sm);min-height:64px;color:var(--color-ink-2);cursor:pointer;background:0 0;border:0;align-content:center;justify-items:center;gap:2px;display:grid}.strip button:hover{background:var(--color-sunken)}.strip small{font-size:var(--text-xs);color:var(--color-ink-3)}.strip b{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-ink)}.dots{gap:3px;height:6px;display:flex}.dots i{background:var(--fg);border-radius:50%;width:5px;height:5px}.strip button[aria-current=date]{background:var(--color-accent)}.strip button[aria-current=date] small,.strip button[aria-current=date] b{color:var(--color-on-accent)}.strip button[aria-current=date] .dots i{background:var(--color-on-accent)}.strip button[aria-pressed=true]:not([aria-current=date]){background:var(--color-accent-soft)}.agenda .day{margin-bottom:var(--space-6);scroll-margin-top:var(--space-4)}.agenda .day h2{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);padding-bottom:var(--space-2);border-bottom:var(--border-hairline) solid var(--color-rule);margin:0}.agenda .day h2 span{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-ink-3);font-weight:var(--weight-regular);margin-left:var(--space-2)}.agenda .day.today h2{color:var(--color-accent)}.ev{gap:var(--space-3);width:100%;padding:var(--space-3) 0;border:0;border-bottom:var(--border-hairline) solid var(--color-rule);text-align:left;cursor:pointer;background:0 0;grid-template-columns:3.75rem 1fr;display:grid}.ev:hover{background:color-mix(in srgb, var(--color-sunken) 60%, transparent)}.ev .tm{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-ink-2)}.ev .tm span{font-weight:var(--weight-regular);color:var(--color-ink-3);display:block}.ev .bd{gap:3px;min-width:0;display:grid}.ev .bd b{font-weight:var(--weight-semibold)}.ev .bd b:before{content:"";background:var(--fg);vertical-align:.05em;border-radius:2px;width:9px;height:9px;margin-right:8px;display:inline-block}.ev .bd .meta{gap:2px var(--space-3);flex-wrap:wrap;display:flex}.empty-day{padding:var(--space-3) 0;color:var(--color-ink-3);font-size:var(--text-sm);border-bottom:var(--border-hairline) solid var(--color-rule);margin:0}.week,.daygrid{--hour:3.6rem}.hours{grid-template-rows:repeat(var(--rows), var(--hour));display:grid}.hours span{font-size:var(--text-xs);color:var(--color-ink-3);text-align:right;padding-right:var(--space-2);transform:translateY(-.55em)}.hours span:first-child{transform:translateY(.35em)}.col{grid-template-rows:repeat(var(--rows), var(--hour));border-left:var(--border-hairline) solid var(--color-rule);display:grid;position:relative}.col>i{border-top:var(--border-hairline) solid var(--color-rule)}.col>i:first-child{border-top:0}.col.weekend{background:var(--color-paper)}.col.today{background:color-mix(in srgb, var(--color-accent-soft) 35%, transparent)}.blk{top:calc(var(--s) * var(--hour) + 2px);height:calc(var(--d) * var(--hour) - 4px);padding:6px var(--space-2);border-radius:var(--radius-sm);background:var(--bg);color:var(--fg);font-size:var(--text-xs);text-align:left;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fg) 22%, transparent);cursor:pointer;z-index:1;border:0;line-height:1.3;position:absolute;overflow:hidden}.blk:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fg) 45%, transparent)}.blk b{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-ink);margin-bottom:2px;display:block}.blk span{display:block}.blk.deadline{height:auto;min-height:calc(var(--d) * var(--hour) - 4px)}.blk.short b,.blk.short span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nowline{left:-1px;right:0;top:calc(var(--s) * var(--hour));background:var(--color-margin);z-index:2;pointer-events:none;height:2px;position:absolute}.nowline:before{content:"";background:var(--color-margin);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.allday-chip{width:100%;padding:3px var(--space-2);border-radius:var(--radius-xs);background:var(--bg);color:var(--color-ink);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:left;white-space:nowrap;text-overflow:ellipsis;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fg) 22%, transparent);cursor:pointer;border:0;margin-bottom:2px;display:block;overflow:hidden}.week{display:none}@media (width>=900px){.view-vecka .strip,.view-vecka .agenda{display:none}.week{background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-1);grid-template-columns:3.5rem repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.week .dh{padding:var(--space-3) var(--space-3) var(--space-2);border-bottom:var(--border-hairline) solid var(--color-rule);border-left:var(--border-hairline) solid var(--color-rule);justify-items:start;display:grid}.week .dh small{font-size:var(--text-xs);color:var(--color-ink-3)}.week .dh b{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:1.1}.week .dh.today b{color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-sm);padding:0 6px}.week .dh.today small{color:var(--color-accent);font-weight:var(--weight-semibold)}.week .corner{border-bottom:var(--border-hairline) solid var(--color-rule)}.week .allday-label{font-size:var(--text-xs);color:var(--color-ink-3);text-align:right;padding:var(--space-1) var(--space-2) 0 0;border-bottom:var(--border-hairline) solid var(--color-rule)}.week .allday{border-left:var(--border-hairline) solid var(--color-rule);border-bottom:var(--border-hairline) solid var(--color-rule);min-width:0;padding:3px 4px}.week .allday.today{background:color-mix(in srgb, var(--color-accent-soft) 35%, transparent)}}.dayview{margin-bottom:var(--space-2)}.allday-strip{margin-bottom:var(--space-3);gap:2px;display:grid}.allday-strip .allday-chip{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.daygrid{background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-1);padding:var(--space-3) 0;grid-template-columns:3.5rem minmax(0,1fr);display:grid;overflow:hidden}.daygrid .col{border-left:var(--border-hairline) solid var(--color-rule)}.daygrid .col.today{background:0 0}.day-empty{margin-top:var(--space-3)}@media (width>=900px){.view-dag .strip{display:none}.daygrid{max-width:44rem}}.month{background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-1);gap:0;display:grid;overflow:hidden}.mrow{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mrow.head span{padding:var(--space-2) var(--space-2);font-size:var(--text-xs);color:var(--color-ink-3);border-bottom:var(--border-hairline) solid var(--color-rule);text-align:center}.mcell{min-height:52px;padding:var(--space-2) 2px;border:0;border-top:var(--border-hairline) solid var(--color-rule);border-left:var(--border-hairline) solid var(--color-rule);text-align:left;cursor:pointer;background:0 0;align-content:start;justify-items:center;gap:4px;min-width:0;display:grid}.mrow .mcell:first-child{border-left:0}.mrow:nth-child(2) .mcell{border-top:0}.mcell b{font-family:var(--font-display);font-weight:var(--weight-medium);font-size:var(--text-base);color:var(--color-ink);border-radius:var(--radius-xs);padding:0 5px;line-height:1.2}.mcell.out b{color:var(--color-ink-3)}.mcell.weekend{background:var(--color-paper)}.mcell.today b{background:var(--color-accent);color:var(--color-on-accent)}.mcell[aria-selected=true]{background:var(--color-accent-soft)}.mcell .mtitles{display:none}.month-agenda{margin-top:var(--space-6)}@media (width>=900px){.view-manad .month-agenda{display:none}.mcell{min-height:7.25rem;padding:var(--space-2);justify-items:stretch}.mcell b{justify-self:start}.mcell .dots{display:none}.mcell .mtitles{gap:2px;min-width:0;display:grid}.mcell .mt{border-radius:var(--radius-xs);background:var(--bg);color:var(--color-ink);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fg) 18%, transparent);padding:1px 6px;display:block;overflow:hidden}.mcell .more{font-size:var(--text-xs);color:var(--color-ink-3);padding-left:6px}.mcell[aria-selected=true]{background:0 0}.mcell.weekend[aria-selected=true]{background:var(--color-paper)}}.cal-layer{align-items:flex-end}.cal-sheet{max-height:90dvh}.cal-sheet:before{content:"";width:36px;height:4px;margin:0 auto var(--space-3);border-radius:var(--radius-full);background:var(--color-rule-strong);display:block}.cal-sheet form{margin-top:var(--space-3)}.cal-sheet select.input{appearance:auto}.textarea{min-height:88px;padding:var(--space-3);resize:vertical;font-family:inherit;line-height:var(--leading-normal)}.field-row{gap:0 var(--space-3);border:0;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));min-width:0;margin:0;padding:0;display:grid}.field-row legend{font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-2);padding:0}.check{align-items:center;gap:var(--space-2);min-height:44px;margin-bottom:var(--space-3);font-size:var(--text-base);display:flex}.sheet-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.sheet-actions .push-right{margin-left:auto}.feed-summary{padding:var(--space-3) 0 var(--space-4);margin-bottom:var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);gap:var(--space-1);display:grid}.feed-summary p{margin:0}@media (width>=768px){.cal-layer{justify-content:center;align-items:center}.cal-sheet{border-radius:var(--radius-lg);width:min(480px,100vw - 64px);padding:var(--space-6)}.cal-sheet:before{display:none}}.toast{left:50%;bottom:calc(var(--tabbar-height) + var(--space-4) + env(safe-area-inset-bottom));z-index:var(--z-toast);max-width:min(32rem,100vw - 32px);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-paper);font-size:var(--text-sm);box-shadow:var(--shadow-3);position:fixed;transform:translate(-50%)}@media (width>=768px){.toast{bottom:var(--space-6)}}@media (prefers-reduced-motion:no-preference){.toast{animation:cal-toast var(--duration-base) var(--ease-out)}@keyframes cal-toast{0%{opacity:0;transform:translate(-50%,8px)}}}.schedule-page{max-width:46rem}.schedule-page .back{margin:0 0 var(--space-4) calc(-1 * var(--space-3))}.schedule-page .section-lede{margin:0 0 var(--space-4);max-width:var(--measure)}.feed-list{margin-bottom:var(--space-5)}.feed-row .h3{font-weight:var(--weight-semibold)}.import-form{margin-bottom:var(--space-6)}.howto{padding:var(--space-4) var(--space-5);background:var(--color-sunken);border-radius:var(--radius-md)}.howto h3{margin:0 0 var(--space-2)}.howto ol{margin:0 0 var(--space-3);padding-left:var(--space-5);gap:var(--space-2);max-width:var(--measure);display:grid}.howto .meta{margin:0}.offsets{margin-bottom:var(--space-5);border-top:var(--border-hairline) solid var(--color-rule);display:grid}.offset-row{gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:var(--border-hairline) solid var(--color-rule);grid-template-columns:7.5rem 1fr;align-items:center;display:grid}.offset-kind{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.offset-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.toggle-chip{min-height:32px;padding:0 var(--space-2);border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-xs);color:var(--color-ink-2);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;background:0 0}.toggle-chip[aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}@media (width<=559px){.offset-row{grid-template-columns:1fr}}.quiet{max-width:22rem;margin-bottom:0}.digest-check{margin-top:var(--space-4)}.digest-time{max-width:10rem}.copy-row{gap:var(--space-2);display:flex}.copy-row .input{min-width:0;font-size:var(--text-sm);flex:1}.review{min-height:calc(100dvh - 2 * var(--space-4));grid-template-rows:auto auto 1fr auto;max-width:44rem;margin:0 auto;display:grid}.review-head{align-items:center;gap:var(--space-2);min-height:56px;display:flex}.review-head .deck{text-align:center;flex:1;min-width:0}.review-head .deck h1{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;margin:0;display:block;overflow:hidden}.review-head .deck span{font-size:var(--text-xs);color:var(--color-ink-3)}.review-bar{background:var(--color-rule);border-radius:var(--radius-full);height:3px;overflow:hidden}.review-bar span{background:var(--color-accent);border-radius:inherit;height:100%;transition:width var(--duration-base) var(--ease-out);display:block}.review-stage{padding:var(--space-6) 0;align-content:center;min-width:0;display:grid}.review-stack{position:relative}.review-stack.has-next:before{content:"";background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-1);position:absolute;inset:10px 14px -10px;transform:rotate(1.2deg)}.flip{perspective:1600px;touch-action:pan-y;cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}.flip.is-flipped{cursor:default}.flip.is-releasing{transition:transform var(--duration-base) var(--ease-out)}.flip-inner{transition:transform var(--duration-slow) var(--ease-in-out);transform-style:preserve-3d;display:grid}.flip.is-flipped .flip-inner{transform:rotateY(180deg)}.flip .face{backface-visibility:hidden;grid-area:1/1}.flip .face.back{transform:rotateY(180deg)}.index-card{min-height:24rem;padding:var(--space-6) var(--space-6) var(--space-5);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-2);flex-direction:column;display:flex;position:relative}.index-card .q{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.3;font-weight:var(--weight-medium);text-wrap:balance;padding-bottom:var(--space-4);border-bottom:var(--border-hairline) solid var(--color-margin)}.index-card .q+.q{padding-top:var(--space-2)}.index-card .q:has(+.q){border-bottom:0;padding-bottom:0}.index-card .answer-label{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--color-ink-3);font-weight:var(--weight-semibold)}.index-card .a{font-family:var(--font-sans);font-size:var(--text-md);max-width:var(--measure-narrow);margin-top:.15rem;line-height:1.8rem}.index-card .a p{background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(1.8rem - 1px), var(--color-rule) calc(1.8rem - 1px), var(--color-rule) 1.8rem)}.index-card .a p+p{margin-top:1.8rem}.index-card .src{align-items:center;gap:var(--space-2);padding-top:var(--space-5);font-size:var(--text-xs);color:var(--color-ink-3);margin-top:auto;display:flex}.swipe-word{top:var(--space-6);padding:var(--space-1) var(--space-3);border:var(--border-strong) solid currentColor;border-radius:var(--radius-sm);background:var(--color-surface);font-weight:var(--weight-semibold);pointer-events:none;position:absolute}.swipe-word.right{right:var(--space-6);color:var(--color-accent)}.swipe-word.left{left:var(--space-6);color:var(--color-margin)}.swipe-hint{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--color-ink-3);justify-content:space-between;display:flex}.swipe-hint span{align-items:center;gap:4px;display:inline-flex}@media (hover:hover) and (pointer:fine){.swipe-hint{display:none}}.review-foot{padding-bottom:var(--space-2)}.review-error{text-align:center;margin-bottom:var(--space-2)}.rate,.rate-front{padding:var(--space-3) 0 var(--space-4)}.rate{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.rate-front .btn{min-height:60px}.rate button{min-height:60px;padding:var(--space-2) 4px;border-radius:var(--radius-sm);border:var(--border-hairline) solid var(--color-rule-strong);background:var(--color-surface);color:var(--color-ink);font-weight:var(--weight-semibold);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out), transform var(--duration-instant) var(--ease-out);align-content:center;justify-items:center;gap:2px;display:grid;position:relative}.rate button:hover{background:var(--color-sunken)}.rate button:active{transform:translateY(1px)}.rate button:disabled{opacity:.6}.rate button small{font-weight:var(--weight-regular);font-size:var(--text-xs);color:var(--color-ink-3)}.rate button kbd{display:none}.rate .again{color:var(--color-margin)}.rate .good{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-1)}.rate .good:hover{background:var(--color-accent-hover)}.rate .good small{color:var(--color-on-accent);opacity:.85}.keys{text-align:center;padding-bottom:var(--space-6);font-size:var(--text-xs);color:var(--color-ink-3);display:none}.keys kbd,.rate kbd{font-family:var(--font-sans);border:var(--border-hairline) solid var(--color-rule-strong);background:var(--color-surface);color:var(--color-ink-2);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:11px}@media (width>=768px){.review{padding-top:var(--space-2)}.index-card{min-height:27rem;padding:var(--space-8) var(--space-10) var(--space-6)}.rate{gap:var(--space-3)}.rate button{min-height:64px}}@media (hover:hover) and (pointer:fine){.rate button kbd{display:inline-block;position:absolute;top:6px;left:6px}.rate .good kbd{color:var(--color-on-accent);opacity:.8;background:0 0;border-color:currentColor}.keys{display:block}}.review-end{gap:var(--space-4);max-width:var(--measure-narrow);justify-items:start}.review-end-text{font-family:var(--font-display);font-size:var(--text-lg);text-wrap:pretty;line-height:1.35}@media (prefers-reduced-motion:reduce){.flip-inner,.flip.is-releasing,.review-bar span{transition:none}}.cards-page .page-header .row-actions{margin-top:var(--space-3)}.deck-row{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) 0;color:inherit;text-decoration:none;display:flex}.deck-row:hover .deck-name{color:var(--color-accent)}.deck-row .dot{background:var(--color-rule-strong);border-radius:50%;flex:none;width:10px;height:10px}.deck-row .grow{flex:1;min-width:0}.deck-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-tight);display:block}.deck-due{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-ochre);white-space:nowrap}.deck-due.is-none{color:var(--color-ink-3);font-weight:var(--weight-regular)}.deck-row .chev{color:var(--color-ink-3)}.cards-empty{justify-items:start;gap:var(--space-3);padding:var(--space-6) 0;border-top:var(--border-hairline) solid var(--color-rule);color:var(--color-ink-2);display:grid}.cards-empty .i-lg{color:var(--color-ink-3)}.cards-back{align-items:center;gap:var(--space-1);margin:0 0 var(--space-3) calc(-1 * var(--space-3));display:inline-flex}.cards-columns{gap:var(--space-10);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1100px){.cards-columns{grid-template-columns:minmax(0,1fr) 18rem}}.add-cards{max-width:44rem}.cards-aside .section:first-child{margin-top:0}.stat-lines{gap:var(--space-2);display:grid}.stat-lines p{color:var(--color-ink-2)}.segmented{background:var(--color-sunken);border-radius:var(--radius-sm);margin-bottom:var(--space-4);flex-wrap:wrap;gap:2px;max-width:100%;padding:3px;display:inline-flex}.segmented button{min-height:40px;padding:0 var(--space-3);border-radius:calc(var(--radius-sm) - 2px);color:var(--color-ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);background:0 0;border:0}.cards-form .two{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=768px){.cards-form .two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.cards-form select.input{appearance:auto}.field-error{font-size:var(--text-sm);color:var(--color-margin)}.proposal{margin-top:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-md)}.proposal-head{align-items:baseline;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.proposal-head .h3{flex:1}.proposal .ai-note{gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-xs);color:var(--color-ink-3);display:flex}.proposal .ai-note .i{margin-top:1px}.proposal-item{gap:var(--space-3);padding:var(--space-3) 0;align-items:flex-start;display:flex}.proposal-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent);flex:none;margin-top:3px}.proposal-item .q{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-medium)}.proposal-item.is-off .q,.proposal-item.is-off .meta{opacity:.62;text-decoration:line-through}.proposal .row-actions{margin-top:var(--space-4)}.progress-line{align-items:center;gap:var(--space-3);margin-top:var(--space-3);display:flex}.progress-line .meter{flex:1}.card-row{gap:var(--space-3);padding:var(--space-3) 0;align-items:flex-start;min-height:56px;display:flex}.card-row .grow{flex:1;min-width:0}.card-row .q{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.card-row .back{color:var(--color-ink-2);font-size:var(--text-sm);white-space:pre-line;margin-top:2px}.card-row.is-suspended .q,.card-row.is-suspended .back{opacity:.62}.card-row .row-actions{flex:none;gap:0}.card-row .meta{margin-top:var(--space-1)}@media (width>=768px){.cards-dialog-layer{justify-content:center;align-items:center}.cards-dialog{border-radius:var(--radius-lg);max-width:30rem;padding:var(--space-5) var(--space-6) var(--space-6)}}.cards-dialog .row-actions{margin-top:var(--space-4)}.cards-toast-region{left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + var(--space-3));z-index:var(--z-toast);padding:0 var(--gutter);pointer-events:none;justify-content:center;display:flex;position:fixed}@media (width>=768px){.cards-toast-region{bottom:var(--space-6)}}.cards-toast{align-items:center;gap:var(--space-4);max-width:30rem;padding:var(--space-3) var(--space-4);background:var(--color-ink);color:var(--color-ink-inverse);border-radius:var(--radius-md);box-shadow:var(--shadow-3);font-size:var(--text-sm);pointer-events:auto;animation:cards-toast-in var(--duration-base) var(--ease-out);display:flex}.cards-toast-action{color:var(--color-ink-inverse);font-weight:var(--weight-semibold);text-underline-offset:.18em;background:0 0;border:0;min-height:36px;text-decoration:underline}@keyframes cards-toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.cards-toast{animation:none}}.rate:focus{outline:none}.main:has(>.chat-page){max-width:none;padding:0}.chat-page{height:calc(100dvh - var(--tabbar-height) - env(safe-area-inset-bottom));padding:max(var(--space-5), env(safe-area-inset-top)) var(--gutter) 0}.chat-wrap,.chat-col{display:contents}.chat-page{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid}.chat-head{align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:var(--border-hairline) solid var(--color-rule);padding-right:calc(36px + var(--space-2));grid-row:1;display:flex}.chat-head .t{flex:1;min-width:0}.chat-head h1{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;padding-right:0;overflow:hidden}.chat-head .ctx{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.chip-button{cursor:pointer;border:0}.chip-button:hover{background:var(--color-accent-soft);color:var(--color-accent)}.menu{right:0;top:calc(100% + var(--space-1));z-index:var(--z-dialog);min-width:13rem;padding:var(--space-1);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-3);display:grid;position:absolute}.menu button{min-height:var(--tap-min);padding:0 var(--space-3);border-radius:var(--radius-sm);text-align:left;font-size:var(--text-sm);background:0 0;border:0}.menu button:hover{background:var(--color-sunken)}.chat-panel{margin-top:var(--space-3);padding:var(--space-4);padding-right:calc(var(--tap-min) + var(--space-2));background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-2);grid-row:2;max-height:50dvh;position:relative;overflow-y:auto}.chat-panel .close{top:var(--space-2);right:var(--space-2);position:absolute}.chat-panel .field{margin:0}.inline-form{align-items:flex-end;gap:var(--space-2);display:flex}.inline-form .field{flex:1}.confirm-delete{gap:var(--space-3);display:grid}.thread-scroll{flex-direction:column-reverse;grid-row:3;min-height:0;display:flex;overflow-y:auto}.thread-scroll.is-empty{flex-direction:column}.thread{align-content:start;gap:var(--space-6);padding:var(--space-6) 0;width:100%;max-width:44rem;margin:0 auto;display:grid}.msg-user-wrap{justify-self:end;justify-items:end;gap:var(--space-1);max-width:85%;display:grid}.msg-user{padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg);font-size:var(--text-base);line-height:var(--leading-normal);white-space:pre-wrap}.msg-attach{align-items:center;gap:4px;display:flex}.msg-ai .body ol,.msg-ai .body ul{margin:var(--space-2) 0 0;gap:var(--space-1);padding-left:1.4em;display:grid}.msg-ai .body code{background:var(--color-sunken);border-radius:var(--radius-xs);padding:0 .25em;font-size:.9em}.msg-ai .body.streaming{color:var(--color-ink-2)}@media (width<=767px){.msg-ai .body{-webkit-hyphens:auto;hyphens:auto}}.proposal header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex}.proposal header span{font-weight:var(--weight-regular);color:var(--color-ink-3);font-size:var(--text-xs);text-align:right;margin-left:auto}.proposal>ul{margin:0;padding:0;list-style:none}.proposal>ul>li{padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);font-size:var(--text-sm);gap:2px;display:grid}.proposal>ul>li b{font-weight:var(--weight-semibold)}.proposal>ul>li span{color:var(--color-ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.proposal .more{width:100%;padding:var(--space-2) var(--space-4);border:0;border-bottom:var(--border-hairline) solid var(--color-rule);text-align:left;font-size:var(--text-sm);color:var(--color-ink-3);background:0 0;display:block}.proposal .more:hover{color:var(--color-accent)}.proposal .proposal-edit{margin:0;padding:0;list-style:none}.proposal .proposal-edit li{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);display:grid}.proposal .proposal-edit textarea.input{min-height:0;font-size:var(--text-sm)}.proposal .proposal-edit .btn{justify-self:start}.proposal .proposal-form{padding:var(--space-3) var(--space-4) 0;border-bottom:var(--border-hairline) solid var(--color-rule)}.proposal-warnings{padding:var(--space-2) var(--space-4) var(--space-2) calc(var(--space-4) + 1.1em);border-bottom:var(--border-hairline) solid var(--color-rule);background:var(--color-mark);color:var(--color-ink);font-size:var(--text-xs);margin:0}.proposal-note,.proposal-error{gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);font-size:var(--text-xs);color:var(--color-ink-3);display:flex}.proposal-note .i{width:var(--icon-sm);height:var(--icon-sm)}.proposal-error{color:var(--color-margin)}.proposal footer .btn:first-child{margin-right:auto}@media (width<=599px){.proposal footer .btn{flex:1}.proposal footer .btn:first-child{flex-basis:100%;margin-right:0}}.proposal-done{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.proposal-done .i{color:var(--color-moss)}.chat-empty{justify-items:start;gap:var(--space-3);padding-top:var(--space-6);color:var(--color-ink-2);display:grid}.chat-empty .i{color:var(--color-ink-3)}.chat-empty p{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:34ch}.suggestions{gap:var(--space-2);flex-wrap:wrap;display:flex}.suggestions .chip{white-space:normal;text-align:left;min-height:36px;font-size:var(--text-sm)}.chat-error p{font-size:var(--text-sm);margin-bottom:var(--space-2)}.composer{padding:var(--space-3) 0;background:var(--color-paper);grid-row:4}.composer form{align-items:flex-end;gap:var(--space-2);max-width:44rem;padding:var(--space-2);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);margin:0 auto;display:flex}.composer textarea::placeholder{color:var(--color-ink-3)}.composer .small{max-width:44rem;margin:var(--space-2) auto 0;text-align:center}.composer .budget-note{max-width:44rem;font-size:var(--text-sm);margin:0 auto}.attach-menu,.attached{max-width:44rem;margin:0 auto var(--space-2)}.attach-menu{padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-3);max-height:14rem;overflow-y:auto}.attach-menu ul{margin:0;padding:0;list-style:none}.attach-menu label{align-items:center;gap:var(--space-2);min-height:var(--tap-min);font-size:var(--text-sm);display:flex}.attached{gap:var(--space-1);flex-wrap:wrap;display:flex}.attached button{color:inherit;background:0 0;border:0;place-items:center;padding:0;display:grid}.history{display:none}.history h2,.history-sheet h2{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0;padding:0 var(--space-3);margin-bottom:var(--space-3)}.new-chat{width:100%;margin-bottom:var(--space-6);justify-content:flex-start}.history nav,.history-sheet nav{gap:2px;display:grid}.history a.c,.history-sheet a.c{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink);font-size:var(--text-sm);gap:1px;text-decoration:none;display:grid}.history a.c span,.history-sheet a.c span{font-size:var(--text-xs);color:var(--color-ink-3)}.history a.c:hover,.history-sheet a.c:hover{background:var(--color-sunken)}.history a.c[aria-current=true],.history-sheet a.c[aria-current=true]{background:var(--color-surface);box-shadow:var(--shadow-1)}.history-empty{padding:0 var(--space-3)}.history .usage{margin-top:var(--space-8);padding:var(--space-3);font-size:var(--text-xs);color:var(--color-ink-3)}.history .usage .progress{border-radius:var(--radius-full);background:var(--color-sunken);height:4px;margin-top:var(--space-2);overflow:hidden}.history .usage .progress span{background:var(--color-moss);height:100%;display:block}.history .usage .progress.high span{background:var(--color-margin)}@media (width<=767px){.chat-head .ctx{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}}@media (width>=768px){.chat-page{height:100dvh;padding:var(--space-8) var(--space-8) 0}.chat-head{padding-right:0}.composer{padding-bottom:var(--space-5)}}@media (width>=1100px){.chat-page{padding:0;display:block}.chat-wrap{grid-template-columns:17rem minmax(0,1fr);height:100dvh;display:grid}.history{padding:var(--space-8) var(--space-4);border-right:var(--border-hairline) solid var(--color-rule);display:block;overflow-y:auto}.menu .menu-history{display:none}.chat-col{min-height:0;padding:var(--space-8) var(--space-10) 0;grid-template-rows:auto auto minmax(0,1fr) auto;display:grid}}.back-link{margin:0 0 var(--space-4) calc(var(--space-3) * -1);padding:0 var(--space-3)}.empty{justify-items:start;gap:var(--space-3);padding:var(--space-6) 0;border-top:var(--border-hairline) solid var(--color-rule);color:var(--color-ink-2);display:grid}.empty .i{color:var(--color-ink-3)}.note.small{font-size:var(--text-sm);align-items:flex-start}.check-row{gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-sm);line-height:var(--leading-snug);cursor:pointer;align-items:flex-start;display:flex}.check-row input,.row input[type=radio],.row input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent);flex:none;margin:2px 0 0}.field-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.link-button{text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--color-rule-strong);text-decoration-color:var(--color-rule-strong);text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0}.link-button:hover{color:var(--color-ink)}.doc-list .row{min-height:64px}.doc-list .row>.i:first-child{color:var(--color-ink-3)}.doc-title-row,.source-name{font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.doc-list .meta,.source-row .meta{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sources-lede{margin-bottom:var(--space-3);max-width:var(--measure-narrow)}.sources-actions{margin-top:var(--space-4);align-items:center}.source-row .i{color:var(--color-ink-3)}@media (width<=767px){.doc-list .chip{display:none}}.new-doc,.flow,.versions{max-width:44rem}.new-doc-form{gap:var(--space-6);display:grid}.choice{border:0;min-width:0;margin:0;padding:0}.choice legend{margin-bottom:var(--space-2)}.kind-row{cursor:pointer}.kind-row .meta{display:block}.kind-label{align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);display:flex}.kind-row.selected .kind-label{color:var(--color-accent)}.syllabus-pick{gap:var(--space-5);display:grid}.cc-group{padding:var(--space-2) 0;border-top:var(--border-hairline) solid var(--color-rule)}.cc-heading{margin:var(--space-1) 0;font-style:italic}.questions{margin:0;padding:0;list-style:none}.questions textarea{font-size:var(--text-base)}.flow-actions{margin-top:var(--space-8)}.outline-edit{margin:0 0 var(--space-3);padding:0;list-style:none}.outline-item{gap:var(--space-2) var(--space-3);padding:var(--space-4) 0;border-top:var(--border-hairline) solid var(--color-rule);grid-template-columns:2rem minmax(0,1fr);display:grid}.outline-n{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-ink-3);padding-top:var(--space-2)}.outline-fields{gap:var(--space-2);display:grid}.outline-fields textarea{min-height:64px}.outline-tools{gap:var(--space-1);grid-column:2;display:flex}.main:has(.doc-page){max-width:none;padding-top:0}.main:has(.doc-page)>.mobile-more{display:none}.doc-bar{z-index:var(--z-sticky);align-items:center;gap:var(--space-2);min-height:56px;margin:0 calc(var(--gutter) * -1);padding:env(safe-area-inset-top) var(--space-2) 0;background:var(--color-paper);border-bottom:var(--border-hairline) solid var(--color-rule);display:flex;position:sticky;top:0}.doc-bar .crumb{flex:1;min-width:0}.doc-bar .crumb b{font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.save-state{font-size:var(--text-xs);color:var(--color-ink-3);align-items:center;gap:4px;display:inline-flex}.save-state .i{width:14px;height:14px;color:var(--color-moss)}.save-state.error{color:var(--color-margin)}.doc-bar .export-label{display:none}@media (width<=767px){.doc-bar .export{background:0 0;border-color:#0000;width:44px;padding:0}}.menu-wrap{position:relative}.menu-scrim{z-index:var(--z-overlay);background:0 0;border:0;position:fixed;inset:0}.menu{z-index:var(--z-dialog);min-width:15rem;padding:var(--space-1);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-3);margin:0;list-style:none;position:absolute;top:calc(100% + 4px);right:0}.menu a,.menu button{width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink);font-size:var(--text-sm);text-align:left;background:0 0;border:0;align-items:center;text-decoration:none;display:flex}.menu a:hover,.menu button:hover{background:var(--color-sunken)}.menu .danger{color:var(--color-margin)}.toolbar{padding:var(--space-2) 0;scrollbar-width:none;align-items:center;gap:2px;display:flex;overflow-x:auto}.toolbar button{min-width:44px;min-height:40px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:6px;display:inline-flex}.toolbar button:hover,.toolbar button[aria-pressed=true]{background:var(--color-sunken);color:var(--color-ink)}.toolbar button:disabled{opacity:.45;cursor:not-allowed}.toolbar .div{background:var(--color-rule);width:1px;height:20px;margin:0 var(--space-1);flex:none}.toolbar .write{color:var(--color-accent)}.toolbar.dock{left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));z-index:var(--z-sticky);padding:var(--space-1) var(--space-2);background:var(--color-surface);border-top:var(--border-hairline) solid var(--color-rule);position:fixed}.toolbar.top{display:none}.conflict{margin-top:var(--space-4);align-items:center}.conflict .grow{font-size:var(--text-sm);flex:1}.layout{gap:var(--space-8);display:grid}.page{padding:var(--space-6) 0 var(--space-16)}.ai-note{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-ink-3);padding-bottom:var(--space-4);margin-bottom:var(--space-6);border-bottom:var(--border-hairline) solid var(--color-rule);align-items:flex-start;display:flex}.ai-note .i{width:15px;height:15px;margin-top:1px}.doc-title{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-tight);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 48;margin-bottom:var(--space-2);max-width:var(--measure);outline:none}.byline{font-size:var(--text-sm);color:var(--color-ink-3);margin-bottom:var(--space-8)}.doc-prose{color:var(--color-ink);font-variation-settings:"opsz" 14;outline:none;min-height:40vh}.doc-prose:focus-visible{outline:none}.doc-prose h2{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-tight);margin:var(--space-8) 0 var(--space-3);font-variation-settings:"opsz" 24}.doc-prose>h2:first-child{margin-top:0}.doc-prose h3{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);margin:var(--space-6) 0 var(--space-2)}.doc-prose h4{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-semibold);margin:var(--space-5) 0 var(--space-1)}.doc-prose p+p,.doc-prose p+ul,.doc-prose p+ol,.doc-prose ul+p,.doc-prose ol+p{margin-top:var(--space-4)}.doc-prose ul,.doc-prose ol{margin:var(--space-3) 0;padding-left:1.4em}.doc-prose li+li{margin-top:var(--space-1)}.doc-prose .hint{color:var(--color-ink-3);font-style:italic}.doc-prose blockquote{margin:var(--space-5) 0;padding-left:var(--space-5);color:var(--color-ink-2);font-style:italic;position:relative}.doc-prose blockquote:before{content:"";background:var(--color-rule-strong);width:1px;position:absolute;top:.3em;bottom:.3em;left:0}.doc-prose .cite{color:var(--color-ink-3);white-space:nowrap;border-radius:var(--radius-xs);font-style:normal}.doc-prose .cite[data-narrative]{color:inherit}.doc-prose .cite:hover{background:var(--color-sunken)}.doc-prose .table-block{margin:var(--space-5) 0;font-family:var(--font-sans);overflow-x:auto}.doc-prose .table-title{font-size:var(--text-sm);color:var(--color-ink-2);margin-bottom:var(--space-2);font-style:italic}.doc-prose table{font-size:var(--text-sm)}.doc-prose th{border-bottom-color:var(--color-rule-strong)}.doc-prose td{vertical-align:top}.doc-prose .opaque{margin:var(--space-4) 0;padding:var(--space-2) var(--space-3);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-ink-3)}.doc-prose .pending{align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-2);-webkit-user-select:none;user-select:none;flex-wrap:wrap;font-style:normal;display:flex}.doc-prose .pending-text{flex:1;min-width:12rem}.doc-prose .streaming{white-space:pre-wrap;color:var(--color-ink-2)}.doc-prose .streaming:after{content:"";background:var(--color-accent);vertical-align:-.2em;width:2px;height:1.15em;margin-left:1px;display:inline-block}.doc-prose.is-streaming{cursor:progress}.writing,.ai-error{margin-top:var(--space-4)}.side{display:none}.side h2,.side-sheet h2{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:0;margin-bottom:var(--space-2)}.outline{margin:0;padding:0;list-style:none}.outline li button{align-items:center;gap:var(--space-3);width:100%;min-height:40px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--color-ink-2);font-size:var(--text-sm);text-align:left;background:0 0;border:0;display:flex}.outline li button:hover{background:var(--color-sunken)}.outline li button[aria-current=true]{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-1)}.outline .st{border:1.5px solid var(--color-rule-strong);border-radius:50%;flex:none;place-items:center;width:18px;height:18px;display:grid}.outline .st.done{background:var(--color-moss);border-color:var(--color-moss);color:var(--color-paper)}.outline .st.done .i{width:12px;height:12px}.outline .st.part{border-color:var(--color-accent);background:linear-gradient(90deg, var(--color-accent) 50%, transparent 50%)}.outline .grow{flex:1;min-width:0}.outline small{font-size:var(--text-xs);color:var(--color-ink-3)}.refs{margin-top:var(--space-8)}.refs p,.ref-text{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-2);text-indent:-1.5em;margin-bottom:var(--space-2);overflow-wrap:anywhere;padding-left:1.5em;line-height:1.5}.refs .btn{margin-left:calc(var(--space-3) * -1)}.meta-block{margin-top:var(--space-8);padding-top:var(--space-4);border-top:var(--border-hairline) solid var(--color-rule);justify-items:start;gap:var(--space-2);display:grid}.due-edit{gap:var(--space-1);display:grid}.outcomes summary{cursor:pointer}.outcomes ul{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-ink-2);gap:var(--space-1);padding-left:1.2em;display:grid}.side-sheet .refs,.side-sheet .meta-block{margin-top:var(--space-6)}.doc-page .page{padding-bottom:calc(var(--space-16) + 48px)}@media (width>=768px){.main:has(.doc-page){padding:0 var(--space-6) var(--space-16)}.doc-bar{margin:0 calc(var(--space-6) * -1);padding:0 var(--space-4)}.toolbar.dock{display:none}.toolbar.top{z-index:var(--z-sticky);background:var(--color-paper);display:flex;position:sticky;top:56px}.doc-bar .export-label{display:inline}.doc-page .page{padding-bottom:var(--space-16)}}@media (width>=1100px){.main:has(.doc-page){padding:0 var(--space-8) var(--space-16)}.doc-bar{margin:0 calc(var(--space-8) * -1);padding:0 var(--space-6)}.layout{gap:var(--space-10);grid-template-columns:minmax(0,1fr) 17rem;max-width:66rem;margin:0 auto}.doc-page .page{background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);padding:var(--space-12) var(--space-16) var(--space-16);margin-top:var(--space-4);min-width:0}.side{padding-top:var(--space-6);align-self:start;max-height:calc(100dvh - 140px);display:block;position:sticky;top:120px;overflow-y:auto}.toolbar.top{max-width:66rem;margin:0 auto}}.doc-sheet .grab{width:36px;height:4px;margin:0 auto var(--space-3);border-radius:var(--radius-full);background:var(--color-rule-strong)}.doc-sheet{max-height:90dvh}@media (width>=768px){.doc-sheet-layer{padding:var(--space-6);justify-content:center;align-items:center}.doc-sheet{border-radius:var(--radius-lg);max-width:30rem;padding:var(--space-5) var(--space-6) var(--space-6)}.doc-sheet.wide{max-width:40rem}.doc-sheet .grab{display:none}}.refs-top{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.cite-opts{gap:var(--space-1);padding:var(--space-3);background:var(--color-sunken);border-radius:var(--radius-md);display:grid}.cite-opts .field{margin-bottom:0}.refs-list{margin-bottom:var(--space-4)}.ref-row{padding:var(--space-3) 0}.ref-row .row-actions{gap:var(--space-1)}.ref-form{display:grid}.versions{max-width:66rem}.versions-layout{gap:var(--space-6);display:grid}.version-row{text-align:left;width:100%;padding-left:var(--space-2);padding-right:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:0}.version-row .h3,.version-row .meta{display:block}.version-row.selected{background:var(--color-surface);box-shadow:var(--shadow-1)}.version-detail{gap:var(--space-5);align-content:start;display:grid}.version-preview{padding:var(--space-6);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-sm)}.version-preview .h2{margin-bottom:var(--space-4)}@media (width>=1100px){.versions-layout{grid-template-columns:20rem minmax(0,1fr)}}.sheet-body{padding-top:var(--space-6);max-width:66rem;margin:0 auto}.sheet-table .input{min-width:7rem;min-height:40px;font-size:var(--text-sm)}.sheet-table .input.num{width:6rem;min-width:5rem}.sheet-table .input.wide{min-width:16rem}.sheet-table .input.code{min-width:6rem}.sheet-table td{padding:var(--space-1) var(--space-1)}.add-row,.sheet-note{margin-top:var(--space-4)}.ai-note .link-button{font-size:inherit}.declaration-text{min-height:16rem;font-size:var(--text-sm);line-height:var(--leading-snug);resize:vertical}.declaration-actions{margin-top:var(--space-4);flex-wrap:wrap}.declaration-status{margin-top:var(--space-3)}.day-head{margin-bottom:var(--space-8)}.day-head .day-week{font-size:var(--text-sm);color:var(--color-ink-3);margin-bottom:var(--space-1)}.day-head .lede{margin-top:var(--space-3)}.overview-grid{gap:var(--space-10);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1100px){.overview-grid{gap:var(--space-12);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}}.timeline{margin:0;padding:0;list-style:none}.timeline>li{gap:var(--space-3);padding:var(--space-3) 0;border-top:var(--border-hairline) solid var(--color-rule);grid-template-columns:4.25rem 1fr;display:grid}.timeline>li:last-child{border-bottom:var(--border-hairline) solid var(--color-rule)}.timeline .time{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-ink-2);padding-top:2px}.timeline .time span{font-weight:var(--weight-regular);color:var(--color-ink-3);display:block}.timeline .what{gap:4px;min-width:0;display:grid}.timeline .where{align-items:center;gap:4px var(--space-3);font-size:var(--text-sm);color:var(--color-ink-3);flex-wrap:wrap;display:flex}.timeline .where .i{width:15px;height:15px;margin-right:2px}.timeline li.past{opacity:.62}.timeline li.now{border:0;height:0;padding:0;display:block;position:relative}.timeline li.now:before{content:"";background:var(--color-margin);height:2px;position:absolute;top:-1px;left:0;right:0}.timeline li.now span{background:var(--color-margin);color:var(--color-paper);border-radius:var(--radius-xs);letter-spacing:var(--tracking-wide);padding:0 6px;font-size:11px;font-weight:700;line-height:20px;position:absolute;top:-10px;left:0}.timeline li.now+li,.timeline li.now:last-child{border-top-color:#0000}.due{gap:var(--space-4);display:grid}.due .section-head{margin-bottom:0}.overview .sentence{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-relaxed)}.due .decks .row{min-height:48px;padding:var(--space-2) 0}.due .decks .n{font-weight:var(--weight-semibold)}.overview .actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.stamp{border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-surface);flex:none;place-items:center;width:48px;padding:4px 0 5px;line-height:1.1;display:grid}.stamp b{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium)}.stamp small{font-size:11px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-3)}.stamp.soon{border-color:var(--color-margin)}.stamp.soon small{color:var(--color-margin)}.deadline .block{display:block}.deadline .when{font-size:var(--text-sm);color:var(--color-ink-3)}.deadline .when.soon{color:var(--color-margin);font-weight:var(--weight-medium)}.tip .note p:first-child{font-family:var(--font-sans);font-style:italic;font-size:var(--text-md);line-height:var(--leading-relaxed)}.tip .small{margin-top:var(--space-2)}.overview .empty{justify-items:start;gap:var(--space-2);padding:var(--space-4) 0;border-top:var(--border-hairline) solid var(--color-rule);color:var(--color-ink-2);display:grid}.overview .empty .i{color:var(--color-ink-3)}.timer{gap:var(--space-3);display:grid}.timer .section-head{margin-bottom:0}.timer-form{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;display:grid}.timer-form .field{margin:0}.timer-form .btn{grid-column:1/-1;justify-self:start}.timer-running{gap:var(--space-3);display:grid}.push-row .note p{font-size:var(--text-sm)}.push-row .btn{margin-top:var(--space-1);margin-left:calc(-1 * var(--space-3))}.install-guide{gap:var(--space-4);margin-bottom:var(--space-8);padding:var(--space-5);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-1);display:grid}.install-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.install-head .meta{margin-top:var(--space-1)}.install-head .btn-icon{margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-2)) 0 0;flex:none}.install-steps{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}@media (width>=768px){.install-steps{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr))}}.install-steps>li{gap:var(--space-3);grid-template-columns:28px minmax(0,1fr);display:grid}.install-steps .step-no{background:var(--color-accent-soft);width:28px;height:28px;color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:50%;place-items:center;display:grid}.install-steps .done .step-no{background:var(--color-moss-soft);color:var(--color-moss)}.install-steps .step-body{gap:var(--space-2);justify-items:start;min-width:0;display:grid}.install-steps .step-body p{color:var(--color-ink-2)}.install-howto{gap:var(--space-1);color:var(--color-ink-2);margin:0;padding-left:1.25rem;display:grid}.install-done{justify-self:start}.presentations .back-link{align-items:center;gap:var(--space-1);min-height:32px;margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-ink-2);text-decoration:none;display:inline-flex}.presentations .back-link:hover{color:var(--color-ink)}.p-list-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.p-list-head>div{gap:var(--space-2);flex:20rem;display:grid}.p-row-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-snug);margin-bottom:2px;display:block}.empty-state{justify-items:start;gap:var(--space-3);padding:var(--space-6) 0;border-top:var(--border-hairline) solid var(--color-rule);color:var(--color-ink-2);max-width:var(--measure-narrow);display:grid}.empty-state>.i-lg{color:var(--color-ink-3)}.p-form{max-width:40rem}.p-form-grid{gap:0 var(--space-4);display:grid}@media (width>=640px){.p-form-grid{grid-template-columns:1fr 1fr}}.p-form-hint{margin:calc(-1 * var(--space-2)) 0 var(--space-4)}.p-form-actions{margin-top:var(--space-2)}@media (width<=767px){.p-form-actions .btn{flex:100%}}.p-status{margin-top:var(--space-3)}select.input{appearance:none;padding-right:var(--space-10);background-image:linear-gradient(45deg, transparent 50%, var(--color-ink-3) 50%), linear-gradient(135deg, var(--color-ink-3) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px}.link-button{color:var(--color-accent);text-underline-offset:.18em;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.segmented{margin:0 0 var(--space-5);border-radius:var(--radius-sm);background:var(--color-sunken);border:0;gap:2px;max-width:100%;padding:3px;display:inline-flex}.segmented label{flex:auto;position:relative}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{min-height:40px;padding:0 var(--space-4);border-radius:calc(var(--radius-sm) - 2px);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink-2);white-space:nowrap;justify-content:center;align-items:center;display:flex}.segmented input:checked+span{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-1)}.segmented input:focus-visible+span{outline:var(--focus-width) solid var(--color-focus);outline-offset:1px}.segmented input:disabled+span{opacity:.45}.p-head{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.p-head .t{flex:18rem;min-width:0}.p-head .t .meta{margin-top:var(--space-1)}.p-head .actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.p-head .export-state{text-align:right;flex:100%}@media (width<=767px){.p-head .actions{width:100%}.p-head .actions .btn{flex:1}.p-head .export-state{text-align:left}}.save-state{margin-left:var(--space-2);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.save-state.is-saved .i{color:var(--color-moss)}.save-state.is-error{color:var(--color-margin);white-space:normal}.ai-note{align-items:flex-start;gap:var(--space-2);margin:calc(-1 * var(--space-2)) 0 var(--space-6);font-size:var(--text-xs);color:var(--color-ink-3);max-width:var(--measure);display:flex}.ai-note .i{margin-top:1px}.studio{gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}.thumbs{gap:var(--space-3);padding:4px 4px var(--space-2);scroll-snap-type:x mandatory;margin:-4px;display:flex;overflow-x:auto}.thumb{scroll-snap-align:start;text-align:left;width:8.5rem;color:var(--color-ink-3);font-size:var(--text-xs);background:0 0;border:0;flex:none;gap:6px;padding:0;display:grid}.thumb .cap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.thumb[aria-current=true]{color:var(--color-ink);font-weight:var(--weight-semibold)}.thumb[aria-current=true] .mini{outline:2px solid var(--color-accent);outline-offset:2px}.mini{aspect-ratio:16/9;border-radius:var(--radius-xs);background:var(--slide-bg);border:var(--border-hairline) solid var(--color-rule);box-shadow:var(--shadow-1);align-content:start;gap:5px;padding:8% 9%;display:grid}.mini i{background:color-mix(in srgb, var(--slide-muted) 35%, var(--slide-bg));border-radius:2px;height:4px;display:block}.mini i.h{background:var(--slide-text);height:7px}.mini i.s{width:55%}.mini-title,.mini-section{align-content:center}.mini-section{background:var(--slide-surface)}.mini-title i.h{height:9px}.mini-quote{align-content:center}.mini-quote i{background:color-mix(in srgb, var(--slide-text) 55%, var(--slide-bg))}.mini-add{border-style:dashed;border-color:var(--color-rule-strong);box-shadow:none;color:var(--color-ink-3);background:0 0;place-items:center;display:grid}.thumb:hover .mini-add{color:var(--color-accent);border-color:var(--color-accent)}.slide-wrap{width:100%;container-type:inline-size}.slide{aspect-ratio:16/9;background:var(--slide-bg);width:100%;color:var(--slide-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-3);font-family:var(--slide-body-font,var(--font-sans));text-align:left;grid-template-rows:auto 1fr auto;gap:3cqw;padding:6cqw 7cqw 4.5cqw;display:grid;position:relative;overflow:hidden}.slide h2{font-family:var(--slide-heading-font,var(--font-display));font-weight:var(--weight-bold,700);letter-spacing:-.01em;font-variation-settings:"opsz" 60;max-width:80%;color:var(--slide-text);overflow-wrap:anywhere;font-size:4.6cqw;line-height:1.12}.slide-heading:after{content:"";background:var(--slide-accent);width:6cqw;height:.35cqw;margin-top:2.4cqw;display:block}.slide-bullets{align-content:start;gap:1.8cqw;max-width:82%;min-height:0;margin:0;padding:0;font-size:2.35cqw;line-height:1.35;list-style:none;display:grid;overflow:hidden}.slide-bullets li{padding-left:3cqw;position:relative}.slide-bullets li:before{content:"";background:var(--slide-muted);width:1.1cqw;height:1px;position:absolute;top:.62em;left:0}.slide-columns{grid-template-columns:1fr 1fr;gap:4cqw;min-height:0;display:grid}.slide-columns .slide-bullets{max-width:none;font-size:2cqw}.slide-footer{color:var(--slide-muted);justify-content:space-between;gap:2cqw;font-size:1.5cqw;display:flex}.slide-footer span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slide-title{grid-template-rows:1fr auto;padding-left:10cqw}.slide-title:before{content:"";background:var(--slide-accent);width:1.8cqw;position:absolute;inset:0 auto 0 0}.slide-title-block{align-self:end;gap:2cqw;display:grid}.slide-title h2{max-width:90%;font-size:6cqw}.slide-subtitle{color:var(--slide-muted);font-size:2.6cqw;line-height:1.3}.slide-byline{color:var(--slide-muted);font-size:1.6cqw}.slide-section{background:var(--slide-surface);grid-template-rows:1fr auto}.slide-section-block{border-left:.9cqw solid var(--slide-accent);align-self:center;gap:1.6cqw;padding-left:3cqw;display:grid}.slide-section h2{font-size:5.4cqw}.slide-quote{grid-row:1/3;align-self:center;gap:2.4cqw;margin:0;padding:0 4cqw;display:grid}.slide-quote p{font-family:var(--slide-heading-font,var(--font-display));font-variation-settings:"opsz" 48;font-size:3.6cqw;font-style:italic;line-height:1.3}.slide-quote cite{color:var(--slide-accent);font-size:2.2cqw;font-style:normal}.slide-button{border-radius:var(--radius-sm);cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.stage{gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}.stage-bar{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-top:calc(-1 * var(--space-2));flex-wrap:wrap;display:flex}.density{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-ink-3);flex:16rem;display:flex}.density .i{margin-top:1px}.density.is-ok .i{color:var(--color-moss)}.density.is-dense{color:var(--color-ochre)}.slide-tools{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.slide-tools .btn-small{margin-left:var(--space-2)}.btn.is-danger:not(:disabled):hover{color:var(--color-margin)}.notes{gap:var(--space-2);display:grid}.notes label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex}.notes label span{font-weight:var(--weight-regular);color:var(--color-ink-3);font-size:var(--text-xs);margin-left:auto}.notes textarea{resize:vertical;min-height:9rem;padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-relaxed);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-sm)}.notes textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.notes textarea::placeholder{color:var(--color-ink-3)}.p-section{padding-top:var(--space-5);border-top:var(--border-hairline) solid var(--color-rule)}.p-section>.h3{margin-bottom:var(--space-4)}.check{align-items:center;gap:var(--space-2);min-height:var(--tap-min);font-size:var(--text-sm);display:flex}.check input{width:18px;height:18px;accent-color:var(--color-accent)}.danger-zone{gap:var(--space-3);margin-top:var(--space-4);font-size:var(--text-sm);justify-items:start;display:grid}.danger-zone .btn-ghost.is-danger{color:var(--color-margin);padding-left:0}@media (width>=1100px){.studio{gap:var(--space-8);grid-template-columns:11rem minmax(0,1fr);align-items:start}.thumbs{flex-direction:column;margin:0;padding:2px 6px 2px 2px;overflow:visible}.thumb{grid-template-columns:1.25rem 1fr;align-items:start;width:100%}.thumb .n{padding-top:2px}.thumb .mini{grid-area:1/2}.thumb .cap{display:none}.stage{max-width:56rem}}@media (width<=1099px){.thumb .n{display:none}}.present{gap:var(--space-3);min-height:calc(100dvh - 2 * var(--space-4));grid-template-rows:auto 1fr auto auto;grid-template-columns:minmax(0,1fr);display:grid}.present-bar{align-items:center;gap:var(--space-2);display:flex}.present-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);color:var(--color-ink-2);flex:1;overflow:hidden}.present-stage{touch-action:pan-y;place-items:center;min-height:0;display:grid}.present-stage .slide-wrap{width:min(100%,177.778dvh - 19.5556rem)}.present-notes{max-width:var(--measure);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-ink-2);margin:0 auto}.present-nav{justify-content:center;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-ink-2);display:flex}.subjects{max-width:var(--content-max)}.subjects .back{align-items:center;gap:var(--space-2);min-height:var(--tap-min);margin:calc(var(--space-2) * -1) 0 var(--space-3);color:var(--color-ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none;display:inline-flex}.subjects .back:hover{color:var(--color-ink)}.subjects .row-title{font-weight:var(--weight-medium);line-height:var(--leading-snug);display:block}.subjects .row .meta{margin-top:2px;display:block}.subjects .static-row{display:flex}.subjects .dot{border-radius:50%;flex:none;width:10px;height:10px}.subjects .dot-lg{width:14px;height:14px}.subjects .with-dot{align-items:center;gap:var(--space-3);display:flex}.subjects .measure{max-width:var(--measure)}.subjects .section-intro{margin-bottom:var(--space-3)}.subjects .after-list{margin-top:var(--space-5)}.subjects .empty{justify-items:start;gap:var(--space-3);padding:var(--space-6) 0;border-top:var(--border-hairline) solid var(--color-rule);color:var(--color-ink-2);display:grid}.subjects .empty .i{color:var(--color-ink-3);width:var(--icon-lg);height:var(--icon-lg)}.subject-cols{grid-template-columns:minmax(0,1fr);display:grid}.subject-cols>.section{margin-top:0}@media (width>=1100px){.subject-cols{gap:var(--space-12);grid-template-columns:minmax(0,1fr) 320px;align-items:start}.subject-side>.section:first-child{margin-top:0}}.subjects .note{margin-bottom:var(--space-5);max-width:var(--measure);font-size:var(--text-sm);color:var(--color-ink-2)}.subjects .note-error,.subjects .note-error .i{color:var(--color-margin)}.term-group+.term-group{margin-top:var(--space-6)}.term-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-ink-2);display:flex}.danger-zone{border-top:var(--border-hairline) solid var(--color-rule);padding-top:var(--space-5)}.danger-zone .confirm{gap:var(--space-3);max-width:var(--measure);display:grid}.course-facts{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.outcome-group+.outcome-group{margin-top:var(--space-6)}.outcome-group .h3{margin-bottom:var(--space-2)}.outcomes{margin:0 0 var(--space-4);padding-left:1.2em}.outcomes li+li{margin-top:var(--space-2)}.outcomes li::marker{color:var(--color-ink-3)}.sources{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.sources a,.source-line a{align-items:center;gap:var(--space-1);display:inline-flex}.skolverket{max-width:var(--measure)}.skolverket>*+*{margin-top:var(--space-3)}.skolverket h2,.skolverket h3,.skolverket h4{margin-top:var(--space-6);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.skolverket ul,.skolverket ol{margin:var(--space-2) 0 0;padding-left:1.2em}.skolverket li+li{margin-top:var(--space-2)}.skolverket li::marker{color:var(--color-ink-3)}.skolverket strong{font-weight:var(--weight-semibold);background:var(--color-mark);border-radius:var(--radius-xs);padding:0 .15em}.skolverket.criteria h4:first-child{display:none}.small-prose{font-size:var(--text-base)}.source-line{line-height:var(--leading-normal)}.level-picker{gap:var(--space-2);padding-bottom:var(--space-2);margin-bottom:var(--space-3);scrollbar-width:none;display:flex;overflow-x:auto}.chip-button{min-height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-sm);border:var(--border-hairline) solid var(--color-rule-strong);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);font-weight:var(--weight-medium);flex:none}.chip-button:hover{background:var(--color-sunken)}.chip-button[aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.segmented{margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--color-sunken);gap:2px;padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-xs);min-width:44px;min-height:40px;color:var(--color-ink-2);font-weight:var(--weight-semibold);background:0 0;border:0}.segmented button[aria-pressed=true]{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-1)}.intro-details{margin-top:var(--space-4);max-width:var(--measure)}.intro-details summary{min-height:var(--tap-min);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;align-items:center;display:flex}.intro-details[open] summary{margin-bottom:var(--space-2)}.toc{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.toc a{min-height:var(--tap-min);font-size:var(--text-sm);font-weight:var(--weight-medium);align-items:center;text-decoration:none;display:flex}.refresh{gap:var(--space-3);border-top:var(--border-hairline) solid var(--color-rule);padding-top:var(--space-5);display:grid}.new-subject{max-width:44rem}.thread{gap:var(--space-5);padding-bottom:var(--space-4);display:grid}.msg-user{max-width:85%;padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg);white-space:pre-wrap;justify-self:end}.msg-ai{gap:var(--space-2);max-width:var(--measure);display:grid}.msg-ai .who{font-size:var(--text-xs);color:var(--color-ink-3);font-weight:var(--weight-semibold)}.msg-ai .body{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-relaxed)}.msg-ai .body>*+*{margin-top:var(--space-3)}.msg-ai .example{color:var(--color-ink-2);font-size:var(--text-base)}.thinking{font-style:italic}.proposal{border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.proposal header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);font-size:var(--text-sm);font-weight:var(--weight-semibold);flex-wrap:wrap;display:flex}.proposal header .i{color:var(--color-accent)}.proposal header span{font-weight:var(--weight-regular);color:var(--color-ink-3);font-size:var(--text-xs);margin-left:auto}.proposal-desc{padding:var(--space-3) var(--space-4) 0;font-size:var(--text-sm);color:var(--color-ink-2)}.proposal ul{margin:0;padding:0;list-style:none}.proposal>ul li{padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);font-size:var(--text-sm);gap:2px;display:grid}.proposal>ul li b{font-weight:var(--weight-semibold)}.proposal>ul li span{color:var(--color-ink-3)}.proposal .more{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-ink-3);border-bottom:var(--border-hairline) solid var(--color-rule)}.proposal-extra{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-rule);display:grid}.proposal-extra p{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.proposal-warnings{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-sunken);font-size:var(--text-sm);color:var(--color-ink-2);display:flex}.proposal-warnings .i{color:var(--color-ochre);margin-top:2px}.proposal-warnings li+li{margin-top:var(--space-1)}.proposal footer{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.proposal footer .btn-primary{margin-right:auto}@media (width<=599px){.proposal footer .btn{flex:1}.proposal footer .btn-primary{flex-basis:100%;margin-right:0}}.composer{bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding:var(--space-3) 0;background:linear-gradient(to bottom, transparent, var(--color-paper) 30%);position:sticky}@media (width>=768px){.composer{bottom:0}}.composer form{align-items:flex-end;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);display:flex}.composer form:focus-within{border-color:var(--color-accent)}.composer textarea{resize:none;min-height:44px;max-height:10rem;padding:10px var(--space-2);font-size:var(--text-base);background:0 0;border:0;flex:1;line-height:1.5}.composer textarea:focus{outline:none}.composer .send{border-radius:var(--radius-md)}.composer .small{margin-top:var(--space-2);text-align:center}.thread-end{scroll-margin-bottom:calc(200px + var(--tabbar-height) + env(safe-area-inset-bottom))}@media (width>=768px){.thread-end{scroll-margin-bottom:180px}}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/literata-latin-opsz-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata;font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/literata-latin-ext-opsz-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/literata-latin-opsz-italic.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata;font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/literata-latin-ext-opsz-italic.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:italic;font-weight:400 900;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-wght-italic.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:italic;font-weight:400 900;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-ext-wght-italic.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-display:"Manrope", var(--font-sans);--font-sans:"Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-3xl:3rem;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.65;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.02em;--measure:68ch;--measure-narrow:52ch;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--gutter:var(--space-4);--gutter-desktop:var(--space-10);--content-max:88rem;--rail-width:15.5rem;--rail-width-compact:4.5rem;--tabbar-height:4rem;--tap-min:3rem;--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--border-hairline:1px;--border-strong:1.5px;--focus-width:2px;--focus-offset:2px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-stroke:1.75;--duration-instant:80ms;--duration-fast:.14s;--duration-base:.22s;--duration-slow:.36s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.5, 0, .75, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--z-sticky:10;--z-nav:20;--z-overlay:30;--z-dialog:40;--z-toast:50;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-paper:#f6f1e8;--color-surface:#fcfaf5;--color-sunken:#eee7da;--color-overlay:#221e196b;--color-ink:#221e19;--color-ink-2:#544b41;--color-ink-3:#6a6055;--color-ink-inverse:#fcfaf5;--color-rule:#e0d7c8;--color-rule-strong:#958978;--color-accent:#2c4c7c;--color-accent-hover:#233e66;--color-accent-pressed:#1b3253;--color-on-accent:#fff;--color-accent-soft:#e2e8f0;--color-margin:#9e3a27;--color-margin-soft:#f4e0d8;--color-moss:#3b6342;--color-moss-soft:#e0eadb;--color-ochre:#7e5310;--color-mark:#f2e2b0;--cat-lecture-bg:var(--color-accent-soft);--cat-lecture-fg:var(--color-accent);--cat-seminar-bg:var(--color-moss-soft);--cat-seminar-fg:var(--color-moss);--cat-deadline-bg:var(--color-margin-soft);--cat-deadline-fg:var(--color-margin);--cat-exam-bg:var(--color-margin-soft);--cat-exam-fg:var(--color-margin);--cat-vfu-bg:var(--color-mark);--cat-vfu-fg:var(--color-ochre);--cat-own-bg:var(--color-sunken);--cat-own-fg:var(--color-ink-2);--color-focus:var(--color-accent);--color-selection:#ccd8ea;--shadow-color:34 30 25;--shadow-1:0 1px 2px rgb(var(--shadow-color) / .06), 0 1px 1px rgb(var(--shadow-color) / .04);--shadow-2:0 2px 6px rgb(var(--shadow-color) / .07), 0 8px 24px -8px rgb(var(--shadow-color) / .12);--shadow-3:0 6px 16px rgb(var(--shadow-color) / .1), 0 24px 48px -16px rgb(var(--shadow-color) / .22)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-paper:#0b0b0c;--color-surface:#161618;--color-sunken:#050506;--color-overlay:#000000a8;--color-ink:#ededed;--color-ink-2:#b8b8bc;--color-ink-3:#97979d;--color-ink-inverse:#0b0b0c;--color-rule:#28282b;--color-rule-strong:#6e6e74;--color-accent:#9fb8e0;--color-accent-hover:#b4c8e8;--color-accent-pressed:#c7d6ee;--color-on-accent:#15202f;--color-accent-soft:#1e2735;--color-margin:#e89c87;--color-margin-soft:#2b1a20;--color-moss:#9dc4a0;--color-moss-soft:#18241a;--color-ochre:#e1b866;--color-mark:#373525;--color-selection:#2c3b52;--cat-own-bg:#28282b;--shadow-color:0 0 0;--shadow-1:0 1px 2px #0000004d;--shadow-2:0 2px 6px #00000047, 0 10px 24px -8px #0006;--shadow-3:0 8px 20px #0000005c, 0 28px 56px -16px #0000008c}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-paper:#0b0b0c;--color-surface:#161618;--color-sunken:#050506;--color-overlay:#000000a8;--color-ink:#ededed;--color-ink-2:#b8b8bc;--color-ink-3:#97979d;--color-ink-inverse:#0b0b0c;--color-rule:#28282b;--color-rule-strong:#6e6e74;--color-accent:#9fb8e0;--color-accent-hover:#b4c8e8;--color-accent-pressed:#c7d6ee;--color-on-accent:#15202f;--color-accent-soft:#1e2735;--color-margin:#e89c87;--color-margin-soft:#2b1a20;--color-moss:#9dc4a0;--color-moss-soft:#18241a;--color-ochre:#e1b866;--color-mark:#373525;--color-selection:#2c3b52;--cat-own-bg:#28282b;--shadow-color:0 0 0;--shadow-1:0 1px 2px #0000004d;--shadow-2:0 2px 6px #00000047, 0 10px 24px -8px #0006;--shadow-3:0 8px 20px #0000005c, 0 28px 56px -16px #0000008c}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--duration-slow:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-paper);min-width:320px;color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-kerning:normal;-webkit-font-smoothing:antialiased;-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;margin:0}h1,h2,h3,p,figure{margin:0}h1,.title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 48;text-wrap:balance}h2,.h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 28;text-wrap:balance}h3,.h3{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}@media (width>=1100px){h1,.title{font-size:var(--text-2xl)}}a{color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}::selection{background:var(--color-selection);color:var(--color-ink)}:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset);border-radius:var(--radius-xs)}*{scrollbar-width:thin;scrollbar-color:var(--color-rule-strong) transparent}input,textarea,[contenteditable]{caret-color:var(--color-accent)}.visually-hidden,.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.i{width:var(--icon-md);height:var(--icon-md);vertical-align:middle;flex:none}.i-sm{width:var(--icon-sm);height:var(--icon-sm)}.i-lg{width:var(--icon-lg);height:var(--icon-lg)}.serif{font-family:var(--font-display)}.lede{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--color-ink-2);max-width:var(--measure-narrow);text-wrap:pretty}.prose{font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:var(--measure)}.meta{font-size:var(--text-sm);color:var(--color-ink-3);line-height:var(--leading-snug)}.small{font-size:var(--text-xs);color:var(--color-ink-3)}.muted{color:var(--color-ink-2)}.mark{background:var(--color-mark);border-radius:var(--radius-xs);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .2em}.num{font-variant-numeric:tabular-nums lining-nums}.error{color:var(--color-margin)}.success{color:var(--color-moss)}@media (width<=767px){.prose,.lede{-webkit-hyphens:auto;hyphens:auto}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-sm);border:var(--border-hairline) solid transparent;background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-1);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-instant) var(--ease-out);line-height:1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-accent-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-rule-strong);box-shadow:none}.btn-secondary:hover{background:var(--color-sunken)}.btn-ghost{color:var(--color-ink-2);box-shadow:none;background:0 0}.btn-ghost:hover{background:rgb(var(--shadow-color) / .06);color:var(--color-ink)}.btn-danger{color:var(--color-margin);box-shadow:none;background:0 0;border-color:currentColor}.btn-danger:hover{background:var(--color-margin-soft)}.btn-icon{width:var(--tap-min);padding:0}.btn-small{min-height:36px;padding:0 var(--space-3)}.btn-lg{min-height:52px;padding:0 var(--space-6);font-size:var(--text-base)}.btn-block{width:100%}.row-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{min-height:28px;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-sunken);color:var(--color-ink-2);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.chip.accent{background:var(--color-accent-soft);color:var(--color-accent)}.chip.margin{background:var(--color-margin-soft);color:var(--color-margin)}.chip.moss{background:var(--color-moss-soft);color:var(--color-moss)}.chip.ochre{background:var(--color-mark);color:var(--color-ochre)}.field{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.field label{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.field .hint{font-size:var(--text-sm);color:var(--color-ink-3)}.input{width:100%;min-height:48px;padding:0 var(--space-3);background:var(--color-surface);border:var(--border-hairline) solid var(--color-rule-strong);border-radius:var(--radius-sm);font-size:var(--text-base);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}textarea.input{padding:var(--space-3);min-height:96px}.input::placeholder{color:var(--color-ink-3)}.input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.input[aria-invalid=true]{border-color:var(--color-margin)}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-2);gap:var(--space-3);display:grid}.card>*{min-width:0}.stack{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.ruled{margin:0;padding:0;list-style:none}.ruled>li{border-top:var(--border-hairline) solid var(--color-rule)}.ruled>li:last-child{border-bottom:var(--border-hairline) solid var(--color-rule)}.row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) 0;color:inherit;text-decoration:none;display:flex}.row .grow{flex:1;min-width:0}.row .chev{color:var(--color-ink-3)}.section{margin-top:var(--space-10)}.section:first-child{margin-top:0}.section-head{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.section-head .h2{flex:1}.section-head a{font-size:var(--text-sm);font-weight:var(--weight-medium);text-decoration:none}.note{gap:var(--space-3);padding:var(--space-4);background:var(--color-sunken);border-radius:var(--radius-md);display:flex}.note .i{color:var(--color-ochre);margin-top:2px}.avatar{background:var(--color-moss-soft);width:36px;height:36px;color:var(--color-moss);font-weight:var(--weight-semibold);font-size:var(--text-sm);border:0;border-radius:50%;place-items:center;display:grid}.table-wrap{position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}th,td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:var(--border-hairline) solid var(--color-rule);vertical-align:middle}th{color:var(--color-ink-3);font-weight:var(--weight-semibold)}.meter{border-radius:var(--radius-full);background:var(--color-sunken);height:8px;overflow:hidden}.meter>span{background:var(--color-accent);height:100%;display:block}.meter.is-high>span{background:var(--color-margin)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-screen{min-height:100dvh;padding:var(--gutter);place-items:center;display:grid}.auth-screen .card{width:100%;max-width:26rem}.brand{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-md);color:var(--color-ink);text-decoration:none;display:flex}.brand img{width:28px;height:28px}.skip-link{left:var(--space-2);top:var(--space-2);z-index:var(--z-toast);padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-sm);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.app{min-height:100dvh}.main{min-width:0;max-width:var(--content-max);padding:var(--space-6) var(--gutter) calc(var(--tabbar-height) + env(safe-area-inset-bottom) + var(--space-8));padding-top:max(var(--space-6), env(safe-area-inset-top));margin:0 auto}.rail{display:none}.main{position:relative}.mobile-more{top:max(var(--space-5), env(safe-area-inset-top));right:var(--gutter);position:absolute}.mobile-more+* h1{padding-right:calc(36px + var(--space-3))}.tabbar{z-index:var(--z-nav);height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:var(--border-hairline) solid var(--color-rule);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.tabbar a{min-height:var(--tap-min);color:var(--color-ink-3);font-size:var(--text-xs);font-weight:var(--weight-medium);flex-direction:column;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex}.tabbar a .pill{border-radius:var(--radius-full);width:56px;height:28px;transition:background var(--duration-fast) var(--ease-out);place-items:center;display:grid}.tabbar a[aria-current=page]{color:var(--color-accent)}.tabbar a[aria-current=page] .pill{background:var(--color-accent-soft)}.sheet-layer{z-index:var(--z-dialog);align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{background:var(--color-overlay);border:0;position:absolute;inset:0}.sheet{width:100%;max-height:85dvh;padding:var(--space-4) var(--gutter) calc(var(--space-6) + env(safe-area-inset-bottom));background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-3);position:relative;overflow-y:auto}.sheet-head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.sheet .row{width:100%;color:var(--color-ink)}.sheet-logout{text-align:left;background:0 0;border:0}.sheet-theme{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.sheet-theme .grow{flex:1}@media (width>=768px){.tabbar,.mobile-more{display:none}.mobile-more+* h1{padding-right:0}.app{grid-template-columns:var(--rail-width-compact) minmax(0, 1fr);display:grid;position:relative}.app:before{content:"";width:var(--rail-width-compact);background:var(--color-sunken);border-right:var(--border-hairline) solid var(--color-rule);pointer-events:none;position:absolute;inset:0 auto 0 0}.main{width:100%;padding:var(--space-8) var(--space-8) var(--space-16)}.rail{gap:var(--space-1);height:100dvh;padding:var(--space-4) var(--space-3);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.rail .brand{height:40px;margin:0 0 var(--space-4);padding:0 var(--space-2)}.rail .brand .glyph{border-radius:var(--radius-sm);background:var(--color-accent);width:28px;height:28px;color:var(--color-on-accent);font-size:15px;font-weight:var(--weight-semibold);flex:none;place-items:center;display:grid}.rail-nav{gap:var(--space-1);flex-direction:column;display:flex}.rail .brand .word,.rail .label,.rail .count,.rail .rail-user,.rail .sub-list{display:none}.rail .item{justify-content:center;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink-2);font-weight:var(--weight-medium);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;text-decoration:none;display:flex}.rail .item:hover{background:rgb(var(--shadow-color) / .05);color:var(--color-ink)}.rail .item[aria-current=page]{background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-1)}.rail .item[aria-current=page] .i{color:var(--color-accent)}.rail .sep{background:var(--color-rule);height:1px;margin:var(--space-3) var(--space-2)}.rail .foot{gap:var(--space-1);margin-top:auto;display:grid}.rail .foot-row{gap:var(--space-1);display:grid}}@media (width>=1100px){.app{grid-template-columns:var(--rail-width) minmax(0, 1fr)}.app:before{width:var(--rail-width)}.main{padding:var(--space-10) var(--gutter-desktop) var(--space-16)}.rail{padding:var(--space-5) var(--space-4)}.rail .brand .word,.rail .label{display:inline}.rail .sub-list{display:block}.rail .item{justify-content:flex-start}.rail .foot-row{grid-template-columns:minmax(0,1fr) auto}.rail .rail-theme{justify-content:center;width:44px;padding:0}.rail .count{font-size:var(--text-xs);color:var(--color-ink-3);margin-left:auto;display:inline}.rail .rail-user{padding:0 var(--space-3);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.rail .sub-list a{align-items:center;gap:var(--space-3);min-height:36px;padding:0 var(--space-3) 0 var(--space-6);border-radius:var(--radius-sm);color:var(--color-ink-2);font-size:var(--text-sm);text-decoration:none;display:flex}.rail .sub-list a:hover{background:rgb(var(--shadow-color) / .05)}.rail .dot{border-radius:50%;flex:none;width:8px;height:8px}}.focus{min-height:100dvh;padding:max(var(--space-4), env(safe-area-inset-top)) var(--gutter) max(var(--space-4), env(safe-area-inset-bottom))}.page-header{gap:var(--space-2);margin-bottom:var(--space-8);display:grid}.placeholder{justify-items:start;gap:var(--space-3);padding:var(--space-6) 0;border-top:var(--border-hairline) solid var(--color-rule);color:var(--color-ink-3);display:grid}.admin-grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}
