:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;--accent:#ffe35c;--panel:#0c0f12e8;--line:#ffffff20;--muted:#aeb5bf}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#101314}
#viewport,#viewport canvas{position:fixed;inset:0;width:100%;height:100%;display:block}
.topbar{position:fixed;top:18px;left:22px;right:22px;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;color:#fff;text-shadow:0 1px 10px #000}
.topbar strong{display:block;font-size:18px;letter-spacing:.12em}.topbar strong::first-letter{color:var(--accent)}
.topbar small{display:block;margin-top:4px;opacity:.62;letter-spacing:.12em;font-size:10px}.hint{font-size:12px;opacity:.72}
kbd{border:1px solid #ffffff55;border-radius:5px;padding:1px 5px;background:#0007}
.loading{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#101314;transition:opacity .7s ease,visibility .7s ease}.loading.done{opacity:0;visibility:hidden}
.brand{font-weight:900;font-size:34px;letter-spacing:.03em}.brand span{color:var(--accent)}.loadingTitle{margin-top:12px;opacity:.7;font-size:14px}
.progress{width:min(420px,72vw);height:4px;margin-top:20px;border-radius:5px;background:#ffffff1c;overflow:hidden}#progressBar{width:0;height:100%;background:var(--accent);transition:width .15s linear}#progressText{margin-top:8px;font-size:11px;opacity:.55}
.motionBadge{position:fixed;left:22px;bottom:18px;z-index:5;display:flex;gap:7px;pointer-events:none}.motionBadge span{padding:6px 9px;border:1px solid #ffffff1e;border-radius:999px;background:#080b0dc4;backdrop-filter:blur(12px);font-size:9px;letter-spacing:.08em;color:#a8aeb5}.motionBadge span.on{color:var(--accent);border-color:#ffe35c55}
.panelToggle{position:fixed;right:18px;bottom:18px;z-index:12;width:46px;height:46px;border:1px solid #ffffff44;border-radius:50%;background:#111d;color:#fff;backdrop-filter:blur(12px);cursor:pointer;font-weight:900;box-shadow:0 8px 30px #0008}.panelToggle:hover{border-color:var(--accent);color:var(--accent)}
.panel{position:fixed;z-index:11;right:18px;bottom:74px;width:min(410px,calc(100vw - 36px));max-height:calc(100vh - 98px);overflow:auto;padding:15px;border:1px solid #ffffff24;border-radius:18px;background:var(--panel);color:#fff;backdrop-filter:blur(24px);box-shadow:0 18px 60px #000b;transform:translateY(0);opacity:1;transition:.25s ease;scrollbar-width:thin;scrollbar-color:#ffffff33 transparent}.panel.hidden{pointer-events:none;transform:translateY(14px);opacity:0}
.panelHead{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;padding:2px 2px 8px}.panelHead strong{font-size:15px}.panelHead small{display:block;opacity:.5;margin-top:3px;font-size:10px}.panelHead button{border:0;background:transparent;color:#fff;font-size:23px;cursor:pointer}
details{border-top:1px solid var(--line)}details:last-of-type{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;padding:12px 2px;font-size:11px;font-weight:800;letter-spacing:.05em;color:#f2f3f5;user-select:none}summary::-webkit-details-marker{display:none}summary::after{content:'+';float:right;color:#717983;font-size:15px;font-weight:400}details[open]>summary::after{content:'−';color:var(--accent)}
.sectionBody{padding:0 2px 10px}.subTitle{margin:13px 0 5px;padding-top:8px;border-top:1px dashed #ffffff18;color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.panel label{display:block;margin:9px 0;font-size:10px;color:#cbd0d7}.panel label output{float:right;color:var(--accent);font-variant-numeric:tabular-nums}.panel input[type=range]{width:100%;margin-top:6px;accent-color:var(--accent)}
.panel .check{display:flex;align-items:center;gap:8px}.panel .check input{accent-color:var(--accent)}.strongCheck{font-weight:800!important;color:#fff!important}
.colorRow{display:flex!important;align-items:center;justify-content:space-between}.colorRow input[type=color]{width:46px;height:25px;padding:0;border:1px solid #ffffff28;border-radius:6px;background:#000;cursor:pointer}
select,.textInput{width:100%;margin-top:6px;border:1px solid #ffffff22;border-radius:8px;background:#080b0e;color:#e8eaed;padding:7px 8px;font-size:10px;outline:none}select:focus,.textInput:focus{border-color:#ffe35c77}
.inline{display:flex;gap:6px}.inline .textInput{flex:1;min-width:0}.inline button{margin-top:6px;white-space:nowrap;border:1px solid #ffffff25;border-radius:8px;background:#ffffff0d;color:#fff;padding:0 9px;cursor:pointer;font-size:9px}.inline button:hover{border-color:#ffe35c88}
.uploadLabel input{display:block;width:100%;margin-top:7px;font-size:9px;color:#aeb5bf}.miniStatus{min-height:14px;color:var(--accent);font-size:9px;margin-top:5px}
.buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.buttons button{border:1px solid #ffffff25;border-radius:9px;padding:9px 8px;color:#fff;background:#ffffff0c;cursor:pointer;font-size:10px}.buttons button:hover{background:#ffffff18;border-color:#ffe35c88}.buttons .accent{color:#151515;background:var(--accent);border-color:var(--accent);font-weight:800}.buttons .accent:hover{background:#fff0a0}
.status{height:18px;margin-top:8px;font-size:10px;color:var(--accent);opacity:.9}
@media(max-width:700px){.hint{display:none}.topbar{top:14px;left:14px}.panelToggle{right:12px;bottom:12px}.panel{right:12px;bottom:66px;width:calc(100vw - 24px);max-height:calc(100vh - 90px)}.topbar strong{font-size:15px}.motionBadge{left:14px;bottom:14px}}


.cameraQuickBar{position:fixed;right:18px;top:72px;z-index:12;display:flex;gap:6px;padding:6px;border-radius:14px;background:rgba(8,10,12,.48);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12)}
.cameraQuickBar button{min-width:38px;height:34px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#fff;font-weight:800;cursor:pointer}
.cameraQuickBar button:hover,.cameraQuickBar button.active{background:#d2ff00;color:#0b0d0f;border-color:#d2ff00}
.cameraPresetGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.cameraPresetCard{padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.035)}
.cameraPresetCard strong{display:block;margin-bottom:3px}
.cameraPresetCard small{display:block;min-height:28px;opacity:.68;font-size:10px;line-height:1.25}
.cameraPresetCard div{display:flex;gap:5px;margin-top:7px}
.cameraPresetCard button{flex:1;font-size:11px;padding:7px 6px}
@media(max-width:650px){.cameraPresetGrid{grid-template-columns:1fr}.cameraQuickBar{top:64px;right:10px}}

.appToast{position:fixed;left:50%;bottom:26px;z-index:100;max-width:min(680px,calc(100vw - 32px));padding:12px 18px;border-radius:12px;background:#111e;color:#fff;border:1px solid #ffffff30;box-shadow:0 12px 45px #000a;backdrop-filter:blur(16px);font-size:12px;font-weight:700;letter-spacing:.02em;opacity:0;pointer-events:none;transform:translate(-50%,20px);transition:opacity .22s ease,transform .22s ease}.appToast.show{opacity:1;transform:translate(-50%,0)}.appToast.ok{border-color:#d2ff0088;color:#efffc0}.appToast.error{border-color:#ff5d6caa;color:#ffd3d8;background:#2a0c10ee}


/* V4.7 ajustes visuais */
.topbar,.motionBadge{display:none !important;}
.bottomHint{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:8;pointer-events:none;padding:10px 16px;border-radius:999px;background:rgba(8,10,12,.42);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);color:#ffffff;font-size:12px;letter-spacing:.08em;text-align:center;white-space:nowrap;text-shadow:0 1px 10px rgba(0,0,0,.85)}
.panelToggle{top:18px;right:18px;bottom:auto;font-size:22px;line-height:1}
@media(max-width:700px){.bottomHint{left:50%;bottom:12px;max-width:calc(100vw - 24px);font-size:11px;padding:9px 12px;white-space:normal}.panelToggle{top:12px;right:12px}}

/* V4.8: painel apenas via tecla H */
#panelToggle{display:none !important;}

.bottomHint.planeZoomBar{display:flex;align-items:center;justify-content:center;gap:12px;pointer-events:auto;}
.planeZoomBar button{width:44px;height:44px;padding:0;border:1px solid #ffffff66;border-radius:50%;background:#101820e6;color:#fff;font:600 27px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation;}
.planeZoomBar button:hover{background:#ffd60a;color:#111;}
.planeZoomBar button:focus-visible{outline:2px solid #ffd60a;outline-offset:3px;}

/* Eleva os controles em aproximadamente 6% da altura da seção. */
.bottomHint.planeZoomBar{bottom:calc(18px + clamp(40px,6vh,70px));}
@media(max-width:700px){.bottomHint.planeZoomBar{bottom:calc(12px + clamp(32px,6vh,70px));}}
