:root{--bg:#f4f5f2;--panel:#fff;--ink:#1d232b;--muted:#69717c;--line:#d9ddd6;--accent:#ff7a00;--accent-ink:#fff;--top:#1f2630;--top-ink:#e8ecf1;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0}body{flex-direction:column;display:flex;overflow:hidden}[hidden]{display:none!important}button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;padding:6px 10px}button:hover{border-color:#aab}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.active{outline:2px solid var(--accent);outline-offset:-2px}kbd{color:var(--muted);margin-left:auto;font-size:11px}.topbar{background:var(--top);color:var(--top-ink);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 14px;display:flex}.topbar button{color:var(--top-ink);background:#2c3541;border-color:#3b4654}.topbar button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.brand{letter-spacing:.02em;font-weight:700}.range-name{color:#9aa6b4}.stage-name{font:inherit;color:#fff;background:#151b22;border:1px solid #3b4654;border-radius:6px;min-width:180px;padding:5px 8px;font-weight:600}.tabs{gap:2px;display:flex}.tabs .tab.active{color:var(--top);background:#fff;outline:none}.actions{flex-wrap:wrap;gap:6px;display:flex}.save-state{color:#9aa6b4;margin-left:auto;font-size:12px}.workspace{flex:1;min-height:0;display:flex}.toolbar,.props{background:var(--panel);border-color:var(--line);border-style:solid;border-width:0;padding:12px;overflow-y:auto}.toolbar{border-right-width:1px;flex-direction:column;gap:6px;width:190px;display:flex}.palette,.toolbar-extra{flex-direction:column;gap:6px;display:flex}.toolbar .tool{text-align:left;align-items:center;gap:8px;display:flex}.toolbar .ico{flex:none;width:18px;height:18px}.palette-mobile,.menu-btn,.sheet-close,.help-touch{display:none}.props{border-left-width:1px;width:280px}.group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:8px;font-size:11px}.levels{flex-wrap:wrap;gap:4px;display:flex}.check{align-items:center;gap:6px;font-size:13px;display:flex}.help{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.6}.stage-area{flex:1;min-width:0;position:relative}.plan,.view3d{width:100%;height:100%;display:block;position:absolute;inset:0}.plan{touch-action:none}.view3d canvas{display:block}.overlay{align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px}.overlay .check{background:#ffffffd9;border-radius:6px;padding:6px 10px}.walk-help,.status{color:#fff;background:#0000008c;border-radius:6px;padding:6px 10px;font-size:12px;position:absolute;left:12px}.walk-help{bottom:44px}.breach{color:#fff;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;background:#c0281c;border-radius:6px;padding:8px 18px;font-size:15px;font-weight:800;position:absolute;top:56px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000059}.view3d.breached:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 4px #d6281ce6,inset 0 0 90px #d6281c73}.status{bottom:12px}.status:empty{display:none}.cursor-readout{color:var(--muted);pointer-events:none;background:#fffc;border-radius:4px;padding:3px 8px;font-size:12px;position:absolute;bottom:12px;right:12px}.props h3{margin:0 0 10px;font-size:15px}.props label{color:var(--muted);margin:10px 0 3px;font-size:12px;display:block}.props input,.props select,.props textarea{font:inherit;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:6px;padding:5px 7px}.props textarea{resize:vertical;min-height:140px}.props .row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.props .item-list{margin:6px 0 0;padding:0;list-style:none}.props .item-list li{cursor:pointer;border-radius:4px;justify-content:space-between;padding:4px 6px;display:flex}.props .item-list li:hover{background:#f1f2ee}.props .muted,.muted{color:var(--muted);font-size:12px}.props .warn{color:#b3261e;margin-top:10px;font-size:12px}dialog{border:1px solid var(--line);border-radius:10px;min-width:360px;padding:18px}dialog h2{margin:0 0 6px;font-size:17px}dialog menu{justify-content:flex-end;margin:14px 0 0;padding:0;display:flex}.stage-list{max-height:50vh;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.stage-list li button{text-align:left;justify-content:space-between;gap:12px;width:100%;margin-bottom:4px;display:flex}dialog menu{gap:6px}dialog p{max-width:460px}dialog .group-label{margin:14px 0 4px;font-weight:600}body.touch .help-desktop{display:none}body.touch .help-touch{display:block}body.touch .walk-help .help-touch{display:inline}.stick{bottom:calc(24px + env(safe-area-inset-bottom));touch-action:none;-webkit-user-select:none;user-select:none;z-index:3;background:#00000038;border:2px solid #ffffff8c;border-radius:50%;width:128px;height:128px;display:none;position:absolute}.stick-move{left:calc(20px + env(safe-area-inset-left))}.stick-look{right:calc(20px + env(safe-area-inset-right))}.stick .knob{pointer-events:none;background:#ffffffd9;border-radius:50%;width:54px;height:54px;margin:-27px 0 0 -27px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0000004d}body.touch .view3d.walking .stick{display:block}body.touch .view3d .walk-help{text-align:center;max-width:80%;bottom:170px;left:50%;transform:translate(-50%)}body.touch .view3d .status{inset:52px 8px auto auto}@media (width<=820px){.topbar{z-index:20;flex-wrap:nowrap;gap:8px;padding:6px 8px;position:relative}.brand,.range-name,.save-state,.cursor-readout{display:none}.stage-name{flex:1;min-width:0}.menu-btn{padding:6px 10px;font-size:18px;line-height:1;display:block}#menu-actions{display:none}body.menu-open #menu-actions{background:var(--top);border-radius:10px;flex-direction:column;gap:6px;min-width:190px;margin-top:4px;padding:8px;display:flex;position:absolute;top:100%;right:8px;box-shadow:0 8px 24px #00000059}#menu-actions button{text-align:left;padding:10px 12px}.workspace{position:relative}.toolbar{z-index:5;border-width:1px;border-radius:12px;width:auto;padding:4px;position:absolute;top:8px;left:8px;right:8px;overflow:visible;box-shadow:0 4px 16px #0000002e}.palette{flex-direction:row;gap:3px}.palette .group-label,.toolbar .lbl,.toolbar kbd{display:none}.palette-mobile{display:contents}.toolbar .tool{flex:1 1 0;justify-content:center;min-width:0;min-height:42px;padding:6px 0;font-size:18px;line-height:1}.toolbar .ico{width:22px;height:22px}.toolbar-extra{display:none}body.plan-menu-open .toolbar-extra{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:260px;margin-top:6px;padding:12px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0003}.props{z-index:6;width:auto;max-height:55%;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-top-width:1px;border-left-width:0;border-radius:14px 14px 0 0;transition:transform .2s;position:absolute;bottom:0;left:0;right:0;transform:translateY(105%);box-shadow:0 -8px 24px #0000002e}body.sheet-open .props{transform:none}.sheet-close{float:right;margin:-4px -4px 0 8px;padding:6px 10px;display:block;position:sticky;top:0}.props input,.props select,.props textarea{font-size:16px}.overlay{flex-wrap:wrap;gap:6px;top:8px;left:8px;right:8px}dialog{width:calc(100vw - 32px);min-width:0}}
