:root{--font: "Segoe UI", "IBM Plex Sans", system-ui, sans-serif;--mono: "Cascadia Code", "IBM Plex Mono", ui-monospace, monospace;--radius: 10px;--pad: 12px;--gap: 10px;--shadow: 0 10px 40px color-mix(in srgb, var(--ink) 18%, transparent)}:root[data-theme=night],:root[data-theme-set=dark][data-theme=night]{--bg: #0b0d10;--bg-2: #12151b;--bg-3: #1a1f28;--ink: #e8eaed;--muted: #9aa3af;--line: #2a3140;--accent: #7dd3fc;--accent-2: #86efac;--warn: #fbbf24;--hid: #facc15;--danger: #f87171;--canvas: #0e1218}:root[data-theme=hangar]{--bg: #0c1014;--bg-2: #141c22;--bg-3: #1c2830;--ink: #d7ece4;--muted: #7fa396;--line: #244038;--accent: #5eead4;--accent-2: #fde68a;--warn: #fbbf24;--hid: #facc15;--danger: #fb7185;--canvas: #0a1210}:root[data-theme=cockpit]{--bg: #120c14;--bg-2: #1c121f;--bg-3: #2a1830;--ink: #f3e8ff;--muted: #c4b5d6;--line: #3b2748;--accent: #e879f9;--accent-2: #67e8f9;--warn: #fbbf24;--hid: #facc15;--danger: #fb7185;--canvas: #160a1a}:root[data-theme=day]{--bg: #f4f1ea;--bg-2: #fffdf8;--bg-3: #ece6d8;--ink: #1c1914;--muted: #5c574e;--line: #d9d0c0;--accent: #0369a1;--accent-2: #047857;--warn: #b45309;--hid: #a16207;--danger: #b91c1c;--canvas: #e7e1d4;--shadow: 0 10px 28px rgb(40 30 10 / 12%)}:root[data-theme=paper]{--bg: #f7f7f5;--bg-2: #ffffff;--bg-3: #ecece8;--ink: #111827;--muted: #4b5563;--line: #d1d5db;--accent: #1d4ed8;--accent-2: #0f766e;--warn: #b45309;--hid: #92400e;--danger: #be123c;--canvas: #eef0f3;--shadow: 0 8px 24px rgb(15 23 42 / 8%)}:root[data-theme=high-contrast]{--bg: #000;--bg-2: #0a0a0a;--bg-3: #111;--ink: #fff;--muted: #ddd;--line: #fff;--accent: #0ff;--accent-2: #ff0;--warn: #ff0;--hid: #ff0;--danger: #f44;--canvas: #000}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.4}button,select,input,textarea{font:inherit;color:inherit}button{background:var(--bg-3);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}button:hover{border-color:var(--accent)}button.active,button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 22%,var(--bg-3));border-color:var(--accent)}button.hid{color:#111;background:var(--hid);border-color:transparent;font-weight:650}.app{display:grid;height:100%;grid-template-rows:auto 1fr auto}.top{display:flex;align-items:center;gap:var(--gap);padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg-2);flex-wrap:wrap}.brand{font-weight:700;letter-spacing:.04em}.brand small{color:var(--muted);font-weight:500;margin-left:8px}.modes{display:flex;gap:6px}.modes button{min-width:5.5rem}.spacer{flex:1}.shell{display:grid;grid-template-columns:minmax(200px,240px) 1fr minmax(240px,320px);min-height:0}.pane{border-right:1px solid var(--line);background:var(--bg-2);overflow:auto;padding:var(--pad)}.pane:last-child{border-right:0;border-left:1px solid var(--line)}.pane h2,.fold>summary{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.fold{border:1px solid var(--line);border-radius:var(--radius);padding:8px;margin-bottom:8px;background:var(--bg)}.fold>summary{cursor:pointer;list-style:none}.canvas-wrap{background:var(--canvas);position:relative;min-height:0;overflow:auto}.canvas{position:relative;width:min(720px,100%);aspect-ratio:1;margin:16px auto;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 42%),var(--bg-3);border:1px solid var(--line);border-radius:16px}.widget{position:absolute;transform:translate(-50%,-50%);border:1px solid var(--line);background:var(--bg-2);display:grid;place-items:center;font-size:11px;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow)}.widget .n{font-weight:700;line-height:1}.widget .hidn{position:absolute;bottom:-11px;left:50%;transform:translate(-50%);font-size:9px;font-family:var(--mono);background:var(--hid);color:#111;padding:0 4px;border-radius:4px;font-weight:700;white-space:nowrap}.widget.missing .hidn{background:var(--danger);color:#fff}.valid,.invalid{font-size:.8rem;padding:6px 8px;border-radius:8px;margin:8px 0}.valid{background:color-mix(in srgb,var(--accent-2) 22%,var(--bg))}.invalid{background:color-mix(in srgb,var(--danger) 22%,var(--bg))}.pay{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.pay .card h3{margin:0 0 6px}.pay a.buy{display:block;text-align:center;background:var(--accent);color:#041018;font-weight:700;padding:10px;border-radius:8px;text-decoration:none;margin-top:8px}@media(max-width:640px){.pay{grid-template-columns:1fr}}.widget.selected{outline:2px solid var(--accent);z-index:2}.widget.live{outline:2px solid var(--hid)}.w-button{width:28px;height:28px;border-radius:50%}.w-square{width:30px;height:30px;border-radius:6px}.w-hat{width:46px;height:46px;border-radius:50%}.w-slider{width:18px;height:72px;border-radius:9px}.w-axis{width:70px;height:70px;border-radius:12px}.w-trigger{width:36px;height:56px;border-radius:18px 18px 8px 8px}.w-flip{width:22px;height:48px;border-radius:4px}.w-key{width:32px;height:32px;border-radius:6px}.w-knob{width:40px;height:40px;border-radius:50%}.foot{display:flex;gap:12px;flex-wrap:wrap;padding:6px 12px;border-top:1px solid var(--line);background:var(--bg-2);color:var(--muted);font-size:.8rem}.row{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}label.field{display:grid;gap:4px;font-size:.8rem;color:var(--muted);margin:8px 0}input,select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px}textarea{min-height:88px;width:100%;font-family:var(--mono);font-size:12px}.tree button{display:block;width:100%;text-align:left;margin:4px 0}.muted{color:var(--muted);font-size:.85rem}.tag{font-size:.7rem;border:1px solid var(--line);padding:1px 6px;border-radius:99px}.ops{max-width:960px;margin:0 auto;padding:16px;display:grid;gap:12px}.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal span{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 4px;text-align:center;font-size:.8rem}.cal span.on{background:color-mix(in srgb,var(--accent-2) 28%,var(--bg))}@media(max-width:960px){.shell{grid-template-columns:1fr}.pane{border:0;border-bottom:1px solid var(--line);max-height:40vh}.canvas{width:min(92vw,520px)}}
