.hb{--hb-max: 1180px;--hb-nav: 256px;--hb-gap: 32px;--hb-pad: 20px;min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.help-render-host{position:fixed;left:-30000px;top:0;width:2000px;height:1600px;overflow:hidden;opacity:0;pointer-events:none}.hb .hb-band{display:block;position:sticky;top:0;z-index:100;padding:12px 0}.hb-band-in{width:100%;max-width:var(--hb-max);margin:0 auto;padding:0 var(--hb-pad);display:grid;grid-template-columns:var(--hb-nav) minmax(0,1fr);gap:var(--hb-gap);align-items:center;min-height:46px}.hb-band .brand{text-decoration:none;margin-right:0}.hb-band-main{display:flex;align-items:center;gap:10px;min-width:0}.hb-band-main .hb-editor-link{margin-left:auto}.hb-search-wrap{flex:1 1 240px;min-width:160px;max-width:560px}.hb-search{width:100%;min-height:46px;padding:0 18px;font-size:1.05rem;font-weight:700;border:2px solid var(--input-line);border-radius:var(--radius-btn);background:var(--input-bg);color:var(--ink)}.hb-search:focus{background:#fff8e6;border-color:var(--accent-deep);outline:none;box-shadow:none}.hb-band .btn.hb-menu-btn{display:none}.hb-band .btn.ghost{text-decoration:none}.hb-body{width:100%;max-width:var(--hb-max);margin:0 auto;display:grid;grid-template-columns:var(--hb-nav) minmax(0,1fr);gap:var(--hb-gap);padding:24px var(--hb-pad) 64px}.hb-nav{position:sticky;top:97px;align-self:start;max-height:calc(100vh - 113px);overflow-y:auto;padding:10px;border-radius:var(--radius);background:var(--sidebar);border:2px solid var(--line)}.hb-nav-inner{display:flex;flex-direction:column;gap:14px}.hb-nav-group{display:flex;flex-direction:column;gap:2px}.hb-nav-title{padding:6px 12px 4px;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}.hb-nav-link{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border-radius:var(--radius-sm);color:var(--ink);font-weight:700;text-decoration:none;transition:background-color .12s ease}.hb-nav-link:hover{background:#fff9}.hb-nav-link.on{background:#fff;color:var(--accent-text);box-shadow:var(--shadow-sm)}.hb-nav-cat .cc-cat-tile{width:28px;height:28px;border-radius:8px;flex:none}.hb-nav-cat-title{flex:1}.hb-nav-count{font-size:.8rem;font-weight:800;color:var(--muted);padding:2px 8px;border-radius:var(--pill);background:#ffffffb3}.hb-main{min-width:0;overflow-x:clip}.hb-foot{margin-top:40px;padding-top:16px;border-top:2px solid var(--line);font-size:.9rem}.hb-page{display:flex;flex-direction:column;gap:14px;line-height:1.55}.hb-page h1{margin:0;font-family:var(--font-display);font-size:2rem;font-weight:800;line-height:1.15}.hb-page h2{margin:18px 0 0;font-family:var(--font-display);font-size:1.4rem;font-weight:800}.hb-page h3{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:800}.hb-page h4{margin:0;font-size:1rem;font-weight:800}.hb-page p{margin:0}.hb-page ul,.hb-page ol{margin:0;padding-left:24px;display:flex;flex-direction:column;gap:6px}.hb-lead{font-size:1.12rem;color:var(--muted)}.hb-page code,.hb-sig{padding:1px 6px;border-radius:6px;background:var(--accent-tint);font-family:var(--font-mono);font-size:.92em}.hb-note{padding:12px 16px;border-radius:var(--radius-sm);background:var(--info-tint);color:var(--info);font-weight:700}.hb-note-box{padding:16px 20px;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);display:flex;flex-direction:column;gap:10px}.hb-note-box h2{margin:0}.hb-steps li::marker{font-weight:800;color:var(--accent-text)}.hb-empty{padding:24px 0;color:var(--muted);font-size:1.1rem}.hb-cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:8px}.hb-cat-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);text-decoration:none;box-shadow:0 3px 0 var(--line-strong);transition:transform .08s ease,border-color .12s ease}.hb-cat-card:hover{border-color:var(--accent);transform:translateY(-1px)}.hb-cat-card .cc-cat-tile{width:44px;height:44px;border-radius:12px}.hb-cat-card-title{font-weight:800}.hb-cat-card-count{font-size:.85rem;color:var(--muted)}.hb-cat-head{display:flex;align-items:center;gap:14px}.hb-cat-head .cc-cat-tile{width:52px;height:52px;border-radius:14px;flex:none}.hb-cube-link{color:var(--accent-text);font-weight:800}.hb-toc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--panel);border:2px solid var(--line);font-size:.95rem}.hb-toc a{color:var(--accent-text);font-weight:800;text-decoration:none}.hb-toc a:hover{text-decoration:underline}.hb-block{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border:2px solid var(--line);border-left:8px solid var(--cat, var(--line-strong));border-radius:var(--radius);background:var(--panel);scroll-margin-top:96px}.hb-block-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.hb-badge{padding:3px 10px;border-radius:var(--pill);font-size:.78rem;font-weight:800;background:var(--bg);color:var(--muted);border:1px solid var(--line)}.hb-badge-hat{background:var(--accent-tint);color:var(--accent-text);border-color:var(--input-line)}.hb-badge-value,.hb-badge-bool{background:var(--info-tint);color:var(--info);border-color:transparent}.hb-badge-role{background:var(--warn-tint);color:var(--warn);border-color:transparent}.hb-variants{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-start}.hb-variant{display:flex;flex-direction:column;gap:6px;max-width:100%}.hb-desc{font-size:1.02rem}.hb-slots dl,.hb-params{margin:6px 0 0;display:flex;flex-direction:column;gap:4px}.hb-slots dl>div,.hb-params>div{display:grid;grid-template-columns:minmax(90px,auto) 1fr;gap:12px;align-items:baseline}.hb-slots dt{font-weight:800;color:var(--accent-text)}.hb-slots dd,.hb-params dd{margin:0}.hb-tips ul{margin-top:6px}.hb-example{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--line)}.hb-others{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.95rem}.hb-others a{color:var(--accent-text);font-weight:800}.hb-fig{max-width:100%;overflow:visible}.hb-fig svg{display:block;width:100%;height:auto;overflow:visible}.hb-fig-loading{min-height:48px;min-width:160px;display:flex;align-items:center;padding:0 14px;border-radius:var(--radius-sm);border:2px dashed var(--line-strong);color:var(--muted);font-weight:700;font-size:.9rem}.hb-fig-fail{color:var(--danger);font-weight:700}.hb-program{margin:0;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.hb-program figcaption{font-size:.98rem}.hb-cube{display:flex;flex-direction:column;gap:12px;padding:22px 0 26px;border-top:2px solid var(--line);scroll-margin-top:96px}.hb-cube-head{display:flex;align-items:center;gap:14px}.hb-cube-head h2{margin:0;font-size:1.5rem}.hb-cube-swatch{width:48px;height:48px;border-radius:13px;border:2px solid rgba(43,42,36,.18);box-shadow:inset 0 1px #ffffff59,inset 0 -4px #00000029;flex:none}.hb-project{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);scroll-margin-top:96px}.hb-project h2{margin:0}.hb-cube-chips{display:flex;flex-wrap:wrap;gap:6px}.hb-chip{display:inline-block;padding:3px 10px;border-radius:var(--pill);background:var(--second-tint);color:var(--second-text);font-size:.85rem;font-weight:800;text-decoration:none}.hb-hits{display:flex;flex-direction:column;gap:10px}.hb-hit{display:grid;grid-template-columns:minmax(120px,260px) 1fr;gap:16px;align-items:center;padding:12px 16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);text-decoration:none}.hb-hit:hover{border-color:var(--accent)}.hb-hit-page{grid-template-columns:1fr}.hb-hit p{margin:4px 0 0;font-size:.95rem;color:var(--muted)}.hb-prevnext{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px}.hb-prevnext .btn{text-decoration:none}@media(max-width:1000px){.hb{--hb-pad: 16px}.hb-body{grid-template-columns:minmax(0,1fr);gap:0}.hb .hb-band{position:relative}.hb-band-in{grid-template-columns:auto minmax(0,1fr);gap:12px}.hb-cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hb-band .btn.hb-menu-btn{display:inline-flex}.hb-band .btn.hb-editor-link{display:none}.hb-nav{position:fixed;top:0;bottom:0;left:0;width:min(340px,88vw);max-height:none;border-radius:0 var(--radius) var(--radius) 0;transform:translate(-105%);transition:transform .16s ease;z-index:120;box-shadow:var(--shadow)}.hb-nav.open{transform:none}.hb-backdrop{position:fixed;inset:0;background:#2b2a2459;z-index:110}.hb-page h1{font-size:1.6rem}.hb-hit{grid-template-columns:1fr}}@media(max-width:600px){.hb-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hb-block,.hb-project{padding:14px 12px}.hb-slots dl>div,.hb-params>div{grid-template-columns:1fr;gap:2px}}@media(prefers-reduced-motion:reduce){.hb-nav,.hb-cat-card{transition:none}}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nunito-400-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nunito-400-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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nunito-700-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nunito-700-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:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/nunito-800-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/nunito-800-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:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/nunito-900-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/nunito-900-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:Rubik;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/rubik-700-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rubik;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/rubik-700-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:Rubik;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/rubik-800-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rubik;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/rubik-800-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}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}:root{--accent: #e0a020;--accent-hover: #edb133;--accent-deep: #b67d10;--accent-text: #8a5a06;--accent-tint: #fcf1d3;--accent-ink: #2b2a24;--second: #8db23a;--second-deep: #6e9126;--second-text: #3f6b12;--second-tint: #eef5dc;--go: #4a7f18;--go-hover: #558f1d;--go-deep: #365e10;--bg: #f7f5ee;--panel: #ffffff;--sidebar: #f8f1dc;--input-bg: #fff4d1;--input-line: #ecc766;--ink: #2b2a24;--muted: #6b675c;--line: #e5e1d6;--line-strong: #cfc9ba;--ok: #4f9a2a;--ok-ink: #3f6b12;--ok-tint: #eef5dc;--danger: #d8452b;--danger-tint: #fbe2dc;--warn: #9c5a08;--warn-tint: #fbe6cc;--info: #2a4a6b;--info-tint: #dfe9f8;--radius: 16px;--radius-sm: 12px;--radius-btn: 12px;--pill: 999px;--shadow: 0 8px 28px rgba(43, 42, 36, .14);--shadow-sm: 0 2px 6px rgba(43, 42, 36, .08);--focus: 0 0 0 4px rgba(224, 160, 32, .45);--font: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Rubik", "Nunito", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace}body{font-family:var(--font);font-size:16px;line-height:1.4;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-variant-ligatures:no-common-ligatures}.app{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}button,input{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus)}.btn{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border:2px solid var(--line-strong);border-radius:var(--radius-btn);background:var(--panel);font-size:1.02rem;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;transition:transform .08s ease,background-color .12s ease,border-color .12s ease,box-shadow .12s ease}.btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 3px 0 var(--accent-deep)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--accent-deep);transform:translateY(2px) scale(.98)}.btn.primary:disabled{box-shadow:none}.btn.small{min-height:38px;padding:0 14px;font-size:.95rem}.btn.danger{color:var(--danger)}.btn.danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger-tint)}.toolbar .btn.ghost{border-color:#fff;background:#fff;color:var(--ink)}.toolbar .btn.ghost:hover:not(:disabled){border-color:var(--accent-deep);background:#fff}.toolbar .btn.ghost.danger{color:var(--danger)}.toolbar .btn.light{border-color:var(--second-deep);background:#fff;color:var(--second-text)}.toolbar .btn.light:hover:not(:disabled){background:var(--second-tint)}.toolbar .btn.primary{background:var(--go);border-color:var(--go);color:#fff;box-shadow:0 3px 0 var(--go-deep)}.toolbar .btn.primary:hover:not(:disabled){background:var(--go-hover);border-color:var(--go-hover)}.toolbar .btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--go-deep)}.toolbar .btn.primary:disabled{background:#ffffff8c;border-color:transparent;color:var(--muted);opacity:1;box-shadow:none}.toolbar .btn.send{padding-right:22px;font-size:1.08rem}.toolbar :focus-visible{box-shadow:0 0 0 4px #2b2a2459}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:70px;padding:10px 16px;background:var(--accent);color:var(--ink);border-bottom:3px solid var(--accent-deep);position:relative;z-index:80}.brand{display:flex;align-items:center;margin-right:6px;-webkit-user-select:none;user-select:none}.brand-logo{display:block;height:34px;width:auto;filter:drop-shadow(1.5px 0 0 #fff) drop-shadow(-1.5px 0 0 #fff) drop-shadow(0 1.5px 0 #fff) drop-shadow(0 -1.5px 0 #fff) drop-shadow(1px 1px 0 #fff) drop-shadow(-1px -1px 0 #fff) drop-shadow(1px -1px 0 #fff) drop-shadow(-1px 1px 0 #fff)}.name-wrap{display:flex;align-items:center;gap:8px;flex:1 1 200px;max-width:360px;min-width:0}.name-input{min-height:46px;min-width:0;flex:1 1 140px;padding:0 16px;font-size:1.12rem;font-weight:800;color:var(--ink);border:2px solid var(--input-line);border-radius:var(--radius-btn);background:var(--input-bg);transition:background-color .12s ease,border-color .12s ease}.name-input::placeholder{color:var(--muted)}.name-input:hover{border-color:var(--accent-deep)}.name-input:focus{background:#fff8e6;border-color:var(--accent-deep);outline:none;box-shadow:none}.save-state{display:inline-flex;align-items:center;gap:4px;min-width:112px;color:var(--ink);font-size:.92rem;font-weight:700;opacity:0;transition:opacity .3s ease}.save-state.on{opacity:1}.save-state svg{width:16px;height:16px}.toolbar-spacer{flex:1}.connected-badge{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:var(--radius-btn);background:var(--ok-tint);color:var(--ok-ink);font-weight:800}.live-dot{width:10px;height:10px;border-radius:50%;background:var(--second);box-shadow:0 0 0 3px #8db23a4d}.workarea{display:flex;min-height:0;min-width:0}.blockly-host{flex:1 1 auto;min-width:0;height:100%;position:relative}.preview-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--ink);border-bottom:2px solid var(--line)}.blockly-host .blocklyToolbox{padding:8px 0;background:var(--sidebar);border-right:2px solid var(--line)}.blockly-host .blocklyToolboxCategoryContainer{margin:0}.blockly-host .blocklyToolboxCategory{height:auto;line-height:1.1;margin:0 6px 2px;padding:7px 2px 6px;border:0!important;border-radius:14px;cursor:pointer;transition:background-color .12s ease}.blockly-host .blocklyToolboxCategory:not(.blocklyToolboxSelected):hover{background:#fff9}.blockly-host .blocklyToolboxCategory.blocklyToolboxSelected{background:var(--panel)}.blockly-host .blocklyTreeRowContentContainer{display:flex;flex-direction:column;align-items:center;gap:5px;width:76px}.blockly-host .blocklyToolboxCategoryLabel{padding:0 2px;font:700 12.5px/1.1 var(--font);color:var(--ink);text-align:center;white-space:normal;cursor:pointer}.blockly-host .blocklyToolboxSelected .blocklyToolboxCategoryLabel{color:var(--accent-text);font-weight:800}.cc-cat-tile{position:relative;display:block;width:34px;height:34px;border-radius:10px;background:var(--cat, #999);box-shadow:inset 0 1px #ffffff47,inset 0 -3px #0000002e;transition:transform .12s ease,box-shadow .12s ease}.blockly-host .blocklyToolboxCategory:hover .cc-cat-tile{transform:translateY(-1px) scale(1.06)}.blockly-host .blocklyToolboxSelected .cc-cat-tile{transform:scale(1.08)}.blockly-host .blocklyToolboxCategoryContainer,.blockly-host .blocklyToolboxCategoryContainer.blocklyActiveFocus,.blockly-host .blocklyToolboxCategoryContainer.blocklyPassiveFocus,.blockly-host .blocklyToolbox.blocklyActiveFocus,.blockly-host .blocklyToolbox.blocklyPassiveFocus,.blockly-host .blocklyToolboxCategoryGroup:focus{outline:none;box-shadow:none;border:0!important}.blockly-host .blocklyToolboxCategoryContainer:focus-visible>.blocklyToolboxCategory{box-shadow:inset 0 0 0 3px var(--accent-deep)}.cc-cat-tile:after{content:"";position:absolute;inset:6px;background:#fff;-webkit-mask:var(--glyph) center / contain no-repeat;mask:var(--glyph) center / contain no-repeat}.cc-glyph-events{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M13 2 4 14h7l-1 8 9-12h-7z' fill='black'/></svg>")}.cc-glyph-cube{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linejoin='round' stroke-linecap='round'><path d='M12 3l8 4.5v9L12 21l-8-4.5v-9z'/><path d='M12 12l8-4.5M12 12 4 7.5M12 12v9'/></svg>")}.cc-glyph-screen{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><rect x='3' y='3' width='5' height='5' rx='1'/><rect x='9.5' y='3' width='5' height='5' rx='1'/><rect x='16' y='3' width='5' height='5' rx='1'/><rect x='3' y='9.5' width='5' height='5' rx='1'/><rect x='9.5' y='9.5' width='5' height='5' rx='1'/><rect x='16' y='9.5' width='5' height='5' rx='1'/><rect x='3' y='16' width='5' height='5' rx='1'/><rect x='9.5' y='16' width='5' height='5' rx='1'/><rect x='16' y='16' width='5' height='5' rx='1'/></svg>")}.cc-glyph-sound{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9v6h4l5 4V5L7 9z' fill='black'/><path d='M16 8.5a5 5 0 0 1 0 7' fill='none'/><path d='M18.8 5.5a9 9 0 0 1 0 13' fill='none'/></svg>")}.cc-glyph-motion{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12h18M15 6l6 6-6 6M9 6l-6 6 6 6'/></svg>")}.cc-glyph-distance{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4v16M20 4v16M8 12h8M13 9l3 3-3 3M11 9l-3 3 3 3'/></svg>")}.cc-glyph-lists{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='black' stroke-width='2.6' stroke-linecap='round'><path d='M10 6h10M10 12h10M10 18h10'/><circle cx='4.5' cy='6' r='1.6' fill='black' stroke='none'/><circle cx='4.5' cy='12' r='1.6' fill='black' stroke='none'/><circle cx='4.5' cy='18' r='1.6' fill='black' stroke='none'/></svg>")}.cc-glyph-logic{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linejoin='round'><path d='M12 3l9 9-9 9-9-9z'/><path d='M8.5 12h7' stroke-linecap='round'/></svg>")}.cc-glyph-loops{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M20 12a8 8 0 1 1-2.3-5.7'/><path d='M21 3v6h-6'/></svg>")}.cc-glyph-math{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'><path d='M7 3.5v7M3.5 7h7M13.5 7h7M4 14.5l6 6M10 14.5l-6 6M13.5 17.5h7'/><circle cx='17' cy='14' r='1.4' fill='black' stroke='none'/><circle cx='17' cy='21' r='1.4' fill='black' stroke='none'/></svg>")}.cc-glyph-text{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20 11 4l7 16M6.5 14h9'/><path d='M19 4h2M19 8h2' stroke-width='2.2'/></svg>")}.cc-glyph-variables{--glyph: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='3.5' width='17' height='17' rx='3'/><path d='M9 9l6 6M15 9l-6 6'/></svg>")}.blockly-host .blocklyMainBackground{stroke:none}.blockly-host .blocklyScrollbarHandle{rx:5;ry:5}.blockly-host .blocklyZoom>image,.blockly-host .blocklyTrash>image{opacity:.55}.blockly-host .blocklyZoom>image:hover,.blockly-host .blocklyTrash>image:hover{opacity:.9}.ccDotMatrixEditor .bitmapPixelGrid{margin:14px 14px 10px;padding:8px;gap:2px;border-radius:10px;background:#b92b26;box-shadow:inset 0 0 0 1.5px #a02420}.ccDotMatrixEditor .pixelButton{width:30px;height:30px;border:0;border-radius:50%;padding:0}.ccDotMatrixEditor .pixelButton:focus-visible{outline:2px solid #ffd27a;outline-offset:-3px}.ccDotMatrixEditor .controlButton{margin:4px 0;min-width:120px;padding:7px 16px;border:0;border-radius:999px;background:#fff;color:#8f1f1b;font:800 14px Nunito,system-ui,sans-serif;cursor:pointer}.ccDotMatrixEditor .controlButton:hover{background:#ffe9e4}.statusbar{background:var(--panel);border-top:2px solid var(--line)}.status-line{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 16px;font-size:1.02rem}.status-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:var(--line-strong);transition:background-color .2s ease}.status-dot.ready{background:var(--ok);box-shadow:0 0 0 3px var(--ok-tint)}.status-dot.transferring,.status-dot.connecting,.status-dot.selecting,.status-dot.reconnecting{background:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);animation:pulse 1s ease-in-out infinite}.status-dot.disconnected{background:var(--danger)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}.status-text{font-weight:800}.progress{flex:1;max-width:360px;height:14px;border-radius:7px;background:var(--line);overflow:hidden}.progress-fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--second),var(--accent));transition:width .15s ease}.wake-hint{color:var(--muted);font-size:.95rem}.strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;font-weight:700}.strip.error{background:var(--danger-tint);color:var(--danger)}.strip.warn{background:var(--warn-tint);color:var(--warn)}.strip.chrome{background:var(--info-tint);color:var(--info)}.strip-dismiss{min-height:36px;padding:0 12px;border:none;border-radius:var(--pill);background:transparent;font-weight:800;color:inherit;cursor:pointer;text-decoration:underline}.toast{position:fixed;left:50%;bottom:96px;display:flex;align-items:center;gap:10px;padding:14px 26px;border-radius:var(--radius-btn);background:var(--ok);color:#fff;font-size:1.1rem;font-weight:800;box-shadow:var(--shadow);z-index:1030;transform:translate(-50%);animation:toast-in .25s cubic-bezier(.2,.9,.3,1.3)}@keyframes toast-in{0%{transform:translate(-50%,24px);opacity:0}to{transform:translate(-50%);opacity:1}}.drawer-backdrop{position:fixed;inset:0;background:#2b262059;z-index:1000}.drawer{position:fixed;top:0;bottom:0;left:0;width:360px;max-width:90vw;display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--panel);border-right:2px solid var(--line);box-shadow:var(--shadow);transform:translate(-105%);transition:transform .2s ease;z-index:1001}.drawer.open{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-title{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--ink)}.drawer-actions{display:flex;gap:10px;flex-wrap:wrap}.drawer-empty{margin:0;padding:12px;color:var(--muted)}.project-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.project-list li{display:flex;flex-direction:column;gap:10px;padding:12px;border:2px solid var(--line);border-radius:var(--radius);background:#fff}.project-list li.current{border-color:var(--accent);background:var(--accent-tint)}.project-meta{display:flex;flex-direction:column;gap:2px}.project-name{font-weight:800;font-size:1.1rem}.project-sub{color:var(--muted);font-size:.9rem}.project-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#2b262073;z-index:1010}.modal{display:flex;flex-direction:column;gap:14px;max-width:460px;margin:16px;padding:24px;border-radius:20px;border-top:6px solid var(--accent);background:var(--panel);box-shadow:var(--shadow);animation:modal-in .2s ease-out}@keyframes modal-in{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal h2{margin:0;font-family:var(--font-display);font-size:1.4rem;font-weight:800;color:var(--ink)}.modal p{margin:0;line-height:1.5}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.injectionDiv .blocklyFlyoutButton .blocklyFlyoutButtonBackground{fill:var(--panel);stroke:#e6418f;stroke-width:2px}.injectionDiv .blocklyFlyoutButton .blocklyFlyoutButtonShadow{fill:#c22f74}.injectionDiv .blocklyFlyoutButton .blocklyText{fill:var(--ink);font-weight:800}.injectionDiv .blocklyFlyoutButton:hover .blocklyFlyoutButtonBackground{fill:var(--accent-tint)}.voice-modal{width:min(460px,calc(100vw - 32px))}.voice-stage{display:flex;align-items:center;gap:18px;min-height:92px}.voice-rec{flex:none;display:grid;place-items:center;width:84px;height:84px;border:4px solid var(--line-strong);border-radius:50%;background:var(--panel);cursor:pointer;transition:transform .08s ease,border-color .12s ease}.voice-rec:hover:not(:disabled){border-color:var(--danger)}.voice-rec:active:not(:disabled){transform:scale(.94)}.voice-rec:disabled{opacity:.45;cursor:default}.voice-rec-dot{width:44px;height:44px;border-radius:50%;background:var(--danger)}.voice-rec.on{border-color:var(--danger);animation:voice-pulse 1s ease-in-out infinite}.voice-rec-square{width:30px;height:30px;border-radius:6px;background:var(--danger)}@keyframes voice-pulse{50%{box-shadow:0 0 0 8px var(--danger-tint)}}.voice-status{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.voice-meter,.voice-progress{height:10px;border-radius:5px;background:var(--line);overflow:hidden}.voice-progress{height:4px}.voice-meter span,.voice-progress span{display:block;height:100%;border-radius:inherit}.voice-meter span{background:var(--ok);transition:width .06s linear}.voice-progress span{background:var(--muted)}.voice-take{display:flex;flex-wrap:wrap;gap:10px}.voice-len{font-weight:600;color:var(--muted)}.voice-err{padding:10px 12px;border-radius:12px;background:var(--danger-tint);color:var(--ink)}.voice-name{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.voice-name span{font-weight:800}.voice-name input{flex:1 1 140px;min-height:46px;padding:0 12px;border:2px solid var(--line-strong);border-radius:12px;background:var(--input-bg);font:inherit;color:var(--ink)}.voice-list h3{margin:0 0 8px;font-family:var(--font-display);font-size:1.05rem;color:var(--ink)}.voice-list ul{display:flex;flex-direction:column;gap:6px;max-height:220px;margin:0;padding:0;overflow-y:auto;list-style:none}.voice-list li{display:flex;align-items:center;gap:10px}.voice-item-name{flex:1;min-width:0;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.voice-empty{color:var(--muted)}@media(max-width:1440px){.save-state .lbl{display:none}.save-state{min-width:0}}@media(max-width:860px){.toolbar{gap:8px}.save-state{display:none}}.cube-panel{width:300px;flex:0 0 auto;display:flex;flex-direction:column;min-height:0;overflow-y:auto;border-left:2px solid var(--line);background:var(--panel)}.panel-body{display:flex;flex-direction:column;gap:14px;padding:16px}.panel-hero{display:flex;flex-direction:column;align-items:center;gap:4px;padding:28px 16px 16px;text-align:center}.panel-hero .btn{margin-top:8px}.panel-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:2px solid var(--line);margin-top:4px;padding-top:14px}.panel-hero .cube-glyph{opacity:.6}.tower-wrap{position:relative;min-height:40px}.cube-tower{display:block;width:152px;height:auto;overflow:visible}.tower-hit{fill:transparent;cursor:pointer;outline:none}.tower-ring{fill:none;stroke:var(--ink);stroke-width:3;stroke-linejoin:round;opacity:.45;pointer-events:none}.tower-ring.sel{stroke:var(--ink);stroke-width:5.5;opacity:1}.tower-kiss{stroke:var(--muted);stroke-width:3;stroke-dasharray:5 6;stroke-linecap:round}.cable-line{fill:none;stroke:#4a443c;stroke-width:5;stroke-linecap:round}.cable-plug{fill:#9a9186;stroke:#4a443c;stroke-width:2}.tower-info{position:absolute;right:0;transform:translateY(-50%);display:flex;align-items:center;gap:9px;width:172px;padding:8px 10px;border:2px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);pointer-events:none}.chain-meta{display:flex;flex-direction:column;min-width:0}.chain-here{align-self:flex-start;margin-top:3px;padding:2px 8px;border-radius:var(--pill);background:var(--accent);color:var(--accent-ink);font-size:.75rem;font-weight:800}.peer-name{font-weight:800}.peer-sub{color:var(--muted);font-size:.85rem}.tower-port{margin:0;color:var(--muted);font-size:.85rem}.panel-empty{margin:0;padding:14px 16px;color:var(--muted);line-height:1.45}.panel-note{margin:0;padding:10px 12px;border:2px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);font-size:.85rem;line-height:1.4}.chooser-list{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px}.chooser-item{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;font-size:1.05rem;padding:10px 16px;border-radius:var(--radius)}.chooser-prog{font-size:.8rem;opacity:.8;font-weight:400}@media(prefers-reduced-motion:reduce){.status-dot,.toast,.modal{animation:none}.btn,.cc-cat-tile{transition:none}}.page{min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.page-band .brand{text-decoration:none}.page-body{width:100%;max-width:880px;margin:0 auto;padding:28px 16px 64px;display:flex;flex-direction:column;gap:18px}.page-body.wide{max-width:1120px}.page-title{margin:0;font-family:var(--font-display);font-size:1.9rem;font-weight:800;line-height:1.15}.page-lead{margin:0;font-size:1.1rem;color:var(--muted);line-height:1.5}.muted{color:var(--muted)}.card{background:var(--panel);border:2px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.card h2{margin:0 0 8px;font-family:var(--font-display);font-size:1.3rem;font-weight:800}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.row.center{justify-content:center}.row.spread{justify-content:space-between}.row.inline{display:inline-flex}.btn.big{min-height:56px;font-size:1.15rem;justify-content:center}a.btn{text-decoration:none;color:inherit}.splash{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-weight:700}.splash-logo{height:42px;opacity:.85}.account-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar .account-bar .btn{border-color:#fff;background:#fff;color:var(--ink)}.account-chip{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 14px;border-radius:var(--radius-btn);background:#ffffff8c;font-weight:800}.account-avatar{font-size:1.5rem;line-height:1}.account-badge{font-size:.8rem;font-weight:700;color:var(--accent-text)}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.85rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.field-input{min-height:48px;width:100%;min-width:0;padding:10px 14px;border:2px solid var(--input-line);border-radius:var(--radius-sm);background:var(--input-bg);font-size:1.05rem}.field-input:focus{outline:none;border-color:var(--accent-deep);box-shadow:var(--focus)}.field-input.narrow{max-width:200px}select.field-input{appearance:auto}.field-hint{font-size:.85rem;color:var(--muted)}.check{display:flex;align-items:flex-start;gap:10px;font-size:.95rem;cursor:pointer}.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent-deep);flex:none}.form-error{margin:0;padding:10px 14px;border-radius:var(--radius-sm);background:var(--danger-tint);color:var(--danger);font-weight:700}.form-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:16px 0 0;font-size:.95rem}.form-links a,.back-link,.login-url{color:var(--accent-text);font-weight:800}.auth-card{max-width:460px;width:100%;margin:0 auto;border-top:6px solid var(--accent);display:flex;flex-direction:column;gap:16px}.note{margin:8px 0 0;padding:8px 12px;border-radius:var(--radius-sm);font-weight:700}.note.warn{background:var(--warn-tint);color:var(--warn)}.landing-card{width:100%;max-width:520px;margin:6vh auto 0;display:flex;flex-direction:column;gap:16px;padding:28px;border-top:6px solid var(--accent);text-align:center}.landing-card .row{justify-content:center}.field-input.big{min-height:56px;font-size:1.3rem;text-align:center}.code-input{text-transform:uppercase;font-weight:800;letter-spacing:.06em}.code-input::placeholder{text-transform:none;letter-spacing:normal;font-weight:600}.student-login{display:flex;flex-direction:column;gap:18px;align-items:stretch}.student-login-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.class-code-pill{display:inline-block;padding:4px 12px;border-radius:var(--pill);background:var(--accent-tint);border:2px solid var(--input-line);font-weight:800;letter-spacing:.05em;font-variant-numeric:tabular-nums}.class-name{font-family:var(--font-display);font-weight:800;font-size:1.2rem}.avatar-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:12px}.avatar-btn{width:100%;min-height:124px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 3px 0 var(--line-strong);cursor:pointer;transition:transform .08s ease,border-color .12s ease}.avatar-btn:hover{border-color:var(--accent);background:var(--accent-tint)}.avatar-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--line-strong)}.avatar-emoji{font-size:3rem;line-height:1}.avatar-emoji.big{font-size:4rem}.avatar-name{font-weight:800;font-size:1.1rem;text-align:center;overflow-wrap:anywhere}.secret-step{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.secret-who{display:flex;flex-direction:column;align-items:center;gap:6px}.secret-slots{display:flex;gap:12px}.secret-slot{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border:3px dashed var(--line-strong);border-radius:var(--radius);font-size:2.4rem;background:var(--panel)}.secret-slot.filled{border-style:solid;border-color:var(--accent);background:var(--accent-tint)}.secret-slots.shake{animation:shake .4s ease}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.picture-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%;max-width:400px}.picture-btn{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 3px 0 var(--line-strong);font-size:2.3rem;cursor:pointer}.picture-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}.picture-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--line-strong)}.picture-btn:disabled{opacity:.5}.new-class{flex-wrap:wrap}.new-class .field-input:first-child{flex:1 1 220px}.class-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.class-item{padding:0}.class-item.archived{opacity:.6}.class-link{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px;color:inherit;text-decoration:none;border-radius:var(--radius)}.class-link:hover{background:var(--accent-tint)}.class-item-name{font-family:var(--font-display);font-weight:800;font-size:1.25rem;margin-right:auto}.tag{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:var(--pill);font-size:.8rem;font-weight:800;background:var(--line);color:var(--muted)}.tag.warn,.tag.pending{background:var(--warn-tint);color:var(--warn)}.tag.approved{background:var(--ok-tint);color:var(--ok-ink)}.tag.rejected{background:var(--danger-tint);color:var(--danger)}.back-link{text-decoration:none}.class-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.code-card{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;border-top:6px solid var(--accent)}.code-block{display:flex;flex-direction:column;gap:4px;min-width:0}.code-block.grow{flex:1 1 260px}.class-code-big{font-family:var(--font-display);font-size:2.4rem;font-weight:800;letter-spacing:.06em;font-variant-numeric:tabular-nums}.login-url{font-size:1.05rem;overflow-wrap:anywhere}.names-input{min-height:110px;margin:8px 0 12px;resize:vertical;font-family:var(--font)}.report{margin:12px 0 0;padding-left:20px;color:var(--muted)}.report li:first-child{color:var(--ok-ink);font-weight:800}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px;border-bottom:2px solid var(--line)}.table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}.table td.actions{text-align:right;white-space:nowrap}.table td.actions .btn+.btn{margin-left:8px}.avatar-cell{font-size:1.6rem;margin-right:8px;vertical-align:middle}.link-btn{border:0;background:none;padding:4px 0;font-weight:800;font-size:1.05rem;cursor:pointer;border-bottom:2px dashed transparent}.link-btn:hover{border-bottom-color:var(--accent)}.secret-inline{display:inline-flex;gap:6px;font-size:1.5rem}.danger-zone{justify-content:flex-end}.plain-list{list-style:none;margin:8px 0 0;padding:0}.plain-list li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}@media(max-width:640px){.table thead{display:none}.table tr{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.table td{border:0;padding:2px 0}.table td.actions{width:100%;text-align:left;white-space:normal}.class-code-big{font-size:1.9rem}}.cards-page{padding:24px 16px;background:var(--bg);min-height:100%}.cards-head{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.cards-head p{width:100%;margin:0}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.login-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:#fff;border:2px dashed var(--line-strong);border-radius:var(--radius-sm);break-inside:avoid}.login-card-top{display:flex;align-items:center;gap:10px}.login-card-avatar{font-size:2.2rem;line-height:1}.login-card-name{font-family:var(--font-display);font-weight:800;font-size:1.4rem}.login-card-mid{display:flex;align-items:center;gap:14px}.login-card-qr svg{display:block;width:84px;height:84px}.login-card-code{font-family:var(--font-display);font-weight:800;font-size:1.3rem;letter-spacing:.05em}.login-card-url{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}.login-card-secret{display:flex;align-items:center;gap:12px}.login-card-pics{display:flex;gap:12px}.login-card-pic{display:flex;flex-direction:column;align-items:center;font-size:1.8rem;line-height:1.1}.login-card-pic small{font-size:.7rem;color:var(--muted)}@media print{.no-print{display:none!important}.cards-page{padding:0;background:#fff}.cards-grid{grid-template-columns:1fr 1fr;gap:6mm}}.school-picker{display:flex;flex-direction:column;gap:12px}.field.grow{flex:1 1 160px}.combo{position:relative}.combo-list{position:absolute;z-index:20;top:100%;left:0;right:0;margin:4px 0 0;padding:6px;list-style:none;max-height:280px;overflow-y:auto;background:var(--panel);border:2px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.combo-item{padding:8px 10px;border-radius:8px;cursor:pointer;line-height:1.3}.combo-item.active{background:var(--accent-tint)}.combo-group{display:block;margin:6px 0 4px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.combo-empty{padding:8px 10px;color:var(--muted);font-size:.9rem}.school-chosen{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:2px solid var(--second);border-radius:var(--radius-sm);background:var(--second-tint)}.school-chosen-name{font-weight:800}.muted.small{font-size:.82rem}select{font:inherit;color:inherit}.save-state.err,.save-state.err .lbl{display:inline-flex!important}.save-state.err{opacity:1;padding:4px 10px;border-radius:var(--pill);background:var(--warn-tint);color:var(--warn)}.app{grid-template-columns:minmax(0,1fr)}.app>.toolbar{min-width:0}.btn.icon-btn{width:46px;padding:0;justify-content:center}.account-menu{position:relative}.account-btn{gap:8px;padding:0 12px}.account-initials{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:.8rem;font-weight:800;letter-spacing:.02em}.account-btn .account-avatar{font-size:1.5rem;line-height:1}.account-btn .account-name{max-width:160px;overflow:hidden;text-overflow:ellipsis}.account-btn svg{width:16px;height:16px}.account-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:120;min-width:220px;padding:6px;display:flex;flex-direction:column;background:var(--panel);border:2px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.account-who{display:flex;flex-direction:column;gap:2px;padding:8px 12px 10px;border-bottom:2px solid var(--line);margin-bottom:4px}.account-item{display:flex;align-items:center;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--ink);font-weight:700;text-align:left;text-decoration:none;cursor:pointer}.account-item:hover,.account-item:focus-visible{background:var(--accent-tint)}.account-item.danger{color:var(--danger)}.panel-toggle{position:relative}.toolbar .btn.ghost.panel-toggle.on{border-color:var(--accent-deep)}.panel-dot{position:absolute;top:7px;right:7px;width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:var(--line-strong)}.panel-dot.live{background:var(--ok)}.preview-head .panel-close{margin-left:auto;width:38px}.panel-backdrop{display:none}@media(max-width:1100px){.wide-only{display:none}}@media(max-width:900px){.account-btn .account-name{display:none}.workarea .cube-panel{position:fixed;top:0;right:0;bottom:0;z-index:110;width:min(340px,92vw);border-left:2px solid var(--line);box-shadow:var(--shadow);animation:panel-in .18s ease-out}.panel-backdrop{display:block;position:fixed;inset:0;z-index:105;background:#2b262059}.save-state.err{display:inline-flex!important}}@keyframes panel-in{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}@media(max-width:600px){.toolbar:not(.page-band){flex-wrap:nowrap;min-height:56px;padding:6px 8px;gap:6px}.toolbar .btn{min-height:42px;padding:0 11px}.toolbar .btn.icon-btn,.toolbar .btn.send{width:42px;padding:0;justify-content:center;flex:0 0 auto}.toolbar .name-wrap{flex-basis:0}.editor-brand,.toolbar .send .btn-label{display:none}.toolbar .name-wrap{flex:1 1 auto;max-width:none}.toolbar .name-input{min-height:42px;padding:0 10px;font-size:1rem}.save-state.err .lbl{display:none!important}.save-state.err:before{content:"!";font-weight:800}.account-btn{padding:0 8px}.account-btn>svg{display:none}.blockly-host .blocklyTreeRowContentContainer{width:58px;gap:3px}.blockly-host .blocklyToolboxCategory{margin:0 3px 1px;padding:5px 1px 4px}.blockly-host .blocklyToolboxCategoryLabel{font-size:10.5px}.cc-cat-tile{width:28px;height:28px;border-radius:8px}.status-line{min-height:40px;padding:6px 12px;font-size:.92rem}.page-band{min-height:56px;padding:6px 10px}}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.chip{min-height:36px;padding:0 14px;border:2px solid var(--line);border-radius:var(--pill);background:var(--panel);font-weight:700;font-size:.9rem;cursor:pointer}.chip.on{border-color:var(--accent-deep);background:var(--accent-tint)}.th-sort{border:0;background:none;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.th-sort.on{color:var(--accent-text)}.th-sort.on:after{content:" ▾"}.table tr.clickable{cursor:pointer}.table tr.clickable:hover,.table tr.clickable:focus-visible{background:var(--accent-tint);outline:none}.note.ok{background:var(--ok-tint);color:var(--ok-ink)}.grow-input{flex:1 1 240px;width:auto}.sheet-backdrop{position:fixed;inset:0;z-index:130;background:#2b262059}.sheet{position:fixed;top:0;right:0;bottom:0;z-index:131;width:min(440px,100vw);overflow-y:auto;padding:18px 20px 32px;background:var(--panel);border-left:2px solid var(--line);box-shadow:var(--shadow);animation:panel-in .18s ease-out}.sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.sheet-head .avatar-emoji{font-size:2.6rem}.sheet-who{flex:1;min-width:0}.sheet-who h2{margin:0;font-family:var(--font-display)}.sheet h3{margin:20px 0 8px;font-family:var(--font-display);font-size:1.05rem}.sheet-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.sheet-facts dt{color:var(--muted);font-weight:700}.sheet-facts dd{margin:0}.sheet-list{list-style:none;margin:0;padding:0}.sheet-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.sheet-list li>div{display:flex;flex-direction:column;min-width:0}.sheet-list.events li{font-size:.95rem}.sheet-manage{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.viewer{height:100%;display:flex;flex-direction:column;min-width:0}.viewer-band .btn{border-color:#fff;background:#fff}.viewer-title{display:flex;flex-direction:column;min-width:0}.viewer-title strong{font-family:var(--font-display);font-size:1.15rem}.viewer-note{margin:8px 16px 0}.viewer-canvas{flex:1 1 auto;min-height:0}@media(max-width:640px){.table.dash td[data-label]:before{content:attr(data-label) ": ";color:var(--muted);font-size:.8rem;font-weight:700}.table.dash td:first-child{width:100%}}
