*{margin:0;padding:0;box-sizing:border-box;}
html,body{width:100%;height:100%;}
body{font-family:Arial,sans-serif;overflow:hidden;background:#000;}
#cesiumContainer{width:100vw;height:100vh;}
#setup{position:fixed;inset:0;z-index:300;background:linear-gradient(135deg,#0f172a,#1e3a5f);
  display:flex;align-items:center;justify-content:center;}
.card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);
  border-radius:16px;padding:34px 42px;width:min(420px,calc(100vw - 32px));color:#fff;}
.card h2{font-size:18px;color:#90caf9;margin-bottom:6px;}
.sub{font-size:11px;color:#94a3b8;margin-bottom:24px;line-height:1.7;}
.field label{display:block;font-size:10px;color:#94a3b8;margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.6px;}
.field input{width:100%;padding:11px 14px;border-radius:8px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);
  color:#fff;font-size:14px;outline:none;}
.field input:focus{border-color:#60a5fa;}
.field input::placeholder{color:#475569;}
.btn-main{width:100%;padding:13px;background:#2563eb;border:none;
  border-radius:8px;color:#fff;font-size:14px;font-weight:bold;cursor:pointer;margin-top:14px;}
.btn-main:hover{background:#1d4ed8;}
#err{color:#f87171;font-size:11px;margin-top:8px;min-height:16px;}
#loading{position:fixed;inset:0;z-index:200;background:rgba(8,14,28,.95);
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.15);
  border-top-color:#60a5fa;border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
#lmsg{font-size:12px;color:#94a3b8;}
#ui{position:fixed;top:12px;left:12px;z-index:100;display:none;
  flex-direction:column;gap:7px;pointer-events:none;}
.uc{background:rgba(8,14,28,.9);border:1px solid rgba(255,255,255,.15);
  border-radius:9px;padding:11px 14px;color:#e2e8f0;font-size:11px;
  pointer-events:all;min-width:260px;}
.ut{font-size:11px;font-weight:bold;color:#90caf9;margin-bottom:8px;}
.sr-axis,.sr-rot{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:10px;color:#94a3b8;}
.sr-axis label,.sr-rot label{width:62px;flex-shrink:0;}
.sr-axis input[type=range],.sr-rot input[type=range]{flex:1;cursor:pointer;accent-color:#60a5fa;min-width:0;}
.num-input{width:66px;flex-shrink:0;padding:3px 5px;border-radius:4px;
  border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.09);
  color:#e2e8f0;font-size:11px;font-weight:bold;text-align:right;outline:none;}
.num-input:focus{border-color:#60a5fa;}
.btn-sm{width:100%;margin-top:8px;padding:7px;background:rgba(37,99,235,.7);
  border:none;border-radius:5px;color:#fff;font-size:11px;cursor:pointer;}
.tbtn{display:block;width:100%;text-align:left;margin-bottom:4px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  border-radius:5px;color:#e2e8f0;font-size:11px;padding:5px 9px;cursor:pointer;}
.tbtn:last-child{margin-bottom:0;}
.tbtn.off{opacity:.35;background:rgba(0,0,0,.2);}
#hint{position:fixed;bottom:10px;left:50%;transform:translateX(-50%);
  background:rgba(0,0,0,.6);color:#ccc;font-size:10px;padding:4px 16px;
  border-radius:12px;z-index:100;}
#dbg{position:fixed;top:12px;right:12px;z-index:100;background:rgba(0,0,0,.8);
  border:1px solid #333;border-radius:8px;padding:10px 14px;
  color:#94a3b8;font-size:10px;display:none;line-height:1.8;max-width:240px;}
