@font-face{font-family:Fraunces;font-style:normal;font-weight:400 650;font-display:swap;src:url(/fonts/fraunces-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 650;font-display:swap;src:url(/fonts/fraunces-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 650;font-display:swap;src:url(/fonts/fraunces-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 650;font-stretch:85% 100%;font-display:swap;src:url(/fonts/instrument-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 650;font-stretch:85% 100%;font-display:swap;src:url(/fonts/instrument-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--brand: #1f5f5b;--on-brand: #ffffff;--bg: #f6f4ef;--bg-sunk: #efece5;--surface: #ffffff;--surface-2: #faf8f4;--surface-3: #f2efe8;--line: #e6e1d6;--line-2: #efebe3;--line-strong: #d4ccbd;--ink: #18201e;--ink-2: #3c4642;--muted: #68736e;--faint: #98a09b;--primary: var(--brand);--primary-hover: color-mix(in oklab, var(--brand) 86%, #000);--primary-soft: color-mix(in oklab, var(--brand) 10%, var(--surface));--primary-line: color-mix(in oklab, var(--brand) 28%, var(--surface));--primary-ink: color-mix(in oklab, var(--brand) 92%, #000);--accent: #a26c18;--accent-soft: #f6ecd9;--accent-line: #e7d2a8;--ok: #2e7a47;--ok-soft: #e5f2e8;--warn: #9c5f08;--warn-soft: #f9eed8;--bad: #b23a2f;--bad-soft: #f8e5e2;--info: #2a6496;--info-soft: #e3eef7;--series-1: #008573;--series-2: #c2701a;--series-3: #6a5acd;--series-4: #d14d78;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--grid: #ebe7de;--axis: #cfc8ba;--shadow-1: 0 1px 2px rgba(24, 32, 30, .05);--shadow-2: 0 1px 2px rgba(24, 32, 30, .04), 0 6px 18px -10px rgba(24, 32, 30, .18);--shadow-3: 0 24px 60px -24px rgba(24, 32, 30, .35), 0 6px 18px -8px rgba(24, 32, 30, .12);--r-1: 6px;--r-2: 10px;--r-3: 14px;--r-4: 20px;--r-pill: 999px;--serif: "Fraunces", "Iowan Old Style", Georgia, serif;--sans: "Instrument Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--ease: cubic-bezier(.2, .7, .2, 1);--rail-w: 252px;--top-h: 60px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--_dark: 1}}:root[data-theme=dark]{--_dark: 1}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0f1312;--bg-sunk: #0b0e0d;--surface: #161b1a;--surface-2: #1a201f;--surface-3: #212827;--line: #262e2c;--line-2: #1f2625;--line-strong: #33403c;--ink: #e8ede9;--ink-2: #bcc6c1;--muted: #8b9690;--faint: #67716c;--primary: color-mix(in oklab, var(--brand) 55%, #e8f3ef);--primary-hover: color-mix(in oklab, var(--brand) 45%, #ffffff);--primary-soft: color-mix(in oklab, var(--brand) 22%, var(--surface));--primary-line: color-mix(in oklab, var(--brand) 40%, var(--surface));--primary-ink: color-mix(in oklab, var(--brand) 35%, #ffffff);--on-brand: #0b1211;--accent: #d9a441;--accent-soft: #2b2312;--accent-line: #4a3a1a;--ok: #5cc27a;--ok-soft: #13261a;--warn: #e2a33c;--warn-soft: #2a2010;--bad: #f0796c;--bad-soft: #2e1715;--info: #6fa9dc;--info-soft: #132433;--series-1: #16917f;--series-2: #b8781f;--series-3: #8273e0;--series-4: #cc5a82;--grid: #232a29;--axis: #3a4542;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px -12px rgba(0, 0, 0, .7);--shadow-3: 0 28px 70px -24px rgba(0, 0, 0, .8)}}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1312;--bg-sunk: #0b0e0d;--surface: #161b1a;--surface-2: #1a201f;--surface-3: #212827;--line: #262e2c;--line-2: #1f2625;--line-strong: #33403c;--ink: #e8ede9;--ink-2: #bcc6c1;--muted: #8b9690;--faint: #67716c;--primary: color-mix(in oklab, var(--brand) 55%, #e8f3ef);--primary-hover: color-mix(in oklab, var(--brand) 45%, #ffffff);--primary-soft: color-mix(in oklab, var(--brand) 22%, var(--surface));--primary-line: color-mix(in oklab, var(--brand) 40%, var(--surface));--primary-ink: color-mix(in oklab, var(--brand) 35%, #ffffff);--on-brand: #0b1211;--accent: #d9a441;--accent-soft: #2b2312;--accent-line: #4a3a1a;--ok: #5cc27a;--ok-soft: #13261a;--warn: #e2a33c;--warn-soft: #2a2010;--bad: #f0796c;--bad-soft: #2e1715;--info: #6fa9dc;--info-soft: #132433;--series-1: #16917f;--series-2: #b8781f;--series-3: #8273e0;--series-4: #cc5a82;--grid: #232a29;--axis: #3a4542;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px -12px rgba(0, 0, 0, .7);--shadow-3: 0 28px 70px -24px rgba(0, 0, 0, .8)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;font-feature-settings:"ss01"}img,svg,video,canvas{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary-ink);text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}::selection{background:color-mix(in oklab,var(--brand) 25%,transparent)}h1,h2,h3{font-family:var(--serif);font-weight:560;letter-spacing:-.01em;line-height:1.18;color:var(--ink);font-optical-sizing:auto}h1{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.25rem)}h2{font-size:1.32rem}h3{font-size:1.08rem}h4{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}p{color:var(--ink-2)}small,.small{font-size:.85rem}.muted{color:var(--muted)}.faint{color:var(--faint)}.mono{font-family:var(--mono);font-size:.9em;letter-spacing:.02em}.num{font-variant-numeric:tabular-nums}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.stack{display:flex;flex-direction:column;gap:var(--gap, 12px)}.row{display:flex;align-items:center;gap:var(--gap, 10px);flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap;white-space:normal}.row.nowrap>*{min-width:0}.row.nowrap>.avatar,.row.nowrap>svg,.row.nowrap>.btn{flex:none}.spacer{flex:1}.grid-2{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:720px){.grid-2{grid-template-columns:minmax(0,1fr)}}.btn{--h: 38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--h);padding:0 14px;border-radius:var(--r-2);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:560;font-size:.92rem;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .08s}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn svg{width:17px;height:17px;flex:none}.btn--primary{background:var(--primary);border-color:transparent;color:var(--on-brand)}.btn--primary:hover{background:var(--primary-hover)}.btn--accent{background:var(--accent);border-color:transparent;color:#fff}.btn--ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn--ghost:hover{background:var(--surface-3);color:var(--ink)}.btn--danger{color:var(--bad);border-color:color-mix(in oklab,var(--bad) 35%,var(--surface))}.btn--danger:hover{background:var(--bad-soft)}.btn--danger.btn--solid{background:var(--bad);color:#fff;border-color:transparent}.btn--sm{--h: 32px;padding:0 10px;font-size:.85rem;border-radius:8px}.btn--lg{--h: 46px;padding:0 20px;font-size:1rem}.btn--icon{width:var(--h);padding:0}.btn--block{width:100%}.btn .spin{width:16px;height:16px}.link-btn{background:none;border:0;padding:0;color:var(--primary-ink);font-weight:560;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.label{font-size:.84rem;font-weight:600;color:var(--ink-2)}.field .hint,p.hint{font-size:.8rem;color:var(--muted)}.field .error-text,.error-text{font-size:.82rem;color:var(--bad);font-weight:500}.input,.select,.textarea{width:100%;min-height:40px;padding:8px 12px;border-radius:var(--r-2);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s}.textarea{min-height:96px;resize:vertical;line-height:1.5}.input:hover,.select:hover,.textarea:hover{border-color:color-mix(in oklab,var(--ink) 30%,var(--line-strong))}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--brand) 18%,transparent)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--bad)}.select{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2368736e' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.input-group{position:relative;display:flex;align-items:center}.input-group>svg{position:absolute;left:11px;width:17px;height:17px;color:var(--faint);pointer-events:none}.input-group>.input{padding-left:36px}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.92rem;color:var(--ink-2)}.check input{width:17px;height:17px;accent-color:var(--primary)}.form-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1 / -1}@media(max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--r-2);background:var(--surface-3);border:1px solid var(--line)}.segmented button{border:0;background:transparent;padding:5px 12px;border-radius:7px;font-weight:560;font-size:.86rem;color:var(--muted);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1)}.panel-pad{padding:20px}.panel-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.panel-head h2,.panel-head h3{font-size:1.05rem}.panel-body{padding:18px 20px}.panel-foot{padding:12px 20px;border-top:1px solid var(--line-2);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.callout{display:flex;gap:12px;padding:12px 14px;border-radius:var(--r-2);background:var(--info-soft);color:var(--ink-2);font-size:.9rem;align-items:flex-start}.callout svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--info)}.callout--warn{background:var(--warn-soft)}.callout--warn svg{color:var(--warn)}.callout--bad{background:var(--bad-soft)}.callout--bad svg{color:var(--bad)}.callout--ok{background:var(--ok-soft)}.callout--ok svg{color:var(--ok)}.pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:var(--r-pill);font-size:.74rem;font-weight:650;letter-spacing:.01em;white-space:nowrap;background:var(--surface-3);color:var(--ink-2)}.pill svg{width:12px;height:12px}.pill--ok{background:var(--ok-soft);color:var(--ok)}.pill--warn{background:var(--warn-soft);color:var(--warn)}.pill--bad{background:var(--bad-soft);color:var(--bad)}.pill--info{background:var(--info-soft);color:var(--info)}.pill--brand{background:var(--primary-soft);color:var(--primary-ink)}.pill--accent{background:var(--accent-soft);color:var(--accent)}.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:.75rem;font-weight:600;color:var(--muted);border:1px solid var(--line);background:var(--surface-2)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}.table th{position:sticky;top:0;z-index:1;text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;font-weight:650;color:var(--muted);background:var(--surface-2);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.table th.sortable{cursor:pointer;user-select:none}.table th.sortable:hover{color:var(--ink)}.table td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle;color:var(--ink-2)}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background .1s}.table tbody tr.clickable{cursor:pointer}.table tbody tr:hover{background:var(--surface-2)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table .cell-title{color:var(--ink);font-weight:600}.table .cell-sub{font-size:.8rem;color:var(--muted)}.table-foot{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line-2);font-size:.85rem;color:var(--muted);flex-wrap:wrap}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;padding:10px 14px;font-weight:600;font-size:.9rem;color:var(--muted);background:none;border:0;cursor:pointer;white-space:nowrap;text-decoration:none}.tab:hover,.tab[aria-selected=true],.tab.active{color:var(--ink)}.tab[aria-selected=true]:after,.tab.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--primary)}.tab .count{margin-left:6px;font-size:.75rem;color:var(--faint);font-weight:600}.progress{--v: 0%;position:relative;height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.progress:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--v);border-radius:99px;background:var(--primary);transition:width .5s var(--ease)}.progress--ok:after{background:var(--ok)}.progress--accent:after{background:var(--accent)}.progress--thin{height:4px}.ledger{display:grid;grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-1)}.ledger>div{padding:16px 20px;border-left:1px solid var(--line-2);min-width:0}.ledger>div:first-child{border-left:0}.ledger dt{font-size:.78rem;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px}.ledger dd{margin:4px 0 0;font-size:1.75rem;font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}.ledger dd small{font-size:.82rem;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:4px}.ledger .sub{margin-top:4px;font-size:.8rem;color:var(--muted)}.ledger .sub.up{color:var(--ok)}.ledger .sub.down{color:var(--bad)}@media(max-width:900px){.ledger{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger>div:nth-child(odd){border-left:0}.ledger>div:nth-child(n+3){border-top:1px solid var(--line-2)}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:42px 20px;color:var(--muted)}.empty .glyph{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--surface-3);color:var(--faint);margin-bottom:4px}.empty .glyph svg{width:24px;height:24px}.empty h3{font-family:var(--sans);font-size:1rem;font-weight:650;color:var(--ink)}.empty p{max-width:420px;font-size:.9rem;color:var(--muted)}.skeleton{background:linear-gradient(90deg,var(--surface-3),var(--surface-2),var(--surface-3));background-size:200% 100%;animation:shimmer 1.4s infinite linear;border-radius:8px}@keyframes shimmer{to{background-position:-200% 0}}.spin{width:22px;height:22px;border-radius:50%;border:2px solid color-mix(in oklab,currentColor 25%,transparent);border-top-color:currentColor;animation:rot .7s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.page-loading{display:grid;place-items:center;min-height:50vh;color:var(--primary)}.nav-progress{position:fixed;inset:0 0 auto;height:3px;z-index:100;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);opacity:0;background:linear-gradient(90deg,var(--primary),var(--accent))}.nav-progress[data-active]{opacity:1;animation:nav-progress 8s cubic-bezier(.1,.7,.2,1) forwards}@keyframes nav-progress{0%{transform:scaleX(.08)}to{transform:scaleX(.92)}}.learn-main>*,.admin-main>*{animation:page-in .26s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.dialog{border:0;padding:0;border-radius:var(--r-4);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-3);width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 32px)}.dialog--wide{width:min(860px,calc(100vw - 24px))}.dialog::backdrop{background:#0c100f73;backdrop-filter:blur(2px)}.dialog[open]{animation:pop .18s var(--ease);display:flex;flex-direction:column}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.985)}}.dialog-head{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 6px}.dialog-head h2{font-size:1.25rem}.dialog-body{padding:12px 22px 18px;overflow-y:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line-2);background:var(--surface-2);border-radius:0 0 var(--r-4) var(--r-4);flex-wrap:wrap}.drawer{position:fixed;inset:0 0 0 auto;width:min(640px,100vw);background:var(--surface);box-shadow:var(--shadow-3);z-index:60;display:flex;flex-direction:column;animation:slide .22s var(--ease)}.drawer-scrim{position:fixed;inset:0;background:#0c100f66;z-index:59}@keyframes slide{0%{transform:translate(24px);opacity:.4}}.drawer-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}.drawer-body{padding:18px 22px;overflow-y:auto;flex:1}.toasts{position:fixed;z-index:100;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-2);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-3);font-size:.9rem;animation:pop .2s var(--ease)}.toast svg{width:18px;height:18px;flex:none;margin-top:1px}.toast--ok svg{color:#6fd08e}.toast--bad svg{color:#ff8e82}.toast button{margin-left:auto;background:none;border:0;color:inherit;opacity:.7;cursor:pointer}.menu-wrap{position:relative}.menu{position:absolute;z-index:40;right:0;top:calc(100% + 6px);min-width:220px;padding:6px;border-radius:var(--r-2);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-3)}.menu a,.menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:7px;background:none;border:0;text-align:left;color:var(--ink-2);font-size:.9rem;text-decoration:none;cursor:pointer}.menu a:hover,.menu button:hover{background:var(--surface-3);color:var(--ink)}.menu svg{width:16px;height:16px;color:var(--muted)}.menu hr{border:0;height:1px;background:var(--line-2);margin:6px 0}.menu .menu-head{padding:8px 10px 10px;border-bottom:1px solid var(--line-2);margin-bottom:6px}.avatar{--s: 34px;width:var(--s);height:var(--s);border-radius:50%;display:grid;place-items:center;flex:none;font-size:calc(var(--s) * .38);font-weight:650;color:var(--primary-ink);background:var(--primary-soft);border:1px solid var(--primary-line)}.avatar--sm{--s: 28px}.avatar--lg{--s: 56px}.skip-link{position:absolute;left:-999px;top:8px;z-index:200;padding:8px 12px;background:var(--ink);color:var(--bg);border-radius:8px}.skip-link:focus{left:8px}.learn-top{position:sticky;top:0;z-index:30;height:var(--top-h);background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.learn-top-inner{max-width:1240px;margin:0 auto;height:100%;display:flex;align-items:center;gap:16px;padding:0 20px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--primary);color:var(--on-brand);display:grid;place-items:center;font-family:var(--serif);font-weight:650;font-size:1.05rem;flex:none;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:contain;background:#fff}.brand-logo{height:30px;width:auto;max-width:120px;object-fit:contain;flex:none}.brand-tag{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-left:10px;border-left:1px solid var(--line);line-height:1.2}.brand-name{font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:-.01em}.brand-name small{display:block;font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:-2px}.learn-nav{display:flex;gap:2px;margin-left:12px}.learn-nav a{padding:7px 12px;border-radius:8px;font-weight:600;font-size:.9rem;color:var(--muted);text-decoration:none}.learn-nav a:hover{color:var(--ink);background:var(--surface-3)}.learn-nav a.active{color:var(--ink);background:var(--surface);box-shadow:var(--shadow-1);border:1px solid var(--line);padding:6px 11px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.bell{position:relative}.bell .dot{position:absolute;top:6px;right:6px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--accent);color:#fff;font-size:.62rem;font-weight:700;display:grid;place-items:center;border:2px solid var(--bg)}.learn-main{max-width:1240px;margin:0 auto;padding:28px 20px 80px}@media(max-width:420px){.learn-top .brand-tag{display:none}}.mobile-tabbar{display:none}@media(max-width:860px){.learn-nav,.brand-name small{display:none}.mobile-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.mobile-tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.68rem;font-weight:600;color:var(--muted);text-decoration:none;padding:4px 0}.mobile-tabbar a.active{color:var(--primary-ink)}.mobile-tabbar svg{width:21px;height:21px}.learn-main{padding:20px 16px 96px}}.admin{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh}.rail{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 12px;gap:4px}.rail .brand{padding:4px 8px 14px}.rail-group{margin-top:12px}.rail-group>span{display:block;padding:6px 10px;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.rail a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-weight:560;font-size:.9rem}.rail a svg{width:18px;height:18px;color:var(--muted)}.rail a:hover{background:var(--surface-3);color:var(--ink)}.rail a.active{background:var(--primary-soft);color:var(--primary-ink)}.rail a.active svg{color:var(--primary-ink)}.rail-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:4px}.admin-top{position:sticky;top:0;z-index:20;height:var(--top-h);display:flex;align-items:center;gap:12px;padding:0 24px;background:color-mix(in oklab,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.admin-main{padding:26px 28px 80px;max-width:1400px;width:100%}.rail-toggle{display:none}@media(max-width:1024px){.admin{grid-template-columns:minmax(0,1fr)}.rail{position:fixed;z-index:70;left:0;top:0;bottom:0;width:280px;transform:translate(-100%);transition:transform .22s var(--ease);box-shadow:var(--shadow-3)}.rail.open{transform:none}.rail-toggle{display:inline-flex}.admin-main{padding:20px 16px 80px}.admin-top{padding:0 12px}}.page-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}.page-head .eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.page-head p{margin-top:6px;color:var(--muted);max-width:680px}.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.section{margin-top:30px}.section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-head h2{font-size:1.2rem}.section-head a,.section-head .link-btn{margin-left:auto;font-size:.88rem;font-weight:600}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar .input-group{flex:1 1 240px;max-width:360px}.toolbar .select{width:auto;min-width:150px}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:.86rem;font-weight:600;color:var(--muted);text-decoration:none;margin-bottom:14px}.back-link:hover{color:var(--ink)}.back-link svg{width:16px;height:16px}.hello{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:28px;align-items:stretch}@media(max-width:960px){.hello{grid-template-columns:minmax(0,1fr)}}.hello-copy .date{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.hello-copy h1{margin-top:8px;font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem);font-weight:520}.hello-copy h1 em{font-style:italic;color:var(--primary-ink)}.hello-copy p{margin-top:10px;font-size:1.02rem;max-width:520px}.next-up{position:relative;display:grid;grid-template-columns:140px minmax(0,1fr);gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-4);overflow:hidden;box-shadow:var(--shadow-2);text-decoration:none;color:inherit}.next-up .cover{border-radius:0;height:100%;min-height:168px}.next-up .body{padding:18px 20px;display:flex;flex-direction:column;gap:8px;min-width:0}.next-up .kicker{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.next-up h3{font-size:1.2rem}.next-up .meta{font-size:.84rem;color:var(--muted)}@media(max-width:520px){.next-up{grid-template-columns:minmax(0,1fr)}.next-up .cover{min-height:110px}}.cover{position:relative;overflow:hidden;border-radius:var(--r-2);background:var(--cv-bg);color:var(--cv-ink);aspect-ratio:auto}.cover svg{position:absolute;inset:0;width:100%;height:100%}.cover .cover-label{position:absolute;left:12px;bottom:10px;right:12px;font-family:var(--serif);font-weight:600;font-size:.95rem;line-height:1.2;color:var(--cv-ink);text-shadow:0 1px 0 color-mix(in oklab,var(--cv-bg) 60%,transparent)}.course-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.course-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden;text-decoration:none;color:inherit;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s}.course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}.course-card .cover{height:116px;border-radius:0}.course-card .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.course-card h3{font-size:1.04rem}.course-card .summary{font-size:.86rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-card .foot{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);flex-wrap:wrap}.learn-row{display:grid;grid-template-columns:92px minmax(0,1fr) 190px auto;gap:18px;align-items:center;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.learn-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-1)}.learn-row-title{color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.learn-row-title:hover{color:var(--primary-ink);text-decoration:underline}.learn-row-cover{display:block}.learn-row .cover{height:64px}.learn-row h3{font-size:1rem}.learn-row .meta{font-size:.82rem;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;align-items:center}.learn-row .prog{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:var(--muted)}@media(max-width:760px){.learn-row{grid-template-columns:64px minmax(0,1fr)}.learn-row .cover{height:64px}.learn-row .prog,.learn-row .go{grid-column:1 / -1}}.course-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}@media(max-width:960px){.course-hero{grid-template-columns:minmax(0,1fr)}}.course-hero .cover{height:190px;border-radius:var(--r-3)}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;font-size:.86rem}.facts dt{color:var(--muted);font-size:.75rem;font-weight:600}.facts dd{margin:2px 0 0;font-weight:600;color:var(--ink)}.outline{display:flex;flex-direction:column;gap:14px}.outline-module h3{font-family:var(--sans);font-size:.9rem;font-weight:700;display:flex;gap:10px;align-items:baseline}.outline-module h3 .idx{font-family:var(--serif);color:var(--accent);font-size:1.05rem}.lesson-link{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink-2)}.lesson-link:hover{background:var(--surface-3);color:var(--ink)}.lesson-link.active{background:var(--primary-soft);color:var(--primary-ink)}.lesson-link.locked{opacity:.55;pointer-events:none}.lesson-link .state{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-strong);color:var(--muted)}.lesson-link .state svg{width:13px;height:13px}.lesson-link .state.done{background:var(--ok);border-color:var(--ok);color:#fff}.lesson-link .t{font-size:.9rem;font-weight:560}.lesson-link .d{font-size:.76rem;color:var(--faint)}.prose{padding:28px clamp(18px,4vw,48px);max-width:760px;font-size:1.02rem;line-height:1.75;color:var(--ink-2)}.prose h1,.prose h2,.prose h3{margin:1.3em 0 .5em}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote{margin:0 0 1em}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin:.25em 0}.prose blockquote{border-left:3px solid var(--accent-line);padding-left:1em;color:var(--muted);font-style:italic}.prose code{font-family:var(--mono);font-size:.88em;background:var(--surface-3);padding:1px 5px;border-radius:5px}.prose strong{color:var(--ink)}.video-frame{position:relative;aspect-ratio:16 / 9;background:#000}.video-frame iframe,.video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}.html-frame{width:100%;min-height:70vh;border:0;background:#fff}.pdfv{background:#262c2a;outline:none;display:flex;flex-direction:column}.pdfv:focus-visible{box-shadow:inset 0 0 0 2px var(--primary)}.pdfv-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#1b201f;color:#e8ede9;flex-wrap:wrap}.pdfv-bar .btn{--h: 36px;background:#2c3431;border-color:#3a4441;color:#e8ede9}.pdfv-bar .btn:hover:not(:disabled){background:#3a4340}.pdfv-bar .btn:disabled{opacity:.35}.pdfv-count{display:inline-flex;align-items:center;gap:6px;font-size:.86rem;color:#c9d1cd;font-variant-numeric:tabular-nums}.pdfv-count input{width:3.2em;height:30px;text-align:center;border-radius:7px;border:1px solid #3a4441;background:#121615;color:#fff;font:inherit;font-size:16px}.pdfv-zoom{min-width:3.4em;text-align:center;font-size:.8rem;color:#c9d1cd;font-variant-numeric:tabular-nums}.pdfv-progress{height:3px;background:#1b201f}.pdfv-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .25s var(--ease)}.pdfv-stage{position:relative;display:block;padding:24px;max-height:min(80vh,820px);min-height:200px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y pinch-zoom}.pdfv-stage.is-zoomed{height:min(78vh,760px);touch-action:pan-x pan-y pinch-zoom}.pdfv-stage canvas{display:block;margin:auto;max-width:none;box-shadow:0 12px 34px #00000073;background:#fff;border-radius:4px;transition:opacity .15s}.pdfv-stage canvas.is-rendering{opacity:.85}.pdfv-edge{position:absolute;top:50%;translate:0 -50%;width:44px;height:88px;border:0;border-radius:12px;display:grid;place-items:center;cursor:pointer;color:#fff;background:#00000047;opacity:0;transition:opacity .2s}.pdfv-edge svg{width:26px;height:26px}.pdfv-edge--prev{left:8px}.pdfv-edge--next{right:8px}.pdfv-stage:hover .pdfv-edge:not(:disabled){opacity:1}.pdfv-edge:disabled{display:none}@media(pointer:coarse){.pdfv-edge{display:none}}.pdfv--focus{position:fixed;inset:0;z-index:200;height:100dvh}.pdfv--focus .pdfv-stage{flex:1;height:auto;min-height:0}.pdf-focus body{overflow:hidden}.pdfv-placeholder{height:320px;background:#262c2a}@media(max-width:640px){.pdfv-stage{padding:6px}.pdfv-bar{gap:4px;padding:6px 8px;flex-wrap:nowrap}.pdfv-zoom,.pdfv-bar [aria-label="Zoom in"],.pdfv-bar [aria-label="Zoom out"]{display:none}}.quiz{max-width:820px;margin:0 auto}.quiz-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.quiz-timer{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;background:var(--surface);border:1px solid var(--line);font-weight:650;font-variant-numeric:tabular-nums}.quiz-timer.low{background:var(--bad-soft);color:var(--bad);border-color:transparent}.q-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:22px}.q-card+.q-card{margin-top:14px}.q-num{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.q-prompt{margin:6px 0 14px;font-size:1.06rem;font-weight:600;color:var(--ink);line-height:1.5}.opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-2);cursor:pointer;transition:border-color .12s,background .12s}.opt+.opt{margin-top:8px}.opt:hover{border-color:var(--line-strong);background:var(--surface-2)}.opt input{margin-top:3px;width:17px;height:17px;accent-color:var(--primary);flex:none}.opt.chosen{border-color:var(--primary);background:var(--primary-soft)}.opt.right{border-color:var(--ok);background:var(--ok-soft)}.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.opt .why{font-size:.8rem;font-weight:650;margin-left:auto;white-space:nowrap}.quiz-nav{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.quiz-nav button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-weight:650;font-size:.84rem;cursor:pointer;color:var(--muted)}.quiz-nav button.answered{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary-ink)}.quiz-nav button.current{outline:2px solid var(--primary);outline-offset:1px;color:var(--ink)}.score-dial{--v: 0;width:148px;height:148px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--dial, var(--primary)) calc(var(--v) * 1%),var(--surface-3) 0)}.score-dial>div{width:118px;height:118px;border-radius:50%;background:var(--surface);display:grid;place-items:center;text-align:center}.score-dial b{font-size:2rem;font-weight:650;letter-spacing:-.03em;line-height:1}.score-dial span{font-size:.75rem;color:var(--muted);font-weight:600}.cert-list{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.cert-tile{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:var(--r-3);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:inherit;overflow:hidden}.cert-tile:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--primary),var(--accent))}.cert-tile h3{font-size:1.1rem}.cert-tile .code{font-family:var(--mono);font-size:.82rem;color:var(--muted);letter-spacing:.04em}.cert-tile.inactive{opacity:.72}.cert-tile.inactive:before{background:var(--line-strong)}.certificate{display:block;width:100%;height:auto;aspect-ratio:1123 / 794;border-radius:8px;box-shadow:var(--shadow-3);background:#fff}.cert-stage{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:start}.cert-frame{min-width:0}.cert-actions{position:sticky;top:calc(var(--top-h) + 16px);display:flex;flex-direction:column;gap:10px}.cert-linkedin{background:#0a66c2;border-color:transparent;color:#fff}.cert-linkedin:hover{background:#0958a8;color:#fff}.cert-verify{display:flex;gap:10px;align-items:flex-start;margin-top:8px;padding:12px;border-radius:var(--r-2);background:var(--ok-soft);color:var(--ok)}.cert-verify svg{flex:none;width:20px;height:20px}.cert-verify b{display:block;color:var(--ink);font-size:.9rem}.cert-verify .mono{color:var(--ink-2)}@media(max-width:900px){.cert-stage{grid-template-columns:minmax(0,1fr)}.cert-actions{position:static;display:grid;grid-template-columns:1fr 1fr}.cert-actions>.btn--lg{grid-column:span 2}.cert-actions .cert-verify,.cert-actions>.row{grid-column:span 2}}.verify{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 500px at 50% -10%,var(--primary-soft),transparent),var(--bg)}.verify-card{width:min(560px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-4);box-shadow:var(--shadow-2);padding:28px}.verify-status{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-2);font-weight:650}.verify-status svg{width:24px;height:24px}.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 16px;font-size:.9rem}.kv dt{color:var(--muted)}.kv dd{margin:0;color:var(--ink);font-weight:500;min-width:0;overflow-wrap:anywhere}.tree{display:flex;flex-direction:column}.tree-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line-2)}.tree-row:hover{background:var(--surface-2)}.tree-name{display:flex;align-items:center;gap:10px;min-width:0}.tree-name .indent{flex:none}.tree-name svg{width:16px;height:16px;color:var(--muted);flex:none}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}@media(max-width:1100px){.editor-layout{grid-template-columns:minmax(0,1fr)}}.module-block{border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface)}.module-block+.module-block{margin-top:14px}.module-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-2);background:var(--surface-2);border-radius:var(--r-3) var(--r-3) 0 0;flex-wrap:wrap}.lesson-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line-2)}.lesson-row:last-child{border-bottom:0}.kind-ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-3);color:var(--muted)}.kind-ico svg{width:15px;height:15px}.q-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line-2);align-items:start}.q-row .opts,.draft-list .opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.q-row .opts span,.draft-list .opts span{font-size:.78rem;padding:2px 8px;border-radius:6px;background:var(--surface-3);color:var(--muted)}.q-row .opts span.ok,.draft-list .opts span.ok{background:var(--ok-soft);color:var(--ok);font-weight:650}.opt-edit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.feed{display:flex;flex-direction:column}.feed-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2);align-items:start;font-size:.88rem}.feed-item:last-child{border-bottom:0}.feed-item .ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-3);color:var(--muted)}.feed-item .ico svg{width:15px;height:15px}.feed-item time{font-size:.76rem;color:var(--faint);white-space:nowrap}.diff{font-family:var(--mono);font-size:.78rem;background:var(--surface-2);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;color:var(--ink-2)}.notif{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-2);text-decoration:none;color:inherit}.notif:hover{background:var(--surface-2)}.notif .unread{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:7px}.notif .t{font-weight:600;color:var(--ink)}.notif .b{font-size:.86rem;color:var(--muted)}.notif time{font-size:.76rem;color:var(--faint);white-space:nowrap}.chart{position:relative}.chart svg{overflow:visible}.chart .tick{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}.chart .gridline{stroke:var(--grid);stroke-width:1}.chart .baseline{stroke:var(--axis);stroke-width:1}.chart-tip{position:absolute;z-index:5;pointer-events:none;min-width:140px;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-3);font-size:.8rem;color:var(--ink-2);transform:translate(-50%,calc(-100% - 10px));white-space:nowrap}.chart-tip b{color:var(--ink);display:block;margin-bottom:4px}.chart-tip .r{display:flex;align-items:center;gap:8px}.chart-tip .r span:last-child{margin-left:auto;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.key{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.key--line{width:14px;height:3px;border-radius:2px}.bar-list{display:flex;flex-direction:column;gap:10px}.bar-item{display:grid;grid-template-columns:minmax(120px,34%) minmax(0,1fr) 54px;gap:12px;align-items:center;font-size:.86rem}.bar-item .lbl{color:var(--ink-2)}.bar-item .track{height:10px;border-radius:0 4px 4px 0;background:var(--surface-3);position:relative;overflow:hidden}.bar-item .fill{position:absolute;inset:0 auto 0 0;border-radius:0 4px 4px 0;background:var(--series-1)}.bar-item .val{text-align:right;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.stackbar{display:flex;height:14px;border-radius:4px;overflow:hidden;gap:2px;background:var(--surface)}.stackbar>span{display:block;height:100%;min-width:2px}.dumbbell-row{display:grid;grid-template-columns:minmax(120px,30%) minmax(0,1fr) 70px;gap:12px;align-items:center;font-size:.86rem;padding:6px 0}.dumbbell-row .val{text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.chart-table summary{cursor:pointer;font-size:.8rem;color:var(--muted);font-weight:600;margin-top:10px}@media print{@page{size:A4 landscape;margin:0}body *{visibility:hidden!important}.certificate,.certificate *{visibility:visible!important}.certificate{position:fixed;inset:0;width:297mm;height:210mm;box-shadow:none;border-radius:0}.nav-progress,.mobile-tabbar{display:none!important}}.split{display:grid;gap:20px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}@media(max-width:1000px){.split{grid-template-columns:minmax(0,1fr)}}@media(max-width:860px){.hide-sm{display:none!important}}html{-webkit-tap-highlight-color:transparent}@media(pointer:coarse){.input,.select,.textarea{font-size:16px;min-height:44px}.btn{--h: 44px}.btn--sm{--h: 38px}.btn--lg{--h: 50px}.btn:active,.mobile-tabbar a:active{transform:scale(.97)}}@media(max-width:860px){.mobile-tabbar{background:color-mix(in oklab,var(--surface) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}.mobile-tabbar a{position:relative;min-height:50px;justify-content:center;border-radius:12px;transition:color .15s,transform .1s}.mobile-tabbar a.active:before{content:"";position:absolute;top:3px;width:44px;height:28px;border-radius:999px;z-index:-1;background:var(--primary-soft);animation:tab-pill .22s var(--ease)}.mobile-tabbar a{isolation:isolate}.learn-main{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}@keyframes tab-pill{0%{transform:scaleX(.4);opacity:0}}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.tpl-card{display:flex;flex-direction:column;gap:6px;padding:10px;text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:var(--r-3);border:1.5px solid var(--line);background:var(--surface);transition:border-color .15s,box-shadow .15s,transform .15s}.tpl-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.tpl-card[aria-checked=true]{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--brand) 16%,transparent)}.tpl-card .tpl-thumb{border-radius:6px;box-shadow:var(--shadow-1);pointer-events:none}.tpl-name{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:650}.tpl-blurb{font-size:.8rem;color:var(--muted);line-height:1.4}.sig-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sig-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:var(--r-2);border:1px solid var(--line-2)}.sig-list li.is-archived{opacity:.6}.sig-who{flex:1;min-width:0;display:flex;flex-direction:column}.sig-who b{font-weight:650}.sig-who>span{font-size:.84rem;color:var(--muted);display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.sig-thumb{flex:none;width:76px;height:38px;border-radius:8px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.sig-thumb img{max-width:100%;max-height:100%;object-fit:contain}.sig-thumb--empty{color:var(--faint);background:var(--surface-3)}.sig-thumb--empty svg{width:18px;height:18px}.signin-preview{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--r-3);background:linear-gradient(160deg,#cfe7f4,#fdf2df);color:#17201e}.signin-preview b{font-family:var(--serif);font-size:1.3rem;font-weight:560}.signin-preview span:last-child{color:#47524d;overflow-wrap:anywhere}.signin-preview .eyebrow{color:#6b7570}.logo-preview{height:44px;max-width:140px;object-fit:contain;background:#fff;border-radius:8px;border:1px solid var(--line);padding:4px}.dialog{margin:auto}@media(max-width:640px){.dialog,.dialog--wide{width:100%;max-width:100%;margin:auto 0 0;border-radius:22px 22px 0 0;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom)}.dialog[open]{animation:sheet-up .26s var(--ease)}.dialog-foot{border-radius:0}.dialog-foot .btn{flex:1}}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.4}}.result-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center}.result-title{font-size:clamp(1.4rem,1.1rem + 1.2vw,1.8rem)}.result-actions{flex-wrap:wrap}@media(max-width:600px){.result-hero{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;gap:18px}.result-hero .row{justify-content:center}.result-actions .btn{flex:1 1 100%}}.earned{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:14px 16px;border-radius:var(--r-3);text-decoration:none;color:inherit;background:linear-gradient(110deg,color-mix(in oklab,var(--accent) 16%,var(--surface)),var(--surface));border:1px solid var(--accent-line);animation:pop .4s var(--ease) both}.earned:hover{box-shadow:var(--shadow-2)}.earned-badge{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#f0b53a,#c7871b);box-shadow:0 6px 16px -6px #c7871b}.earned-badge svg{width:22px;height:22px}.earned-copy{flex:1;min-width:0;display:flex;flex-direction:column}.earned-copy b{font-size:1rem}.earned-copy span{color:var(--ink-2);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:520px){.earned{flex-wrap:wrap}.earned .btn{flex:1 1 100%}}.facts--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:520px){.facts--4{grid-template-columns:repeat(2,minmax(0,1fr))}}.focus-mode .mobile-tabbar{display:none}.focus-mode .learn-main{padding-bottom:32px}@media(max-width:760px){.course-hero .cover{height:110px}.toolbar>.tabs,.toolbar>.input-group{flex:1 1 100%;max-width:none}.tabs{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}}.lesson-heading{overflow-wrap:anywhere}.verify-card{max-width:100%}.verify-card pre{white-space:pre-wrap;word-break:break-all}.cert-tile--thumb{padding:12px 12px 16px}.cert-tile--thumb:before{display:none}.cert-thumb{box-shadow:var(--shadow-1);border-radius:6px;margin-bottom:4px;transition:transform .2s var(--ease)}.cert-tile--thumb:hover .cert-thumb{transform:translateY(-2px) rotate(-.4deg)}.cert-tile--thumb h3{font-size:1rem;min-width:0}@media(max-width:600px){.next-up .cover{min-height:0;height:72px}.ledger{grid-template-columns:repeat(4,minmax(0,1fr))}.ledger>div{padding:12px 8px;border-left:1px solid var(--line-2);border-top:0;text-align:center}.ledger>div:nth-child(odd){border-left:1px solid var(--line-2)}.ledger>div:nth-child(n+3){border-top:0}.ledger>div:first-child{border-left:0}.ledger dt{font-size:.66rem;justify-content:center;line-height:1.2}.ledger dd{font-size:1.35rem}.ledger .sub{display:none}}.grow{flex:1 1 220px;min-width:0}.pw-control .segmented{align-self:flex-start}.pw-eye{position:absolute;right:4px}.pw-result{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:var(--r-3);background:var(--accent-soft);border:1px solid var(--accent-line)}.pw-value{font-size:1.35rem;letter-spacing:.06em;color:var(--ink);overflow-wrap:anywhere;user-select:all}.sa-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sa-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-2)}.sa-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sa-who b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sa-who span{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}.codes-grid{list-style:none;margin:0;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;border-radius:var(--r-2);background:var(--surface-2);border:1px dashed var(--line-strong)}.codes-grid li{font-size:1.05rem;letter-spacing:.08em;text-align:center}.runbook{font-size:.86rem;color:var(--ink-2);border-top:1px dashed var(--line);padding-top:12px}.runbook summary{cursor:pointer;font-weight:600}.runbook ol{margin:8px 0 0;padding-left:20px;display:grid;gap:6px;line-height:1.5}.pw-head{display:flex;gap:14px;align-items:flex-start}.pw-head>.avatar{flex:none}.pw-head>div{min-width:0}.pw-head p{margin-top:4px;line-height:1.5}.pw-later{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:14px}.pw-nudge{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;padding:10px 14px;border-radius:var(--r-3);background:var(--accent-soft);border:1px solid var(--accent-line);font-size:.9rem}.pw-nudge>svg{flex:none;width:18px;height:18px;color:var(--accent)}.pw-nudge>span{flex:1 1 220px;min-width:0}@media(max-width:480px){.pw-head{flex-direction:column}.pw-nudge .btn{flex:1 1 100%}}.grid-2>*,.split>*,.form-grid>*,.course-hero>*,.lesson-layout>*,.editor-layout>*,.cert-stage>*,.hello>*{min-width:0}.lesson-page{--side-w: 300px}.lesson-top{position:sticky;top:var(--top-h);z-index:20;margin:-28px -20px 20px;padding:14px 20px 0;background:color-mix(in oklab,var(--bg) 92%,transparent);backdrop-filter:saturate(1.3) blur(10px);border-bottom:1px solid var(--line-2)}.lesson-top .progress{margin:12px -20px 0;border-radius:0}.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.82rem;color:var(--muted)}.crumbs a{color:var(--muted);text-decoration:none;font-weight:600}.crumbs a:hover{color:var(--primary-ink);text-decoration:underline}.lesson-title-row{display:flex;align-items:center;gap:14px;margin-top:6px}.lesson-kind{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink)}.lesson-kind svg{width:20px;height:20px}.lesson-kind--video{background:#e8f0fb;color:#2a5f9e}.lesson-kind--document{background:var(--accent-soft);color:var(--accent)}.lesson-kind--link{background:#eef3e6;color:#4a7a21}.lesson-title-text{flex:1;min-width:0}.lesson-heading{font-size:clamp(1.25rem,1rem + 1vw,1.7rem);line-height:1.2;overflow-wrap:anywhere}.lesson-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-size:.82rem;color:var(--muted)}.lesson-meta .ok{color:var(--ok);font-weight:650;display:inline-flex;align-items:center;gap:4px}.lesson-meta .ok svg{width:14px;height:14px}.lesson-tools{display:flex;gap:4px;flex:none}.lesson-layout{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);gap:24px;align-items:start}.lesson-side{position:sticky;top:calc(var(--top-h) + 120px);max-height:calc(100vh - var(--top-h) - 140px);overflow-y:auto;padding:8px}.lesson-side-head{display:flex;justify-content:space-between;align-items:baseline;padding:8px 10px 4px}.lesson-side-head b{font-size:1.1rem;color:var(--primary-ink)}.outline-module h3 .grow{flex:1;min-width:0}.outline-count{font-size:.74rem;color:var(--faint);font-weight:600}.lesson-link--quiz{border:1px dashed var(--accent-line);margin-top:2px}.lesson-link--quiz .state{border-color:var(--accent-line);color:var(--accent)}.contents-btn{display:none}.lesson-page.is-focus .lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-page.is-focus .lesson-side{display:none}.lesson-page.is-focus .lesson-stage{max-width:980px;margin:0 auto;width:100%}.lesson-page.is-focus .contents-btn{display:inline-flex}.lesson-stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-4);overflow:hidden;box-shadow:var(--shadow-1)}.lesson-stage-body{position:relative}.prose--reading{margin:0 auto;max-width:720px;font-size:1.08rem;line-height:1.8;padding-top:36px;padding-bottom:48px}.prose--reading>p:first-of-type{font-size:1.16rem;color:var(--ink)}.prose--reading h2{font-size:1.35rem;padding-top:.4em}.prose--reading h3{font-size:1.12rem}.prose--reading ul li::marker{color:var(--accent)}.prose--reading ol li::marker{color:var(--primary);font-weight:700}.prose--reading blockquote{font-style:normal;color:var(--ink);background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:0 12px 12px 0;padding:14px 18px}.prose--reading img{border-radius:12px}.resource-card{display:flex;align-items:center;gap:14px;margin:8px 0 16px;padding:16px;border-radius:var(--r-3);border:1px solid var(--line);background:var(--surface-2);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}.resource-card:hover{border-color:var(--primary-line);box-shadow:var(--shadow-2);transform:translateY(-1px)}.resource-card>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}.resource-icon{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink)}.resource-icon svg{width:22px;height:22px}.resource-go{flex:none;width:20px;height:20px;color:var(--muted)}.lesson-dock{position:sticky;bottom:0;z-index:25;display:flex;align-items:center;gap:10px;margin:20px -20px -80px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:color-mix(in oklab,var(--bg) 92%,transparent);backdrop-filter:saturate(1.3) blur(10px);border-top:1px solid var(--line-2)}.lesson-dock>:last-child{margin-left:auto}.lesson-dock-hint{flex:1;min-width:0;text-align:center;font-size:.84rem;color:var(--ok);font-weight:600}.lesson-dock .btn.is-ready{animation:ready-pulse 1.6s ease-in-out 3}@keyframes ready-pulse{50%{box-shadow:0 0 0 6px color-mix(in oklab,var(--brand) 22%,transparent)}}.module-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:clamp(32px,6vw,64px) 20px}.module-done-badge{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,var(--accent),#e9b45a);box-shadow:0 10px 26px -10px var(--accent);animation:pop .5s var(--ease) both}.module-done-badge svg{width:34px;height:34px}.module-done h2{font-size:1.6rem}.module-done p{max-width:46ch}.module-done-actions{justify-content:center;margin-top:8px}.sheet-backdrop{position:fixed;inset:0;z-index:80;background:#0c100f73;display:flex;align-items:flex-end;animation:fade .2s}.sheet{width:100%;max-height:82dvh;overflow-y:auto;background:var(--surface);border-radius:22px 22px 0 0;padding:8px 12px calc(16px + env(safe-area-inset-bottom));animation:sheet-up .26s var(--ease)}.sheet-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 6px;background:var(--surface);z-index:1}.sheet-head b{min-width:0;overflow-wrap:anywhere}@keyframes fade{0%{opacity:0}}@media(min-width:900px){.sheet-backdrop{align-items:stretch;justify-content:flex-start}.sheet{width:380px;max-height:none;border-radius:0 22px 22px 0}}@media(max-width:1024px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-side{display:none}.contents-btn{display:inline-flex}}@media(max-width:860px){.lesson-top{margin:-20px -16px 16px;padding:12px 16px 0}.lesson-top .progress{margin:10px -16px 0}.lesson-kind{display:none}.lesson-stage{border-radius:var(--r-3)}.lesson-dock{margin:16px -16px calc(-96px - env(safe-area-inset-bottom));bottom:calc(63px + env(safe-area-inset-bottom));padding:10px 16px}.lesson-dock-hint{display:none}}.fb-card{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:var(--r-4);background:linear-gradient(160deg,color-mix(in oklab,var(--accent) 8%,var(--surface)),var(--surface));border:1px solid var(--accent-line)}.fb-head{display:flex;gap:12px;align-items:flex-start}.fb-head>div{min-width:0}.fb-head h2{font-size:1.2rem}.fb-icon{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff}.fb-icon svg{width:20px;height:20px}.fb-row{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}.fb-label{font-weight:600;font-size:.92rem;color:var(--ink)}.fb-stars{display:flex;gap:2px}.fb-stars button{width:40px;height:40px;border:0;background:none;cursor:pointer;display:grid;place-items:center;color:var(--line-strong);border-radius:10px;transition:transform .12s,color .12s}.fb-stars button svg{width:26px;height:26px}.fb-stars button.on{color:#f0a52c}.fb-stars button.on svg{fill:currentColor}.fb-stars button:hover{transform:scale(1.12)}.fb-row--nps{flex-direction:column;align-items:stretch}.fb-nps{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}.fb-nps button{height:38px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-weight:650;font-size:.88rem;color:var(--ink-2)}.fb-nps button.on{background:var(--primary);border-color:var(--primary);color:var(--on-brand)}.fb-scale{display:flex;justify-content:space-between;font-size:.74rem;color:var(--muted)}.fb-card--done{flex-direction:row;align-items:center;gap:12px;color:var(--accent)}.fb-card--done>div{display:flex;flex-direction:column;color:var(--ink-2)}.fb-card--done b{color:var(--ink)}.fb-card--done svg{width:28px;height:28px;flex:none}@media(max-width:420px){.fb-stars button{width:36px;height:40px}.fb-nps{grid-template-columns:repeat(6,minmax(0,1fr))}}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e5484d;box-shadow:0 0 #e5484d99;animation:live-pulse 1.6s infinite}@keyframes live-pulse{70%{box-shadow:0 0 0 8px #e5484d00}to{box-shadow:0 0 #e5484d00}}.live-bar{position:sticky;top:var(--top-h);z-index:29;display:flex;align-items:center;gap:12px;padding:8px max(16px,calc((100vw - 1240px)/2 + 20px));background:#1b2422;color:#eef3f0}.live-bar--ended{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--accent-line)}.live-bar--ended>svg{color:var(--accent);flex:none}.live-pill{flex:none;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;background:#e5484d2e;color:#ff8a8d;font-size:.72rem;font-weight:800;letter-spacing:.08em}.live-bar-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25;font-size:.86rem}.live-bar-text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-bar-text span{opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-bar .btn{background:#ffffff1a;border-color:#ffffff2e;color:#fff}.live-bar--ended .btn:not(.btn--primary){background:transparent;color:var(--ink);border-color:transparent}.live-follow{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;cursor:pointer}.live-follow input{width:18px;height:18px;accent-color:#4fb3a9}.lesson-page .lesson-top{top:calc(var(--top-h) + var(--live-bar-h, 0px))}.join-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding:12px 16px;border-radius:var(--r-3);background:var(--surface);border:1px dashed var(--line-strong)}.join-strip-icon{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#fdecec;color:#c4373c}.join-strip-icon svg{width:20px;height:20px}.join-strip-text{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;font-size:.9rem}.join-strip-text span{color:var(--muted);font-size:.84rem}.join-form{display:flex;flex-direction:column;gap:6px}.join-row{display:flex;gap:8px}.join-row input{width:9.5em;height:46px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:1.25rem;font-weight:700;letter-spacing:.12em;text-align:center;font-variant-numeric:tabular-nums}.join-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--brand) 18%,transparent)}.join-row .btn{--h: 46px}.join-form--compact .join-row input{width:8.4em;height:40px;font-size:1.05rem}.join-form--compact .join-row .btn{--h: 40px}.join-page{min-height:60vh;display:grid;place-items:center}.join-card{width:min(440px,100%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;border-radius:var(--r-4);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2)}.join-card .join-row{justify-content:center}.join-badge{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#fdecec;color:#c4373c}.join-badge svg{width:30px;height:30px}.section-title{font-size:.8rem;font-family:var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:8px}.live-row{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border-radius:var(--r-3);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:inherit}.live-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-1)}.live-row.is-live{border-color:#f3c4c5}.live-row-main{flex:1;min-width:0;display:flex;flex-direction:column}.live-row-main span{font-size:.84rem;color:var(--muted)}.live-row-code{font-size:1.05rem;font-weight:700;letter-spacing:.1em}.live-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:8px 0 18px}.live-head h1{margin-top:6px;overflow-wrap:anywhere}.live-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}.live-join{display:flex;align-items:center;gap:20px;padding:18px;flex-wrap:wrap}.live-qr{flex:none;background:#fff;border-radius:12px;padding:6px}.live-qr svg{width:100%;height:100%;display:block}.live-join-text{display:flex;flex-direction:column;gap:8px;min-width:0}.live-code{font-size:clamp(2rem,1.4rem + 2vw,2.8rem);font-weight:800;letter-spacing:.14em;color:var(--ink);line-height:1}.live-steps{display:flex;flex-direction:column;gap:12px}.live-module{border:1px solid var(--line-2);border-radius:var(--r-3);padding:10px}.live-module.is-current{border-color:var(--primary-line);background:color-mix(in oklab,var(--primary-soft) 55%,transparent)}.live-module-head{display:flex;align-items:center;gap:10px}.live-module-head .idx{font-family:var(--serif);color:var(--accent);font-weight:600}.live-module-head .grow{flex:1;min-width:0}.live-module ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}.live-module li button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:9px;background:transparent;cursor:pointer;text-align:left;font:inherit;font-size:.9rem;color:var(--ink-2)}.live-module li button>span:first-of-type{flex:1;min-width:0}.live-module li button svg{width:16px;height:16px;flex:none;color:var(--muted)}.live-module li button:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.live-module li button.on{background:var(--primary-soft);color:var(--primary-ink);font-weight:650}.live-module li button.is-quiz{color:var(--accent);font-weight:600}.live-module li button.is-quiz.on{background:var(--accent-soft)}.live-side{position:sticky;top:calc(var(--top-h) + 16px)}.live-quiz-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;align-items:center;padding:12px 16px;background:var(--accent-soft);font-size:.9rem}.live-quiz-bar>svg{width:18px;height:18px;color:var(--accent)}.live-quiz-bar .progress{grid-column:1 / -1}.live-people{list-style:none;margin:0;padding:6px;max-height:calc(100vh - var(--top-h) - 160px);overflow-y:auto}.live-people li{display:grid;grid-template-columns:auto minmax(0,1fr) 110px auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px}.live-people li:nth-child(2n){background:var(--surface-2)}.live-person{display:flex;flex-direction:column;min-width:0}.live-person b,.live-person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-person span{font-size:.78rem;color:var(--muted)}.live-person-prog{display:flex;align-items:center;gap:6px}.live-person-prog .progress{flex:1}@media(max-width:1000px){.live-grid{grid-template-columns:minmax(0,1fr)}.live-side{position:static}}@media(max-width:520px){.live-people li{grid-template-columns:auto minmax(0,1fr) auto}.live-person-prog{display:none}}.projector{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px;text-align:center;color:#fff;background:radial-gradient(1200px 600px at 20% 0%,#2b6d66,transparent),radial-gradient(900px 500px at 100% 100%,#7a2428,transparent),#10201e}.projector-close{position:absolute;top:20px;right:20px;color:#fff}.projector-kicker{font-size:1.1rem;letter-spacing:.2em;text-transform:uppercase;opacity:.8}.projector h1{color:#fff;font-size:clamp(2rem,1.2rem + 3vw,3.6rem)}.projector-body{display:flex;align-items:center;gap:48px;flex-wrap:wrap;justify-content:center;margin-top:12px}.projector-body>div{display:flex;flex-direction:column;gap:14px;text-align:left}.projector-step{font-size:1.4rem;opacity:.9}.projector-code{font-size:clamp(3.5rem,2rem + 6vw,7rem);font-weight:800;letter-spacing:.12em;line-height:1}body:has(.live-bar:not(.live-bar--ended)){--live-bar-h: 52px}.mq-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.mq-list li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-2)}.mq-idx{font-family:var(--serif);color:var(--accent);font-weight:600}.mq-title{flex:1 1 200px;min-width:0;display:flex;flex-direction:column}.mq-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mq-actions .select{width:auto}.fb-dist{display:grid;gap:8px}.fb-dist-row{display:grid;grid-template-columns:44px minmax(0,1fr) 32px;gap:10px;align-items:center}.fb-dist-label{display:inline-flex;align-items:center;gap:4px;font-weight:650}.fb-dist-label svg{width:14px;height:14px;color:#f0a52c;fill:currentColor}.fb-dist-bar{height:10px;border-radius:99px;background:var(--surface-3);overflow:hidden}.fb-dist-bar span{display:block;height:100%;border-radius:99px;background:#f0a52c}.fb-comments{list-style:none;margin:0;padding:0;display:grid;gap:12px}.fb-comments li{padding:12px 14px;border-radius:var(--r-2);background:var(--surface-2);border-left:3px solid var(--accent-line)}.fb-comments p{color:var(--ink);margin-bottom:4px;overflow-wrap:anywhere}.live-present-tip{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.live-present-tip>svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--primary)}kbd{display:inline-block;min-width:1.6em;padding:0 5px;border-radius:5px;border:1px solid var(--line, rgba(127,127,127,.35));border-bottom-width:2px;font:600 .82em/1.5 var(--mono, ui-monospace, monospace);text-align:center}html.presenting,html.presenting body{overflow:hidden}.presenter{position:fixed;inset:0;z-index:400;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#101413;color:#eef2ef;font-size:16px}.presenter .spacer{flex:1}.pr-top{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#0b0e0d;border-bottom:1px solid #1f2624;min-width:0}.pr-where{display:flex;flex-direction:column;min-width:0;line-height:1.25}.pr-where b{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pr-where span{font-size:.8rem;color:#9fb0aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pr-join{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid #2c3633;background:#171d1b;color:#dfe7e3;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}.pr-join:hover{background:#1f2724}.pr-join svg{width:16px;height:16px;color:#7fd1c4}.pr-join .mono{font-size:1rem;letter-spacing:.08em;color:#fff}.pr-count{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-variant-numeric:tabular-nums;color:#dfe7e3}.pr-count svg{width:17px;height:17px;color:#9fb0aa}.pr-icon{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#c9d4cf;cursor:pointer}.pr-icon:hover{background:#1f2724;color:#fff}.pr-icon svg{width:19px;height:19px}.pr-stage{position:relative;min-height:0;overflow:hidden;display:flex}.pr-stage>*{flex:1;min-width:0}.pr-loading{display:grid;place-items:center}.pr-lesson--slides{display:flex}.pr-lesson--slides .pdfv--bare{flex:1}.pdfv--bare{background:transparent;height:100%}.pdfv--bare .pdfv-stage{flex:1;max-height:none;min-height:0;height:100%;padding:14px;overflow:hidden;display:flex;align-items:center;justify-content:center}.pdfv--bare .pdfv-stage canvas{box-shadow:0 20px 60px #0000008c}.pr-scroll{overflow:auto;padding:clamp(20px,4vw,56px) clamp(16px,6vw,96px) 64px;scroll-behavior:smooth}.pr-lesson-title{display:flex;align-items:center;gap:12px;max-width:980px;margin:0 auto 22px;color:#fff;font-size:clamp(1.6rem,1.1rem + 1.6vw,2.6rem);line-height:1.15}.pr-lesson-title svg{flex:none;width:.8em;height:.8em;color:#7fd1c4}.pr-scroll .prose{max-width:980px;margin:0 auto;font-size:clamp(1.1rem,.9rem + .6vw,1.45rem);line-height:1.65;color:#e3eae6}.pr-scroll .prose :is(h1,h2,h3,h4,strong,b){color:#fff}.pr-scroll .prose a{color:#8fded1}.pr-scroll .video-frame{max-width:min(1280px,calc((100dvh - 210px) * 16 / 9));margin:0 auto}.pr-scroll .html-frame{display:block;width:100%;max-width:980px;margin:0 auto;min-height:70vh;background:#fff;border-radius:12px}.pr-scroll .resource-card{background:#171d1b;border-color:#2c3633;color:#eef2ef}.pr-welcome,.pr-quiz{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 20px;text-align:center;overflow:auto}.pr-kicker{font-size:.95rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#7fd1c4}.pr-welcome h1,.pr-quiz h1{color:#fff;font-size:clamp(2rem,1.2rem + 3vw,3.6rem);line-height:1.1;max-width:22ch}.pr-welcome-join{display:flex;align-items:center;gap:40px;flex-wrap:wrap;justify-content:center;margin:10px 0}.pr-welcome-join>div{display:flex;flex-direction:column;gap:10px;text-align:left;font-size:1.2rem}.pr-code{font-size:clamp(3rem,2rem + 4vw,5.5rem);font-weight:800;letter-spacing:.1em;color:#fff;line-height:1}.pr-muted{color:#9fb0aa}.pr-muted kbd,.live-present-tip kbd{border-color:currentColor}.pr-qr{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:0;background:#080b0af0;color:#dfe7e3;font:inherit;font-size:1.3rem;cursor:pointer}.pr-quiz-icon{width:76px;height:76px;display:grid;place-items:center;border-radius:22px;background:#7fd1c424;color:#7fd1c4}.pr-quiz-icon.is-final{background:#e8a83829;color:#f0b54a}.pr-quiz-icon svg{width:38px;height:38px}.pr-quiz-stats{display:flex;gap:clamp(20px,5vw,64px);margin-top:8px}.pr-quiz-stats>div{display:flex;flex-direction:column;align-items:center}.pr-quiz-stats b{font-size:clamp(2.4rem,1.6rem + 3vw,4.2rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums}.pr-quiz-stats small{font-size:.45em;color:#9fb0aa}.pr-quiz-stats span{margin-top:6px;color:#9fb0aa;font-size:1rem}.pr-names{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:900px;margin:6px 0 0;padding:0;list-style:none}.pr-names li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#171d1b;border:1px solid #2c3633;color:#9fb0aa;font-weight:600}.pr-names li.is-busy{color:#dfe7e3;border-color:#3d5a53}.pr-names li.is-done{color:#0b2b25;background:#7fd1c4;border-color:#7fd1c4}.pr-names svg{width:15px;height:15px}.pr-bar{display:flex;align-items:center;gap:10px;padding:10px 16px max(10px,env(safe-area-inset-bottom));background:#0b0e0d;border-top:1px solid #1f2624}.pr-btn{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px;border-radius:12px;border:1px solid #2c3633;background:#171d1b;color:#eef2ef;font:inherit;font-weight:650;cursor:pointer;white-space:nowrap;min-width:0}.pr-btn:hover:not(:disabled){background:#1f2724}.pr-btn:disabled{opacity:.35;cursor:default}.pr-btn svg{flex:none;width:19px;height:19px}.pr-btn--next{margin-left:auto;max-width:min(46vw,420px);background:#1f6f68;border-color:#2a8a82}.pr-btn--next:hover:not(:disabled){background:#26807a}.pr-btn--next span{overflow:hidden;text-overflow:ellipsis}.pr-btn--next.is-launch{background:#a8701c;border-color:#c48a2a}.pr-select{height:46px;max-width:240px;padding:0 12px;border-radius:12px;border:1px solid #2c3633;background:#171d1b;color:#eef2ef;font:inherit;font-size:.9rem}.pr-pos{color:#9fb0aa;font-size:.9rem;white-space:nowrap;font-variant-numeric:tabular-nums}.pr-pos b{color:#fff}.pr-progress{flex:1;min-width:40px;height:6px;border-radius:99px;background:#1f2624;overflow:hidden}.pr-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2a8a82,#7fd1c4);transition:width .3s}.pr-progress--big{flex:none;width:min(560px,80vw);height:10px}@media(max-width:760px){.pr-join-at,.pr-btn:not(.pr-btn--next) span,.pr-pos,.pr-progress:not(.pr-progress--big){display:none}.pr-select{max-width:34vw}.pr-top{gap:8px;padding:8px 10px}}.pool{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:12px;border:1px dashed var(--line);background:color-mix(in oklab,var(--primary) 4%,transparent)}.pool-head{display:flex;gap:10px;align-items:flex-start}.pool-head>svg{flex:none;width:18px;height:18px;margin-top:2px;color:var(--primary)}.pool-head>span{display:flex;flex-direction:column;gap:2px}.pool-rules{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.pool-rules li{display:grid;grid-template-columns:minmax(0,1fr) 72px auto auto;gap:8px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line)}.pool-rules li:last-child{border-bottom:0;padding-bottom:0}.pool-rules li>select:first-child{grid-column:1 / -1}.pool-count{text-align:center}.pool-warn{color:var(--warn);font-weight:600}.col-check{width:40px;padding-right:0!important}.col-check input{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}tr.is-picked{background:color-mix(in oklab,var(--primary) 7%,transparent)}.bulk-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 14px;background:color-mix(in oklab,var(--primary) 10%,var(--surface, var(--bg)));border-bottom:1px solid var(--line)}.cred-table td{vertical-align:top}.live-bar{flex-wrap:wrap}.live-ask-btn{background:transparent;color:#eef3f0;border-color:#ffffff38}.live-ask-btn:hover,.live-ask-btn.is-on{background:#ffffff1a}.live-ask{flex-basis:100%;display:flex;flex-direction:column;gap:8px;padding:4px 0 6px}.live-ask .textarea{background:#121a18;color:#fff;border-color:#fff3;font-size:16px}.live-ask label{display:inline-flex;align-items:center;gap:6px;color:#cfd8d4}@media(max-width:640px){.live-ask-btn span{display:none}}.live-follow.is-locked{cursor:default;opacity:.85;font-size:.8rem}.live-follow.is-locked svg{width:14px;height:14px}.live-react{flex-basis:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:4px 0 6px}.live-react button{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:6px 4px;border-radius:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.16);color:#eef3f0;cursor:pointer;transition:transform .15s,background .15s}.live-react button span{font-size:1.5rem;line-height:1.1}.live-react button small{font-size:.72rem;opacity:.85}.live-react button:hover{background:#ffffff24}.live-react button:active,.live-react button.is-sent{transform:scale(.94);background:#4fb3a94d;border-color:#4fb3a9}@media(max-width:640px){.live-follow.is-locked{font-size:0;gap:0}.live-follow.is-locked svg{width:16px;height:16px}}.live-qs{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.live-qs li{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-top:1px solid var(--line)}.live-qs li:first-child{border-top:0}.live-qs li.is-done{opacity:.55}.live-qs p{margin:0;overflow-wrap:anywhere}.live-qs .grow{min-width:0}.pr-qs-btn{position:relative}.pr-qs-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e5484d;color:#fff;font-size:.7rem;font-weight:800;display:grid;place-items:center}.pr-qs{position:absolute;top:12px;right:12px;bottom:12px;z-index:3;width:min(420px,calc(100% - 24px));display:flex;flex-direction:column;border-radius:16px;background:#141a18;border:1px solid #2c3633;box-shadow:0 30px 80px #00000080;overflow:hidden}.pr-qs-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid #2c3633}.pr-qs ul{flex:1;overflow:auto}.pr-qs .live-qs li{border-color:#232c29}.pr-qs .live-qs p{font-size:1.15rem;color:#fff}.pr-qs .small{color:#9fb0aa}.agent-orb{display:block}.agent-dock{--ask-bottom: 18px;position:fixed;right:max(14px,env(safe-area-inset-right));bottom:calc(var(--ask-bottom) + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:flex-end;gap:10px;pointer-events:none}.agent-dock>*{pointer-events:auto}body:has(.lesson-dock) .agent-dock{--ask-bottom: 84px}.agent-fab{flex:none;width:72px;height:72px;padding:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ffffffd9,#fff0ec8c 60%,#ffe2dc66);border:1px solid rgba(213,33,42,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 14px 30px -14px #d5212a8c,inset 0 1px #fffc;transition:transform .2s var(--ease),box-shadow .2s}.agent-fab:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 18px 36px -14px #d5212aa6,inset 0 1px #fffc}.agent-fab:focus-visible{outline:3px solid var(--primary);outline-offset:3px}:root[data-theme=dark] .agent-fab{background:radial-gradient(circle at 35% 30%,#ffffff29,#3c18288c 65%);border-color:#ff8c9640}.agent-fab.is-off{filter:saturate(.7)}.agent-bubble{position:relative;max-width:min(300px,calc(100vw - 120px));margin-bottom:14px;display:flex;align-items:flex-start;border-radius:18px 18px 4px;background:#ffffffeb;color:var(--ink);border:1px solid rgba(213,33,42,.18);box-shadow:0 14px 34px -16px #78142873;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:bubble-in .3s var(--ease)}.agent-bubble:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,140,120,.16),transparent) -200% 0 / 200% 100% no-repeat;animation:hud-scan 2.4s .2s ease-out 1}:root[data-theme=dark] .agent-bubble{background:#281620f0;color:#fbe9ec;border-color:#ff8c964d}.agent-bubble-text{all:unset;cursor:pointer;padding:10px 4px 10px 13px;font-size:.9rem;line-height:1.45}.agent-bubble-x{all:unset;cursor:pointer;padding:8px;color:var(--muted);display:grid}.agent-bubble-x svg{width:14px;height:14px}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px) scale(.96)}}@keyframes hud-scan{to{background-position:200% 0}}.agent-hud{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 6px;color:#fff;background:radial-gradient(120% 160% at 0% 0%,#ff8a6b,#e2333d 38%,#8e1a45 78%,#4b1240)}.agent-hud-title{display:flex;flex-direction:column;min-width:0;line-height:1.3}.agent-hud-title b{letter-spacing:.02em}.agent-hud-status{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#ffe1d6;opacity:.9}.agent-hud-status.is-active{opacity:1;animation:hud-blink 1.2s ease-in-out infinite}@keyframes hud-blink{50%{opacity:.55}}.agent-hud-btn{all:unset;cursor:pointer;flex:none;display:grid;place-items:center;min-width:34px;height:34px;border-radius:10px;color:#fff;border:1px solid rgba(255,255,255,.35);background:#ffffff1a}.agent-hud-btn:hover{background:#ffffff38}.agent-hud-btn:focus-visible{outline:2px solid #fff}.agent-hud-btn svg{width:17px;height:17px}.agent-hud-btn[aria-pressed=false]{color:#fff9}.agent-hud-text{padding:0 10px;font-size:.8rem;font-weight:600}.agent-mic.is-on{background:#10b981;border-color:transparent;color:#fff;animation:ready-pulse 1.2s infinite}.agent-lock{width:28px;height:28px;color:var(--accent);margin-bottom:8px}.agent-host{display:flex;align-items:center;gap:10px;margin:0 0 14px}.agent-host-orb{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ffffffe6,#ffece699 65%);border:1px solid rgba(213,33,42,.16);box-shadow:0 10px 24px -12px #d5212a8c}.agent-host-says{position:relative;flex:1;min-width:0;padding:10px 14px;border-radius:4px 16px 16px;font-size:.95rem;line-height:1.4;background:#fffffff0;color:#2a1520;border:1px solid rgba(213,33,42,.18);min-height:44px;display:flex;align-items:center;box-shadow:0 10px 24px -16px #0006}.agent-host-says span{animation:bubble-in .3s var(--ease)}.agent-host-tools{display:flex;gap:6px;flex:none}.agent-host-tools>button{all:unset;cursor:pointer;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2)}.agent-host-tools>button:focus-visible{outline:2px solid var(--primary)}.agent-host-tools>button svg{width:17px;height:17px}.agent-host--intro{flex-direction:column;text-align:center;margin:0 0 6px}.agent-host--intro .agent-host-orb{width:128px;height:128px}.agent-host--intro .agent-host-says{border-radius:16px;justify-content:center;max-width:420px}@media(max-width:520px){.agent-host-orb{width:52px;height:52px}.agent-host-says{font-size:.88rem}}@media(prefers-reduced-motion:reduce){.agent-bubble,.agent-bubble:before,.agent-hud-status.is-active,.agent-host-says span{animation:none}}.ask-panel{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:60;width:min(400px,calc(100vw - 32px));height:min(600px,calc(100dvh - 120px));display:flex;flex-direction:column;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:0 30px 80px -20px #00000073;overflow:hidden;animation:ask-in .22s var(--ease)}@keyframes ask-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}.ask-badge{width:34px;height:34px;flex:none;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--primary),color-mix(in oklab,var(--primary) 60%,#7c5cff))}.ask-badge svg{width:18px;height:18px}.ask-body{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}.ask-empty p{color:var(--ink-2);margin:0 0 12px}.ask-starters{display:flex;flex-wrap:wrap;gap:8px}.ask-starters button{padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:.86rem;cursor:pointer;text-align:left}.ask-starters button:hover:not(:disabled){border-color:var(--primary);color:var(--primary-ink)}.ask-msg{max-width:88%;padding:10px 13px;border-radius:16px;font-size:.94rem;line-height:1.5;overflow-wrap:anywhere}.ask-msg--me{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:6px;white-space:pre-wrap}.ask-msg--ai{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:6px}.ask-msg--ai.prose>:first-child{margin-top:0}.ask-msg--ai.prose>:last-child{margin-bottom:0}.ask-msg--ai.prose :is(p,ul,ol){margin:6px 0;font-size:.94rem}.ask-typing{display:inline-flex;gap:4px;padding:14px}.ask-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:ask-dot 1s infinite ease-in-out}.ask-typing span:nth-child(2){animation-delay:.15s}.ask-typing span:nth-child(3){animation-delay:.3s}@keyframes ask-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ask-form{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line)}.ask-form .textarea{flex:1;min-height:42px;max-height:120px;resize:none;font-size:16px}.ask-foot{margin:0;padding:0 14px 10px;font-size:.72rem;color:var(--muted)}@media(max-width:860px){.agent-dock{--ask-bottom: 76px}.agent-fab{width:56px;height:56px}.agent-fab .agent-orb{width:52px!important;height:52px!important}.learn-main{padding-bottom:calc(150px + env(safe-area-inset-bottom))}.focus-mode .learn-main{padding-bottom:calc(96px + env(safe-area-inset-bottom))}body:has(.lesson-dock) .agent-dock{--ask-bottom: 142px}body:has(.lesson-dock) .learn-main{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.lesson-page:not(.is-focus){display:flex;flex-direction:column;min-height:calc(100dvh - var(--top-h) - var(--live-bar-h, 0px) - 99px - env(safe-area-inset-bottom))}.lesson-page:not(.is-focus)>.lesson-layout{flex:1 0 auto}.focus-mode .agent-dock{--ask-bottom: 16px}.ask-panel{right:0;left:0;bottom:0;width:100%;height:min(85dvh,640px);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom)}}@media(prefers-reduced-motion:reduce){.ask-panel,.ask-typing span{animation:none}}.ai-features{display:flex;flex-direction:column;gap:6px;padding-left:26px}.ai-features[aria-disabled=true]{opacity:.55}.ai-usage{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}.ask-data{margin-bottom:18px}.ask-data-form{display:flex;gap:10px;align-items:center;padding:14px 16px}.ask-data-form .input{flex:1;min-width:0}.ask-data-answer{padding:12px 16px 16px;border-top:1px solid var(--line)}.ask-data-answer .prose{max-width:80ch}.draft-list{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none;max-height:60vh;overflow:auto}.draft-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding:12px 4px;border-top:1px solid var(--line)}.draft-list li:first-child{border-top:0}.draft-list li.is-off{opacity:.5}.draft-list input{width:18px;height:18px;margin-top:2px;accent-color:var(--primary)}.draft-list .opts{margin:6px 0 4px}.ask-fab.is-off{background:var(--surface-3, #5c6662);box-shadow:none}.ask-error{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--bad-soft, rgba(229, 72, 77, .1))}.ask-error p{margin:0;color:var(--ink);font-size:.9rem}.ask-fallback{display:flex;flex-direction:column;gap:8px}.ask-fallback-link{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}.ask-fallback-link:hover{border-color:var(--primary)}.ask-fallback-link svg{width:16px;height:16px;color:var(--primary)}.ask-help-title{display:inline-flex;align-items:center;gap:6px;margin-top:4px}.ask-faq{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:.9rem}.ask-faq summary{cursor:pointer;font-weight:600}.ask-faq p{margin:6px 0 0;color:var(--ink-2)}.ai-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0;padding:12px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}.ai-facts dt{font-size:.74rem;color:var(--muted)}.ai-facts dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}.ai-freetier{display:flex;gap:10px;padding:12px;border-radius:10px;border:1px solid color-mix(in oklab,var(--primary) 30%,var(--line));background:color-mix(in oklab,var(--primary) 5%,transparent)}.ai-freetier>svg{flex:none;width:20px;height:20px;color:var(--primary);margin-top:2px}.ai-freetier p{margin:4px 0 8px}.ai-freetier a{white-space:nowrap}.ai-freetier a svg{display:inline;vertical-align:-1px;margin-left:2px}.lang-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}.lang-btn:hover{border-color:var(--primary)}.lang-btn svg{width:16px;height:16px;color:var(--primary)}.lang-btn--compact{padding:0 10px}.lang-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lang-opt{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;min-height:60px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;text-align:left}.lang-opt b{font-size:1.05rem}.lang-opt span{font-size:.78rem;color:var(--muted)}.lang-opt.is-on{border-color:var(--primary);background:var(--primary-soft)}.lang-opt>svg{position:absolute;top:10px;right:10px;width:18px;height:18px;color:var(--primary)}.game{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;color:#fff;background:radial-gradient(120% 80% at 50% 0%,#3a2a8c,#1d1650 45%,#120e33);padding-bottom:env(safe-area-inset-bottom)}.game-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;background:#120e33bf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-icon{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:12px;background:#ffffff1f;color:#fff;cursor:pointer}.game-icon svg{width:20px;height:20px}.game-title{flex:1;min-width:0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-score{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffd23f;color:#241a00;font-variant-numeric:tabular-nums}.game-score svg{width:16px;height:16px}.game-intro,.game-results{width:min(560px,100%);margin:0 auto;padding:24px 18px 40px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.game-intro-badge{width:84px;height:84px;display:grid;place-items:center;border-radius:26px;background:linear-gradient(135deg,#ffd23f,#ff8a3d);color:#3b1d00;box-shadow:0 16px 40px -12px #ffaa3cb3;animation:game-pop .5s var(--ease) both}.game-intro-badge svg{width:42px;height:42px}.game-kicker{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#b9b2ff}.game h1{color:#fff;font-size:clamp(1.7rem,1.2rem + 2vw,2.4rem);line-height:1.15;margin:0}.game-rules{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:10px;width:100%}.game-rules li{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#ffffff14;text-align:left;font-weight:600}.game-rules svg{flex:none;width:20px;height:20px;color:#ffd23f}.game-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:0 22px;border:0;border-radius:16px;font:inherit;font-size:1.08rem;font-weight:800;color:#1b1300;background:linear-gradient(180deg,#ffe066,#ffc21a);box-shadow:0 6px #c48a00;cursor:pointer;text-decoration:none;transition:transform .1s}.game-cta:active{transform:translateY(3px);box-shadow:0 3px #c48a00}.game-cta:disabled{opacity:.55;cursor:default}.game-cta svg{width:20px;height:20px}.game-cta--ghost{color:#fff;background:#ffffff1f;box-shadow:none}.game-error{color:#ffb4b4;font-weight:600}.game-q{width:min(720px,100%);margin:0 auto;padding:8px 14px 24px;display:flex;flex-direction:column;gap:12px;flex:1}.game-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.86rem;font-weight:700}.game-pos{color:#cfcaff}.game-level{padding:4px 10px;border-radius:999px;background:#ffffff1f}.game-level.lv-1{color:#9ff0c2}.game-level.lv-2{color:#b6e3ff}.game-level.lv-3{color:#ffe08a}.game-level.lv-4{color:#ffbf80}.game-level.lv-5{color:#ff9a9a}.game-timer{position:relative;height:26px;border-radius:999px;background:#ffffff1a;overflow:hidden}.game-timer>span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#7cf0b8,#3fd08b);transition:width .1s linear;border-radius:inherit}.game-timer>span.is-low{background:linear-gradient(90deg,#ff8a8a,#ff4d4d)}.game-timer b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:4px;font-size:.85rem;color:#0b1a12;font-variant-numeric:tabular-nums}.game-timer svg{width:14px;height:14px}.game-prompt{color:#fff;margin:6px 0 2px;padding:18px 16px;border-radius:18px;background:#fffffff5;color:#1a1640;font-size:clamp(1.15rem,1rem + .8vw,1.5rem);line-height:1.3;text-align:center;box-shadow:0 14px 40px -18px #0009}.game-hint{margin:0;text-align:center;color:#cfcaff;font-size:.9rem}.game-answers{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:560px){.game-answers{grid-template-columns:1fr 1fr}}.game-answer{position:relative;display:flex;align-items:center;gap:12px;min-height:68px;padding:14px 16px;border:0;border-radius:16px;font:inherit;font-size:1.05rem;font-weight:700;text-align:left;color:#fff;cursor:pointer;box-shadow:0 5px #00000047;transition:transform .12s,opacity .2s,filter .2s}.game-answer:active{transform:translateY(3px);box-shadow:0 2px #00000047}.game-answer.c0{background:#e2463f}.game-answer.c1{background:#2f6fe0}.game-answer.c2{background:#f2b705;color:#2b1d00}.game-answer.c3{background:#1f9e5a}.game-shape{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#0000002e;font-size:1.15rem}.game-answer-text{flex:1;min-width:0;overflow-wrap:anywhere}.game-answer.is-picked{outline:4px solid #fff;outline-offset:2px}.game-answer.is-right{outline:4px solid #9cffc9;outline-offset:2px;animation:game-pop .35s var(--ease)}.game-answer.is-wrong{opacity:.85;animation:game-shake .35s}.game-answer.is-dim{opacity:.35}.game-mark{flex:none;width:26px;height:26px}.game-fb{position:sticky;bottom:0;margin-top:auto;padding:16px;border-radius:20px 20px 0 0;background:#fff;color:#1a1640;display:flex;flex-direction:column;gap:10px;box-shadow:0 -16px 40px -12px #00000080;animation:game-up .3s var(--ease)}.game-fb.is-right{border-top:6px solid #1f9e5a}.game-fb.is-wrong{border-top:6px solid #e2463f}.game-fb-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:1.3rem}.game-fb.is-right .game-fb-head b{color:#137a43}.game-fb.is-wrong .game-fb-head b{color:#c0302a}.game-plus{font-weight:900;color:#1b1300;background:#ffd23f;padding:4px 12px;border-radius:999px;animation:game-pop .4s var(--ease)}.game-chips{display:flex;flex-wrap:wrap;gap:6px}.game-chips:empty{display:none}.game-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:#fff1d6;color:#7a4a00;font-size:.85rem;font-weight:700}.game-chip svg{width:15px;height:15px}.game-chip.is-up{background:#dcf7e8;color:#126b3c}.game-chip.is-down{background:#e8eefc;color:#2a4fa8}.game-fb-answer{margin:0;font-weight:700}.game-fb-expl{margin:0;color:#4a4670;line-height:1.45}.game-revise{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;border-radius:12px;background:#f1efff;font-weight:600}.game-revise svg{width:18px;height:18px;color:#5b48d6}.game-revise a{margin-left:auto;color:#4a37c7;font-weight:800}.game-fb .game-cta{box-shadow:0 5px #c48a00}.game-results{gap:12px}.game-bigscore{display:inline-flex;align-items:center;gap:8px;font-size:2.6rem;font-weight:900;color:#ffd23f;font-variant-numeric:tabular-nums}.game-bigscore svg{width:34px;height:34px}.game-bigscore small{font-size:.9rem;color:#cfcaff;font-weight:700}.game-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;margin:0}.game-stats div{padding:10px 6px;border-radius:14px;background:#ffffff1a}.game-stats dt{font-size:.72rem;color:#cfcaff}.game-stats dd{margin:2px 0 0;font-size:1.25rem;font-weight:800}.game-levelpath{margin:0;color:#cfcaff;font-weight:600}.game-card{width:100%;padding:14px;border-radius:16px;background:#ffffff14;text-align:left}.game-card h2{color:#fff;font-size:1rem;margin:0 0 8px;display:flex;align-items:center;gap:8px}.game-card h2 svg{width:18px;height:18px}.game-card p{margin:0 0 8px;color:#e6e3ff}.game-card--revise{background:#ffd23f24;border:1px solid rgba(255,210,63,.4)}.game-link{display:inline-flex;align-items:center;gap:6px;color:#ffd23f;font-weight:800}.game-link svg{width:16px;height:16px}.game-topics{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.game-topics li{display:grid;grid-template-columns:minmax(0,1fr) 40% 44px;align-items:center;gap:10px;font-size:.9rem}.game-bar{height:10px;border-radius:99px;background:#ffffff24;overflow:hidden}.game-bar>span{display:block;height:100%;border-radius:inherit}.game-bar .lo{background:#ff7a7a}.game-bar .mid{background:#ffd23f}.game-bar .hi{background:#5be39b}.game-actions{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.award{width:100%;display:flex;align-items:center;gap:14px;padding:14px;border-radius:18px;background:#fff;color:#1a1640;text-align:left;animation:game-pop .5s var(--ease) both}.award b{display:block;font-size:1.1rem}.award-kicker{display:block;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#6a58e0}.award-sub{display:block;font-size:.85rem;color:#4a4670}.award-tag{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;background:#fff1d6;color:#7a4a00;font-size:.72rem;font-weight:800}.award img{flex:none;border-radius:14px;background:#fff5f5}.award-gift{flex:none;width:64px;height:64px;display:grid;place-items:center;border-radius:16px;background:#ffe4e4;color:#c0302a}.award-gift svg{width:30px;height:30px}.award--badge{border:2px solid #ffd23f}.badge-medal{flex:none;display:inline-grid;place-items:center;border-radius:50%;color:#fff;background:radial-gradient(circle at 30% 25%,color-mix(in oklab,var(--badge) 70%,#fff),var(--badge));box-shadow:inset 0 -4px #0000002e,0 6px 18px -6px var(--badge)}.badge-medal.is-locked{filter:grayscale(1);opacity:.35;box-shadow:none}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:3}.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:game-fall 2.4s ease-in forwards}.confetti i.k0{background:#ffd23f}.confetti i.k1{background:#ff6b6b}.confetti i.k2{background:#5be39b}.confetti i.k3{background:#6aa8ff}.confetti i.k4{background:#ff9ff3}@keyframes game-pop{0%{transform:scale(.85);opacity:0}}@keyframes game-up{0%{transform:translateY(40px);opacity:0}}@keyframes game-shake{25%,75%{transform:translate(-5px)}50%{transform:translate(5px)}}@keyframes game-fall{to{transform:translateY(110vh) rotate(540deg);opacity:.8}}@media(prefers-reduced-motion:reduce){.game *,.game *:before,.game *:after{animation:none!important;transition:none!important}.confetti{display:none}}.ph,.ach,.lb{display:flex;flex-direction:column;gap:16px;max-width:760px;margin:0 auto;padding-bottom:24px}.ph-hero{position:relative;overflow:hidden;padding:18px 16px;border-radius:22px;color:#fff;background:radial-gradient(120% 120% at 100% 0%,#ff8a3d 0%,transparent 45%),linear-gradient(135deg,#c8102e,#7a1250 55%,#2b1d6b);box-shadow:0 18px 40px -22px #7a1250cc}.ph-hero h1{color:#fff;margin:0;font-size:clamp(1.6rem,1.3rem + 1.4vw,2.2rem);display:flex;align-items:center;gap:8px}.ph-hero h1 svg{width:26px;height:26px}.ph-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ph-hello{display:flex;flex-direction:column;gap:2px;min-width:0}.ph-greet{font-size:.95rem;opacity:.85}.ph-unit{display:inline-flex;align-items:center;gap:6px;font-size:.86rem;opacity:.9}.ph-unit svg{width:15px;height:15px}.ph-hero .lang-btn{background:#ffffff29;border-color:#ffffff4d;color:#fff}.ph-hero .lang-btn svg{color:#fff}.ph-level{margin-top:14px;padding:14px;border-radius:16px;background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:8px}.ph-level-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.ph-rank,.ph-pts{display:inline-flex;align-items:center;gap:6px;font-weight:800}.ph-rank svg,.ph-pts svg{width:18px;height:18px;color:#ffd23f}.ph-pts{font-variant-numeric:tabular-nums}.ph-bar{height:10px;border-radius:99px;background:#ffffff38;overflow:hidden}.ph-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffd23f,#ffef9a);transition:width .8s var(--ease)}.ph-next{font-size:.84rem;opacity:.9}.ph-stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.86rem;font-weight:600}.ph-stats span{display:inline-flex;align-items:center;gap:5px}.ph-stats svg{width:16px;height:16px;color:#ffd23f}.ph-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;box-shadow:0 6px 20px -16px #00000059}a.ph-card:active{transform:scale(.99)}.ph-kicker{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.ph-kicker svg{width:14px;height:14px}.ph-continue .ph-cover{flex:none;width:76px;height:76px;border-radius:14px;overflow:hidden}.ph-continue-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ph-continue-body b{overflow-wrap:anywhere}.ph-progress{height:8px;border-radius:99px;background:var(--surface-3, #e8ecea);overflow:hidden}.ph-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#3fd08b)}.ph-go svg{width:40px;height:40px;color:var(--primary)}.ph-challenge{background:linear-gradient(135deg,#2f6fe0,#6a3fe0);color:#fff;border:0;flex-wrap:wrap}.ph-challenge .ph-kicker{color:#ffd23f}.ph-challenge>div{flex:1;min-width:180px;display:flex;flex-direction:column;gap:2px}.ph-challenge-icon{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#ffffff2e}.ph-challenge-icon svg{width:26px;height:26px}.ph-play{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:12px;background:#ffd23f;color:#241a00;font-weight:800}.ph-play svg{width:18px;height:18px}.ph-rec{flex-direction:column;align-items:flex-start;gap:6px}.ph-rec p{margin:0;color:var(--ink-2)}.ph-link{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--primary-ink, var(--primary))}.ph-link svg{width:16px;height:16px}.ph-section{display:flex;flex-direction:column;gap:10px}.ph-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ph-section-head h2{margin:0;font-size:1.1rem}.ph-section-head a{font-size:.86rem;font-weight:700}.ph-badges{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}.ph-badge{flex:none;width:92px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:.78rem;font-weight:700;color:var(--ink);text-decoration:none}.ph-badge.is-locked{color:var(--muted)}.ph-rewards{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:640px){.ph-rewards{grid-template-columns:1fr 1fr}}.ph-reward{position:relative;display:flex;align-items:center;gap:14px;padding:14px 12px 14px 14px;border-radius:20px;text-decoration:none;color:#3a2400;overflow:hidden;background:linear-gradient(135deg,#fff8ec,#ffeef2 60%,#f3ecff);border:1px solid #ffd9b8;box-shadow:0 10px 24px -18px #d5212a8c;transition:transform .18s var(--ease),box-shadow .18s}.ph-reward:hover{transform:translateY(-2px);box-shadow:0 16px 30px -18px #d5212a99}.ph-reward:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 45%,transparent 60%) -150% 0 / 200% 100% no-repeat;animation:reward-shine 4.5s 1s ease-in-out infinite;pointer-events:none}@keyframes reward-shine{0%,70%{background-position:-150% 0}to{background-position:250% 0}}.ph-reward-art{flex:none;width:76px;height:76px;border-radius:18px;display:grid;place-items:center;background:#fff;box-shadow:0 6px 16px -10px #00000059,inset 0 0 0 1px #0000000a;overflow:hidden}.ph-reward-art img{width:100%;height:100%;object-fit:cover}.ph-reward-art svg{width:30px;height:30px;color:#c0302a}.ph-reward-body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.ph-reward-body b{font-size:1rem}.ph-reward-how{font-size:.82rem;font-weight:600;color:#b4232b}.ph-reward-bar{height:7px;border-radius:99px;background:#b4232b1f;overflow:hidden}.ph-reward-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f59e0b,#e11d48);transition:width .6s var(--ease)}.ph-reward-meta{font-size:.76rem;color:#7a5a3a}.ph-reward-go{flex:none;width:20px;height:20px;color:#b4232b;opacity:.7}.ph-reward.is-ready{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b33,0 14px 30px -18px #f59e0bb3}:root[data-theme=dark] .ph-reward{background:linear-gradient(135deg,#2b1d10,#2a1520 60%,#1f1a33);border-color:#4a3424;color:#fbe9d7}:root[data-theme=dark] .ph-reward-meta{color:#d6bfa8}:root[data-theme=dark] .ph-reward-how,:root[data-theme=dark] .ph-reward-go{color:#fb7185}.ph-h-icon{width:20px;height:20px;vertical-align:-3px;color:#e11d48}@media(prefers-reduced-motion:reduce){.ph-reward:after{animation:none}}.ph-tag{align-self:flex-start;padding:2px 8px;border-radius:999px;background:#fff;border:1px solid #f0c38a;color:#8a5200;font-size:.7rem;font-weight:800}.ph-courses{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,62%);gap:12px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}@media(min-width:640px){.ph-courses{grid-auto-columns:minmax(200px,32%)}}.ph-course{scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:16px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none}.ph-course-cover{height:96px;border-radius:12px;overflow:hidden}.ph-recent,.ph-news{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ph-recent li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:.9rem}.ph-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--primary)}.ph-dot.k-badge_earned{background:#e8862e}.ph-dot.k-reward_unlocked{background:#c8102e}.ph-dot.k-quiz_finished{background:#6a3fe0}.ph-news a{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none}.ach-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(min-width:640px){.ach-badges{grid-template-columns:repeat(3,minmax(0,1fr))}}.ach-badge{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:16px;background:var(--surface);border:1px solid var(--line);text-align:center}.ach-badge.is-locked b{color:var(--muted)}.ach-rewards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ach-rewards li{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.ach-rewards li>div{display:flex;flex-direction:column;gap:3px;min-width:0}.ach-rewards img{border-radius:12px;background:#fff5f5;flex:none}.ach-status{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:.86rem}.ach-status svg{width:15px;height:15px}.ach-status.s-approved,.ach-status.s-delivered{color:var(--ok)}.ach-status.s-dispatched{color:#2f6fe0}.ach-status.s-rejected,.ach-status.s-cancelled{color:var(--bad)}.ach-status.s-eligible,.ach-status.s-out_of_stock{color:#b26a00}.ach-skills{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ach-skills li{display:grid;grid-template-columns:minmax(0,1fr) 34% auto;align-items:center;gap:10px;font-size:.9rem}.ach-skill-bar{height:10px;border-radius:99px;background:var(--surface-3, #e8ecea);overflow:hidden}.ach-skill-bar>span{display:block;height:100%;border-radius:inherit}.ach-skill-bar .strong{background:#1f9e5a}.ach-skill-bar .improving{background:#f2b705}.ach-skill-bar .practice{background:#e2463f}.ach-skill-tag{font-size:.74rem;font-weight:800;padding:2px 8px;border-radius:999px}.ach-skill-tag.strong{background:#dcf7e8;color:#126b3c}.ach-skill-tag.improving{background:#fff4cc;color:#7a5a00}.ach-skill-tag.practice{background:#fde2e1;color:#a12620}.lb-hero{display:flex;flex-direction:column;gap:12px}.lb-tabs{display:flex;gap:6px;padding:4px;border-radius:12px;background:#ffffff29}.lb-tabs button{flex:1;min-height:40px;border:0;border-radius:9px;background:transparent;color:#fff;font:inherit;font-weight:700;cursor:pointer}.lb-tabs button.is-on{background:#fff;color:#7a1250}.lb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lb-list li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.lb-list li.is-me{border:2px solid var(--primary);background:var(--primary-soft)}.lb-rank{flex:none;min-width:40px;display:inline-flex;align-items:center;gap:2px;font-weight:900;font-size:1.1rem;font-variant-numeric:tabular-nums}.lb-rank svg{width:18px;height:18px}.lb-list li.top-1 .lb-rank{color:#c99400}.lb-list li.top-2 .lb-rank{color:#8a9399}.lb-list li.top-3 .lb-rank{color:#b0632e}.lb-name{flex:1;min-width:0;display:flex;flex-direction:column}.lb-pts{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-variant-numeric:tabular-nums}.lb-pts svg{width:16px;height:16px;color:#e8a100}.lb-note{text-align:center}@media(prefers-reduced-motion:reduce){.ph-bar>span{transition:none}}.dash-gaps,.dash-badges,.dash-recent{list-style:none;margin:0;padding:6px 16px 14px;display:flex;flex-direction:column;gap:10px}.dash-gaps li{display:grid;grid-template-columns:minmax(0,1fr) 30% auto;align-items:center;gap:10px}.dash-bar{height:8px;border-radius:99px;background:var(--surface-3, #e8ecea);overflow:hidden}.dash-bar>span{display:block;height:100%;border-radius:inherit}.dash-bar .lo{background:var(--bad)}.dash-bar .mid{background:var(--warn)}.dash-bar .hi{background:var(--ok)}.dash-badges li{display:flex;align-items:center;gap:10px}.dash-badges li span{flex:1}.dash-recent li{display:flex;align-items:center;gap:10px}.dash-recent li>span:nth-child(2){flex:1;min-width:0}.badge-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.badge-admin{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.badge-admin>span{flex:1;min-width:0;display:flex;flex-direction:column}.badge-admin:hover{border-color:var(--primary)}.people-filters{flex-wrap:wrap}.people-filters .select{width:auto;max-width:220px}.people-meta{margin:8px 0;--gap: 8px}.th-sort{border:0;background:none;padding:0;font:inherit;font-weight:inherit;color:inherit;cursor:pointer}.mini-bar{display:block;width:80px;height:5px;margin-top:4px;border-radius:99px;background:var(--surface-3, #e8ecea);overflow:hidden}.mini-bar>span{display:block;height:100%;background:var(--primary)}.col-picker{position:relative}.col-picker summary{list-style:none}.col-picker summary::-webkit-details-marker{display:none}.col-picker-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:flex;flex-direction:column;gap:6px;padding:12px;min-width:200px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 40px -18px #0006}.ask-mock{display:inline-block;margin-bottom:6px;padding:2px 8px;border-radius:999px;background:#fff1d6;color:#7a4a00;font-size:.72rem;font-weight:800}.ask-msg--ai .prose>:first-child{margin-top:0}.ask-msg--ai .prose>:last-child{margin-bottom:0}.ask-msg--ai .prose :is(p,ul,ol){margin:6px 0;font-size:.94rem}.game>.agent-host{width:min(720px,100%);margin:10px auto 0;padding:0 14px}.quiz>.agent-host{margin-bottom:12px}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px;border:1px solid var(--line);border-radius:var(--r-3);padding:10px 14px 12px;margin:0}.check-grid legend{padding:0 6px}.ask-starters button.is-ai{border-color:color-mix(in oklab,#ff6a5a 55%,var(--line));background:color-mix(in oklab,#ff6a5a 10%,var(--bg));display:inline-flex;align-items:center;gap:6px;font-weight:600}.agent-langhint{margin:10px 0 0}.practice{align-self:stretch;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;border:1px solid color-mix(in oklab,#ff6a5a 45%,var(--line));background:linear-gradient(160deg,color-mix(in oklab,#ff6a5a 9%,var(--surface)),var(--surface));animation:bubble-in .3s var(--ease)}.practice-kicker{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c0262f}:root[data-theme=dark] .practice-kicker{color:#ffb4a8}.practice-q{margin:0;font-weight:650;font-size:1rem;line-height:1.4}.practice-opts{display:grid;gap:8px}.practice-opt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:.92rem;line-height:1.35;transition:transform .12s,border-color .12s}.practice-opt:hover:not(:disabled){border-color:var(--primary);transform:translateY(-1px)}.practice-opt:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.practice-opt>svg{margin-left:auto;flex:none}.practice-letter{flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:.75rem;font-weight:700;background:var(--bg);border:1px solid var(--line)}.practice-opt.is-right{border-color:#10b981;background:color-mix(in oklab,#10b981 14%,var(--surface))}.practice-opt.is-wrong{border-color:#ef4444;background:color-mix(in oklab,#ef4444 12%,var(--surface))}.practice-opt.is-dim{opacity:.55}.practice-why{margin:0;font-size:.88rem;color:var(--ink-2)}.practice--done{align-items:flex-start}.game-tr{margin:-6px 0 6px;font-size:.78rem;color:#ffffffbf;text-align:center}.game-tr .link-btn{color:#fff;text-decoration:underline}.agent-host-tools .lang-btn{height:36px}.agent-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.agent-actions button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);font-size:.85rem;font-weight:600;line-height:1.25}.agent-actions button:hover{border-color:var(--primary)}.agent-actions svg{width:17px;height:17px;flex:none;color:var(--primary)}.ai-brief{margin-bottom:18px;border-color:color-mix(in oklab,#ff6a5a 40%,var(--line));background:linear-gradient(160deg,color-mix(in oklab,#ff6a5a 7%,var(--surface)),var(--surface))}.heat{display:grid;gap:3px;overflow-x:auto}.heat-row{display:grid;grid-template-columns:34px repeat(24,minmax(9px,1fr));gap:3px;align-items:center}.heat-day{font-size:.72rem;color:var(--muted)}.heat-cell{aspect-ratio:1;border-radius:3px;background:color-mix(in oklab,var(--primary) calc(var(--a, 0) * 100%),var(--bg));border:1px solid color-mix(in oklab,var(--line) 60%,transparent)}.heat-axis span{font-size:.68rem;color:var(--muted)}.funnel{display:flex;flex-direction:column;gap:10px}.funnel-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) auto;gap:10px;align-items:center;font-size:.86rem}.funnel-track{position:relative;height:14px;border-radius:99px;background:var(--bg);overflow:hidden}.funnel-start,.funnel-done{position:absolute;inset:0 auto 0 0;border-radius:inherit}.funnel-start{background:color-mix(in oklab,var(--primary) 28%,var(--bg))}.funnel-done{background:var(--primary)}.funnel-val{font-variant-numeric:tabular-nums;white-space:nowrap}.funnel-val small{color:var(--muted)}@media(max-width:560px){.funnel-row{grid-template-columns:1fr auto}.funnel-track{grid-column:1 / -1;grid-row:2}}.today{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:0;overflow:hidden}.today-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:14px}.today-act{display:flex;align-items:center;gap:10px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}.today-act:hover{border-color:var(--primary);transform:translateY(-1px)}.today-act svg{width:22px;height:22px;color:var(--primary);flex:none}.today-act span{display:flex;flex-direction:column;line-height:1.25}.today-act small{color:var(--muted);font-size:.76rem}.today-brief{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:14px 16px;border-left:1px solid var(--line);background:linear-gradient(160deg,color-mix(in oklab,#ff6a5a 7%,var(--surface)),var(--surface))}.today-brief .prose{font-size:.9rem}@media(max-width:860px){.today{grid-template-columns:1fr}.today-brief{border-left:0;border-top:1px solid var(--line)}}.ai-draft-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.tour{position:fixed;inset:auto 0 0;z-index:70;display:flex;justify-content:center;padding:12px 12px calc(12px + env(safe-area-inset-bottom));pointer-events:none}.tour-card{pointer-events:auto;position:relative;width:min(520px,100%);display:grid;grid-template-columns:auto 1fr;gap:6px 14px;padding:16px;border-radius:22px;color:#e6f6ff;background:radial-gradient(130% 160% at 0% 0%,#ff8a6b,#d92b3c,#7c1843 80%,#3f1238);border:1px solid rgba(255,255,255,.25);box-shadow:0 24px 60px -18px #5a0a28b3;animation:bubble-in .35s var(--ease)}.tour-orb{grid-row:span 2;align-self:start}.tour-text b{display:block;font-size:1.05rem;margin-bottom:4px}.tour-text p{margin:0 0 10px;color:#ffe6de;font-size:.92rem;line-height:1.45}.tour-text .lang-btn{background:#ffffff1a;color:#fff;border-color:#ffffff40}.tour-text .small.muted{color:#ffd7cc}.tour-foot{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:10px}.tour-dots{display:flex;gap:6px}.tour-dots i{width:7px;height:7px;border-radius:50%;background:#ffffff40}.tour-dots i.on{background:#fff;width:18px;border-radius:4px}.tour-x{all:unset;cursor:pointer;position:absolute;top:10px;right:10px;color:#ffd7cc;padding:4px;display:grid}.tour-x svg{width:16px;height:16px}@media(max-width:860px){.tour{inset:auto 0 64px}}@media(max-width:420px){.tour-card{grid-template-columns:1fr}.tour-orb{grid-row:auto;justify-self:center}.tour-foot{grid-column:1}}@media(prefers-reduced-motion:reduce){.practice,.tour-card{animation:none}}.game-bonus{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;color:#e6f6ff;background:radial-gradient(130% 160% at 0% 0%,#ff8a6b,#d92b3c 45%,#6d1640);border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 30px -16px #d5212ab3}.game-bonus:hover{border-color:#fff}.game-bonus:focus-visible{outline:3px solid #fff;outline-offset:2px}.game-bonus>svg:first-child{width:26px;height:26px;color:#fff;flex:none}.game-bonus span{display:flex;flex-direction:column;flex:1;line-height:1.3}.game-bonus small{color:#ffe1d6}.game-bonus>svg:last-child{width:20px;height:20px;flex:none}.ph-section-head h2{display:inline-flex;align-items:center;gap:8px}.email-cats{display:grid;gap:8px}.email-cats[aria-disabled=true]{opacity:.55}.email-cat{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);cursor:pointer}.email-cat input{margin-top:3px}.email-cat span{display:flex;flex-direction:column;gap:2px;min-width:0}.email-cat small{color:var(--muted);font-size:.8rem;line-height:1.35}.signup-req .panel-head{flex-wrap:wrap}@media(max-width:960px){.course-about.is-folded .prose{max-height:7.5em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}}@media(min-width:961px){.course-about .link-btn{display:none}}.ph-badges,.ph-courses{scrollbar-width:none;-ms-overflow-style:none}.ph-badges::-webkit-scrollbar,.ph-courses::-webkit-scrollbar{display:none}.profile-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.profile-switch span{display:flex;flex-direction:column;gap:2px}.profile-switch small{color:var(--muted);font-size:.82rem}.profile-switch input{width:44px;height:24px;flex:none;accent-color:var(--primary)}.agent-dock{transition:transform .35s var(--ease),opacity .35s}.agent-dock.is-shy{transform:translate(58%);opacity:.55}@media(prefers-reduced-motion:reduce){.agent-dock{transition:none}}.agent-host-says span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.agent-host-tools{align-items:center}.agent-host-tools .lang-btn{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;height:36px;padding:0 8px;border-radius:10px}.agent-host-tools .lang-btn svg{width:15px;height:15px}.game-mode .learn-top{display:none}.lc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.4fr);gap:12px;margin:0 0 18px}.lc-stat{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-3);border:1px solid var(--line);background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0;transition:border-color .15s,box-shadow .15s}button.lc-stat:hover{border-color:var(--line-strong);box-shadow:var(--shadow-1)}.lc-stat.is-on{border-color:var(--primary-line);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 12%,transparent)}.lc-stat>svg{flex:none;width:22px;height:22px;color:var(--muted)}.lc-stat>span{display:flex;flex-direction:column;min-width:0;line-height:1.2}.lc-stat b{font-size:1.5rem;color:var(--ink)}.lc-stat small{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lc-stat.is-alert{border-color:#f0b54a;background:color-mix(in oklab,#f0b54a 10%,var(--surface))}.lc-stat.is-alert>svg{color:#b7791f}.lc-stat--pulse{cursor:default}.lc-stat--pulse>span{gap:6px}@media(max-width:900px){.lc-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.lc-stat--pulse{grid-column:1 / -1}}@media(max-width:520px){.lc-stat{padding:10px;gap:8px}.lc-stat>svg{display:none}.lc-stat b{font-size:1.25rem}}.lc-switches{flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding-top:14px;border-top:1px solid var(--line)}.lc-switch{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.lc-switch input{flex:none;margin-top:2px;width:36px;height:20px;appearance:none;border-radius:99px;background:var(--surface-3);border:1px solid var(--line-strong);position:relative;cursor:pointer;transition:background .15s}.lc-switch input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:transform .15s}.lc-switch input:checked{background:var(--primary);border-color:var(--primary)}.lc-switch input:checked:after{transform:translate(16px)}.lc-switch input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.lc-switch span{display:flex;flex-direction:column;line-height:1.3;min-width:0}.lc-switch b{display:inline-flex;align-items:center;gap:4px;font-size:.9rem}.lc-switch small{color:var(--muted);font-size:.8rem}.lc-tabs{display:flex;gap:2px;padding:6px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.lc-tabs::-webkit-scrollbar{display:none}.lc-tabs button{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:0;border-radius:9px;background:transparent;font:inherit;font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.lc-tabs button svg{width:16px;height:16px}.lc-tabs button:hover{background:var(--surface-3);color:var(--ink)}.lc-tabs button.is-on{background:var(--primary-soft);color:var(--primary-ink)}.lc-badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--surface-3);color:var(--ink-2);font-size:.72rem;font-weight:800;display:inline-grid;place-items:center}.lc-badge.is-alert{background:#e5484d;color:#fff}.lc-toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px 4px}.lc-presence{position:relative}.lc-presence:after{content:"";position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--faint);border:2px solid var(--surface)}.lc-presence.is-here:after{background:#2fb57a}.lc-new{margin-left:6px;padding:1px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}.lc-pts{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:700}.lc-running{display:flex;flex-direction:column;gap:4px;padding:6px 10px 2px;color:var(--ink-2)}.lc-test .idx{display:inline-grid;place-items:center;color:var(--accent)}.lc-results{display:flex;flex-direction:column;gap:14px;padding:14px 16px 18px}.lc-gain{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--r-3);background:var(--surface-2)}.lc-gain>div{display:flex;flex-direction:column;line-height:1.15}.lc-gain small{color:var(--muted);font-size:.78rem}.lc-gain b{font-size:1.4rem;color:var(--ink);font-variant-numeric:tabular-nums}.lc-gain>span{color:var(--muted);font-size:1.2rem}.lc-pick{display:flex;align-items:center;gap:10px}.lc-pick .select{flex:1;min-width:0}.lc-sub{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:1rem}.lw-empty{display:flex;align-items:center;gap:8px;margin:0;padding:14px 16px;color:var(--muted);font-size:.9rem}.lw-empty svg{flex:none;width:18px;height:18px}.lw-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.lw-tiles>div{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface-2)}.lw-tiles b{font-size:1.5rem;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.lw-tiles b small{font-size:.55em;color:var(--muted);font-weight:600}.lw-tiles span{font-size:.78rem;color:var(--muted)}.lw-results{display:flex;flex-direction:column;gap:14px}.lw-spread{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;height:120px;align-items:end}.lw-col{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}.lw-col-n{font-size:.8rem;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}.lw-col-bar{width:100%;min-height:3px;border-radius:8px 8px 3px 3px;background:var(--faint);transition:height .4s cubic-bezier(.2,.8,.2,1)}.lw-col.b0 .lw-col-bar{background:#e5484d}.lw-col.b1 .lw-col-bar{background:#f0b54a}.lw-col.b2 .lw-col-bar{background:#6cc3b0}.lw-col.b3 .lw-col-bar{background:#2f9e75}.lw-col small{font-size:.7rem;color:var(--muted);white-space:nowrap}.lw-qs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.lw-qs li{padding:10px 12px;border-radius:12px;border:1px solid var(--line)}.lw-qs li.is-hard{border-color:#f3c4c5;background:color-mix(in oklab,#e5484d 5%,transparent)}.lw-q-top{display:flex;align-items:flex-start;gap:8px}.lw-q-top p{flex:1;margin:0;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.lw-q-top b{font-size:1.05rem;color:var(--ink)}.lw-tag{flex:none;padding:2px 7px;border-radius:6px;background:#e5484d;color:#fff;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;margin-top:2px}.lw-bar{display:block;height:6px;margin:8px 0 6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.lw-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2a8a82,#6cc3b0)}.lw-q-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.82rem}.lw-right{display:inline-flex;align-items:center;gap:4px;color:var(--ok);font-weight:600}.lw-right svg{width:14px;height:14px}.lw-wrong{color:var(--muted)}.lw-podium{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lw-podium li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;background:var(--surface-2)}.lw-podium li.r1{background:linear-gradient(90deg,color-mix(in oklab,#f0b54a 28%,var(--surface)),var(--surface-2))}.lw-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-3);font-weight:800;color:var(--ink-2)}.lw-podium li.r1 .lw-rank{background:#f0b54a;color:#3b2a05}.lw-rank svg{width:16px;height:16px}.lw-name{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-pts{font-weight:800;color:var(--accent)}.lw-pulse{display:inline-flex;flex-wrap:wrap;gap:6px}.lw-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);font-size:.86rem;font-weight:700;font-variant-numeric:tabular-nums}.lw-chip.is-warn{border-color:#f0b54a;background:color-mix(in oklab,#f0b54a 14%,var(--surface))}.lw-chip.is-quiet{color:var(--muted);font-weight:500}.lw-door ul{list-style:none;margin:0;padding:6px;display:flex;flex-direction:column;gap:6px}.lw-door li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line)}.lw-door-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.lw-door-who>span{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-flag{display:inline-flex!important;align-items:center;gap:4px;color:#b7791f!important;font-weight:600}.lw-flag svg{width:13px;height:13px}.lw-door-act{flex:none;display:flex;gap:6px}.lw-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;min-width:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font:inherit;font-weight:650;font-size:.88rem;cursor:pointer}.lw-btn svg{width:16px;height:16px}.lw-btn:disabled{opacity:.5;cursor:default}.lw-btn.is-yes{background:var(--primary);border-color:var(--primary);color:#fff}.lw-btn.is-yes:hover:not(:disabled){filter:brightness(1.08)}.lw-all{margin:4px 12px 12px;width:calc(100% - 24px)}.lw-creds{padding:4px 16px 14px;display:flex;flex-direction:column;gap:8px}.lw-floats{position:absolute;right:0;bottom:0;width:120px;height:70%;pointer-events:none;overflow:hidden;z-index:3}.lw-floats span{position:absolute;bottom:-40px;font-size:2.2rem;animation:lw-float 4s ease-out forwards;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}@keyframes lw-float{0%{transform:translateY(0) scale(.6);opacity:0}12%{opacity:1;transform:translateY(-40px) scale(1.1)}to{transform:translateY(-420px) scale(1);opacity:0}}@media(prefers-reduced-motion:reduce){.lw-floats span{animation-duration:1.5s}.lw-col-bar{transition:none}}.lw--stage .lw-tiles>div,.lw--stage.lw-podium li{background:#171d1b}.lw--stage .lw-tiles b,.lw--stage .lw-q-top p,.lw--stage .lw-q-top b,.lw--stage .lw-name{color:#fff}.lw--stage .lw-tiles span,.lw--stage .lw-col small,.lw--stage .lw-wrong,.lw--stage .lw-tiles b small{color:#9fb0aa}.lw--stage .lw-col-n{color:#dfe7e3}.lw--stage .lw-qs li{border-color:#2c3633;background:#121816}.lw--stage .lw-qs li.is-hard{border-color:#6b2b2d;background:#1d1414}.lw--stage .lw-bar{background:#1f2624}.lw--stage .lw-right{color:#7fd1c4}.lw--stage.lw-podium li.r1{background:linear-gradient(90deg,#4a3a14,#171d1b)}.lw--stage .lw-rank{background:#1f2624;color:#dfe7e3}.lw--stage.lw-podium li.r1 .lw-rank{background:#f0b54a;color:#3b2a05}.lw--stage .lw-pts{color:#f0b54a}.lw--stage .lw-chip{background:#171d1b;border-color:#2c3633;color:#eef2ef;font-size:.8rem}.lw--stage .lw-chip.is-warn{border-color:#a8701c;background:#2a2010}.lw--stage .lw-chip.is-quiet{display:none}.lw--stage.lw-door li{border-color:#2c3633}.lw--stage .lw-door-who>span{color:#9fb0aa}.lw--stage .lw-btn{background:#171d1b;border-color:#2c3633;color:#eef2ef}.lw--stage .lw-btn.is-yes{background:#1f6f68;border-color:#2a8a82}.lw--stage .lw-empty{color:#9fb0aa}.pr-quiz--results{justify-content:flex-start}.pr-quiz--results .lw-results{width:min(860px,100%);text-align:left}.pr-quiz--results .lw-spread{height:150px}.pr-quiz--results .lw-q-top p{font-size:1.15rem}.pr-quiz .pr-btn{margin-top:6px}.pr-pulse{display:inline-flex;min-width:0;overflow:hidden}.pr-icon.is-on{background:#1f6f68;color:#fff}.pr-qs-badge.is-door{background:#f0b54a;color:#3b2a05}.pr-board,.pr-help{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;border:0;background:#080b0af2;color:#dfe7e3;font:inherit;cursor:pointer;padding:24px}.pr-board .lw-podium{width:min(620px,100%);gap:10px}.pr-board .lw-podium li{padding:14px 18px;font-size:1.35rem;grid-template-columns:48px minmax(0,1fr) auto}.pr-board .lw-rank{width:40px;height:40px}.pr-help b{font-size:1.3rem;color:#fff}.pr-help dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 32px;margin:0;text-align:left}.pr-help dl>div{display:flex;align-items:center;gap:12px}.pr-help dt{min-width:110px}.pr-help dd{margin:0;color:#c9d4cf}.pr-help kbd{color:#fff;border-color:#445}.pr-blank{position:absolute;inset:0;z-index:6;border:0;background:#000;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;padding:18px}.pr-blank span{color:#333;font:inherit;font-size:.85rem}@media(max-width:760px){.pr-pulse,.pr-hide-sm{display:none}.pr-help dl{grid-template-columns:minmax(0,1fr)}}.lb-list li.lb-mine{margin-top:14px;position:relative}.lb-list li.lb-mine:before{content:"⋯";position:absolute;top:-17px;left:50%;transform:translate(-50%);color:var(--muted);font-size:1rem;line-height:1}.qb-tools{display:flex;flex-direction:column;gap:10px;padding:0 16px 12px;border-bottom:1px solid var(--line-2)}.qb-mix,.qb-levels{display:flex;gap:4px}.qb-lv{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:7px 10px;border-radius:10px;border:1px solid transparent;background:var(--lv-bg);color:var(--lv-ink);font:inherit;text-align:left;cursor:pointer;transition:box-shadow .15s,transform .15s}.qb-lv b{font-size:1.05rem;line-height:1.1;font-variant-numeric:tabular-nums}.qb-lv span{font-size:.72rem;font-weight:600;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.qb-lv:hover{transform:translateY(-1px)}.qb-lv.is-on{border-color:var(--lv-ink);box-shadow:0 0 0 2px color-mix(in oklab,var(--lv-ink) 25%,transparent)}.l1{--lv-bg: #e3f4ec;--lv-ink: #1d7a52}.l2{--lv-bg: #e6f3f6;--lv-ink: #1f6f80}.l3{--lv-bg: #fdf3dc;--lv-ink: #8a6210}.l4{--lv-bg: #fde9df;--lv-ink: #a5481c}.l5{--lv-bg: #f9e1e6;--lv-ink: #9c2442}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .l1{--lv-bg: #173328;--lv-ink: #7fd8ac}:root:not([data-theme=light]) .l2{--lv-bg: #15303a;--lv-ink: #7cc9dc}:root:not([data-theme=light]) .l3{--lv-bg: #3a2f14;--lv-ink: #f0c56a}:root:not([data-theme=light]) .l4{--lv-bg: #3d2318;--lv-ink: #f3a07a}:root:not([data-theme=light]) .l5{--lv-bg: #3b1a22;--lv-ink: #f28da5}}:root[data-theme=dark] .l1{--lv-bg: #173328;--lv-ink: #7fd8ac}:root[data-theme=dark] .l2{--lv-bg: #15303a;--lv-ink: #7cc9dc}:root[data-theme=dark] .l3{--lv-bg: #3a2f14;--lv-ink: #f0c56a}:root[data-theme=dark] .l4{--lv-bg: #3d2318;--lv-ink: #f3a07a}:root[data-theme=dark] .l5{--lv-bg: #3b1a22;--lv-ink: #f28da5}.qb-levels .qb-lv{flex-direction:row;align-items:center;gap:6px;justify-content:center;min-height:40px}.qb-levels .qb-lv:not(.is-on){background:var(--surface-2);color:var(--muted)}.qb-warn{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:.86rem;color:#8a6210}.qb-warn svg{flex:none;width:16px;height:16px;margin-top:2px}.qb-warn--card{padding:10px 16px;background:color-mix(in oklab,#f0b54a 12%,var(--surface));border-bottom:1px solid var(--line-2)}.qb-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.qb-filters .select{width:auto;max-width:220px}.qb-search{flex:1 1 220px;position:relative;display:flex;align-items:center}.qb-search svg{position:absolute;left:10px;width:16px;height:16px;color:var(--muted);pointer-events:none}.qb-search .input{padding-left:32px}.q-row--pick{grid-template-columns:22px 26px minmax(0,1fr) auto}.q-row.is-picked{background:color-mix(in oklab,var(--primary) 6%,transparent)}.q-pick{width:18px;height:18px;margin-top:2px;accent-color:var(--primary);cursor:pointer}.q-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px}.qb-pill{padding:1px 8px;border-radius:99px;background:var(--lv-bg);color:var(--lv-ink);font-size:.74rem;font-weight:700}.qb-hot{color:var(--bad);font-weight:650}.qb-sug{padding:2px 8px;border-radius:8px;border:1px dashed var(--accent-line, var(--line-strong));background:var(--accent-soft);color:var(--accent);font:inherit;font-size:.76rem;font-weight:650;cursor:pointer}.qb-sug:hover{border-style:solid}@media(max-width:640px){.qb-mix .qb-lv span{display:none}.qb-levels{flex-wrap:wrap}.qb-levels .qb-lv{flex:1 1 30%}.q-row--pick{grid-template-columns:22px minmax(0,1fr)}.q-row--pick>.mono{display:none}.q-row--pick>.row{grid-column:2}}.pdfv-error{margin:16px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.pdfv-rotate{display:none;position:absolute;left:50%;bottom:12px;transform:translate(-50%);margin:0;padding:6px 12px;border-radius:99px;background:#0009;color:#fff;font-size:.78rem;white-space:nowrap;pointer-events:none}@media(orientation:portrait)and (max-width:640px){.pdfv-rotate{display:block}}.mq-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;max-width:100%}.mq-actions .select,.panel-head>.select{min-width:0;max-width:100%}@media(max-width:640px){.mq-actions{flex-basis:100%}.mq-actions .select{flex:1 1 140px}.panel-head>.select{flex:1 1 100%;margin-left:0!important}}.mq-list{grid-template-columns:minmax(0,1fr)}.mq-list li{min-width:0}.ach-earn{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 14px}.ach-earn li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:.9rem}.ach-earn li.is-bonus{background:transparent;border-style:dashed;color:var(--muted)}.ach-earn b{color:var(--accent);white-space:nowrap}.as-plan td{vertical-align:middle}.as-plan tr.is-off{opacity:.6}.as-plan tr.is-missing td{background:var(--surface-2)}.as-banks{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:16px;align-items:start}.bank-list{position:sticky;top:calc(var(--top-h) + 12px);max-height:calc(100vh - var(--top-h) - 32px);overflow-y:auto;padding-bottom:10px}.bank-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px 6px}.bank-item{display:flex;flex-direction:column;gap:5px;width:calc(100% - 16px);margin:0 8px 6px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer}.bank-item:hover{border-color:var(--line-strong)}.bank-item.is-on{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 14%,transparent)}.bank-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.bank-item-top b{font-size:.9rem;overflow-wrap:anywhere}.bank-mix{display:flex;height:6px;border-radius:99px;overflow:hidden;background:var(--surface-3);min-width:60px}.bank-mix>span{background:var(--lv-ink);flex-basis:0}.bank-search{margin:0 8px 8px}.bank-course{display:block;padding:0 16px 2px}@media(max-width:860px){.as-banks{grid-template-columns:minmax(0,1fr)}.bank-list{position:static;max-height:340px}}.qb-group{border-bottom:1px solid var(--line-2)}.qb-group-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:0;background:var(--surface-2);font:inherit;color:var(--ink);text-align:left;cursor:pointer}.qb-group-head .bank-mix{width:120px;flex:none}.qb-caret{width:12px;color:var(--muted)}@media(max-width:640px){.qb-group-head .bank-mix{display:none}}.rep-name{text-align:left;font:inherit;color:inherit}.rep-name:hover .cell-title{text-decoration:underline}.rep-head h2{margin:0 0 4px}.rep-prog{display:inline-flex;align-items:center;gap:8px;min-width:140px}.rep-prog .progress{flex:1}.rep-feed{list-style:none;margin:0;padding:4px 0}.rep-feed li{display:flex;justify-content:space-between;gap:10px;padding:8px 16px;border-top:1px solid var(--line-2)}.rep-feed li:first-child{border-top:0}.k-classroom{--k: #2a7a74}.k-online{--k: #3b6fd8}.k-live{--k: #d5212a}.k-field{--k: #b7791f}.k-webinar{--k: #7b4fd1}.k-assessment{--k: #c2410c}.k-other{--k: #6b7570}.cal-toolbar{align-items:center}.cal-month{font-family:var(--serif);font-size:1.25rem;min-width:10ch;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-3);overflow:hidden;background:var(--line);gap:1px}.cal-dow{padding:8px 10px;background:var(--surface-2);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.cal-day{position:relative;min-height:112px;padding:6px;background:var(--surface);display:flex;flex-direction:column;gap:3px;min-width:0}.cal-day.is-out{background:var(--surface-2)}.cal-day.is-out .cal-date{color:var(--faint)}.cal-day.is-today .cal-date{background:var(--primary);color:#fff}.cal-date{align-self:flex-start;min-width:24px;height:24px;padding:0 6px;border-radius:99px;display:grid;place-items:center;font-size:.8rem;font-weight:700;color:var(--ink-2)}.cal-chip{display:block;width:100%;padding:3px 6px;border:0;border-left:3px solid var(--k);border-radius:6px;background:color-mix(in oklab,var(--k) 12%,var(--surface));font:inherit;font-size:.76rem;line-height:1.3;color:var(--ink);text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip.is-cancelled{text-decoration:line-through;opacity:.6}.cal-chip-time{font-weight:700;color:var(--k)}.cal-more{border:0;background:none;font:inherit;font-size:.74rem;color:var(--primary);text-align:left;cursor:pointer;padding:0 4px}.cal-add{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:8px;border:1px dashed var(--line-strong);background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .15s}.cal-add svg{width:14px;height:14px}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-items{list-style:none;margin:0;padding:0}.cal-items li{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-2)}.cal-items li:first-child{border-top:0}.cal-items li.is-cancelled .cal-item-main b{text-decoration:line-through}.cal-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--k)}.cal-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cal-aud{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cal-aud .select{width:auto;flex:1 1 200px}.cal-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:99px;background:var(--primary-soft);color:var(--primary-ink);font-size:.84rem;font-weight:600}.cal-tag button{border:0;background:none;color:inherit;display:grid;place-items:center;cursor:pointer;padding:2px}.cal-tag svg{width:13px;height:13px}.cal-print-title{display:none}@media(max-width:720px){.cal-day{min-height:74px;padding:4px}.cal-chip-time{display:none}.cal-chip{font-size:.68rem;padding:2px 4px}.cal-dow{padding:6px 4px;font-size:.62rem}}@media print{.admin-side,.admin-top,.page-head-actions,.cal-toolbar,.cal-add,.agent-dock,.cal-more,header,nav{display:none!important}.cal-print-title{display:block;font-size:16pt;font-weight:700;margin:0 0 10px}.cal-grid{break-inside:avoid}.cal-day{min-height:90px}body{background:#fff!important}}.ucal-home{margin-top:18px;padding:14px 16px;border-radius:var(--r-3);background:var(--surface);border:1px solid var(--line)}.ucal-home-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.ucal-home-head b{display:inline-flex;align-items:center;gap:8px}.ucal-home-head svg{width:18px;height:18px;color:var(--primary)}.ucal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ucal-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.ucal-month .ucal-item{box-shadow:var(--shadow-1)}.ucal-item.is-cancelled{opacity:.6}.ucal-date{flex:none;width:52px;height:56px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:color-mix(in oklab,var(--k) 14%,var(--surface));color:var(--k);line-height:1}.ucal-date b{font-size:1.35rem}.ucal-date small{font-size:.7rem;font-weight:700;text-transform:uppercase;margin-top:2px}.ucal-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ucal-main b{overflow-wrap:anywhere}.ucal-cancel{color:var(--bad);font-weight:600}.ucal-loc{display:inline-flex;align-items:center;gap:4px}.ucal-loc svg{width:13px;height:13px;flex:none}.ucal-act{flex:none;display:flex;gap:6px;align-items:center}.ucal-month{margin-bottom:18px}@media(max-width:560px){.ucal-item{flex-wrap:wrap}.ucal-act{width:100%;justify-content:flex-end}}.lc-qr-btn{border:0;padding:0;background:none;cursor:zoom-in;border-radius:14px}.js{position:fixed;inset:0;z-index:420;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(20px,4vw,64px);padding:clamp(20px,4vw,56px);background:radial-gradient(120% 90% at 0% 0%,#1f3a36,#0d1211 70%);color:#eef3f0;overflow:auto}.js-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;display:grid;place-items:center;cursor:pointer}.js-qr .live-qr{padding:14px;border-radius:22px;box-shadow:0 30px 80px -20px #000000b3}.js-side{display:flex;flex-direction:column;gap:12px;min-width:0}.js-kicker{display:inline-flex;align-items:center;gap:10px;font-size:1rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ff9c9e}.js h1{margin:0;color:#fff;font-size:clamp(1.8rem,1rem + 2.6vw,3.4rem);line-height:1.1}.js-how{margin:0;font-size:clamp(1rem,.8rem + .6vw,1.35rem);color:#cfdcd7}.js-how.small{font-size:1rem}.js-code{font-size:clamp(3rem,1.6rem + 5vw,6.5rem);font-weight:800;letter-spacing:.12em;line-height:1;color:#fff}@media(max-width:900px),(orientation:portrait){.js{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.js-side{align-items:center}.js-qr .live-qr{width:min(70vw,52vh)!important;height:min(70vw,52vh)!important}}.jw{display:flex;flex-direction:column;gap:12px;margin-top:8px;width:100%}.jw-count{display:flex;align-items:baseline;gap:10px}.jw-count b{font-size:clamp(2.2rem,1.4rem + 2.4vw,3.6rem);line-height:1;color:#7fd1c4}.jw-count span{font-size:1.1rem;color:#9fb0aa}.jw-top{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-width:520px}.jw-top li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;background:#ffffff12;font-size:1.1rem}.jw-top li.r1{background:linear-gradient(90deg,#f0b54a59,#ffffff0f)}.jw-rank{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ffffff1f;font-weight:800}.jw-top li.r1 .jw-rank{background:#f0b54a;color:#3b2a05}.jw-rank svg{width:16px;height:16px}.jw-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jw-top b{color:#f0b54a}.jw-names{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;max-height:34vh;overflow:hidden}.jw-names li{padding:6px 14px;border-radius:99px;background:#ffffff17;border:1px solid rgba(255,255,255,.14);font-weight:600;font-size:1.05rem}.jw-names li.is-new{background:#7fd1c4;color:#0b2b25;border-color:#7fd1c4;animation:jw-pop .6s cubic-bezier(.2,1.6,.4,1)}.jw-names li.is-more{background:transparent;color:#9fb0aa}.jw-wait{margin:0;color:#9fb0aa;font-size:1.1rem}@keyframes jw-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.jw-names li.is-new{animation:none}}.pr-welcome-join .jw{max-width:560px}.pr-welcome-join .jw-names{max-height:24vh}.live-return{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:99px;background:#fdecec;color:#b42328;font-size:.84rem;font-weight:700;text-decoration:none;white-space:nowrap}.live-return:hover{background:#fbdcdc}@media(max-width:520px){.live-return{font-size:0;gap:0;padding:8px}}.live-board-pop{flex-basis:100%;display:flex;flex-direction:column;gap:6px;padding:6px 0 8px;color:#dfe7e3}.live-board-pop ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.live-board-pop li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 10px;border-radius:10px;background:#ffffff12}.live-board-pop li:first-child{background:linear-gradient(90deg,#f0b54a59,#ffffff0f)}.live-board-pop li.is-me{outline:2px solid #4fb3a9}.live-board-pop li>b:last-child{color:#f0b54a}.live-board-pop p{margin:0}.lc-pre-hint{display:flex;gap:10px;align-items:flex-start;margin:0;border-color:#f0b54a;background:color-mix(in oklab,#f0b54a 12%,var(--surface))}.lc-pre-hint>svg{flex:none;width:18px;height:18px;color:#b7791f;margin-top:2px}.lg{--ink: #17201e;--ink-2: #47524d;--muted: #6b7570;--line: rgba(23, 32, 30, .12);--card: rgba(255, 255, 255, .88);--field: rgba(255, 255, 255, .75);--primary: #1f5f5b;--primary-hi: #2a7a74;--red: #d5212a;--sky-top: #cfe7f4;--sky-bottom: #fdf2df;--sun: #ffd36b;--cloud: rgba(255, 255, 255, .92);--hill-far: #c4e3d5;--hill-mid: #94cdb6;--tree: #2f8f6f;--trunk: #6b4a2b;--road: #3a4140;--mark: #f4efe4;--kerb: #d5212a;--ground: #f6f2ea;--logo-glow: rgba(255, 255, 255, .55);--tyre: #1d2224;--rim: #c9ced0;--spoke: #9aa3a6;--frame: #d5212a;--jersey: #1f5f5b;--leg: #2b3335;--skin: #e2a77e;--helmet: #f0a52c;position:relative;isolation:isolate;overflow:hidden;min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto 1fr;background:var(--sky-bottom);color:var(--ink)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .lg{--ink: #eef2ef;--ink-2: #bfc9c4;--muted: #95a09b;--line: rgba(255, 255, 255, .14);--card: rgba(20, 27, 26, .86);--field: rgba(0, 0, 0, .25);--primary: #237a73;--primary-hi: #2c8f87;--ground: #101414}}:root[data-theme=dark] .lg{--ink: #eef2ef;--ink-2: #bfc9c4;--muted: #95a09b;--line: rgba(255, 255, 255, .14);--card: rgba(20, 27, 26, .86);--field: rgba(0, 0, 0, .25);--primary: #237a73;--primary-hi: #2c8f87;--ground: #101414}.lg-scene{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.ride .rs-sky-top{stop-color:var(--sky-top)}.ride .rs-sky-bottom{stop-color:var(--sky-bottom)}.ride .rs-sun{fill:var(--sun);filter:drop-shadow(0 0 30px var(--sun))}.ride .rs-cloud ellipse{fill:var(--cloud)}.ride .rs-far path{fill:var(--hill-far)}.ride .rs-mid path{fill:var(--hill-mid)}.ride .rs-tree circle{fill:var(--tree)}.ride .rs-trunk{fill:var(--trunk)}.ride .rs-road{fill:var(--road)}.ride .rs-kerb{fill:var(--kerb)}.ride .rs-road-marks rect{fill:var(--mark)}.ride .rs-shadow{fill:#00000047}.ride .rs-tyre{fill:none;stroke:var(--tyre);stroke-width:8}.ride .rs-rim{fill:none;stroke:var(--rim);stroke-width:2.5}.ride .rs-spokes line{stroke:var(--spoke);stroke-width:1.2}.ride .rs-hub{fill:var(--rim)}.ride .rs-frame path{fill:none;stroke:var(--frame);stroke-width:7;stroke-linejoin:round;stroke-linecap:round}.ride .rs-bar{fill:none;stroke:var(--tyre);stroke-width:5;stroke-linecap:round}.ride .rs-saddle{fill:var(--tyre)}.ride .rs-chainring{fill:none;stroke:var(--rim);stroke-width:3}.ride .rs-crank-arm{stroke:var(--tyre);stroke-width:4;stroke-linecap:round}.ride .rs-torso{stroke:var(--jersey);stroke-width:18;stroke-linecap:round}.ride .rs-arm{stroke:var(--jersey);stroke-width:8;stroke-linecap:round}.ride .rs-leg{stroke:var(--leg);stroke-width:11;stroke-linecap:round}.ride .rs-thigh-1,.ride .rs-shin-1{stroke:color-mix(in oklab,var(--leg) 75%,#888)}.ride .rs-head{fill:var(--skin)}.ride .rs-helmet{fill:var(--helmet)}.lg{--sky-mid: color-mix(in oklab, var(--sky-top) 45%, var(--sky-bottom));--haze: rgba(255, 190, 120, 0);--moon: #f4efd9;--stars: 0;--moon-o: 0;--sun-o: 1;--lamp-o: 0;--birds: .55;--lamp: #ffd88a;--sun-at: translate(1140px, 120px);--moon-at: translate(930px, 105px)}.lg[data-tod=dawn]{--sky-top: #93bfe6;--sky-mid: #f6c9b4;--sky-bottom: #ffe0b0;--sun: #ffb85c;--haze: rgba(255, 168, 96, .6);--cloud: rgba(255, 240, 230, .9);--hill-far: #c7b6d6;--hill-mid: #8fc0a6;--tree: #3c8c6a;--trunk: #6b4a2b;--road: #40464a;--mark: #f4efe4;--sun-at: translate(900px, 290px);--birds: 1;--logo-glow: rgba(255, 255, 255, .55)}.lg[data-tod=day]{--sky-top: #7cc3ec;--sky-mid: #bfe3f4;--sky-bottom: #f2f9f6;--sun: #ffe27a;--haze: rgba(255, 240, 180, .35);--cloud: rgba(255, 255, 255, .95);--hill-far: #bfe0cf;--hill-mid: #88c9a6;--tree: #2f8f6f;--trunk: #6b4a2b;--road: #3a4140;--mark: #f4efe4;--sun-at: translate(1060px, 110px);--logo-glow: rgba(255, 255, 255, .55)}.lg[data-tod=evening]{--sky-top: #4c5596;--sky-mid: #d97c78;--sky-bottom: #ffb36b;--sun: #ff8a4c;--haze: rgba(255, 128, 76, .7);--cloud: rgba(255, 200, 190, .55);--hill-far: #7a6996;--hill-mid: #4d6d62;--tree: #2a4d43;--trunk: #3a2a1e;--road: #2b2f33;--mark: #d8cfbd;--sun-at: translate(560px, 300px);--stars: .3;--lamp-o: 1;--birds: .7;--logo-glow: rgba(0, 0, 0, .25)}.lg[data-tod=night]{--sky-top: #0b1230;--sky-mid: #1c2550;--sky-bottom: #3a3f6e;--cloud: rgba(200, 210, 240, .14);--hill-far: #28344f;--hill-mid: #1d3834;--tree: #142e29;--trunk: #22190f;--road: #121516;--mark: #8d8a80;--sun-o: 0;--moon-o: 1;--stars: 1;--lamp-o: 1;--birds: 0;--rim: #8a9294;--spoke: #6c7477;--logo-glow: rgba(0, 0, 0, .35)}.ride .rs-sky-mid{stop-color:var(--sky-mid)}.ride .rs-sunwrap{transform:var(--sun-at);opacity:var(--sun-o);transition:transform 2s cubic-bezier(.2,.7,.2,1),opacity 1.2s}.ride .rs-haze-in{stop-color:var(--haze)}.ride .rs-haze-out{stop-color:var(--haze);stop-opacity:0}.ride .rs-moon{transform:var(--moon-at);opacity:var(--moon-o);transition:opacity 1.2s}.ride .rs-moon>circle:first-child{fill:var(--moon);filter:drop-shadow(0 0 22px rgba(244,239,217,.55))}.ride .rs-crater{fill:#786e5a2e}.ride .rs-stars{opacity:var(--stars);transition:opacity 1.2s}.ride .rs-stars circle{fill:#fffbe8;animation:rs-twinkle 4s ease-in-out infinite}.ride .rs-birds{opacity:var(--birds)}.ride .rs-birds path{fill:none;stroke:color-mix(in oklab,var(--ink) 70%,var(--sky-top));stroke-width:2;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:rs-flap 1.1s ease-in-out infinite}.ride .rs-lamp-post{fill:none;stroke:color-mix(in oklab,var(--road) 70%,#000);stroke-width:4;stroke-linecap:round}.ride .rs-lamp-bulb{fill:color-mix(in oklab,var(--lamp) calc(var(--lamp-o) * 100%),#9aa3a6)}.ride .rs-lamp-glow,.ride .rs-lamp-pool{opacity:var(--lamp-o);transition:opacity 1.2s}.ride .rs-lamp-in{stop-color:var(--lamp);stop-opacity:.75}.ride .rs-lamp-out{stop-color:var(--lamp);stop-opacity:0}.ride .rs-lamp-pool{fill:var(--lamp);fill-opacity:.18}@keyframes rs-twinkle{50%{opacity:.35}}@keyframes rs-flap{50%{transform:scaleY(.45)}}.lg-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;padding:5px 11px 5px 9px;border-radius:999px;font-size:.78rem;font-weight:650;letter-spacing:.02em;color:var(--ink-2);background:color-mix(in oklab,var(--tod-accent, var(--primary-hi)) 14%,transparent);border:1px solid color-mix(in oklab,var(--tod-accent, var(--primary-hi)) 28%,transparent)}.lg-kicker svg{width:15px;height:15px;color:var(--tod-accent, var(--primary-hi))}.lg-kicker time{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:550}.lg[data-tod=dawn]{--tod-accent: #e8862e}.lg[data-tod=day]{--tod-accent: #d79a07}.lg[data-tod=evening]{--tod-accent: #e0613a}.lg[data-tod=night]{--tod-accent: #7c8cf0}.lg-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(16px,env(safe-area-inset-top)) clamp(16px,4vw,48px) 0}.lg-logo{display:block;width:clamp(104px,11vw,148px);filter:drop-shadow(0 2px 10px var(--logo-glow))}.hero-logo{width:100%;height:auto;overflow:visible}.hero-logo--animated .hero-logo__l{transform-box:fill-box;transform-origin:50% 100%;animation:lg-letter .8s cubic-bezier(.16,1,.3,1) calc(.1s + var(--i) * 45ms) both}.hero-logo__glint{animation:lg-glint 1.4s cubic-bezier(.5,0,.2,1) .9s both}.lg-verify{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;text-decoration:none;font-size:.85rem;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .2s}.lg-verify:hover{transform:translateY(-1px)}.lg-verify svg{width:16px;height:16px;color:var(--primary-hi)}.lg-main{display:grid;align-items:center;justify-items:end;padding:24px clamp(16px,6vw,96px) clamp(140px,30vh,260px)}.lg-card{width:min(400px,100%);padding:clamp(24px,3vw,34px);border-radius:26px;background:var(--card);border:1px solid var(--line);box-shadow:0 30px 70px -30px #00000073;-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);animation:lg-card-in .9s cubic-bezier(.16,1,.3,1) .2s both}.lg-title{font-family:var(--serif);font-weight:560;letter-spacing:-.02em;font-size:clamp(1.9rem,1.5rem + 1.2vw,2.4rem);line-height:1.1;color:var(--ink)}.lg-wave{display:inline-block;margin-left:8px;transform-origin:70% 80%;animation:lg-wave 2.2s ease-in-out 1s 2}.lg-sub{margin-top:6px;font-weight:600;color:var(--ink)}.lg-message{margin-top:4px;color:var(--ink-2);font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.lg-form{display:flex;flex-direction:column;gap:14px;margin-top:22px}.lg-field{position:relative}.lg-field input{width:100%;height:56px;padding:22px 16px 6px;border-radius:14px;font-size:16px;color:var(--ink);background:var(--field);border:1.5px solid var(--line);transition:border-color .18s,box-shadow .18s,background .18s}.lg-field label{position:absolute;left:17px;top:17px;font-size:16px;color:var(--muted);pointer-events:none;transform-origin:0 0;transition:transform .18s cubic-bezier(.2,.7,.2,1),color .18s}.lg-field input:focus{outline:none;border-color:var(--primary-hi);box-shadow:0 0 0 4px color-mix(in oklab,var(--primary-hi) 20%,transparent);background:var(--card)}.lg-field input:focus+label,.lg-field input:not(:placeholder-shown)+label{transform:translateY(-10px) scale(.76);color:var(--primary-hi);font-weight:600}.lg-field input:-webkit-autofill+label{transform:translateY(-10px) scale(.76)}.lg-field--pw input{padding-right:54px}.lg-field--pw button{position:absolute;right:7px;top:8px;width:40px;height:40px;border:0;border-radius:10px;cursor:pointer;display:grid;place-items:center;color:var(--muted);background:transparent}.lg-field--pw button:hover{color:var(--ink);background:color-mix(in oklab,var(--ink) 7%,transparent)}.lg-field--pw button svg{width:19px;height:19px}.lg-go{position:relative;overflow:hidden;height:56px;margin-top:2px;border:0;border-radius:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;font-size:1.05rem;font-weight:650;color:#fff;background:linear-gradient(180deg,var(--primary-hi),var(--primary));box-shadow:0 14px 28px -12px color-mix(in oklab,var(--primary) 90%,transparent),inset 0 1px #fff3;transition:transform .15s,filter .2s}.lg-go:after{content:"";position:absolute;inset:0;transform:translate(-120%) skew(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:transform .6s cubic-bezier(.16,1,.3,1)}.lg-go:hover:after{transform:translate(120%) skew(-20deg)}.lg-go:hover{filter:brightness(1.06)}.lg-go:active{transform:scale(.985)}.lg-go:focus-visible{outline:3px solid color-mix(in oklab,var(--primary-hi) 50%,transparent);outline-offset:3px}.lg-go:disabled{cursor:progress}.lg-go>svg{width:19px;height:19px;transition:transform .2s}.lg-go:hover>svg{transform:translate(4px)}.lg-spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:lg-spin .7s linear infinite}.lg-error{padding:11px 14px;border-radius:12px;font-size:.9rem;font-weight:550;color:#9b2c22;background:#fdecea;border:1px solid #f5c9c3;animation:lg-shake .4s cubic-bezier(.36,.07,.19,.97)}:root[data-theme=dark] .lg-error{color:#ffd0ca;background:#3a1714;border-color:#5c2621}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .lg-error{color:#ffd0ca;background:#3a1714;border-color:#5c2621}}.lg-help{margin-top:18px;border-top:1px dashed var(--line);padding-top:14px;font-size:.88rem;color:var(--ink-2)}.lg-help summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;color:var(--ink-2);list-style:none;border-radius:8px}.lg-help summary::-webkit-details-marker{display:none}.lg-help summary svg{width:17px;height:17px;color:var(--primary-hi)}.lg-help summary:hover{color:var(--ink)}.lg-help ul{margin:10px 0 0;padding-left:18px;display:grid;gap:8px;line-height:1.5;color:var(--muted)}.lg-help[open] ul{animation:lg-rise .3s cubic-bezier(.16,1,.3,1)}.lg-help b{color:var(--ink)}.lg-help a{color:var(--primary-hi)}.lg[data-leaving] .lg-card{animation:lg-out .5s cubic-bezier(.7,0,.84,0) .1s both}@keyframes lg-letter{0%{opacity:0;transform:translate3d(0,40%,0) scaleY(.6)}}@keyframes lg-glint{0%{transform:translate(0)}to{transform:translate(2300px)}}@keyframes lg-card-in{0%{opacity:0;transform:translate3d(0,24px,0) scale(.97)}}@keyframes lg-out{to{opacity:0;transform:translate3d(0,30px,0) scale(.96)}}@keyframes lg-rise{0%{opacity:0;transform:translateY(-4px)}}@keyframes lg-wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-8deg)}}@keyframes lg-spin{to{transform:rotate(360deg)}}@keyframes lg-shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@media(max-width:760px){.lg{grid-template-rows:auto 1fr;background:var(--ground)}.lg-top{grid-row:1;position:absolute;inset:0 0 auto;z-index:2}.lg-scene{position:relative;inset:auto;grid-row:1;height:clamp(230px,40vh,320px)}.lg-main{grid-row:2;justify-items:stretch;align-items:start;padding:0 16px max(20px,env(safe-area-inset-bottom));margin-top:-30px}.lg-card{width:100%;padding:24px 20px;border-radius:22px}.lg-verify span{display:none}.lg-verify{padding:9px}}@media(prefers-reduced-motion:reduce){.ride .rs-stars circle,.ride .rs-birds path{animation:none}.lg *,.lg *:before,.lg *:after{animation:none!important;transition:none!important}}.lg-register{margin:14px 0 0;font-size:.92rem;color:var(--ink-2, #4a524e);text-align:center}.lg-register a{font-weight:700;color:#c0262f}.rg-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:380px){.rg-two{grid-template-columns:1fr}}.rg-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.rg-back{margin:14px 0 0;text-align:center;font-size:.9rem}.rg-back a{display:inline-flex;align-items:center;gap:6px}.rg-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.rg-done>svg{width:52px;height:52px;color:#1f9d55}.rg-done .lg-go{width:100%;padding:0 22px}.rg-hp{overflow:hidden}.jg-card{max-width:440px}.jg-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c0392b;margin-bottom:6px}.jg-kicker .live-dot{width:8px;height:8px;border-radius:50%;background:#e23d2f;box-shadow:0 0 #e23d2f80;animation:jg-pulse 1.6s infinite}@keyframes jg-pulse{70%{box-shadow:0 0 0 9px #e23d2f00}to{box-shadow:0 0 #e23d2f00}}.jg-choices{display:flex;flex-direction:column;gap:12px;margin-top:22px}.jg-btn{text-decoration:none;justify-content:center}.jg-btn svg:first-child{width:18px;height:18px}.jg-new{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:14px;border:1.5px dashed var(--line-2, #d6d2c8);background:var(--card, #fff);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.jg-new:hover,.jg-new:focus-visible{border-color:var(--primary-hi);border-style:solid;transform:translateY(-1px);box-shadow:0 8px 22px -14px #00000059}.jg-new>svg{width:22px;height:22px;color:var(--primary-hi);flex:none}.jg-new>svg:last-child{width:18px;height:18px;color:var(--ink-3, #8a918c);margin-left:auto}.jg-new span{display:flex;flex-direction:column;gap:2px}.jg-new small{color:var(--ink-2);font-size:.84rem}.jg-closed{display:flex;align-items:center;gap:6px;margin:4px 0 0}.jg-types{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.jg-types button{min-height:44px;padding:6px 8px;border-radius:12px;border:1px solid var(--line-2, #d6d2c8);background:var(--card, #fff);color:var(--ink-2);font-size:.84rem;font-weight:600;line-height:1.2;cursor:pointer}.jg-types button.is-on{border-color:var(--primary-hi);background:color-mix(in oklab,var(--primary-hi) 10%,var(--card, #fff));color:var(--ink);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary-hi) 16%,transparent)}.jg-wait{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.jg-wait .lg-message{margin:0}.jg-icon{width:52px;height:52px;color:#c0392b}.jg-icon.is-ok{color:#1f9d55}.jg-wait .lg-go{width:100%;padding:0 22px}.jg-dots{display:inline-flex;gap:6px;margin:4px 0 6px}.jg-dots i{width:8px;height:8px;border-radius:50%;background:var(--primary-hi);opacity:.3;animation:jg-dot 1.2s infinite}.jg-dots i:nth-child(2){animation-delay:.2s}.jg-dots i:nth-child(3){animation-delay:.4s}@keyframes jg-dot{40%{opacity:1;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.jg-dots i,.jg-kicker .live-dot{animation:none;opacity:.8}}
