/* Scene Web test bench (SceneWebTest.html / SceneWebTest.js).
 * Standalone styling: the bench must load without the viewer panel, Bootstrap or jQuery widgets. */
:root{--swt-accent:#38baff;--swt-accent-rgb:56,186,255;--swt-ink:#e8f2ff;--swt-muted:#93a6bb;--swt-line:#2d3a4a;--swt-bg:#121a24}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:#05080d;color:var(--swt-ink);font:13px/1.6 'Segoe UI','Microsoft YaHei',sans-serif}
#mainarea{position:fixed;inset:0}
#canvas{display:block;width:100%;height:100%}
#logwindow{position:fixed;left:0;right:0;bottom:0;max-height:30vh;margin:0;padding:10px 12px;overflow:auto;background:#05080de8;color:#9fd6ff;font:11px/1.55 Consolas,monospace;white-space:pre-wrap;display:none}
#logwindow[data-visible=true]{display:block}
#swt-panel{position:fixed;top:14px;left:14px;bottom:76px;width:340px;display:flex;flex-direction:column;border:1px solid var(--swt-line);border-radius:10px;background:#121a24f2;box-shadow:0 18px 46px #0007;z-index:82000;overflow:hidden}
#swt-panel[data-collapsed=true]{bottom:auto;height:auto}
#swt-panel[data-collapsed=true] .swt-tabs,#swt-panel[data-collapsed=true] .swt-pane{display:none}
.swt-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--swt-line)}
.swt-head strong{flex:1;font-size:14px;letter-spacing:.4px}
.swt-dot{width:7px;height:7px;border-radius:50%;background:var(--swt-accent);box-shadow:0 0 10px var(--swt-accent)}
.swt-head button,.swt-row button,.swt-tabs button{background:#1e2836;border:1px solid #354355;color:var(--swt-ink);border-radius:6px;padding:7px 10px;font:12px/1 'Segoe UI','Microsoft YaHei',sans-serif;cursor:pointer}
.swt-head button{background:transparent;border-color:transparent;color:var(--swt-muted);padding:4px 6px}
.swt-head button:hover,.swt-row button:hover{background:#28374a;border-color:var(--swt-accent);color:#fff}
.swt-row button.swt-primary{background:rgba(var(--swt-accent-rgb),.16);border-color:var(--swt-accent);color:#d8f0ff;font-weight:600}
.swt-tabs{display:flex;gap:0;border-bottom:1px solid var(--swt-line);padding:0 8px}
.swt-tabs button{flex:1;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--swt-muted);padding:10px 4px}
.swt-tabs button[aria-pressed=true]{border-bottom-color:var(--swt-accent);color:var(--swt-accent)}
.swt-pane{flex:1;min-height:0;overflow:auto;padding:12px 14px;scrollbar-width:thin;scrollbar-color:#4c5f75 transparent}
.swt-note{margin:0 0 10px;font-size:11px;line-height:1.7;color:var(--swt-muted)}
.swt-note code{background:#1b2532;border-radius:3px;padding:1px 4px;color:#bfe2ff}
.swt-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.swt-row button{flex:1;min-width:88px}
.swt-row input[type=text]{flex:1;min-width:140px}
.swt-field{display:block;margin-bottom:10px;font-size:11px;color:var(--swt-muted)}
.swt-field input,.swt-field textarea,.swt-field select{display:block;width:100%;margin-top:5px;padding:8px 9px;border:1px solid #35404e;border-radius:5px;background:#0e141d;color:var(--swt-ink);font:12px/1.5 Consolas,'Microsoft YaHei',monospace}
.swt-field input:focus,.swt-field textarea:focus{outline:1px solid var(--swt-accent);border-color:var(--swt-accent)}
.swt-result{margin:0;max-height:190px;overflow:auto;padding:9px;border:1px solid #2a3542;border-radius:6px;background:#0b1119;color:#a9e2ff;font:11px/1.55 Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.swt-list{list-style:none;margin:0;padding:0}
.swt-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 9px;margin:3px 0;border:1px solid transparent;border-radius:6px;background:#182130}
.swt-list li[data-active=true]{border-color:rgba(var(--swt-accent-rgb),.5);box-shadow:inset 3px 0 var(--swt-accent)}
.swt-list li span{flex:1 1 100%;min-width:0;overflow-wrap:anywhere;line-height:1.5}
.swt-list li small{display:block;color:var(--swt-muted);font-size:10px}
.swt-list li button{background:transparent;border:0;color:var(--swt-muted);cursor:pointer;padding:2px 4px;font-size:12px}
.swt-list li button:hover{color:#ff9d9d}
.swt-history li,.swt-log li{display:block;font:11px/1.6 Consolas,monospace;color:#9fc0d8;background:#141d29;cursor:pointer}
.swt-log li{font-family:'Microsoft YaHei',sans-serif}
.swt-state{margin:8px 0 0;font-size:11px;color:var(--swt-muted)}
/* per-view scene actions (level load/unload, tag show/hide) */
.swt-actions{margin:4px 0 2px;border:1px solid #26313f;border-radius:6px;background:#131c27}
.swt-actions>summary{cursor:pointer;padding:7px 9px;font-size:11px;color:#a9c6dd;list-style:none}
.swt-actions>summary::-webkit-details-marker{display:none}
.swt-actions>summary:before{content:'▸ ';color:var(--swt-accent)}
.swt-actions[open]>summary:before{content:'▾ '}
.swt-action-field{display:block;padding:6px 9px 2px;font-size:10px;color:var(--swt-muted)}
.swt-action-field input{display:block;width:100%;margin-top:4px;padding:6px 8px;border:1px solid #35404e;border-radius:5px;background:#0d141d;color:var(--swt-ink);font:11px/1.4 Consolas,'Microsoft YaHei',monospace}
.swt-action-field input:focus{outline:1px solid var(--swt-accent);border-color:var(--swt-accent)}
.swt-action-note{margin:6px 9px 9px;font-size:10px;line-height:1.6;color:#7f93a8}
/* palette (material parameter vector) */
.swt-palette-preview{display:flex;align-items:center;gap:10px;margin:10px 0}
.swt-palette-preview span{width:44px;height:26px;border:1px solid #46617c;border-radius:5px;box-shadow:inset 0 0 8px #0006}
.swt-palette-preview code{font:11px/1.5 Consolas,monospace;color:#a9d8f5}
.swt-slider{display:grid;grid-template-columns:52px 1fr 62px;align-items:center;gap:8px;margin:6px 0;font-size:11px;color:var(--swt-muted)}
.swt-slider input[type=range]{width:100%;accent-color:var(--swt-accent)}
.swt-slider output{font:11px/1 Consolas,monospace;color:var(--swt-ink);text-align:right}
.swt-history-head{display:flex;align-items:center;justify-content:space-between;margin:12px 0 6px;color:var(--swt-muted);font-size:11px}
.swt-history-head button{flex:none;padding:4px 8px;font-size:11px}
#swt-view-bar{position:fixed;left:14px;right:14px;bottom:16px;z-index:81500;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
#swt-view-bar:empty{display:none}
#swt-view-bar button{min-width:104px;padding:10px 18px;border:1px solid #35455a;border-radius:20px;background:#0d1520e6;color:#cfe6fb;font:13px/1 'Microsoft YaHei',sans-serif;cursor:pointer;backdrop-filter:blur(3px)}
#swt-view-bar button:hover{border-color:var(--swt-accent);color:#fff}
#swt-view-bar button[aria-pressed=true]{background:var(--swt-accent);border-color:var(--swt-accent);color:#04121d;font-weight:600}
#swt-toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:83000;padding:9px 16px;border:1px solid rgba(var(--swt-accent-rgb),.6);border-radius:8px;background:#0d1a26f2;color:#d9f1ff;font-size:12px;box-shadow:0 10px 30px #0008}
#swt-toast[hidden]{display:none}
.dq-load-body{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}
#dq-loading{position:fixed;inset:0;z-index:90000;background:radial-gradient(60% 60% at 50% 40%,#0d2136 0%,#05080d 70%);color:var(--swt-ink)}
#dq-loading[hidden]{display:none}
.dq-load-copy h1{margin:6px 0 14px;font-size:30px;letter-spacing:3px;font-weight:500}
.dq-load-eyebrow{margin:0;font-size:11px;letter-spacing:3px;color:#6f8ba6}
.dq-load-status{display:flex;align-items:center;justify-content:center;gap:8px;color:#bfe2ff}
.dq-load-meter{margin:14px auto 8px;width:min(420px,72vw)}
.dq-load-meter progress{width:100%;height:4px;border:0;border-radius:2px;background:#16232f;color:var(--swt-accent)}
.dq-load-meter progress::-webkit-progress-value{background:var(--swt-accent)}
.dq-load-meter progress::-webkit-progress-bar{background:#16232f}
#dq-loading-amount,#dq-loading-detail{display:block;font-size:11px;color:#8fa6bd;margin-top:6px;min-height:16px}
#dq-retry{margin-top:14px;padding:9px 20px;border:1px solid var(--swt-accent);border-radius:6px;background:rgba(var(--swt-accent-rgb),.15);color:#d8f0ff;cursor:pointer}
.dq-startup-activity{height:12px}
.dq-loading-dots i{display:inline-block;width:4px;height:4px;margin-left:3px;border-radius:50%;background:var(--swt-accent);animation:swt-blink 1.2s infinite}
.dq-loading-dots i:nth-child(2){animation-delay:.2s}.dq-loading-dots i:nth-child(3){animation-delay:.4s}
@keyframes swt-blink{0%,100%{opacity:.25}50%{opacity:1}}
#dq-runtime-notice{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:84000;padding:8px 14px;border-radius:6px;background:#3a1f22e6;color:#ffd9d9;font-size:12px}
#dq-runtime-notice[hidden]{display:none}
#exit_pointerlock{position:fixed;right:16px;bottom:16px;z-index:81000;padding:8px 12px;border:1px solid var(--swt-line);border-radius:6px;background:#0d1520e6;color:#cfe6fb;cursor:pointer}
#exit_pointerlock[hidden]{display:none}
@media (max-width:900px){#swt-panel{width:min(92vw,340px);bottom:auto;max-height:70vh}}

/* The config panel is off by default; ?config shows this button (and opens the panel). */
#swt-panel[data-hidden=true]{display:none}
#swt-config-toggle{position:fixed;left:14px;top:14px;z-index:82500;padding:7px 14px;border:1px solid #35455a;border-radius:18px;background:#0b1420e0;color:#cfe6fb;font:12px/1 'Microsoft YaHei',sans-serif;cursor:pointer;backdrop-filter:blur(3px)}
#swt-config-toggle:hover{border-color:var(--swt-accent);color:#fff}
#swt-config-toggle[aria-pressed=true]{background:var(--swt-accent);border-color:var(--swt-accent);color:#04121d;font-weight:600}
#swt-config-toggle[hidden]{display:none}
