:root{--bg: #07090f;--bg2: #0b0f1a;--surface: rgba(255, 255, 255, .035);--surface2: rgba(255, 255, 255, .065);--surface3: rgba(255, 255, 255, .1);--border: rgba(255, 255, 255, .09);--border2: rgba(255, 255, 255, .16);--text: #e9edf5;--text-dim: #9aa4bb;--text-faint: #626d85;--easy: #34d399;--medium: #fbbf24;--hard: #fb7185;--accent: #7dd3fc;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;--radius: 16px;--radius-sm: 10px;--shadow: 0 18px 50px -12px rgba(0, 0, 0, .55)}:root[data-theme=light]{--bg: #f5f7fc;--bg2: #eaeef7;--surface: rgba(15, 23, 42, .028);--surface2: rgba(15, 23, 42, .052);--surface3: rgba(15, 23, 42, .085);--border: rgba(15, 30, 60, .1);--border2: rgba(15, 30, 60, .17);--text: #172033;--text-dim: #55617a;--text-faint: #8993a8;--easy: #059669;--medium: #b45309;--hard: #e11d48;--accent: #0284c7;--shadow: 0 18px 44px -16px rgba(30, 41, 90, .28)}:root[data-theme=light] .app-bg{background:radial-gradient(60vw 60vw at 12% -10%,rgba(99,102,241,.14),transparent 60%),radial-gradient(50vw 50vw at 95% 15%,rgba(14,165,233,.12),transparent 55%),radial-gradient(70vw 60vw at 55% 115%,rgba(217,70,239,.1),transparent 60%),linear-gradient(180deg,#eef2fb,#f5f7fc 45%)}:root[data-theme=light] .app-bg:after{background-image:radial-gradient(rgba(30,41,90,.06) 1px,transparent 1.4px)}:root[data-theme=light] .orb{opacity:.32}:root[data-theme=light] .topbar{background:#f5f7fcc7}:root[data-theme=light] .brand-badge{box-shadow:0 6px 20px -6px #6366f180}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#0f1e3c2e}:root[data-theme=light] .example-card,:root[data-theme=light] .cx-card{box-shadow:var(--shadow)}:root[data-theme=light] .player{background:linear-gradient(180deg,#fff,#eef2fa);border-color:var(--border);box-shadow:var(--shadow)}:root[data-theme=light] .codeblock{background:#f7f8fc;border-color:var(--border)}:root[data-theme=light] .codeblock-head{background:#0f172a09;border-color:var(--border)}:root[data-theme=light] .codeline:hover{background:#0f172a07}:root[data-theme=light] .codeline .ln{color:#0f172a42}:root[data-theme=light] .tk-kw{color:#a626a4}:root[data-theme=light] .tk-str{color:#3f8f3f}:root[data-theme=light] .tk-num{color:#b76b01}:root[data-theme=light] .tk-com{color:#9aa1b0}:root[data-theme=light] .tk-fn{color:#3f6fe0}:root[data-theme=light] .tk-bi{color:#0184bc}:root[data-theme=light] .tk-op{color:#0184bc}:root[data-theme=light] .tk-self{color:#d13a2c}:root[data-theme=light] .tk-dec{color:#b98900}:root[data-theme=light] .inline-code{background:#0284c717;color:#0369a1;border-color:#0284c738}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:#7dd3fc47}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}code{font-family:var(--mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;overflow:hidden;background:radial-gradient(60vw 60vw at 12% -10%,rgba(99,102,241,.13),transparent 60%),radial-gradient(50vw 50vw at 95% 15%,rgba(34,211,238,.09),transparent 55%),radial-gradient(70vw 60vw at 55% 115%,rgba(232,121,249,.08),transparent 60%),linear-gradient(180deg,var(--bg2),var(--bg) 45%)}.app-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.4px);background-size:34px 34px;-webkit-mask-image:radial-gradient(80vw 70vh at 50% 0%,#000 20%,transparent 75%);mask-image:radial-gradient(80vw 70vh at 50% 0%,#000 20%,transparent 75%)}.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;animation:orbFloat 22s ease-in-out infinite alternate}@keyframes orbFloat{0%{transform:translate(0) scale(1)}to{transform:translate(60px,-50px) scale(1.15)}}.topbar{position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);background:#080a11b8;border-bottom:1px solid var(--border)}.topbar-inner{max-width:1200px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:17px;letter-spacing:-.02em}.brand-badge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#6366f1,#22d3ee);box-shadow:0 6px 20px -4px #6366f18c}.brand-sub{color:var(--text-faint);font-weight:500;font-size:13px;margin-left:2px}.topbar-spacer{flex:1}.topbar-link{color:var(--text-dim);font-size:14px;font-weight:600;padding:7px 14px;border-radius:9px;transition:all .2s}.topbar-link:hover{color:var(--text);background:var(--surface2)}.page{max-width:1200px;margin:0 auto;padding:40px 28px 110px}.glass{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.section-label{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:46px 0 18px}.section-label .dot{width:8px;height:8px;border-radius:3px;background:var(--pc, var(--accent));box-shadow:0 0 12px var(--pc, var(--accent))}.section-label .line{flex:1;height:1px;background:linear-gradient(90deg,var(--border2),transparent)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.02em;padding:4px 11px;border-radius:999px;border:1px solid var(--border2);color:var(--text-dim);background:var(--surface)}.chip.easy{color:var(--easy);border-color:#34d39959;background:#34d39914}.chip.medium{color:var(--medium);border-color:#fbbf2459;background:#fbbf2414}.chip.hard{color:var(--hard);border-color:#fb718559;background:#fb718514}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:11px;font-size:14px;font-weight:600;color:var(--text);background:var(--surface2);border:1px solid var(--border2);transition:all .18s}.btn:hover{background:var(--surface3);transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--pc, #6366f1),color-mix(in oklab,var(--pc, #6366f1) 60%,#22d3ee));border-color:transparent;color:#0b0e17;font-weight:800}.inline-code{font-family:var(--mono);font-size:.86em;background:#7dd3fc1a;color:#a5e3ff;padding:2px 7px;border-radius:6px;border:1px solid rgba(125,211,252,.14);white-space:nowrap}.hero{padding:68px 0 30px;text-align:center;position:relative}.hero h1{font-size:clamp(38px,6vw,64px);font-weight:900;letter-spacing:-.035em;line-height:1.06}.hero h1 .grad{background:linear-gradient(100deg,#818cf8,#22d3ee 45%,#e879f9);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.sub{margin:20px auto 0;max-width:640px;color:var(--text-dim);font-size:18px}.hero-stats{display:flex;gap:14px;justify-content:center;margin-top:34px;flex-wrap:wrap}.stat-pill{display:flex;align-items:baseline;gap:8px;padding:10px 20px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.stat-pill b{font-size:22px;font-weight:800}.stat-pill span{font-size:13px;color:var(--text-dim);font-weight:600}.search-wrap{max-width:560px;margin:38px auto 0;position:relative}.search-input{width:100%;padding:15px 22px 15px 50px;border-radius:16px;background:var(--surface2);border:1px solid var(--border2);color:var(--text);font-size:16px;outline:none;transition:all .2s}.search-input:focus{border-color:#7dd3fc80;box-shadow:0 0 0 4px #7dd3fc1f}.search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--text-faint)}.search-results{margin:14px auto 0;max-width:560px;text-align:left;display:flex;flex-direction:column;gap:8px}.pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;margin-top:26px}.pattern-card{position:relative;display:block;padding:24px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);overflow:hidden;transition:transform .25s cubic-bezier(.2,.9,.3,1.2),border-color .25s,background .25s}.pattern-card:hover{transform:translateY(-5px);border-color:color-mix(in oklab,var(--pc) 45%,transparent);background:var(--surface2)}.pattern-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--pc),transparent 75%);opacity:.85}.pattern-card .glow{position:absolute;width:220px;height:220px;border-radius:50%;right:-70px;top:-90px;background:radial-gradient(circle,var(--pc),transparent 70%);opacity:.1;transition:opacity .3s;pointer-events:none}.pattern-card:hover .glow{opacity:.22}.pattern-card-head{display:flex;align-items:center;gap:15px}.pattern-icon-box{width:52px;height:52px;flex:none;border-radius:14px;display:grid;place-items:center;background:color-mix(in oklab,var(--pc) 13%,transparent);border:1px solid color-mix(in oklab,var(--pc) 30%,transparent);color:var(--pc)}.pattern-card h3{font-size:18px;font-weight:800;letter-spacing:-.02em}.pattern-card .count{font-size:12.5px;color:var(--text-dim);font-weight:600;margin-top:2px}.pattern-card p.tag{margin-top:14px;font-size:14px;color:var(--text-dim);line-height:1.55}.pattern-card .arrow{position:absolute;right:20px;bottom:18px;color:var(--text-faint);transition:all .25s}.pattern-card:hover .arrow{color:var(--pc);transform:translate(4px)}.pattern-hero{display:flex;gap:26px;align-items:flex-start;padding:34px;position:relative;overflow:hidden}.pattern-hero .big-icon{width:84px;height:84px;flex:none;border-radius:22px;display:grid;place-items:center;background:color-mix(in oklab,var(--pc) 14%,transparent);border:1px solid color-mix(in oklab,var(--pc) 35%,transparent);color:var(--pc);box-shadow:0 10px 40px -10px color-mix(in oklab,var(--pc) 55%,transparent)}.pattern-hero h1{font-size:clamp(28px,4vw,42px);font-weight:900;letter-spacing:-.03em;line-height:1.1}.pattern-hero .tagline{color:var(--text-dim);font-size:17px;margin-top:10px;max-width:760px}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-faint);font-weight:600;margin-bottom:22px}.breadcrumb a:hover{color:var(--text)}.breadcrumb .sep{opacity:.5}.when-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.when-item{display:flex;gap:12px;padding:16px 18px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);font-size:14.5px;color:var(--text-dim)}.when-item .tick{color:var(--pc);flex:none;margin-top:2px}.qlist{display:flex;flex-direction:column;gap:10px;margin-top:4px}.qrow{display:flex;align-items:center;gap:16px;padding:15px 20px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);transition:all .18s}.qrow:hover{background:var(--surface2);border-color:color-mix(in oklab,var(--pc) 40%,transparent);transform:translate(4px)}.qrow .idx{font-family:var(--mono);font-size:12.5px;color:var(--text-faint);width:26px;flex:none}.qrow .qtitle{font-weight:650;font-size:15.5px;flex:1;letter-spacing:-.01em}.qrow .karr{color:var(--text-faint);transition:transform .2s}.qrow:hover .karr{color:var(--pc);transform:translate(3px)}.qhead h1{font-size:clamp(26px,3.6vw,38px);font-weight:900;letter-spacing:-.03em;line-height:1.15}.qhead-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.prose{color:var(--text-dim);font-size:15.5px}.prose p+p{margin-top:12px}.prose b,.prose strong{color:var(--text)}.summary-callout{padding:20px 24px;border-radius:var(--radius);background:color-mix(in oklab,var(--pc) 7%,transparent);border:1px solid color-mix(in oklab,var(--pc) 22%,transparent);font-size:16px;color:var(--text);line-height:1.6}.example-card{padding:16px 20px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);font-family:var(--mono);font-size:13.5px}.example-card .lbl{font-family:var(--sans);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:4px}.example-card .expl{font-family:var(--sans);color:var(--text-dim);font-size:13.5px;margin-top:8px}.examples-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.steps{display:flex;flex-direction:column;gap:12px;counter-reset:step}.step-item{display:flex;gap:15px;padding:16px 20px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.step-item .n{counter-increment:step;flex:none;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:800;font-family:var(--mono);background:color-mix(in oklab,var(--pc) 15%,transparent);color:var(--pc);border:1px solid color-mix(in oklab,var(--pc) 30%,transparent)}.step-item .n:before{content:counter(step)}.step-item .txt{color:var(--text-dim);font-size:15px;padding-top:2px}.pitfall-item{display:flex;gap:12px;padding:14px 18px;border-radius:var(--radius-sm);background:#fb71850d;border:1px solid rgba(251,113,133,.16);color:var(--text-dim);font-size:14.5px}.pitfall-item .warn{color:var(--hard);flex:none;margin-top:1px}.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:60px}.pn-card{padding:18px 22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:all .2s}.pn-card:hover{background:var(--surface2);border-color:color-mix(in oklab,var(--pc) 40%,transparent)}.pn-card .dir{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint)}.pn-card .name{font-weight:700;margin-top:5px;font-size:15px}.pn-card.next{text-align:right}.cx-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.cx-card{padding:20px 22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);position:relative;overflow:hidden}.cx-card .cx-label{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint)}.cx-card .cx-value{font-family:var(--mono);font-size:26px;font-weight:700;margin-top:6px;color:var(--text)}.cx-card .cx-note{font-size:13.5px;color:var(--text-dim);margin-top:8px}.cx-meter{margin-top:14px;height:7px;border-radius:99px;background:var(--surface3);overflow:hidden}.cx-meter .fill{height:100%;border-radius:99px;transition:width .8s cubic-bezier(.2,.8,.2,1)}.codeblock{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:#0a0d16}.codeblock-head{display:flex;align-items:center;gap:10px;padding:11px 18px;background:#ffffff08;border-bottom:1px solid var(--border)}.codeblock-head .dots{display:flex;gap:6px}.codeblock-head .dots i{width:11px;height:11px;border-radius:50%;opacity:.85}.codeblock-head .fname{font-family:var(--mono);font-size:12.5px;color:var(--text-dim);margin-left:6px}.codeblock-head .copy{margin-left:auto;font-size:12px;font-weight:700;color:var(--text-dim);background:none;border:1px solid var(--border2);padding:4px 11px;border-radius:7px;transition:all .15s}.codeblock-head .copy:hover{color:var(--text);background:var(--surface2)}.codeblock pre{overflow-x:auto;padding:18px 0;font-size:13.5px;line-height:1.7}.codeline{display:flex;padding:0 18px}.codeline:hover{background:#ffffff06}.codeline .ln{width:34px;flex:none;text-align:right;padding-right:18px;color:#ffffff29;-webkit-user-select:none;user-select:none;font-size:12px;line-height:inherit}.codeline .lc{white-space:pre}.tk-kw{color:#c792ea}.tk-str{color:#a5d6a7}.tk-num{color:#f78c6c}.tk-com{color:#546178;font-style:italic}.tk-fn{color:#82aaff}.tk-bi{color:#7fdbca}.tk-op{color:#89ddff}.tk-self{color:#ff9e80}.tk-dec{color:#ffcb6b}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tab-btn{padding:8px 16px;border-radius:10px;font-size:13.5px;font-weight:700;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);transition:all .16s}.tab-btn:hover{color:var(--text);background:var(--surface2)}.tab-btn.on{color:var(--pc);border-color:color-mix(in oklab,var(--pc) 45%,transparent);background:color-mix(in oklab,var(--pc) 10%,transparent)}.alt-meta{display:flex;gap:10px;margin:14px 0;flex-wrap:wrap}.alt-note{color:var(--text-dim);font-size:14.5px;margin-top:14px}.player{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(180deg,#ffffff0b,#ffffff05);overflow:hidden}.player-stage{position:relative;padding:34px 26px 22px;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-x:auto}.player-caption{min-height:58px;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 26px 4px;font-size:15px;color:var(--text);line-height:1.5;font-weight:500}.player-aux{text-align:center;font-family:var(--mono);font-size:13px;color:var(--pc, var(--accent));min-height:22px;padding:0 20px}.player-controls{display:flex;align-items:center;gap:10px;padding:14px 18px 18px}.pbtn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface2);border:1px solid var(--border2);color:var(--text);transition:all .15s}.pbtn:hover{background:var(--surface3);transform:translateY(-1px)}.pbtn.main{width:48px;height:48px;border-radius:14px;background:var(--pc, var(--accent));color:#081018;border:none;box-shadow:0 8px 24px -6px color-mix(in oklab,var(--pc, var(--accent)) 70%,transparent)}.pbtn.main:hover{transform:translateY(-2px) scale(1.04)}.speed-btn{font-family:var(--mono);font-size:12px;font-weight:700;width:auto;padding:0 13px}.progress-wrap{flex:1;display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:7px;border-radius:99px;background:var(--surface3);cursor:pointer;position:relative}.progress-bar .pfill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:var(--pc, var(--accent));transition:width .25s ease}.frame-count{font-family:var(--mono);font-size:12px;color:var(--text-dim);white-space:nowrap}.viz-svg text{font-family:var(--mono)}@keyframes iconPulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes iconSlide{0%{transform:translate(0)}50%{transform:translate(14px)}to{transform:translate(0)}}@keyframes iconSlideBack{0%{transform:translate(0)}50%{transform:translate(-14px)}to{transform:translate(0)}}@keyframes iconOrbitFast{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes iconGrow{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}@keyframes iconBlink{0%,to{opacity:.15}50%{opacity:1}}@keyframes iconDash{to{stroke-dashoffset:-24}}.ic-pulse{animation:iconPulse 2.2s ease-in-out infinite}.ic-pulse.d1{animation-delay:.4s}.ic-pulse.d2{animation-delay:.8s}.ic-pulse.d3{animation-delay:1.2s}.ic-slide{animation:iconSlide 2.6s ease-in-out infinite}.ic-slideback{animation:iconSlideBack 2.6s ease-in-out infinite}.ic-orbit{animation:iconOrbitFast 3.4s linear infinite;transform-origin:center}.ic-orbit.slow{animation-duration:6.8s}.ic-grow{animation:iconGrow 2s ease-in-out infinite;transform-origin:bottom}.ic-grow.d1{animation-delay:.25s}.ic-grow.d2{animation-delay:.5s}.ic-grow.d3{animation-delay:.75s}.ic-blink{animation:iconBlink 1.8s ease-in-out infinite}.ic-blink.d1{animation-delay:.3s}.ic-blink.d2{animation-delay:.6s}.ic-blink.d3{animation-delay:.9s}.ic-dash{stroke-dasharray:5 7;animation:iconDash 1.6s linear infinite}.footer{border-top:1px solid var(--border);margin-top:40px}.footer-inner{max-width:1200px;margin:0 auto;padding:30px 28px;display:flex;align-items:center;gap:10px;color:var(--text-faint);font-size:13.5px;flex-wrap:wrap}@media (max-width: 700px){.page{padding:26px 16px 80px}.pattern-hero{flex-direction:column;padding:24px}.prevnext{grid-template-columns:1fr}.player-stage{padding:22px 12px 14px}.dash-grid{grid-template-columns:1fr!important}.stat-row{grid-template-columns:repeat(2,1fr)!important}.topbar-inner{padding:11px 14px;gap:10px}.brand{font-size:15px;gap:9px}.brand-badge{width:30px;height:30px;border-radius:9px}.brand-sub{display:none}.topbar-link:not(.cta){display:none}.topbar-link.cta{font-size:13px;padding:6px 11px}.sync-dot{padding:0 2px}.icon-btn{width:34px;height:34px}}.icon-btn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);transition:all .18s}.icon-btn:hover{color:var(--text);background:var(--surface2);transform:translateY(-1px)}.sync-dot{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-faint);padding:0 6px}.sync-dot i{width:8px;height:8px;border-radius:50%;background:var(--text-faint)}.sync-dot.ok i{background:var(--easy);box-shadow:0 0 8px var(--easy)}.sync-dot.syncing i{background:var(--medium);animation:iconPulse 1s ease-in-out infinite}.sync-dot.offline i{background:var(--text-faint)}.action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.act-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:11px;font-size:14px;font-weight:700;color:var(--text-dim);background:var(--surface);border:1px solid var(--border2);transition:all .16s}.act-btn:hover{color:var(--text);background:var(--surface2);transform:translateY(-1px)}.act-btn.on.bm{color:#fbbf24;border-color:#fbbf2480;background:#fbbf241a}.act-btn.on.done{color:var(--easy);border-color:color-mix(in oklab,var(--easy) 45%,transparent);background:color-mix(in oklab,var(--easy) 12%,transparent)}.act-btn.primary{color:#08111f;background:linear-gradient(135deg,var(--pc, #34d399),color-mix(in oklab,var(--pc, #34d399) 55%,#22d3ee));border-color:transparent}.act-btn.review{color:var(--medium);border-color:color-mix(in oklab,var(--medium) 45%,transparent);background:color-mix(in oklab,var(--medium) 12%,transparent)}.st-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.02em;padding:3px 9px;border-radius:999px;white-space:nowrap}.st-badge.done{color:var(--easy);background:color-mix(in oklab,var(--easy) 14%,transparent);border:1px solid color-mix(in oklab,var(--easy) 32%,transparent)}.st-badge.due{color:var(--medium);background:color-mix(in oklab,var(--medium) 14%,transparent);border:1px solid color-mix(in oklab,var(--medium) 32%,transparent)}.st-badge.master{color:var(--accent);background:color-mix(in oklab,var(--accent) 14%,transparent);border:1px solid color-mix(in oklab,var(--accent) 32%,transparent)}.row-bm{color:#fbbf24;display:inline-flex}.qrow .st-slot{display:inline-flex;align-items:center;gap:8px}.mini-prog{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--text-dim)}.mini-prog .bar{width:46px;height:6px;border-radius:99px;background:var(--surface3);overflow:hidden}.mini-prog .bar>i{display:block;height:100%;border-radius:99px;background:var(--pc, var(--easy))}.dash-head{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:8px}.dash-head h1{font-size:clamp(28px,4vw,40px);font-weight:900;letter-spacing:-.03em}.dash-head p{color:var(--text-dim);font-size:16px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0 8px}.stat-card{padding:20px 22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);position:relative;overflow:hidden}.stat-card .big{font-size:34px;font-weight:900;letter-spacing:-.02em;line-height:1}.stat-card .lbl{font-size:12.5px;font-weight:700;color:var(--text-dim);margin-top:8px}.stat-card .spark{position:absolute;right:-10px;bottom:-10px;opacity:.14}.dash-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-top:20px;align-items:start}.dash-col{display:flex;flex-direction:column;gap:12px}.due-card{display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);transition:all .16s}.due-card:hover{background:var(--surface2);border-color:color-mix(in oklab,var(--pc) 40%,transparent)}.due-card .body{flex:1;min-width:0}.due-card .t{font-weight:700;font-size:15px;letter-spacing:-.01em}.due-card .t a:hover{color:var(--pc)}.due-card .sub{font-size:12.5px;color:var(--text-faint);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.due-card .pat-dot{width:9px;height:9px;border-radius:3px;flex:none}.due-actions{display:flex;gap:8px;flex:none}.mini-btn{padding:7px 12px;border-radius:9px;font-size:12.5px;font-weight:700;border:1px solid var(--border2);background:var(--surface);color:var(--text-dim);transition:all .15s}.mini-btn:hover{color:var(--text);background:var(--surface2)}.mini-btn.go{color:#08111f;background:var(--medium);border-color:transparent}.mini-btn.done{color:var(--easy);border-color:color-mix(in oklab,var(--easy) 40%,transparent)}.overdue-tag{color:var(--hard);font-weight:800}.pill-tab{display:flex;gap:8px;margin:10px 0 4px}.empty-state{padding:40px 24px;text-align:center;border-radius:var(--radius);background:var(--surface);border:1px dashed var(--border2);color:var(--text-faint)}.empty-state .em{font-size:30px;margin-bottom:8px}.pat-progress{display:flex;flex-direction:column;gap:11px}.pat-prog-row{display:flex;align-items:center;gap:12px;font-size:13.5px}.pat-prog-row .nm{width:150px;flex:none;color:var(--text-dim);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pat-prog-row .track{flex:1;height:8px;border-radius:99px;background:var(--surface3);overflow:hidden}.pat-prog-row .track>i{display:block;height:100%;border-radius:99px;transition:width .7s cubic-bezier(.2,.8,.2,1)}.pat-prog-row .frac{width:46px;text-align:right;font-family:var(--mono);font-size:12px;color:var(--text-faint);flex:none}.topbar-link.cta{color:var(--text);background:var(--surface2)}.topbar-link.cta.hasdue{color:var(--medium);background:color-mix(in oklab,var(--medium) 12%,transparent);border:1px solid color-mix(in oklab,var(--medium) 30%,transparent)}:root{--hm0: rgba(255,255,255,.05);--hm1: #0e4429;--hm2: #006d32;--hm3: #26a641;--hm4: #39d353}:root[data-theme=light]{--hm0: rgba(15,23,42,.06);--hm1: #9be9a8;--hm2: #40c463;--hm3: #30a14e;--hm4: #216e39}.heatmap{width:100%}.hm-stats{display:flex;gap:22px;margin-bottom:14px;flex-wrap:wrap}.hm-stat{font-size:13px;color:var(--text-dim)}.hm-stat b{color:var(--text);font-size:17px;font-weight:800;margin-right:3px}.hm-scroll{overflow-x:auto;padding-bottom:4px}.hm-months{display:grid;grid-auto-flow:column;grid-auto-columns:15px;height:14px;margin-bottom:3px}.hm-month{font-size:10px;color:var(--text-faint);white-space:nowrap}.hm-grid{display:grid;grid-auto-flow:column;grid-auto-columns:15px}.hm-col{display:flex;flex-direction:column}.heatmap-cell{width:12px;height:12px;border-radius:3px;margin:1.5px;background:var(--hm0);display:inline-block;transition:transform .1s}.heatmap-cell[data-l="1"]{background:var(--hm1)}.heatmap-cell[data-l="2"]{background:var(--hm2)}.heatmap-cell[data-l="3"]{background:var(--hm3)}.heatmap-cell[data-l="4"]{background:var(--hm4)}.hm-grid .heatmap-cell:hover{transform:scale(1.25);outline:1px solid var(--border2)}.hm-legend{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text-faint);margin-top:12px;justify-content:flex-end}.fc-scene{perspective:1700px;cursor:pointer}.fc-card{position:relative;width:100%;min-height:340px;transform-style:preserve-3d}.fc-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius);border:1px solid color-mix(in oklab,var(--pc) 30%,var(--border));background:linear-gradient(160deg,color-mix(in oklab,var(--pc) 8%,var(--surface)),var(--surface));padding:22px;display:flex;flex-direction:column;overflow:hidden}.fc-front{align-items:center;justify-content:center;text-align:center;gap:14px}.fc-top{display:flex;align-items:center;gap:9px;width:100%}.fc-front .fc-top{position:absolute;top:18px;left:0;padding:0 22px}.fc-pat{font-size:13px;font-weight:700;color:var(--text-dim)}.fc-q{font-size:23px;font-weight:850;letter-spacing:-.025em;line-height:1.2;padding:0 10px}.fc-hint{color:var(--text-faint);font-size:12.5px;position:absolute;bottom:18px;left:0;width:100%}.fc-back{transform:rotateY(180deg);gap:12px}.fc-approach{font-size:13.5px;color:var(--text-dim);line-height:1.5;max-height:82px;overflow:hidden}.fc-code{overflow:auto;max-height:168px;border-radius:12px}.fc-cx{display:flex;gap:8px;margin-top:auto}.fc-controls{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}.fc-count{font-family:var(--mono);font-size:12px;color:var(--text-faint)}.mm-scroll{overflow-x:auto;padding:8px 0}.mindmap{position:relative;margin:0 auto;color:var(--text-faint)}.mm-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mm-hub{position:absolute;transform:translate(-50%,-50%);width:108px;height:108px;border-radius:50%;display:grid;place-content:center;text-align:center;z-index:2;background:radial-gradient(circle at 50% 35%,var(--surface3),var(--surface));border:1px solid var(--border2);box-shadow:var(--shadow)}.mm-hub-num{font-size:27px;font-weight:900;letter-spacing:-.03em;color:var(--text)}.mm-hub-num span{font-size:15px;color:var(--text-faint);font-weight:700}.mm-hub-lbl{font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em;font-weight:700}.mm-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:none;width:96px;z-index:3}.mm-ring{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;padding:4px;transition:transform .18s}.mm-core{width:100%;height:100%;border-radius:50%;background:var(--bg2);display:grid;place-items:center;color:var(--pc);border:1px solid var(--border)}.mm-name{font-size:11px;font-weight:700;color:var(--text-dim);text-align:center;line-height:1.15}.mm-frac{font-size:10px;font-family:var(--mono);color:var(--text-faint)}.mm-node:hover .mm-ring{transform:scale(1.1)}.mm-node:hover .mm-core{border-color:var(--pc);background:color-mix(in oklab,var(--pc) 12%,var(--bg2))}.mm-node:hover .mm-name{color:var(--text)}.src-tag{display:inline-flex;align-items:center;gap:6px;padding:3.5px 10px 3.5px 8px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;color:var(--sc, var(--accent));background:color-mix(in srgb,var(--sc, var(--accent)) 12%,transparent);border:1px solid color-mix(in srgb,var(--sc, var(--accent)) 32%,transparent);text-decoration:none;transition:.16s}.src-tag.on:hover{background:color-mix(in srgb,var(--sc, var(--accent)) 20%,transparent);border-color:color-mix(in srgb,var(--sc, var(--accent)) 55%,transparent);transform:translateY(-1px)}.src-tag .src-dot{width:6px;height:6px;border-radius:50%;flex:none;box-shadow:0 0 8px -1px var(--sc)}.src-tag.tiny{padding:2px 8px 2px 6px;font-size:10.5px}.src-tag.tiny .src-dot{width:5px;height:5px}@media (max-width: 720px){.src-tag.tiny{display:none}}.res-links{display:inline-flex;gap:7px;flex-wrap:wrap}.res-link{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:9px;font-size:12px;font-weight:650;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);text-decoration:none;transition:.16s}.res-link:hover{color:var(--text);border-color:var(--border2);background:var(--surface2);transform:translateY(-1px)}.res-link.leetcode:hover{color:#f89f1b;border-color:#f89f1b73}.res-link.youtube:hover{color:#ef4444;border-color:#ef444473}.res-link.plus:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.res-link.article:hover{color:var(--easy);border-color:color-mix(in srgb,var(--easy) 45%,transparent)}.track-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px;margin:8px 0 18px}.track-card{position:relative;overflow:hidden;text-align:left;cursor:pointer;padding:22px 22px 18px;border-radius:20px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--sans);transition:.22s cubic-bezier(.2,.8,.2,1)}.track-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--sc) 40%,transparent)}.track-card.on{border-color:color-mix(in srgb,var(--sc) 60%,transparent);background:color-mix(in srgb,var(--sc) 9%,var(--surface));box-shadow:0 20px 50px -22px color-mix(in srgb,var(--sc) 80%,transparent)}.track-card .tc-glow{position:absolute;inset:-40% -10% auto -10%;height:160px;pointer-events:none;background:radial-gradient(60% 100% at 50% 0%,color-mix(in srgb,var(--sc) 34%,transparent),transparent 70%);opacity:.5;transition:.3s}.track-card:hover .tc-glow,.track-card.on .tc-glow{opacity:1}.tc-head{display:flex;align-items:center;gap:10px;margin-bottom:9px;position:relative}.tc-kicker{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--sc);padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--sc) 13%,transparent)}.tc-count{margin-left:auto;font-family:var(--mono);font-size:22px;font-weight:800;color:var(--sc)}.track-card h3{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:7px;position:relative}.track-card p{font-size:13.2px;line-height:1.62;color:var(--text-dim);position:relative}.tc-foot{display:flex;align-items:center;gap:11px;margin-top:15px;position:relative}.tc-bar{flex:1;height:5px;border-radius:999px;background:var(--surface3);overflow:hidden}.tc-bar i{display:block;height:100%;border-radius:999px;background:var(--sc);transition:width .5s ease}.tc-pct{font-family:var(--mono);font-size:11.5px;color:var(--text-faint)}.track-filterline{display:flex;align-items:center;gap:14px;margin-bottom:26px;flex-wrap:wrap}.seg{padding:7px 15px;border-radius:999px;font-size:12.5px;font-weight:700;cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);font-family:var(--sans);transition:.16s}.seg:hover{color:var(--text);border-color:var(--border2)}.seg.on{background:var(--surface3);color:var(--text);border-color:var(--border2)}.filter-note{font-size:12.5px;color:var(--text-faint)}.filter-note b{color:var(--text-dim)}.track-section{margin-bottom:46px}.track-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.track-head .th-dot{width:9px;height:9px;border-radius:50%;background:var(--sc);box-shadow:0 0 14px -1px var(--sc);flex:none}.track-head h2{font-size:19px;font-weight:800;letter-spacing:-.02em}.th-link{font-size:11.5px;font-weight:650;color:var(--text-faint);text-decoration:none;transition:.15s}.th-link:hover{color:var(--sc)}.th-line{flex:1;height:1px;min-width:20px;background:linear-gradient(90deg,var(--border2),transparent)}.th-count{font-family:var(--mono);font-size:11.5px;color:var(--text-faint)}.card-prog{position:absolute;left:0;right:0;bottom:0;height:2.5px;background:transparent;overflow:hidden;border-radius:0 0 var(--radius) var(--radius)}.card-prog i{display:block;height:100%;background:var(--pc);box-shadow:0 0 10px -1px var(--pc);transition:width .5s ease}.qgroups{display:flex;flex-direction:column;gap:8px}.qgroup{border-radius:14px}.qgroup-head{width:100%;display:flex;align-items:center;gap:12px;cursor:pointer;padding:13px 16px;border-radius:13px;font-family:var(--sans);background:var(--surface);border:1px solid var(--border);color:var(--text);transition:.16s}.qgroup-head:hover{background:var(--surface2);border-color:var(--border2)}.qgroup .chev{display:grid;place-items:center;color:var(--text-faint);transition:transform .25s;flex:none}.qgroup.open .chev{transform:rotate(90deg)}.qgroup-name{font-size:14px;font-weight:750;letter-spacing:-.01em;text-align:left}.qgroup-line{flex:1;height:1px;min-width:12px;background:linear-gradient(90deg,var(--border),transparent)}.qgroup-bar{width:92px;height:5px;border-radius:999px;background:var(--surface3);overflow:hidden;flex:none}.qgroup-bar i{display:block;height:100%;border-radius:999px;background:var(--pc);transition:width .5s ease}.qgroup-count{font-family:var(--mono);font-size:11.5px;color:var(--text-faint);min-width:52px;text-align:right}@media (max-width: 640px){.qgroup-bar{display:none}}.ph-tags{display:flex;align-items:center;gap:9px;margin-bottom:9px;flex-wrap:wrap}.qhead-credit{margin-top:12px;font-size:12.5px;color:var(--text-faint)}.qhead-credit a{color:var(--text-dim);text-decoration:none;border-bottom:1px dotted var(--border2)}.qhead-credit a:hover{color:var(--accent)}.crumb-src{color:var(--text-faint)}.footer-inner a{color:var(--text-dim);text-decoration:none;border-bottom:1px dotted var(--border2)}.footer-inner a:hover{color:var(--accent)}.q-skeleton{display:flex;flex-direction:column;gap:12px}.q-skeleton .sk-line,.q-skeleton .sk-block{border-radius:8px;background:linear-gradient(90deg,var(--surface) 25%,var(--surface2) 50%,var(--surface) 75%);background-size:400% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}.q-skeleton .sk-line{height:13px}.q-skeleton .sk-line.w40{width:40%}.q-skeleton .sk-line.w60{width:60%}.q-skeleton .sk-line.w75{width:75%}.q-skeleton .sk-line.w90{width:90%}.q-skeleton .sk-block{height:190px;border-radius:16px;margin:8px 0}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.signin-link{font-weight:650}.acct{position:relative}.acct-btn{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:50%;border:1px solid var(--border2);background:var(--surface2);color:var(--text);transition:all .15s}.acct-btn:hover{background:var(--surface3);border-color:var(--accent)}.acct-avatar{font-size:11.5px;font-weight:800;letter-spacing:.02em}.acct-menu{position:absolute;right:0;top:calc(100% + 10px);min-width:216px;z-index:60;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column}.acct-head{padding:10px 12px 12px;border-bottom:1px solid var(--border);margin-bottom:6px}.acct-name{font-weight:700;font-size:14px}.acct-email{font-size:12px;color:var(--text-dim);font-family:var(--mono);word-break:break-all}.acct-badge{display:inline-block;margin-top:7px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:2px 8px;border-radius:999px;color:var(--accent);background:#7dd3fc21;border:1px solid rgba(125,211,252,.3)}.acct-menu a,.acct-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border:0;background:none;color:var(--text);font-size:13.5px;font-weight:550;border-radius:7px;transition:background .12s}.acct-menu a:hover,.acct-menu button:hover{background:var(--surface2)}.auth-wrap{display:grid;place-items:center;min-height:68vh;padding:30px 0}.auth-card{width:100%;max-width:412px;padding:34px 32px 28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.auth-title{font-size:25px;font-weight:800;letter-spacing:-.02em}.auth-sub{color:var(--text-dim);font-size:14px;margin:7px 0 24px;line-height:1.55}.auth-field{display:block;margin-bottom:17px}.auth-label{display:block;font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}.auth-field input{width:100%;padding:11px 13px;font-size:14.5px;font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #7dd3fc29}.auth-field input:disabled{opacity:.6}.auth-field.has-error input{border-color:var(--hard)}.auth-field-error{display:block;margin-top:6px;font-size:12.5px;color:var(--hard)}.auth-hint{display:block;margin-top:6px;font-size:12.5px;color:var(--text-faint)}.auth-pw{position:relative}.auth-pw input{padding-right:60px}.auth-pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--text-dim);font-size:12px;font-weight:650;padding:6px 8px;border-radius:6px}.auth-pw-toggle:hover{color:var(--text);background:var(--surface2)}.auth-error{padding:10px 13px;margin-bottom:15px;font-size:13.5px;color:var(--hard);background:#fb718517;border:1px solid rgba(251,113,133,.28);border-radius:var(--radius-sm)}.auth-submit{width:100%;padding:12px;margin-top:4px;font-size:14.5px;font-weight:700;color:#04121c;background:var(--accent);border:0;border-radius:var(--radius-sm);transition:filter .15s,transform .08s}.auth-submit:hover:not(:disabled){filter:brightness(1.08)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.65;cursor:default}.auth-switch{margin-top:19px;text-align:center;font-size:13.5px;color:var(--text-dim)}.auth-switch button{background:none;border:0;color:var(--accent);font-weight:700;font-size:inherit;padding:0;text-decoration:underline;text-underline-offset:3px}.auth-skip{margin-top:13px;text-align:center;font-size:12.5px}.auth-skip a{color:var(--text-faint)}.auth-skip a:hover{color:var(--text-dim)}.guard-denied{text-align:center;padding:80px 20px}.guard-denied h1{font-size:26px;font-weight:800;margin-bottom:8px}.guard-denied p{color:var(--text-dim)}.admin-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.admin-title{font-size:30px;font-weight:800;letter-spacing:-.025em}.admin-sub{color:var(--text-dim);font-size:13.5px;margin-top:4px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;margin-bottom:24px}.admin-stat{padding:15px 17px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-stat-value{font-size:25px;font-weight:800;font-family:var(--mono);letter-spacing:-.02em}.admin-stat-label{font-size:11.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em;margin-top:3px;font-weight:600}.admin-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:14px}.admin-search{flex:1;max-width:340px;padding:9px 13px;font-size:14px;font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border2);border-radius:var(--radius-sm)}.admin-search:focus{outline:none;border-color:var(--accent)}.admin-count{font-size:13px;color:var(--text-dim);font-family:var(--mono)}.admin-error{padding:10px 13px;margin-bottom:13px;font-size:13.5px;color:var(--hard);background:#fb718517;border:1px solid rgba(251,113,133,.28);border-radius:var(--radius-sm)}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table th{text-align:left;padding:12px 15px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:12px 15px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:var(--surface2)}.admin-table tr.is-busy{opacity:.5;pointer-events:none}.admin-mono{font-family:var(--mono);font-size:12.5px}.admin-empty{text-align:center;color:var(--text-dim);padding:34px 0!important}.admin-you{margin-left:7px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.admin-locked{margin-left:7px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--medium)}.admin-role{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.admin-role-admin{color:var(--accent);background:#7dd3fc21;border:1px solid rgba(125,211,252,.3)}.admin-role-user{color:var(--text-dim);background:var(--surface2);border:1px solid var(--border)}.admin-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.admin-actions button{font-size:12px;font-weight:650;padding:6px 11px;color:var(--text-dim);background:var(--surface2);border:1px solid var(--border2);border-radius:7px;transition:all .13s}.admin-actions button:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.admin-actions button:disabled{opacity:.35;cursor:not-allowed}.admin-actions .admin-danger{color:var(--hard);border-color:#fb71854d}.admin-actions .admin-danger:hover:not(:disabled){background:#fb71851f;border-color:var(--hard)}.admin-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px;font-size:13px;color:var(--text-dim)}.admin-pager button{font-size:13px;font-weight:650;padding:7px 14px;color:var(--text);background:var(--surface2);border:1px solid var(--border2);border-radius:8px}.admin-pager button:disabled{opacity:.35;cursor:not-allowed}@media (max-width: 640px){.admin-actions{flex-wrap:wrap;justify-content:flex-start}.auth-card{padding:26px 20px 22px}}.action-row.signed-out .act-btn{opacity:.55}.action-row.signed-out .act-btn:hover{opacity:.8}.signin-hint{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text-dim)}.signin-hint-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.gate-card{max-width:460px;margin:60px auto;padding:34px 32px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.gate-card h2{font-size:21px;font-weight:800;letter-spacing:-.02em}.gate-card p{color:var(--text-dim);font-size:14.5px;line-height:1.6;margin:10px 0 22px}.gate-actions{display:flex;gap:10px;justify-content:center}.gate-actions a{padding:10px 20px;font-size:14px;font-weight:700;border-radius:var(--radius-sm);border:1px solid var(--border2);color:var(--text);transition:all .15s}.gate-actions a.primary{background:var(--accent);color:#04121c;border-color:transparent}.gate-actions a.primary:hover{filter:brightness(1.08)}.gate-actions a:not(.primary):hover{background:var(--surface2);border-color:var(--accent)}.lang-switch{display:inline-flex;gap:2px;margin-left:auto;margin-right:10px;padding:2px;border-radius:9px;background:var(--surface2);border:1px solid var(--border)}.lang-switch button{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.01em;padding:3px 11px;border-radius:7px;border:none;background:transparent;color:var(--text-faint);cursor:pointer;transition:.15s}.lang-switch button:hover{color:var(--text-dim)}.lang-switch button.on{color:var(--text);background:var(--surface3);box-shadow:0 1px 4px -1px #0000004d}.codeblock-head .fname{margin-right:0}
