:root{--purple-600:#8b5cf6;--purple-500:#9b7bf7;--purple-100:#eee9ff;--purple-50:#f6f3ff;--grad-primary:linear-gradient(135deg, #8b5cf6, #9b7bf7);--grad-primary-h:linear-gradient(90deg, #8b5cf6, #9b7bf7);--ink-900:#1d1d1f;--ink-700:#5c5b66;--ink-600:#6b6a75;--ink-500:#7a7a85;--ink-400:#8a8994;--ink-300:#9a99a3;--ink-250:#a5a4ae;--ink-200:#c2c1ca;--white:#fff;--bg-app:#fcfcfd;--border-subtle:#ede9f5;--red-500:#e5484d;--google-blue:#4285f4;--thumb-1:linear-gradient(135deg, #2d3a4a, #131a20);--thumb-2:linear-gradient(135deg, #4a3b2d, #1a1610);--thumb-3:linear-gradient(135deg, #2b3a34, #141b18);--thumb-4:linear-gradient(135deg, #3a4531, #161b12);--color-cta:var(--purple-600);--color-active:var(--purple-500);--color-link:var(--purple-500);--text-primary:var(--ink-900);--text-secondary:var(--ink-400);--text-tertiary:var(--ink-300);--surface-app:var(--bg-app);--surface-card:var(--white);--surface-selected:var(--purple-100);--surface-tint:var(--purple-50);--border-default:var(--border-subtle);--font-body:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-mono:ui-monospace, Menlo, monospace;--fs-largetitle:34px;--fs-title:24px;--fs-cardtitle:17px;--fs-body:15px;--fs-row:13.5px;--fs-caption:12.5px;--fs-footnote:11.5px;--fs-label:11px;--fs-micro:10px;--fw-heavy:800;--fw-bold:700;--fw-med:600;--ls-tight:-.01em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--screen-x:16px;--screen-top:74px;--radius-thumb:7px;--radius-tile:11px;--radius-row:15px;--radius-btn:16px;--radius-card:18px;--radius-card-lg:26px;--radius-pill:999px;--h-cta:54px;--h-chip:40px;--h-field:42px;--h-pill:34px;--h-toggle:28px;--shadow-card:0 8px 22px #5d4d8f0d;--shadow-row:0 4px 14px #5d4d8f14;--shadow-float:0 14px 34px #5d4d8f14;--shadow-cta:0 8px 20px #8b5cf640;--shadow-pill:0 6px 14px #8b5cf62e;--ease-pop:cubic-bezier(.2, .8, .2, 1);--ease-settle:cubic-bezier(.23, 1, .32, 1);--dur-press:.1s;--dur-bar:.3s}@media (prefers-color-scheme:dark){:root{--purple-100:#2b2440;--purple-50:#221d33;--ink-900:#f2f1f6;--ink-700:#cfced8;--ink-600:#b6b5c0;--ink-500:#a3a2ad;--ink-400:#9a99a5;--ink-300:#7e7d89;--ink-250:#6b6a75;--ink-200:#56555f;--white:#1c1b22;--bg-app:#131318;--border-subtle:#2a2833;--shadow-card:0 8px 22px #00000059;--shadow-row:0 4px 14px #00000059;--shadow-float:0 14px 34px #00000073}}.ds-btn{height:var(--h-cta);border-radius:var(--radius-btn);font-family:var(--font-body);font-size:16px;font-weight:var(--fw-bold);cursor:pointer;transition:transform var(--dur-press) ease-out;border:none;justify-content:center;align-items:center;gap:8px;padding:0 20px;display:inline-flex}.ds-btn:disabled{opacity:.5;cursor:default}.ds-btn:not(:disabled):active{transition:none;transform:scale(.97)}.ds-btn--primary{background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-cta)}.ds-btn--secondary{background:var(--surface-selected);color:var(--color-cta)}.ds-btn--outline{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-default)}.ds-btn--md{height:var(--h-pill);border-radius:var(--radius-pill);padding:0 15px;font-size:13px}.ds-btn--md.ds-btn--primary{box-shadow:var(--shadow-pill)}.ds-btn--block{width:100%}.ds-chip{height:var(--h-chip);border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-primary);font-family:var(--font-body);font-size:13px;font-weight:var(--fw-med);cursor:pointer;align-items:center;gap:7px;padding:0 16px;display:inline-flex}.ds-chip.is-selected{background:var(--surface-selected);color:var(--color-cta);border-color:#0000}.ds-chip__count{font-size:var(--fs-footnote);font-weight:var(--fw-heavy);color:var(--color-cta);font-variant-numeric:tabular-nums}.ds-badge{border-radius:var(--radius-pill);background:var(--color-cta);color:#fff;min-width:16px;height:16px;font-family:var(--font-body);font-size:9.5px;font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.ds-progress{border-radius:var(--radius-pill);background:var(--surface-selected);height:5px;overflow:hidden}.ds-progress__fill{border-radius:var(--radius-pill);background:var(--grad-primary-h);height:100%;transition:width var(--dur-bar) ease}.ds-toggle{width:46px;height:var(--h-toggle);border-radius:var(--radius-pill);cursor:pointer;background:#e4e3ea;border:none;padding:0;transition:background .16s;position:relative}.ds-toggle:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.ds-toggle[aria-pressed=true]{background:var(--color-cta)}.ds-toggle[aria-pressed=true]:after{left:20px}.ds-search{height:var(--h-field);background:var(--surface-card);box-shadow:var(--shadow-card);border-radius:14px;align-items:center;gap:8px;padding:0 12px;display:flex}.ds-search svg{flex:none}.ds-search input{min-width:0;font-family:var(--font-body);font-size:var(--fs-body);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.ds-card{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-4)}.ds-card--lg{border-radius:var(--radius-card-lg)}.ds-card--float{box-shadow:var(--shadow-float)}.ds-card--tint{background:var(--surface-tint);box-shadow:none}.ds-row{align-items:center;gap:var(--space-3);background:var(--surface-card);border-radius:var(--radius-row);box-shadow:var(--shadow-row);padding:12px 14px;display:flex}.ds-row__body{flex:1;min-width:0}.ds-row__title{font-size:var(--fs-row);font-weight:var(--fw-bold);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;line-height:1.35;overflow:hidden}.ds-row__sub{font-size:var(--fs-label);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.ds-shelf{background:var(--surface-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:left;cursor:pointer;border:none;align-items:center;gap:11px;padding:13px 14px;display:flex}.ds-shelf__icon{border-radius:var(--radius-tile);background:var(--surface-selected);width:36px;height:36px;color:var(--color-cta);flex:none;justify-content:center;align-items:center;display:flex}.ds-shelf__name{font-size:14px;font-weight:var(--fw-bold);color:var(--text-primary)}.ds-shelf__count{font-size:var(--fs-footnote);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:1px}.ds-shelf__delta{color:var(--color-cta);font-weight:var(--fw-med)}.ds-tabbar{padding:10px 20px calc(30px + env(safe-area-inset-bottom));position:relative}.ds-tabbar:before{content:"";border-top:.5px solid var(--border-default);-webkit-backdrop-filter:blur(16px)saturate(180%);background:#fcfcfdd9;position:absolute;inset:0}@media (prefers-color-scheme:dark){.ds-tabbar:before{background:#131318d9}}.ds-tabbar__items{justify-content:space-between;padding:0 4px;display:flex;position:relative}.ds-tab{color:var(--ink-300);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:0;display:flex}.ds-tab.is-active{color:var(--color-active)}.ds-tab__icon{position:relative}.ds-tab__icon .ds-badge{position:absolute;top:-4px;right:-9px}.ds-tab__label{font-size:var(--fs-micro);font-weight:var(--fw-med)}.ds-tab.is-active .ds-tab__label{font-weight:var(--fw-bold)}.tsumo{flex:none;display:block;overflow:visible}.tsumo-base{fill:var(--purple-100)}.tsumo-mid{fill:var(--purple-500)}.tsumo-head{fill:var(--purple-600)}.tsumo-blink,.tsumo-spark,.tsumo-z{transform-box:fill-box;transform-origin:50%}.tsumo-tilt,.tsumo-orbit{transform-box:view-box}@keyframes tsumo-floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes tsumo-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.12)}}.tsumo-float{animation:3.2s ease-in-out infinite tsumo-floaty}.tsumo-blink{animation:3.4s infinite tsumo-blink}@keyframes tsumo-twinkle{0%,to{opacity:.35;transform:scale(.55)}50%{opacity:1;transform:scale(1)}}.tsumo-spark{fill:var(--purple-500);animation:2.6s ease-in-out infinite tsumo-twinkle}@keyframes tsumo-drop-in{0%{opacity:0;transform:translateY(-46px)}10%{opacity:1}18%{transform:translateY(3px)}26%,to{opacity:1;transform:translateY(0)}}@keyframes tsumo-hop{0%,30%,to{transform:translateY(0)}12%{transform:translateY(-15px)}20%{transform:translateY(2px)}}.tsumo-drop{animation:tsumo-drop-in .8s var(--ease-pop) both}.tsumo-hop{animation:tsumo-hop .8s var(--ease-pop) both}@keyframes tsumo-jump{0%,45%,to{transform:translateY(0)}12%{transform:translateY(-20px)}24%{transform:translateY(0)}32%{transform:translateY(-9px)}40%{transform:translateY(0)}}.tsumo-jump{animation:tsumo-jump 1.4s var(--ease-pop) both}.tsumo--jump .tsumo-spark{animation-iteration-count:2}.tsumo-spark--l{fill:var(--purple-500)}.tsumo-spark--r{fill:var(--purple-600);animation-delay:.4s}@keyframes tsumo-tilt{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes tsumo-spin{to{transform:rotate(360deg)}}.tsumo-tilt{transform-origin:60px 60px;animation:2.4s ease-in-out infinite tsumo-tilt}.tsumo-orbit{fill:var(--purple-500);transform-origin:60px 40px;animation:3.6s linear infinite tsumo-spin}@keyframes tsumo-breathe{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.tsumo-halo{place-items:center;display:grid;position:relative}.tsumo-halo:before{content:"";border-radius:var(--radius-pill);background:radial-gradient(closest-side,#8b5cf62e,#8b5cf600);animation:2.8s ease-in-out infinite tsumo-breathe;position:absolute;inset:-13%}@keyframes tsumo-zzz{0%{opacity:0;transform:translateY(8px)}35%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.tsumo-doze{animation:4.6s ease-in-out infinite tsumo-floaty}.tsumo-z{fill:var(--ink-200);animation:2.6s ease-out infinite tsumo-zzz}.tsumo-z--2{animation-delay:.6s}.tsumo-z--3{animation-delay:1.2s}.toast-tsumo{align-items:center;gap:var(--space-3);width:min(21rem, calc(100vw - 2 * var(--screen-x)));background:var(--surface-card);color:var(--text-primary);border-radius:var(--radius-card);text-align:left;animation:tsumo-pop .5s var(--ease-pop) both;padding:11px 14px;display:flex;box-shadow:0 18px 44px #5d4d8f2e}@keyframes tsumo-pop{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.toast-tile{background:var(--surface-tint);border-radius:13px;flex:none;place-items:center;width:48px;height:48px;display:grid}.toast-said{min-width:0;line-height:1.45}.toast-said b{font-size:var(--fs-row);font-weight:var(--fw-bold);display:block}.toast-said span{font-size:var(--fs-label);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;display:block;overflow:hidden}.tsumo-wait{align-items:center;gap:var(--space-4);animation:tsumo-appear .24s var(--ease-pop) .5s both;flex-direction:column;display:flex}@keyframes tsumo-appear{0%{opacity:0}to{opacity:1}}.tsumo-hero{text-align:center;flex-direction:column;align-items:center;display:flex}.tsumo-hero .tsumo{margin-bottom:var(--space-2)}.tsumo-hero .empty{font-size:var(--fs-cardtitle);font-weight:var(--fw-heavy);color:var(--text-primary);margin:0}.tsumo-hero .small{margin:var(--space-1) 0 0;color:var(--text-secondary)}@media (prefers-reduced-motion:reduce){.tsumo *,.tsumo-halo:before,.tsumo-wait,.toast-tsumo{animation:none!important}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--surface-app);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0;line-height:1.7}input,button,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:var(--color-link);text-decoration:none}:focus-visible{outline:2px solid var(--color-cta);outline-offset:3px;border-radius:6px}.num,.tabular{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:active,.grade:active,.btn-sm:active,.mark-at:active{transform:none}.step-play[data-leaving]{filter:none;opacity:.5}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes settle{0%{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}.btn,.grade,.btn-sm,.mark-at{transition:transform var(--dur-press) var(--ease-pop)}.btn:active,.grade:active,.btn-sm:active,.mark-at:active{transition:none;transform:scale(.97)}#app{flex-direction:column;min-height:100dvh;display:flex}.pane{width:100%;max-width:34rem;padding:var(--space-5) var(--screen-x) var(--space-6);gap:var(--space-3);animation:rise .18s var(--ease-pop);flex-direction:column;flex:1;margin:0 auto;display:flex}.pane-center{justify-content:center;align-items:center}.brand{font-size:var(--fs-largetitle);font-weight:var(--fw-heavy);letter-spacing:var(--ls-tight);margin:0;line-height:1.25}.brand-sm{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--text-primary)}.lede{font-size:var(--fs-cardtitle);font-weight:var(--fw-bold);margin:0;line-height:1.4}.body{font-size:var(--fs-body);color:var(--text-secondary);margin:0}.small{font-size:var(--fs-caption);line-height:1.7}.muted{color:var(--text-tertiary)}.home-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.home-top nav{gap:var(--space-1);display:flex}.pane-actions{gap:var(--space-2);flex-direction:column;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--h-cta);padding:0 var(--space-5);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-primary);border-radius:var(--radius-btn);font-size:var(--fs-body);font-weight:var(--fw-bold);line-height:1.4;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-tint)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-cta);border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--grad-primary)}.btn-lg{font-size:16px}.btn-quiet{min-height:0;box-shadow:none;color:var(--color-link);padding:var(--space-2) 0;font-size:var(--fs-caption);font-weight:var(--fw-med);text-align:left;background:0 0;border:none;align-items:center;display:inline-flex}.btn-quiet:hover:not(:disabled){color:var(--color-cta);background:0 0}.input{width:100%;height:var(--h-field);border:1px solid var(--border-default);background:var(--surface-card);padding:0 var(--space-3);font-size:var(--fs-body);border-radius:14px}.input:focus{border-color:var(--color-cta);outline:none}textarea.input{height:auto;padding:var(--space-3);line-height:1.6}.callout{background:var(--surface-tint);border-radius:var(--radius-card);padding:var(--space-3) var(--space-4);font-size:var(--fs-caption)}.callout p{margin:0}.callout p+p{margin-top:var(--space-2)}.callout.is-warn{background:var(--surface-card);box-shadow:var(--shadow-card);border:1px solid var(--red-500)}.code{font-family:var(--font-mono);font-size:var(--fs-cardtitle);letter-spacing:.08em;margin:var(--space-1) 0 0;font-variant-numeric:tabular-nums}.steps{color:var(--text-secondary);font-size:var(--fs-caption);margin:0;padding-left:1.2rem}.steps li{margin-bottom:var(--space-1)}.import{align-items:flex-start;gap:var(--space-2);background:var(--surface-tint);border-radius:var(--radius-card);padding:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.import p{margin:0}.import .btn{text-align:center;align-self:stretch}.import.is-running{background:var(--surface-card);box-shadow:var(--shadow-card)}.import.is-warn{background:var(--surface-card);box-shadow:var(--shadow-card);border:1px solid var(--red-500)}.claim,.add{gap:var(--space-2);flex-wrap:wrap;align-items:flex-end;display:flex}.claim .input,.add .input{flex:1;min-width:12rem}.claim label{width:100%}.fields{gap:var(--space-2);flex-direction:column;display:flex}.field{justify-content:space-between;align-items:center;gap:var(--space-4);background:var(--surface-card);border-radius:var(--radius-row);box-shadow:var(--shadow-row);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);display:flex}.field span{color:var(--text-primary);font-size:var(--fs-body)}.field .input{width:8rem;box-shadow:none}.empty{text-align:center;color:var(--text-secondary);font-size:var(--fs-body);margin:0}.sess{width:100%;max-width:34rem;padding:var(--space-5) var(--screen-x) var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;margin:0 auto;display:flex}.sess-top{justify-content:space-between;align-items:center;display:flex}.dots{gap:5px;display:flex}.dot{background:var(--border-default);border-radius:50%;width:7px;height:7px}.dot.is-done{background:var(--color-cta)}.dot.is-now{background:var(--color-cta);transform:scale(1.5)}.sess-count{font-size:var(--fs-caption);font-weight:var(--fw-med);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.step{gap:var(--space-4);animation:settle .22s var(--ease-pop);flex-direction:column;flex:1;display:flex}.step-play[data-leaving]{opacity:.4;filter:blur(2px);pointer-events:none;transition:opacity .14s var(--ease-pop), filter .14s var(--ease-pop);animation:none}.step-actions{flex-direction:column;display:flex}.step-cue{text-align:center;justify-content:center;gap:var(--space-6)}.cue-kicker{font-size:var(--fs-label);font-weight:var(--fw-med);color:var(--text-tertiary);letter-spacing:.04em;margin:0}.cue{font-size:clamp(22px,5.5vw,28px);font-weight:var(--fw-heavy);letter-spacing:var(--ls-tight);text-wrap:balance;margin:0;line-height:1.55}.cue-src{font-size:var(--fs-footnote);color:var(--text-tertiary);margin:0}.stage{aspect-ratio:16/9;border-radius:var(--radius-card);background:#000;width:100%;position:relative;overflow:hidden}.stage iframe,.stage>div{border:0;width:100%;height:100%;position:absolute;inset:0}.play-meta{gap:var(--space-2);font-size:var(--fs-footnote);color:var(--text-tertiary);align-items:baseline;display:flex}.play-span{font-variant-numeric:tabular-nums;white-space:nowrap}.play-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.play-cue{font-size:var(--fs-cardtitle);font-weight:var(--fw-bold);margin:0;line-height:1.4}.play-extra{gap:var(--space-4);margin-top:auto;display:flex}.grades{gap:var(--space-2);display:grid}.grade{justify-content:space-between;align-items:baseline;gap:var(--space-3);border:1px solid var(--border-default);background:var(--surface-card);border-radius:var(--radius-row);padding:var(--space-3) var(--space-4);text-align:left;display:flex}.grade-label{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.grade b{font-size:var(--fs-body);font-weight:var(--fw-bold)}.grade small{color:var(--text-tertiary);font-size:var(--fs-footnote)}.grade-next{font-style:normal;font-size:var(--fs-footnote);font-weight:var(--fw-bold);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.grade:disabled{opacity:.45}.g-again:hover:not(:disabled),.g-soon:hover:not(:disabled),.g-ok:hover:not(:disabled){border-color:var(--color-cta)}.grade:active,.grade[data-chosen]{background:var(--surface-selected);color:var(--color-cta);border-color:#0000;transition:none}.grade[data-chosen] small,.grade[data-chosen] .grade-next{color:var(--color-cta)}.grades-hint{font-size:var(--fs-label);color:var(--text-tertiary);text-align:center;margin:0}.done{width:100%;max-width:34rem;padding:var(--space-5) var(--screen-x) var(--space-6);justify-content:center;align-items:center;gap:var(--space-2);text-align:center;animation:settle .22s var(--ease-pop);flex-direction:column;flex:1;margin:0 auto;display:flex}.done-kicker{font-size:var(--fs-caption);color:var(--text-tertiary);margin:0}.done-count{font-size:64px;font-weight:var(--fw-heavy);letter-spacing:var(--ls-tight);font-variant-numeric:tabular-nums;margin:0;line-height:1}.done-count small{font-size:var(--fs-cardtitle);font-weight:var(--fw-med);color:var(--text-tertiary);margin-left:var(--space-1)}.done-line{font-size:var(--fs-body);color:var(--text-secondary);margin:0}.done-catch{color:var(--text-primary)}.done-catch b{color:var(--color-cta)}.done-actions{gap:var(--space-2);width:100%;margin-top:var(--space-5);flex-direction:column;display:flex}.done-next{margin:var(--space-2) 0 0;font-size:var(--fs-footnote);color:var(--text-tertiary)}#toast{left:50%;bottom:calc(var(--space-5) + env(safe-area-inset-bottom));z-index:20;pointer-events:none;position:fixed;transform:translate(-50%)}.toast{background:var(--ink-900);color:var(--bg-app);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--fs-caption);font-weight:var(--fw-med);box-shadow:var(--shadow-float);animation:rise .18s var(--ease-pop)}.toast.is-error{background:var(--red-500);color:#fff;max-width:90vw}.lib-empty{padding:var(--space-6) 0;gap:var(--space-1)}.lib{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lib-row{align-items:center;gap:var(--space-3);background:var(--surface-card);border-radius:var(--radius-row);box-shadow:var(--shadow-row);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);display:flex}.lib-row.is-done{opacity:.72}.lib-meta{flex-direction:column;flex:1;min-width:0;display:flex}.lib-title{font-size:var(--fs-row);font-weight:var(--fw-bold);text-overflow:ellipsis;white-space:nowrap;line-height:1.35;overflow:hidden}.lib-sub{font-size:var(--fs-label);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.btn-sm{min-height:var(--h-pill);border:1px solid var(--border-default);background:var(--surface-card);border-radius:var(--radius-pill);font-size:13px;font-weight:var(--fw-bold);white-space:nowrap;justify-content:center;align-items:center;padding:0 15px;display:inline-flex}.btn-sm.btn-primary{box-shadow:var(--shadow-pill);border-color:#0000}.pane-study{gap:var(--space-3)}.btn-mark{letter-spacing:.1em;min-height:64px;font-size:18px}.mark-hint{margin:0}.marks{margin:0 0 var(--space-3);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.mark{align-items:center;gap:var(--space-2);display:flex}.mark-at{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);border-radius:var(--radius-tile);padding:6px var(--space-2);font-variant-numeric:tabular-nums;font-size:var(--fs-footnote);font-weight:var(--fw-med);white-space:nowrap}.mark-at:hover{border-color:var(--color-cta);color:var(--color-cta)}.mark-cue{flex:1;min-width:0}.mark-x{color:var(--text-tertiary);font-size:var(--fs-cardtitle);padding:var(--space-1) 6px;background:0 0;border:none;line-height:1}.mark-x:hover{color:var(--red-500)}.streak{text-align:center;font-size:var(--fs-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin:0}.done-week{color:var(--text-tertiary);font-size:var(--fs-caption);font-variant-numeric:tabular-nums}.digest-stage{position:relative}.titlecard{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center;background:var(--surface-card);border-radius:var(--radius-card);animation:rise .25s var(--ease-pop);flex-direction:column;display:flex;position:absolute;inset:0}.titlecard-text{font-size:clamp(17px,3.6vw,22px);font-weight:var(--fw-heavy);text-wrap:balance;margin:0;line-height:1.55}.titlecard-skip{padding:0}.forecast{gap:var(--space-2);flex-direction:column;display:flex}.fc-bars{align-items:flex-end;gap:3px;height:3.2rem;display:flex}.fc-bar{background:var(--surface-selected);border-bottom:2px solid var(--color-cta);border-radius:3px 3px 0 0;flex:1;position:relative}.fc-bar.is-over{border-bottom-color:var(--red-500)}.fc-bar em{font-style:normal;font-size:var(--fs-micro);color:var(--text-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:2px;position:absolute;top:100%;left:0}.nudge{background:var(--surface-tint);border-radius:var(--radius-card);padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.nudge p{font-size:var(--fs-caption);color:var(--text-secondary);margin:0}.topic{gap:var(--space-1);flex-direction:column;display:flex}.first-run{gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.first-run .empty{font-size:var(--fs-cardtitle);font-weight:var(--fw-bold);color:var(--text-primary)}.pane-sorting{gap:var(--space-5);max-width:56rem}.sort-head{gap:var(--space-2);flex-direction:column;display:flex}.step-of{font-size:var(--fs-label);font-weight:var(--fw-med);color:var(--text-tertiary);letter-spacing:.12em;font-variant-numeric:tabular-nums;margin:0}.sort-title{font-size:var(--fs-largetitle);font-weight:var(--fw-heavy);letter-spacing:var(--ls-tight);text-wrap:balance;margin:0;line-height:1.25}.shelves{gap:var(--space-2);grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(72px,11vw,118px);display:grid}.shelf{min-width:0;padding:var(--space-4);text-align:left;border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-card);color:var(--text-primary);cursor:pointer;animation:shelf-land .38s var(--ease-settle) both;border:none;flex-direction:column;justify-content:flex-end;gap:2px;display:flex}@keyframes shelf-land{0%{opacity:0;transform:translateY(-10px)scale(.96)}to{opacity:1;transform:none}}.shelf:active{transform:scale(.98)}.shelf-name{font-size:var(--fs-body);font-weight:var(--fw-bold);overflow-wrap:anywhere;line-height:1.35}.shelf-count{font-size:var(--fs-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.shelf[data-w="1"]{grid-column:span 1}.shelf[data-w="2"]{grid-column:span 2}.shelf[data-w="3"]{grid-column:span 3}.shelf[data-w="1"] .shelf-name{font-size:var(--fs-row)}.shelf[data-w="1"] .shelf-count{font-size:var(--fs-footnote)}.shelf-lead{background:var(--grad-primary);box-shadow:var(--shadow-cta);color:#fff;grid-area:span 2/span 3}.shelf-lead .shelf-name{font-size:var(--fs-title);font-weight:var(--fw-heavy)}.shelf-lead .shelf-count{font-size:var(--fs-row);color:#ffffffdb}.shelf-other{cursor:default;box-shadow:none;background:var(--surface-tint);grid-column:span 3}.shelf-other .shelf-count{font-size:var(--fs-footnote);color:var(--ink-600);white-space:normal;line-height:1.5}.sort-actions{gap:var(--space-2);padding-top:var(--space-4);text-align:center;flex-direction:column;align-items:stretch;margin-top:auto;display:flex}.sort-actions p{margin:0}@media (max-width:40rem){.shelves{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:76px}.shelf{padding:var(--space-3)}.shelf[data-w="1"],.shelf[data-w="2"]{grid-column:span 1}.shelf-lead,.shelf-other,.shelf[data-w="3"]{grid-column:span 2}.shelf-name,.shelf[data-w="1"] .shelf-name{font-size:var(--fs-row)}.shelf-count,.shelf[data-w="1"] .shelf-count{font-size:var(--fs-footnote)}.shelf-lead .shelf-name{font-size:var(--fs-cardtitle)}.shelf-lead .shelf-count{font-size:var(--fs-caption)}.sort-title{font-size:var(--fs-title)}}.chan-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chan{align-items:center;gap:var(--space-1) var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-row);background:var(--surface-card);box-shadow:var(--shadow-card);grid-template-columns:1fr auto auto;display:grid}.chan-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.chan-name{font-size:var(--fs-body);font-weight:var(--fw-bold);overflow-wrap:anywhere}.chan-why{font-size:var(--fs-footnote);color:var(--text-tertiary);line-height:1.5}.chan-count{font-size:var(--fs-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.chan-pick{align-items:center;gap:var(--space-2);min-width:9rem;height:var(--h-pill);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--surface-app);border:1px solid var(--border-default);font-size:var(--fs-caption);font-weight:var(--fw-med);cursor:pointer;justify-self:start;display:inline-flex;position:relative}.chan-pick:after{content:"";border-right:1.5px solid var(--text-tertiary);border-bottom:1.5px solid var(--text-tertiary);width:6px;height:6px;margin-left:auto;transform:translateY(-2px)rotate(45deg)}.chan-pick select{opacity:0;width:100%;height:100%;font:inherit;cursor:pointer;border:0;position:absolute;inset:0}.chan.is-changed{background:var(--surface-tint)}.chan.is-changed .chan-pick{background:var(--surface-selected);color:var(--color-cta);border-color:#0000}.chan.is-changed .chan-pick:after{border-color:var(--color-cta)}@media (max-width:40rem){.chan{grid-template-columns:1fr auto}.chan-pick{margin-top:var(--space-1);grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.shelf{animation:settle .2s var(--ease-pop) both;transform:none;animation-delay:0s!important}}.sort-invite{text-align:left;padding:var(--space-3) var(--space-4);border-radius:var(--radius-card);background:var(--surface-tint);color:var(--text-primary);cursor:pointer;transition:transform var(--dur-press) var(--ease-pop);border:none;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.sort-invite:active{transform:scale(.98)}.sort-invite-title{font-size:var(--fs-row);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.sort-invite-sub{font-size:var(--fs-footnote);color:var(--color-cta);font-weight:var(--fw-med)}.lib-search{align-items:center;display:flex;position:relative}.lib-search .input{padding-right:var(--space-6)}.lib-search .input::-webkit-search-cancel-button{display:none}.lib-search .mark-x{right:var(--space-2);position:absolute}.pills{gap:var(--space-2);margin:0 calc(var(--screen-x) * -1);padding:var(--space-1) var(--screen-x);scrollbar-width:none;display:flex;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pill{align-items:center;gap:var(--space-2);height:var(--h-pill);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-primary);font-size:var(--fs-caption);font-weight:var(--fw-med);white-space:nowrap;cursor:pointer;transition:transform var(--dur-press) var(--ease-pop), background-color var(--dur-press) var(--ease-pop);flex:none;display:inline-flex}.pill:active{transform:scale(.97)}.pill-n{color:var(--text-tertiary);font-variant-numeric:tabular-nums}.pill.is-on{background:var(--surface-selected);color:var(--color-cta);border-color:#0000}.pill.is-on .pill-n{color:var(--color-cta);opacity:.7}.lib-count{font-variant-numeric:tabular-nums;margin:0}.lib-empty-q{align-items:center;gap:var(--space-2);padding:var(--space-6) 0;text-align:center;flex-direction:column;display:flex}.lib-empty-q .empty{font-size:var(--fs-cardtitle);font-weight:var(--fw-bold)}.shelf-chip{align-items:center;gap:var(--space-1);max-width:100%;height:24px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--surface-tint);color:var(--color-cta);font-size:var(--fs-label);font-weight:var(--fw-med);white-space:nowrap;cursor:pointer;align-self:flex-start;margin-top:2px;display:inline-flex;position:relative}.shelf-chip:after{content:"";opacity:.6;border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transform:translateY(-2px)rotate(45deg)}.shelf-chip select{opacity:0;width:100%;height:100%;font:inherit;cursor:pointer;border:0;position:absolute;inset:0}.shelf-chip span{text-overflow:ellipsis;overflow:hidden}.shelf-chip.is-unfiled{background:var(--surface-app);color:var(--text-tertiary)}.lib-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lib-bar .lib-count{margin-right:auto}.shelf-chip.is-bulk{height:var(--h-pill);padding:0 var(--space-3);font-size:var(--fs-caption);background:var(--surface-selected);margin-top:0}.shelf-chip.is-busy{opacity:.5;cursor:default}.pane-shelf{gap:var(--space-4)}.review-line{align-items:center;gap:var(--space-3);width:100%;min-height:46px;padding:0 var(--space-4);border-radius:var(--radius-row);background:var(--surface-card);box-shadow:var(--shadow-card);color:var(--text-primary);text-align:left;border:none;display:flex}.review-line.is-due{background:var(--grad-primary);box-shadow:var(--shadow-cta);color:#fff;cursor:pointer;transition:transform var(--dur-press) var(--ease-pop)}.review-line.is-due:active{transform:scale(.98)}.review-what{font-size:var(--fs-row);font-weight:var(--fw-bold)}.review-when{font-size:var(--fs-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.review-line.is-due .review-when{color:#ffffffdb}.tiles{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));display:grid}.tile{align-items:baseline;gap:var(--space-2);min-height:62px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-card);color:var(--text-primary);text-align:left;cursor:pointer;transition:transform var(--dur-press) var(--ease-pop);border:none;display:flex}.tile:active{transform:scale(.98)}.tile-name{font-size:var(--fs-row);font-weight:var(--fw-bold);overflow-wrap:anywhere;line-height:1.35}.tile-n{font-size:var(--fs-caption);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.tile.is-other{box-shadow:none;border:1px dashed var(--border-default);background:0 0}
