:root{--bg:#fafafa;--panel:#fff;--panel-2:#f5f5f5;--nav:#fff;--nav-2:#171717;--nav-text:#111;--nav-muted:#6b6b6b;--nav-border:#e5e5e5;--nav-hover:#f2f2f2;--border:#e5e5e5;--border-strong:#bdbdbd;--input-border:#8a8a8a;--text:#111;--text-2:#3d3d3d;--muted:#6b6b6b;--accent:#111;--accent-hover:#000;--accent-soft:#f2f2f2;--primary:#111;--primary-hover:#333;--on-primary:#fff;--ok:#00802f;--ok-soft:#effff1;--bad:#db0000;--bad-soft:#fff5f5;--warn:#855900;--warn-soft:#fffef0;--warn-line:#ffe347;--producer:#545b64;--sns:#8c4fff;--sqs:#e7157b;--dlq:#d13212;--consumer:#01a88d;--lambda:#ed7100;--radius:16px;--radius-sm:8px;--shadow:0 1px 1px #0000000f, 0 1px 4px #0000000a;--font:system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Roboto, Arial, sans-serif;--mono:Monaco, Menlo, Consolas, "Courier Prime", "Courier New", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/20px var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25}button{font:inherit;color:inherit}kbd{font:11px var(--mono);border:1px solid var(--border-strong);background:var(--panel);border-radius:4px;padding:0 5px}.muted{color:var(--muted)}.small{font-size:12px;line-height:16px}.row{align-items:center;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.gap{flex-wrap:wrap;gap:8px}.btn{border:2px solid var(--accent);background:var(--panel);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:20px;padding:2px 14px;font-weight:700;line-height:20px;transition:background .12s,border-color .12s,color .12s}.btn:hover:not(:disabled){border-color:var(--accent-hover);color:var(--accent-hover);background:var(--accent-soft)}.btn:disabled{border-color:var(--border-strong);color:var(--border-strong);cursor:not-allowed}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){border-color:#0000}.btn.primary,.btn.run{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover:not(:disabled),.btn.run:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}.btn.danger{border-color:var(--bad);color:var(--bad)}.btn.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad);background:var(--bad-soft)}.btn.tiny{border-width:1px;padding:0 10px;font-size:12px}.btn:focus-visible,.palette-item:focus-visible,.level-card:focus-visible,.quiz-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.linklike{cursor:pointer;color:var(--accent);font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}h3 .linklike{color:inherit;text-decoration:none}.segmented{border:1px solid var(--input-border);border-radius:20px;display:inline-flex;overflow:hidden}.segmented button{cursor:pointer;color:var(--text-2);background:0 0;border:0;padding:2px 10px;font-weight:700}.segmented button+button{border-left:1px solid var(--border-strong)}.segmented button.active{background:var(--accent);color:#fff}.level-screen{grid-template:"top top top""left stage right"1fr"bottom bottom bottom"/260px 1fr 340px;height:100%;display:grid}.topbar{background:var(--nav);color:var(--nav-text);border-bottom:1px solid var(--nav-border);grid-area:top;align-items:center;gap:12px;padding:6px 16px;display:flex}.topbar .title{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.topbar h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.topbar .btn{border-color:var(--nav-border);color:var(--nav-text);background:0 0;border-width:1px;padding:3px 12px;font-weight:400}.topbar .btn:hover:not(:disabled){border-color:var(--nav-text);background:var(--nav-hover);color:var(--accent-hover)}.topbar .btn.ghost{border-color:#0000}.topbar .btn:disabled{color:var(--border-strong);border-color:#0000}.topbar .btn.run{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}.topbar .btn.run:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}.topbar .segmented{border-color:var(--nav-border)}.topbar .segmented button{color:var(--nav-muted);padding:3px 10px;font-weight:400}.topbar .segmented button+button{border-left-color:var(--nav-border)}.topbar .segmented button.active{background:var(--primary);color:var(--on-primary);font-weight:700}.level-tag{color:var(--nav-muted);font-size:12px}.concept-chip{border:1px solid var(--border-strong);color:var(--text-2);white-space:nowrap;border-radius:4px;padding:0 8px;font-size:12px;line-height:18px}.topbar .concept-chip{border-color:var(--nav-border);color:var(--nav-text)}.topbar .controls,.topbar .actions{align-items:center;gap:6px;display:flex}.topbar .controls{flex:none;margin-left:auto}.topbar .actions{border-left:1px solid var(--nav-border);flex:none;padding-left:8px}.left,.right{background:var(--bg);flex-direction:column;gap:12px;padding:12px;display:flex;overflow-y:auto}.left{border-right:1px solid var(--border);grid-area:left}.right{border-left:1px solid var(--border);grid-area:right}.stage{grid-area:stage;min-height:0;position:relative;overflow:hidden}.scene-host{position:absolute;inset:0}.scene-host canvas{touch-action:none;display:block}.label-layer{pointer-events:none;position:absolute;inset:0}.bottom{border-top:1px solid var(--border);background:var(--panel);grid-area:bottom;grid-template-columns:1fr;display:grid}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 16px 14px}.panel h3{color:var(--text);margin-bottom:8px;font-size:14px;font-weight:700}.palette-items{flex-direction:column;gap:6px;display:flex}.palette-item{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:6px 10px;display:flex}.palette-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.palette-item.active{border:2px solid var(--accent);background:var(--accent-soft);padding:5px 9px}.palette-item:disabled{color:var(--border-strong);border-color:var(--border);cursor:not-allowed}.palette-item:disabled .kind-dot{opacity:.4}.pi-label{flex:1}.pi-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.kind-dot{border-radius:3px;flex:none;width:12px;height:12px}.kind-dot.kind-queue{background:var(--sqs)}.kind-dot.kind-topic{background:var(--sns);border-radius:50%}.kind-dot.kind-consumer{background:var(--consumer)}.kind-dot.kind-lambda{background:var(--lambda);clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);border-radius:0}.kind-dot.kind-producer{background:var(--producer)}.goals ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.goal{grid-template-columns:16px 1fr;align-items:start;gap:0 6px;font-size:13px;line-height:18px;display:grid}.goal-detail{color:var(--muted);grid-column:2;font-size:12px}.status-dot{width:10px;height:10px;box-shadow:inset 0 0 0 1.5px var(--border-strong);border-radius:50%;margin-top:4px;display:inline-block}.status-dot.ok{background:var(--ok);box-shadow:none}.status-dot.fail{background:var(--bad);box-shadow:none}.goal.fail .goal-label{color:var(--bad)}.goal.ok .goal-label{color:var(--ok)}.star-targets{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.objective p{margin:0 0 8px}.hint{background:var(--warn-soft);border-left:2px solid var(--warn-line);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:6px 10px;font-size:13px}.inspector{flex-direction:column;gap:12px;display:flex}.inspector.empty .tips{color:var(--text-2);flex-direction:column;gap:6px;padding-left:18px;font-size:13px;display:flex}.inspector-head{align-items:center;gap:10px;display:flex}.inspector-head .kind-dot{width:16px;height:16px}.inspector-head h3{color:var(--text);margin:0;font-size:18px}.name-input{border-radius:var(--radius-sm);color:var(--text);font:700 16px var(--font);background:0 0;border:1px solid #0000;width:100%;margin-left:-7px;padding:2px 6px}.name-input:hover,.name-input:focus{border-color:var(--input-border);outline:none}.tabs{border-bottom:1px solid var(--border-strong);display:flex}.tabs button{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-bottom:3px solid #0000;padding:6px 12px;font-weight:700}.tabs button:hover{color:var(--accent)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.config{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field-label{color:var(--text);font-size:14px;font-weight:700}.field-help{color:var(--muted);font-size:12px;line-height:16px}.number-field{align-items:center;gap:8px;display:flex}.number-field input[type=range]{accent-color:var(--accent);flex:1}.number-field input[type=number]{width:68px}input[type=number],select,.search,.text-input{background:var(--panel);border:1px solid var(--input-border);color:var(--text);border-radius:var(--radius-sm);font:inherit;padding:3px 8px}input[type=number]:focus,select:focus,.search:focus,.text-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.unit{color:var(--muted);min-width:14px;font-size:12px}.toggle{cursor:pointer;grid-template-columns:30px 1fr;align-items:start;gap:8px;display:grid;position:relative}.toggle input{opacity:0;cursor:pointer;width:30px;height:18px;margin:0;position:absolute}.toggle-track{background:var(--input-border);border-radius:999px;width:30px;height:18px;margin-top:1px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(12px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.toggle.disabled{opacity:.6;cursor:not-allowed}.toggle-text{flex-direction:column;gap:2px;display:flex}.kv{margin:0;font-size:13px}.kv-list{flex-direction:column;gap:4px;display:flex}.locked-hint{color:var(--text-2);background:var(--panel-2);border-radius:var(--radius-sm);margin:0;padding:6px 10px;font-size:12px;line-height:16px}.type-chip,.chip-check{border:1px solid color-mix(in srgb, var(--c) 55%, white);background:color-mix(in srgb, var(--c) 10%, white);border-radius:4px;align-items:center;gap:4px;margin-right:4px;padding:0 8px 0 6px;font-size:12px;display:inline-flex}.chip-check{cursor:pointer}.chip-check input{accent-color:var(--c);margin:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.connections{flex-direction:column;gap:6px;display:flex}.edge-row{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:6px;padding:6px 10px;font-size:13px;display:flex}.filter-editor{flex-direction:column;gap:6px;display:flex}code.policy{font:11px var(--mono);color:var(--sns);word-break:break-all}.realworld{flex-direction:column;gap:14px;display:flex}.snippet pre{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);font:11.5px/1.55 var(--mono);color:var(--text);margin:6px 0 4px;padding:8px 10px;overflow-x:auto}.snippet p{margin:0}.metrics{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:stretch;gap:4px 0;padding:8px 16px;display:flex}.metrics.idle{padding:12px 16px}.metric{border-left:1px solid var(--border);flex-direction:column;min-width:84px;padding:0 16px;display:flex}.metric:first-child{border-left:0;padding-left:0}.metric-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;line-height:24px}.metric-label{color:var(--muted);font-size:12px;line-height:16px}.metric.bad .metric-value{color:var(--bad)}.log{box-shadow:none;background:0 0;border:0;border-radius:0;padding:6px 16px 8px}.log h3{margin:0}.log-lines{height:112px;font:12px/1.65 var(--mono);margin:4px 0 0;padding:0;list-style:none;overflow-y:auto}.log-t{color:var(--muted);min-width:52px;display:inline-block}.log-ok{color:var(--ok)}.log-bad{color:var(--bad)}.log-warn{color:var(--warn)}.log-info{color:var(--accent)}.log-dlq{color:#7d3ce0}.log-muted{color:var(--muted)}.stage-hint{background:var(--accent-soft);border:1px solid var(--accent);color:var(--text);border-radius:var(--radius-sm);pointer-events:none;padding:4px 14px;font-size:13px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-sm);background:var(--nav-2);color:#fff;z-index:5;max-width:min(560px,90%);padding:8px 16px;animation:.2s ease-out toast-in;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}.toast.floating{position:fixed}.toast.error{background:var(--bad)}.toast.warn{background:var(--warn-line);color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.legend{color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius-sm);pointer-events:none;background:#ffffffe6;gap:12px;padding:2px 10px;font-size:11px;display:flex;position:absolute;bottom:10px;right:10px}.legend span{align-items:center;gap:5px;display:inline-flex}.lg{border-radius:2px;width:10px;height:10px;display:inline-block}.lg.poison{background:#3b0764}.lg.dim{background:#b4b4bb}.lg.pad-green{background:#29ad32;border-radius:50%}.lg.pad-blue{background:#09f;border-radius:50%}.node-label{--accent:var(--producer);text-align:center;color:var(--text);white-space:nowrap;pointer-events:none;transform-origin:bottom;background:#fffffff5;border:1px solid #0f141a14;border-radius:10px;margin-bottom:7px;padding:4px 10px;font-size:12px;line-height:16px;position:relative;box-shadow:0 1px 2px #0f141a14,0 6px 16px #0f141a1a}.node-label:after{content:"";background:inherit;border-bottom:1px solid #0f141a14;border-right:1px solid #0f141a14;width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.node-label .nl-name:before{content:"";background:var(--accent);vertical-align:0;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.node-label.compact .nl-line,.node-label.compact .nl-badges{display:none}.node-label.compact{padding:2px 8px;font-size:11px}.node-label.faded,.edge-label.faded{opacity:.18}.node-label.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 6px 16px #0f141a24}.node-label.selected:after{border-color:var(--accent)}.node-label.kind-topic{--accent:var(--sns)}.node-label.kind-queue{--accent:var(--sqs)}.node-label.kind-queue.is-dlq{--accent:var(--dlq)}.node-label.kind-consumer{--accent:var(--consumer)}.node-label.kind-lambda{--accent:var(--lambda)}.nl-name{font-weight:700}.nl-line{color:var(--text-2);font-size:11px}.nl-line b{color:var(--text)}.nl-head{justify-content:center;align-items:center;gap:6px;display:flex}.nl-badges{gap:3px;display:flex}.badge{color:#fff;background:#656871;border-radius:4px;padding:0 5px;font-size:10px;font-weight:700;line-height:14px}.badge.sqs{background:var(--sqs)}.badge.sns{background:var(--sns)}.badge.lambda{background:var(--lambda)}.badge.fifo{background:#111}.badge.bad{background:var(--bad)}.badge.warn{background:#8d6605}.badge.ok{background:var(--ok)}.badge.lock{color:inherit;background:0 0;padding:0}.down{color:var(--bad);font-weight:700}.edge-label{border:1px solid color-mix(in srgb, var(--sns) 50%, white);color:#5a2db8;pointer-events:none;white-space:nowrap;background:#fffffff0;border-radius:4px;padding:0 7px;font-size:11px;line-height:16px}.edge-label.dlq{border-color:color-mix(in srgb, var(--dlq) 50%, white);color:var(--dlq)}.fx{font:700 12px var(--font);pointer-events:none;white-space:nowrap;text-shadow:0 0 2px #fff,0 0 4px #fff,0 0 6px #fff}.fx-ok{color:var(--ok)}.fx-bad{color:var(--bad)}.fx-warn{color:var(--warn)}.fx-info{color:var(--accent)}.fx-dlq{color:#7d3ce0}.fx-muted{color:var(--muted);font-size:11px;font-weight:400}.modal-backdrop{z-index:50;background:#0f141a8c;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border-radius:var(--radius);flex-direction:column;gap:14px;width:min(620px,100%);max-height:90dvh;padding:20px 24px;display:flex;overflow-y:auto;box-shadow:0 8px 40px #0000004d}.modal h2{font-size:20px;font-weight:700}.modal-kicker{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.story{color:var(--text-2);margin:0;font-size:15px;line-height:22px}.mission{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}details summary{cursor:pointer;color:var(--accent);font-weight:700}details p{margin:6px 0 0}.result-head{justify-content:space-between;align-items:center;display:flex}.stars{letter-spacing:2px;font-size:24px}.stars .on{color:var(--text)}.stars .off{color:#d1d5db}.level-card .stars{font-size:14px}.result-goals{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.result-goals li{grid-template-columns:18px 1fr;gap:4px;display:grid}.why{color:var(--bad);font-size:13px}.lesson{background:var(--ok-soft);border-radius:var(--radius-sm);border:1px solid #c8e6c9;padding:10px 14px}.lesson h3{color:var(--ok);margin-bottom:6px;font-size:14px}.lesson ul{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.quiz-options{flex-direction:column;gap:8px;display:flex}.quiz-option{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);cursor:pointer;padding:8px 14px}.quiz-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.quiz-option.right{border-color:var(--ok);background:var(--ok-soft)}.quiz-option.wrong{border-color:var(--bad);background:var(--bad-soft)}.quiz-option.dim{opacity:.5}.quiz-explain{border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--panel-2);margin:0;padding:8px 12px}.quiz-explain.right{border-left:2px solid var(--ok)}.quiz-explain.wrong{border-left:2px solid var(--bad)}.glossary dl{flex-direction:column;gap:12px;margin:0;display:flex}.gl-entry dt{font-weight:700}.gl-entry dd{color:var(--text-2);margin:2px 0 0}.svc{vertical-align:middle;color:#fff;border-radius:4px;margin-left:4px;padding:0 5px;font-size:10px;font-weight:700;line-height:14px}.svc-sqs{background:var(--sqs)}.svc-sns{background:var(--sns)}.svc-geral{background:#656871}.search{width:100%;padding:5px 10px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sandbox-file-form{flex-direction:column;gap:8px;display:flex}.sandbox-file-form .text-input{width:100%;padding:5px 10px}.sandbox-status{color:var(--muted);margin:6px 0 0}.sandbox-status.dirty{color:var(--text);font-weight:700}.sandbox-status.dirty:before{content:"● "}.sandbox-file .alert{margin-top:8px}.sandbox-conflict{margin-top:6px}.saved-sandboxes>.row{align-items:baseline}.sandbox-card{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);flex-direction:column;min-height:84px;transition:border-color .12s,background .12s;display:flex;position:relative}.sandbox-card:hover{border-color:var(--accent)}.sandbox-card.new{cursor:pointer;font:inherit;color:var(--text);border-style:dashed;justify-content:center;align-items:center;gap:2px}.sandbox-card.new:hover{background:var(--accent-soft)}.sc-plus{font-size:22px;line-height:1}.sc-open{text-align:left;cursor:pointer;border-radius:inherit;background:0 0;border:0;flex-direction:column;flex:1;gap:4px;padding:12px 14px 28px;display:flex}.sc-open:disabled{cursor:progress}.sc-name{overflow-wrap:anywhere;font-weight:700}.sc-meta{color:var(--muted);font-size:12px;line-height:16px}.sc-delete{color:var(--muted);position:absolute;bottom:6px;right:6px}.sc-delete:hover:not(:disabled){color:var(--bad);background:var(--bad-soft)}.sandbox-card .sc-open:focus-visible,.sandbox-card.new:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.block{width:100%;padding-top:4px;padding-bottom:4px}.btn.icon{color:var(--text-2);padding:2px 8px}.auth-modal{gap:16px;width:min(440px,100%)}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-lead{margin:0}.auth-switch{text-align:center;color:var(--text-2);margin:0;font-size:13px}.form-field{flex-direction:column;gap:4px;display:flex}.form-field input[type=text],.form-field input[type=email],.form-field input[type=password]{width:100%;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--input-border);border-radius:var(--radius-sm);min-height:32px;padding:5px 10px}.form-field input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.form-field.has-error input{border-color:var(--bad);border-left-width:4px}.field-error{color:var(--bad);font-size:12px;line-height:16px}.field-error:before{content:"⚠ "}.field-ok{color:var(--ok);margin:4px 0 0;font-size:12px}.field-ok:before{content:"✓ "}.password-input{display:block;position:relative}.password-input input{padding-right:76px!important}.password-input .reveal{color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-input .reveal:focus-visible{outline:2px solid var(--accent)}.input-row{align-items:center;gap:8px;display:flex}.input-row input{flex:1}.alert{border:2px solid;border-radius:12px;padding:8px 14px;font-size:13px;line-height:18px}.alert-info{border-color:var(--accent);background:var(--accent-soft)}.alert-success{border-color:var(--ok);background:var(--ok-soft)}.alert-warning{background:var(--warn-soft);border-color:#d8a700}.alert-error{border-color:var(--bad);background:var(--bad-soft)}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:inline-grid}.avatar.large{width:44px;height:44px;font-size:17px}.account-btn{align-items:center;gap:8px;display:inline-flex;padding-left:4px!important}.account-slot{width:72px;display:inline-block}.account{flex-direction:column;gap:0;display:flex}.account-head{align-items:center;gap:14px;padding-bottom:14px;display:flex}.account-name{font-size:16px;font-weight:700}.account-section{border-top:1px solid var(--border);gap:12px;padding:14px 0}.account-section.row{gap:16px}.account>.row.end{border-top:1px solid var(--border);padding-top:14px}.danger-zone .field-label{color:var(--bad)}.menu-shell{flex-direction:column;min-height:100%;display:flex}.console-nav{background:var(--nav);height:48px;color:var(--nav-text);border-bottom:1px solid var(--nav-border);flex:none;align-items:center;gap:12px;padding:0 20px;display:flex}.console-nav .brand{align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.console-nav .spacer{flex:1}.console-nav .btn{color:var(--nav-text);background:0 0;border:1px solid #0000;padding:3px 12px;font-weight:400}.console-nav .btn:hover:not(:disabled){background:var(--nav-hover);color:var(--accent-hover);border-color:#0000}.console-nav .star-count{color:var(--nav-text);font-variant-numeric:tabular-nums;font-weight:700}.menu{flex-direction:column;flex:1;gap:28px;width:100%;max-width:1080px;margin:0 auto;padding:28px 24px 48px;display:flex}.menu-hero{flex-direction:column;gap:4px;display:flex}.menu-hero h1{font-size:28px;font-weight:700;line-height:36px}.menu-hero p{color:var(--text-2);max-width:640px;margin:0;font-size:16px;line-height:24px}.logo{align-items:center;gap:3px;display:flex}.cube{border-radius:2px;width:9px;height:18px}.cube.c1{background:#111}.cube.c2{background:#6b6b6b}.cube.c3{background:#bdbdbd}.track{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px 20px}.track h2{font-size:18px;font-weight:700}.track>p{margin:2px 0 14px}.level-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.level-card{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);cursor:pointer;grid-template-rows:auto auto auto;grid-template-columns:auto 1fr;gap:2px 10px;padding:12px 14px;transition:border-color .12s,background .12s;display:grid}.level-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.level-card.done{border-left:3px solid var(--ok)}.level-card.locked{background:var(--panel-2);border-color:var(--border);color:var(--muted);cursor:not-allowed}.level-card.needs-account{cursor:pointer}.level-card.needs-account:hover:not(:disabled){border-color:var(--accent);background:var(--panel)}.lock-tag{color:var(--accent);font-size:12px;font-weight:700}.guest-banner{border:2px solid var(--accent);background:var(--accent-soft);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:24px;padding:12px 16px;font-size:14px;line-height:20px;display:flex}.guest-banner>div:first-child{flex:320px}.sandbox-limit{color:var(--muted);margin:8px 0 0}.lc-num{color:var(--border-strong);font-variant-numeric:tabular-nums;grid-row:span 3;font-size:18px;font-weight:700}.lc-title{font-weight:700}.level-card:not(.locked) .lc-title{color:var(--accent)}.lc-concept{color:var(--muted);font-size:12px;line-height:16px}.lc-stars{margin-top:4px}.menu-footer{text-align:center;margin-top:auto}@media (width<=1500px){.level-tag,.topbar .concept-chip{display:none}}@media (width<=1250px){.level-screen{grid-template-columns:230px 1fr 300px}.topbar{flex-wrap:wrap}.topbar .actions{border-left:0;justify-content:flex-end;width:100%}}@media (width<=900px){.level-screen{grid-template:"top""stage"60vh"right""left""bottom"/1fr;height:auto;min-height:100%}.left,.right{border:0;overflow:visible}.topbar .controls{margin-left:0}.legend{display:none}}@supports (height:100dvh){html,body,#app{height:100dvh}}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}.stage{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@media (pointer:coarse){.btn,.palette-item,.segmented button,.tabs button,.quiz-option{min-height:44px}.btn.tiny{min-height:36px}input,select,textarea{font-size:16px}}@media (width<=600px){.modal-backdrop{padding:8px}.modal{max-height:94dvh;padding:16px}}.touch-actions{z-index:4;gap:8px;display:flex;position:absolute;top:46px;left:50%;transform:translate(-50%)}.touch-actions .btn{box-shadow:var(--shadow);white-space:nowrap}.recenter-btn{z-index:4;background:var(--panel);min-width:44px;min-height:44px;box-shadow:var(--shadow);position:absolute;bottom:10px;left:10px}.rotate-hint{left:8px;right:8px;top:max(8px, env(safe-area-inset-top));z-index:60;border-radius:var(--radius);background:var(--nav-2);color:#fff;align-items:center;gap:10px;padding:10px 12px;font-size:13px;line-height:18px;display:flex;position:fixed;box-shadow:0 4px 20px #0000004d}.rotate-hint.on-level{top:56px}.rotate-hint .btn{color:var(--text);background:#fff;border-color:#fff;flex:none}.rotate-icon{font-size:24px;line-height:1}.level-screen.compact-level{height:100dvh;min-height:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);grid-template:"top""stage"minmax(0,1fr)"sheet"/minmax(0,1fr)}.compact-level .legend{display:none}.topbar.compact{flex-wrap:nowrap;gap:6px;padding:4px 8px;position:relative}.topbar.compact h1{flex:auto;font-size:14px}.topbar.compact .controls{gap:4px;margin-left:0}.btn.icon{min-width:44px;padding-left:0;padding-right:0}.topbar.compact .btn{min-height:40px;padding:3px 10px}.menu-scrim{z-index:29;background:0 0;border:0;position:fixed;inset:0}.more-menu{z-index:30;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:100%;right:8px;box-shadow:0 8px 30px #0003}.more-menu .btn{text-align:left;justify-content:flex-start;width:100%}.more-account{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.sheet{background:var(--panel);border-top:1px solid var(--border);min-height:0;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;grid-area:sheet;display:flex}.sheet-bar{flex:none;display:flex}.sheet-bar button{min-height:44px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1 1 0;padding:0 6px;font-weight:700}.sheet-bar button.active{color:var(--text);border-bottom-color:var(--accent)}.sheet-bar .sheet-grow{flex:0 0 48px;font-size:18px}.sheet-body{overscroll-behavior:contain;border-top:1px solid var(--border);background:var(--bg);flex-direction:column;gap:12px;padding:12px;display:flex;overflow-y:auto}.sheet-half .sheet-body{height:40dvh}.sheet-full .sheet-body{height:70dvh}@media (orientation:landscape){.level-screen.compact-level{grid-template:"top top""stage sheet"minmax(0,1fr)/minmax(0,1fr) auto}.sheet{border-top:0;border-left:1px solid var(--border);padding-bottom:0;padding-right:env(safe-area-inset-right);width:min(44vw,360px)}.sheet-full{width:min(70vw,600px)}.sheet-half .sheet-body,.sheet-full .sheet-body{flex:auto;height:auto}.sheet-peek{right:max(8px, env(safe-area-inset-right));z-index:5;border:1px solid var(--border);border-radius:var(--radius);width:auto;box-shadow:var(--shadow);position:fixed;bottom:8px;overflow:hidden}.sheet-peek .sheet-bar{flex-direction:column}.sheet-peek .sheet-bar button{padding:0 14px}.sheet-peek .sheet-grow{display:none}}@media (width<=600px){.console-nav{height:auto;min-height:48px;padding-top:4px;padding-bottom:4px;padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));flex-wrap:wrap;gap:4px 8px}.console-nav .star-count{white-space:nowrap}.console-nav .btn{padding-left:10px;padding-right:10px}}.google-btn{color:#1f1f1f;background:#fff;border:1px solid #747775;justify-content:center;align-items:center;gap:10px;font-weight:500;display:inline-flex}.google-btn:hover:not(:disabled){color:#1f1f1f;background:#f8f9fa;border-color:#1f1f1f}.auth-or{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--border);flex:1;height:1px}
