.welcome{min-height:100vh;display:grid;place-items:center;padding:var(--space-4);background:var(--bg)}.welcome__card{width:100%;max-width:560px;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5) var(--space-4);background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.welcome__top{display:flex;align-items:center;justify-content:space-between}.welcome__step{font-size:var(--fs-sm);font-weight:700;color:var(--muted)}.welcome h1{margin:var(--space-3) 0 4px;font-size:var(--fs-xl)}.welcome section>.muted{margin:0 0 var(--space-3)}.choice-list{display:flex;flex-direction:column;gap:10px;margin-bottom:var(--space-3)}.choice{display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 16px;width:100%;background:var(--surface);color:var(--text);text-align:left;cursor:pointer;border:var(--border-w) solid var(--ink);border-radius:var(--radius-in-xl)}.choice:hover:not(:disabled){box-shadow:var(--shadow-sm)}.choice[aria-checked=true]{background:var(--cta-2);color:var(--ink-fixed);border-color:var(--ink-fixed);box-shadow:3px 3px 0 var(--ink-fixed)}.choice:disabled{cursor:not-allowed;color:var(--muted);border-style:dashed}.choice__mark{flex:none;display:grid;place-items:center;width:28px;height:28px;border:var(--border-w) solid currentColor;border-radius:50%;background:var(--surface)}.choice[aria-checked=true] .choice__mark{background:var(--cta);color:var(--ink-fixed);border-color:var(--ink-fixed)}.choice__text{flex:1;display:flex;flex-direction:column}.choice__text span{font-size:var(--fs-sm)}.welcome__actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:var(--space-3)}.account{position:relative}.account-skeleton{display:inline-block;width:120px;height:var(--target-min);border-radius:var(--radius-pill)}.account__btn{gap:8px;max-width:220px}.account__btn.is-error{border-color:var(--err);color:var(--err)}.account__avatar{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--feature);color:var(--on-feature);font-weight:700}.account__btn.is-error .account__avatar{background:var(--err)}.account__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account__menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:260px;display:grid;gap:4px;padding:var(--space-2);background:var(--modal);border:var(--border-w) solid var(--ink);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.account__who{display:grid;gap:2px;padding:var(--space-2);border-bottom:1px solid var(--border);margin-bottom:4px}.account__who b{overflow-wrap:anywhere}.account__error{margin:0;padding:var(--space-2);color:var(--err)}.account__item{display:flex;align-items:center;gap:8px;min-height:var(--target-min);padding:0 var(--space-2);border:0;border-radius:var(--radius-in-md);background:none;color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.account__item:hover,.account__item:focus-visible{background:var(--surface-2)}@media(max-width:720px){.account__name{display:none}}.searchbox{position:relative;width:100%}.searchbox__field{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 6px 0 14px;background:var(--input);border:var(--border-w) solid var(--ink);border-radius:var(--radius-pill)}.searchbox__field:focus-within{box-shadow:var(--shadow-sm)}.searchbox .searchbox__field input{flex:1;min-width:0;min-height:var(--target-min);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;font-size:var(--fs-md);color:var(--text)}.searchbox__field:focus-within{outline:3px solid var(--focus);outline-offset:3px}.searchbox__clear{flex:none;width:var(--target-min);height:var(--target-min);border:0;border-radius:50%;background:var(--surface-2);color:var(--text);cursor:pointer;font-weight:700}.searchbox__panel{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;background:var(--modal);border:var(--border-w) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:8px;max-height:min(70vh,520px);overflow-y:auto}.searchbox__note{margin:0;padding:12px;color:var(--muted)}.searchbox__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.searchbox__item{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:4px 4px 4px 10px;border-radius:var(--radius-in-lg);border:var(--border-w) solid transparent}.searchbox__item:hover,.searchbox__item.is-active{background:var(--surface-2);border-color:var(--ink)}.searchbox__han{font-size:var(--fs-lg);font-weight:800}.searchbox__text{display:flex;flex-direction:column;min-width:0}.searchbox__py{font-size:var(--fs-sm);color:var(--muted)}.searchbox__vi{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchbox__btn{display:grid;place-items:center;width:var(--target-min);height:var(--target-min);border:var(--border-w) solid var(--ink);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer}.searchbox__btn.is-saved{background:var(--yellow);color:var(--ink-fixed);border-color:var(--ink-fixed)}.searchbox__all{display:block;width:100%;min-height:var(--target-min);margin-top:8px;padding:0 12px;background:none;border:0;text-align:left;cursor:pointer;color:var(--text);font-weight:700;text-decoration:underline;text-underline-offset:3px}.searchbox--sheet .searchbox__panel{position:static;margin-top:12px;max-height:none;box-shadow:none}:root{--bg: #F5EEDC;--top: #EFE6D0;--surface: #FFFAEE;--surface-2: #ECE3CF;--tag: #ECE3CF;--modal: #F3EAD6;--input: #FBF5E6;--ink: #1A1A1A;--ink-fixed: #1A1A1A;--text: #1A1A1A;--muted: #5B5348;--border: #8E8576;--cta: #00B074;--cta-2: #B8E986;--banner: #FFB4B4;--feature: #1E4D51;--on-feature: #FFFFFF;--sec: #7CD9F1;--yellow: #FFD978;--gem-bg: #22264A;--focus: #1E4D51;--ok: #1A5E3F;--ok-bg: #DDF3E6;--err: #A3261B;--err-bg: #FDE8E4;--warn: #7A5200;--shadow-sm: 3px 3px 0 #1A1A1A;--shadow-md: 4px 4px 0 #1A1A1A;--shadow-lg: 6px 6px 0 #1A1A1A;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 48px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-pill: 9999px;--border-w: 2px;--target-min: 44px;--font-display: Fredoka, "Baloo 2", "Arial Rounded MT Bold", system-ui, sans-serif;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1B1A17;--top: #24221E;--surface: #24221E;--surface-2: #2E2B26;--tag: #2E2B26;--modal: #2E2B26;--input: #24221E;--ink: #F3EEE4;--ink-fixed: #1A1A1A;--text: #F3EEE4;--muted: #B9B0A2;--border: #7A7266;--cta: #00B074;--cta-2: #B8E986;--banner: #E89A9A;--feature: #1E4D51;--on-feature: #FFFFFF;--sec: #7CD9F1;--yellow: #FFD978;--gem-bg: #22264A;--focus: #7CD9F1;--ok: #6FD39A;--ok-bg: #163223;--err: #F59C92;--err-bg: #3A1A16;--warn: #F2C46B;--shadow-sm: 3px 3px 0 #000000;--shadow-md: 4px 4px 0 #000000;--shadow-lg: 6px 6px 0 #1A1A1A;color-scheme:dark}}:root[data-theme=dark]{--bg: #1B1A17;--top: #24221E;--surface: #24221E;--surface-2: #2E2B26;--tag: #2E2B26;--modal: #2E2B26;--input: #24221E;--ink: #F3EEE4;--ink-fixed: #1A1A1A;--text: #F3EEE4;--muted: #B9B0A2;--border: #7A7266;--cta: #00B074;--cta-2: #B8E986;--banner: #E89A9A;--feature: #1E4D51;--on-feature: #FFFFFF;--sec: #7CD9F1;--yellow: #FFD978;--gem-bg: #22264A;--focus: #7CD9F1;--ok: #6FD39A;--ok-bg: #163223;--err: #F59C92;--err-bg: #3A1A16;--warn: #F2C46B;--shadow-sm: 3px 3px 0 #000000;--shadow-md: 4px 4px 0 #000000;--shadow-lg: 6px 6px 0 #1A1A1A;color-scheme:dark}:root{--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 20px;--fs-xl: 28px;--fs-han: 56px;--radius-in-xl: 12px;--radius-in-lg: 10px;--radius-in-md: 8px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.5}.sgp-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;padding:var(--space-4)}.sgp-col{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.sgp-btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--target-min);padding:0 20px;border:var(--border-w) solid var(--ink);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font:600 14px/1 var(--font-sans);cursor:pointer;text-decoration:none}.sgp-btn:hover{box-shadow:var(--shadow-sm)}.sgp-btn.primary{background:var(--cta);color:var(--ink-fixed);border-color:var(--ink-fixed);box-shadow:3px 3px 0 var(--ink-fixed);font-weight:700}.sgp-btn.primary:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink-fixed)}.sgp-btn.primary:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink-fixed)}.sgp-btn.secondary{background:var(--sec);color:var(--ink-fixed);border-color:var(--ink-fixed);font-weight:700}.sgp-btn.big{min-height:56px;padding:0 32px;font-size:18px}.sgp-btn.danger{border-color:var(--err);color:var(--err)}@media(prefers-reduced-motion:reduce){.sgp-btn.primary:hover,.sgp-btn.primary:active{transform:none}}.sgp-card{background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-4)}.sgp-card.future{border-style:dashed;border-color:var(--border);box-shadow:none;background:transparent}.sgp-card.current{box-shadow:0 0 0 4px var(--banner),var(--shadow-md)}.sgp-eyebrow{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sgp-card h3{margin:0 0 12px;font-size:20px;line-height:1.25}.sgp-bar{height:12px;border:var(--border-w) solid var(--ink);border-radius:var(--radius-pill);background:var(--tag);overflow:hidden}.sgp-bar>i{display:block;height:100%;background:var(--cta);border-right:var(--border-w) solid var(--ink)}.sgp-feature{background:var(--feature);color:var(--on-feature);border:var(--border-w) solid var(--ink-fixed);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-5)}.sgp-feature .sgp-eyebrow{color:var(--cta-2)}.sgp-next{display:flex;align-items:center;gap:16px;max-width:620px;min-height:48px;padding:8px 8px 8px 24px;background:var(--banner);color:var(--ink-fixed);border:var(--border-w) solid var(--ink-fixed);border-radius:var(--radius-pill);box-shadow:3px 3px 0 var(--ink-fixed);text-decoration:none}.sgp-next .lbl{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sgp-next .what{display:block;font-weight:700;font-size:16px;line-height:1.3}.sgp-next .go{margin-left:auto;flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 16px;background:#fffdf8;border:var(--border-w) solid var(--ink-fixed);border-radius:var(--radius-pill);font-weight:700;font-size:14px}.sgp-next.done{background:var(--cta-2)}.sgp-seg{display:flex;gap:8px}.sgp-seg button{min-height:48px;padding:0 18px;border:var(--border-w) solid var(--ink);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);cursor:pointer;font:14px var(--font-sans)}.sgp-seg button b{font-size:20px}.sgp-seg button:hover{box-shadow:var(--shadow-sm)}.sgp-seg button[aria-checked=true]{background:var(--cta-2);color:var(--ink-fixed);border-color:var(--ink-fixed);box-shadow:3px 3px 0 var(--ink-fixed)}.sgp-fb{border-radius:var(--radius-sm);padding:var(--space-3);font-size:14px}.sgp-fb .ttl{margin:0 0 4px;font-weight:700;font-size:16px}.sgp-fb p{margin:4px 0 0}.sgp-fb.ok{background:var(--ok-bg);border:var(--border-w) solid var(--ok)}.sgp-fb.ok .ttl{color:var(--ok)}.sgp-fb.err{background:var(--err-bg);border:var(--border-w) solid var(--err)}.sgp-fb.err .ttl{color:var(--err)}.sgp-fb .lvl{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;padding:0 10px;line-height:22px;border-radius:var(--radius-pill);background:var(--surface);border:1.5px solid var(--ink)}.sgp-gem{position:relative;display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:var(--gem-bg);border:var(--border-w) solid var(--ink-fixed);box-shadow:2px 2px 0 var(--ink-fixed)}.sgp-gem svg{width:72%;height:72%}.sgp-gem b{position:absolute;right:-6px;bottom:-8px;font:700 15px/1 var(--font-display);color:#fff;-webkit-text-stroke:3px var(--ink-fixed);paint-order:stroke fill}.sgp-gem.lg{width:64px;height:64px;border-radius:16px}.sgp-gem.lg b{font-size:20px}.sgp-gem.sm{width:34px;height:34px;border-radius:10px}.sgp-gem.sm b{font-size:13px}.sgp-gem.locked{filter:grayscale(.85);opacity:.65}.sgp-toast{display:inline-flex;align-items:center;gap:16px;padding:14px 22px 14px 14px;background:var(--modal);color:var(--text);border:var(--border-w) solid var(--ink);border-radius:20px;box-shadow:var(--shadow-lg)}.sgp-toast p{margin:0}.sgp-toast .tt{font-weight:800;font-size:18px}.sgp-toast .tn{font-size:14px;color:var(--muted)}.sgp-task{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px 16px;border:var(--border-w) solid var(--ink);border-radius:var(--radius-md);background:var(--surface)}.sgp-task.done{background:var(--surface-2)}.sgp-chk{width:40px;height:40px;border:2.5px dashed var(--border);border-radius:12px;display:grid;place-items:center;color:var(--ink-fixed)}.sgp-chk.on{border:2.5px solid var(--ink);background:var(--cta)}.sgp-chk svg{width:26px;height:26px}.sgp-task p{margin:0}.sgp-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:4px!important}.sgp-tag{font-weight:700;border-radius:var(--radius-pill);padding:0 10px;line-height:20px;border:1.5px solid var(--ink-fixed);color:var(--ink-fixed)}.sgp-tag.lesson{background:var(--sec)}.sgp-tag.code{background:var(--cta-2)}.sgp-tag.review{background:var(--yellow)}.sgp-tag.note{background:var(--banner)}.sgp-task .lbl{font-weight:600}.sgp-act{display:flex;flex-direction:column;align-items:flex-end;gap:8px}*{box-sizing:border-box}html{scrollbar-gutter:stable}html{--font-han: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Heiti SC", sans-serif}body{margin:0;min-height:100vh;background-color:var(--bg);color:var(--text);font:16px/1.5 var(--font-sans)}a{color:inherit}button,input,select{font:inherit;color:inherit}h1,h2,h3{line-height:1.25}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.muted{color:var(--muted)}.han{font-family:var(--font-han)}.stack{display:flex;flex-direction:column;gap:var(--space-4);max-width:760px}.btn-row{display:flex;flex-wrap:wrap;gap:12px}.section-title{margin:0 0 var(--space-3);font-size:var(--fs-lg)}.task-list{display:flex;flex-direction:column;gap:12px;max-width:900px}input[type=text],input:not([type]),select{min-height:var(--target-min);padding:0 14px;background:var(--input);border:var(--border-w) solid var(--ink);border-radius:var(--radius-sm)}.sgp-btn[aria-disabled=true]{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.icon-btn{padding:0;width:var(--target-min);justify-content:center}.page-header{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-4)}.page-header h1{margin:0;font-size:var(--fs-xl)}.card-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.card-link{text-decoration:none;color:inherit;display:block;border-radius:var(--radius-lg)}.card-link .sgp-card{height:100%;transition:transform .12s,box-shadow .12s}.card-link .sgp-card .han{font-size:var(--fs-md);font-weight:500;color:var(--muted)}.progress{display:flex;align-items:center;gap:12px}.progress .sgp-bar{flex:1}.progress__text{font-size:var(--fs-sm);font-weight:700;white-space:nowrap;color:var(--muted)}.progress.is-stacked{flex-direction:column;align-items:stretch;gap:6px}.progress.is-stacked .sgp-bar{flex:none}.progress.is-stacked .progress__text{text-align:center}.progress__badge{margin-right:8px;padding:1px 8px;border:1.5px solid currentColor;border-radius:var(--radius-pill)}.word-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-width:900px}.word-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius-md)}.word-row__han{font-size:var(--fs-xl);font-weight:700;min-width:3em}.word-row__py{color:var(--muted)}.word-row__vi{flex:1;font-weight:600}@media(prefers-reduced-motion:no-preference){.card-link:hover .sgp-card{transform:translate(-1px,-1px);box-shadow:var(--shadow-lg)}.sgp-btn{transition:transform .1s,box-shadow .1s}}.skeleton{display:block;background:var(--surface-2);border-radius:var(--radius-in-md)}.skeleton-card{display:grid;gap:12px;box-shadow:none;border-style:dashed;border-color:var(--border)}@media(prefers-reduced-motion:no-preference){.skeleton{animation:skeleton-pulse 1.2s ease-in-out infinite}@keyframes skeleton-pulse{50%{opacity:.5}}}.dialog{max-width:440px;width:calc(100% - 32px);padding:var(--space-4);background:var(--modal);color:var(--text);border:var(--border-w) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.dialog::backdrop{background:#1a1a1a73}.dialog h2{margin:0 0 8px;font-size:var(--fs-lg)}.dialog__body{margin-bottom:var(--space-4)}.dialog__body p{margin:0}.dialog__actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.sgp-btn.danger.is-solid{background:var(--err);color:#fff;border-color:var(--ink-fixed);box-shadow:3px 3px 0 var(--ink-fixed)}.card-link .sgp-card{position:relative;padding-right:56px}.card-chevron{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:var(--fs-xl);line-height:1;color:var(--muted)}.breadcrumbs{list-style:none;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;font-size:var(--fs-sm);color:var(--muted)}.breadcrumbs a{color:var(--text);font-weight:600;text-decoration:underline;text-underline-offset:3px}.breadcrumbs a{min-height:var(--target-min);min-width:var(--target-min);justify-content:center;display:inline-flex;align-items:center}.text-link{color:var(--text);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}.text-link{display:inline-flex;align-items:center;min-height:var(--target-min)}.helper{margin:0;font-size:var(--fs-sm);color:var(--muted)}.widget{display:flex;flex-direction:column;gap:var(--space-3)}.widget__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.widget__title{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-lg)}.widget__tools{display:flex;align-items:center;gap:8px}.widget__link{display:grid;place-items:center;width:var(--target-min);height:var(--target-min);border:var(--border-w) solid var(--ink);border-radius:50%;text-decoration:none;font-weight:800;color:var(--text)}.widget__link:hover{box-shadow:var(--shadow-sm)}.page-header__title{display:flex;align-items:center;gap:var(--space-3)}.page-header__title img{flex:none}.toast-host{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:100;pointer-events:none}.toast{padding:12px 20px;font-weight:700;background:var(--ink);color:var(--bg);border-radius:var(--radius-pill);box-shadow:var(--shadow-md)}@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in .2s ease-out}@keyframes toast-in{0%{transform:translateY(12px);opacity:0}}}@media(max-width:720px){.toast-host{bottom:88px}}.back-btn{flex:none;width:48px;height:48px;border-radius:50%;border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);font-size:var(--fs-lg);font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm)}.back-btn:hover{transform:translate(-1px,-1px)}@media(max-width:720px){.page-header__title img{width:48px;height:48px}.page-header h1{font-size:var(--fs-lg)}}.setting-row{display:flex;align-items:center;gap:14px;min-height:56px;margin-bottom:8px;cursor:pointer}.setting-row>span{display:flex;flex-direction:column}.setting-row input[type=checkbox]{width:24px;height:24px;flex:none;accent-color:var(--cta);cursor:pointer}.setting-row input[type=range]{flex:1;max-width:320px;height:var(--target-min);accent-color:var(--cta)}.setting-row__label{min-width:80px;font-weight:600}.setting-row__value{min-width:48px;text-align:right}.setting-row.is-off{opacity:.5;cursor:not-allowed}.study-cta{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);max-width:900px;margin-top:var(--space-4);padding:10px 10px 10px var(--space-3);background:var(--surface);border:var(--border-w) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.study-cta__text{margin:0;font-weight:600}@media(max-width:720px){.study-cta{bottom:80px;padding:8px}.study-cta__text{display:none}.study-cta .sgp-btn{width:100%;justify-content:center}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);background-clip:padding-box;border:3px solid transparent;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--ink)}::-webkit-scrollbar-thumb:active{background-color:var(--cta)}::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-button{display:none}.drawer__panel::-webkit-scrollbar,.focus ::-webkit-scrollbar,.searchbox ::-webkit-scrollbar{width:10px}@supports (-moz-appearance: none){html,*{scrollbar-color:var(--border) transparent;scrollbar-width:thin}}.app{display:flex;min-height:100vh;max-width:1680px;margin:0 auto}.sidebar{position:sticky;top:0;height:100vh;flex:none;width:232px;padding:var(--space-3) 12px;background:var(--top);border-right:var(--border-w) solid var(--ink);display:flex;flex-direction:column;gap:var(--space-3);overflow:hidden;transition:width .2s ease}.sidebar.is-collapsed{width:76px}.sidebar__toggle{align-self:flex-end;flex:none;width:var(--target-min);height:var(--target-min);border-radius:50%;border:var(--border-w) solid var(--ink);background:var(--surface);color:var(--text);font-weight:800;cursor:pointer}.sidebar.is-collapsed .sidebar__toggle{align-self:center}.sidebar nav{display:flex;flex-direction:column;gap:var(--space-4)}.sidebar__group{display:flex;flex-direction:column;gap:6px}.sidebar__title{margin:0 0 2px 14px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.sidebar.is-collapsed .sidebar__title{visibility:hidden;height:0;margin:0}.sidebar__item{display:flex;align-items:center;gap:12px;min-height:var(--target-min);padding:0 14px;border-radius:var(--radius-pill);border:var(--border-w) solid transparent;text-decoration:none;font-weight:600;white-space:nowrap;color:var(--text)}.sidebar__item svg{flex:none}.sidebar__item:hover{border-color:var(--ink)}.sidebar__item.active{background:var(--banner);color:var(--ink-fixed);border-color:var(--ink-fixed);box-shadow:3px 3px 0 var(--ink-fixed)}.sidebar__label{transition:opacity .15s}.sidebar.is-collapsed .sidebar__item{padding:0;justify-content:center}.sidebar.is-collapsed .sidebar__label{opacity:0;width:0;overflow:hidden}.app__main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:grid;align-items:center;gap:var(--space-3);grid-template-columns:200px minmax(0,1fr) auto auto;grid-template-areas:"logo search next tools";padding:10px var(--space-4);background:var(--bg);border-bottom:var(--border-w) solid var(--ink)}.topbar__logo{grid-area:logo}.topbar__next{grid-area:next}.topbar__tools{grid-area:tools;display:flex;align-items:center;justify-content:flex-end;gap:8px}.topbar__search{grid-area:search;width:100%;max-width:640px}.topbar__search-btn{display:none}.logo{flex:none;text-decoration:none;color:var(--text);display:inline-flex;align-items:center;min-height:var(--target-min);font:700 var(--fs-xl)/1 var(--font-display)}.logo span{margin-left:6px;padding:2px 8px;font-size:var(--fs-sm);vertical-align:middle;background:var(--cta);color:var(--ink-fixed);border:var(--border-w) solid var(--ink-fixed);border-radius:var(--radius-pill)}.next__text{min-width:0}.next__text .what{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-skeleton{width:100%;max-width:620px;opacity:.5}.search-sheet{position:fixed;inset:0;z-index:60;overflow-y:auto;padding:var(--space-3);background:var(--bg)}.search-sheet__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.search-sheet__head h2{margin:0;font-size:var(--fs-lg)}.app__content{padding:var(--space-4)}@media(max-width:1100px){.topbar{grid-template-columns:auto minmax(0,1fr) auto auto}}@media(max-width:860px){.hide-sm{display:none}}@media(max-width:720px){.app{flex-direction:column-reverse}.sidebar,.sidebar.is-collapsed{position:sticky;bottom:0;top:auto;z-index:20;width:100%;height:auto;padding:6px;border-right:0;border-top:var(--border-w) solid var(--ink)}.sidebar__toggle{display:none}.sidebar nav{flex-direction:row;gap:0}.sidebar__group{display:contents}.sidebar__title,.desktop-only{display:none!important}.sidebar__item,.sidebar.is-collapsed .sidebar__item{flex:1;flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:4px 2px;font-size:var(--fs-xs);border-radius:var(--radius-md)}.sidebar.is-collapsed .sidebar__label{opacity:1;width:auto}.topbar{position:static;grid-template-columns:auto 1fr;grid-template-areas:"logo tools";padding:8px var(--space-3)}.topbar__next,.topbar__search{display:none}.topbar__search-btn{display:inline-flex}.topbar__tools{gap:6px}.topbar__logo{white-space:nowrap;font-size:var(--fs-lg)}.topbar__logo span{display:none}.app__content{padding:var(--space-3) var(--space-3) 96px}}.sgp-next .go{min-height:var(--target-min)}.next-pop{position:relative}.next-pop__btn{position:relative;gap:8px;background:var(--banner);color:var(--ink-fixed);border-color:var(--ink-fixed);font-weight:700}.next-pop__btn[aria-expanded=true]{box-shadow:inset 0 0 0 2px var(--ink-fixed)}.next-pop__btn.is-pending:after,.checkin.is-pending:after{content:"";position:absolute;top:-4px;right:-4px;width:14px;height:14px;background:var(--cta);border:var(--border-w) solid var(--ink-fixed);border-radius:50%}.next-pop__panel{position:absolute;top:calc(100% + 10px);right:0;z-index:30;width:340px;display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;background:var(--banner);color:var(--ink-fixed);border:var(--border-w) solid var(--ink-fixed);border-radius:var(--radius-lg);box-shadow:4px 5px 0 var(--ink-fixed)}.next-pop__panel.done{background:var(--cta-2)}.next-pop__panel .lbl{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.next-pop__panel .what{font-weight:700;font-size:var(--fs-md);line-height:1.35}.next-pop__panel .go{align-self:flex-end;margin-top:8px;display:inline-flex;align-items:center;min-height:var(--target-min);padding:0 18px;background:#fffdf8;color:var(--ink-fixed);border:var(--border-w) solid var(--ink-fixed);border-radius:var(--radius-pill);font-weight:700;text-decoration:none}.next-pop__panel .go:hover{box-shadow:2px 2px 0 var(--ink-fixed)}.checkin.is-pending{position:relative}.checkin.is-pending .flame{color:var(--muted)}.checkin.is-done,.checkin.is-done[aria-disabled=true]{opacity:1;background:#ffe9c7;color:#7a3b0c;border-color:#7a3b0c;cursor:default}.checkin.is-done b{font-size:var(--fs-md)}.checkin .flame{flex:none}@media(prefers-reduced-motion:no-preference){.checkin.is-done .flame{animation:flicker 2.4s ease-in-out infinite;transform-origin:50% 90%}}@keyframes flicker{0%,to{transform:scale(1) rotate(0)}40%{transform:scale(1.06,.97) rotate(-2deg)}70%{transform:scale(.97,1.04) rotate(2deg)}}:root[data-theme=dark] .checkin.is-done{background:#4a2e12;color:#ffd9a0;border-color:#ffb45c}.checkin{min-width:128px;justify-content:center}@media(max-width:860px){.checkin{min-width:0}}.sidebar__item.is-locked{color:var(--muted);cursor:not-allowed}.sidebar__item.is-locked:hover{border-color:transparent}.soon-tag{margin-left:4px;padding:1px 8px;font-size:var(--fs-xs);font-weight:700;border:1.5px solid var(--border);border-radius:var(--radius-pill)}.topbar__tools>*{flex:none}.topbar__logo{min-width:var(--target-min)}.logo__mascot{flex:none;width:48px;height:48px;margin-right:8px;object-fit:contain}.welcome .logo__mascot{width:56px;height:56px}@media(max-width:720px){.topbar__logo .logo__mascot{width:40px;height:40px;margin-right:6px}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .checkin.is-done{background:#4a2e12;color:#ffd9a0;border-color:#ffb45c}}
