*{box-sizing:border-box;margin:0}html,body,#root{height:100%;background:#111214;color:#d6d8db;font-family:-apple-system,Helvetica Neue,sans-serif;font-size:13px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:#1a1c1f;border-bottom:1px solid #2a2d31}.brand{font-weight:600;letter-spacing:.04em}.stub-badge{background:#4a3d1f;color:#e8c76a;padding:2px 8px;border-radius:10px;font-size:11px}.status{margin-left:auto;color:#8a8d92}.stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;background:#0a0b0c}.viewport{outline:1px solid #3a3d41}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:10px 14px;background:#1a1c1f;border-top:1px solid #2a2d31}.group{display:flex;align-items:center;gap:6px}button{background:#26292d;color:#d6d8db;border:1px solid #34383d;border-radius:6px;padding:6px 12px;cursor:pointer}button:hover{background:#2e3237}button.active{background:#3d5a80;border-color:#4d6a90;color:#fff}button:disabled{opacity:.4;cursor:default}select,input[type=range]{accent-color:#3d5a80;background:#26292d;color:#d6d8db;border:1px solid #34383d;border-radius:6px;padding:5px 8px}.truesize{width:120px;background:#26292d;color:#d6d8db;border:1px solid #34383d;border-radius:6px;padding:5px 8px}.exports button{background:#2f4a33;border-color:#3d5f43}.exports button:hover:not(:disabled){background:#38573d}.user{color:#8a8d92;font-size:12px}.stale-banner{display:flex;gap:10px;align-items:center;padding:8px 14px;background:#4a3d1f;color:#e8c76a}.stage{position:relative}.panel{position:absolute;top:12px;left:12px;width:280px;max-height:70%;overflow-y:auto;background:#1a1c1fee;border:1px solid #2a2d31;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel button{text-align:left}.drawer{display:flex;gap:24px;overflow-x:auto;padding:14px;background:#16181b;border-top:1px solid #2a2d31;max-height:40vh;overflow-y:auto}.drawer section{min-width:210px}.drawer h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#8a8d92;margin-bottom:8px}.drawer label{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.drawer .row{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}.light-row{border-top:1px solid #26292d;padding-top:6px;margin-top:6px}.session-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.session-list button{text-align:left;font-size:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100}.markup{display:flex;flex-direction:column;gap:10px;max-width:92vw;max-height:92vh}.markup-tools{display:flex;gap:6px;align-items:center}.markup-tools .spacer{flex:1}.markup-tools .swatch{width:26px;height:26px;border-radius:50%;padding:0}.markup-tools .swatch.active{outline:2px solid #fff}.markup-tools .primary{background:#2f4a33;border-color:#3d5f43}.markup-canvas{max-width:92vw;max-height:82vh;object-fit:contain;cursor:crosshair;border:1px solid #3a3d41}.login{display:flex;height:100%;align-items:center;justify-content:center}.login-card{width:340px;padding:32px;background:#1a1c1f;border:1px solid #2a2d31;border-radius:12px}.login-card h1{font-size:18px;font-weight:600;letter-spacing:.04em;margin-bottom:16px}.login-card form{display:flex;flex-direction:column;gap:10px}.login-card input{background:#26292d;color:#d6d8db;border:1px solid #34383d;border-radius:6px;padding:9px 12px}.login-warn{color:#e8c76a;font-size:12px}.boot-loading,.boot-error{display:flex;height:100%;align-items:center;justify-content:center;color:#8a8d92}.boot-error{color:#d98080}
