:root{
  --bg1:#0b1220;
  --bg2:#0f2a33;
  --card: rgba(255,255,255,0.06);
  --stroke: rgba(255,255,255,0.12);
  --text: rgba(255,255,255,0.92);
  --muted: rgba(255,255,255,0.70);
  --accent:#00eaff;
  --accent2:#00ff88;
  --shadow: 0 18px 55px rgba(0,0,0,0.35);
  --radius:18px;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(0,234,255,0.14), transparent 55%),
    radial-gradient(900px 600px at 80% 30%, rgba(0,255,136,0.10), transparent 55%),
    linear-gradient(180deg, var(--bg1), var(--bg2));
  min-height:100vh;
}
.wrap{max-width:1200px;margin:0 auto;padding:24px 16px 40px}
.top{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.brand h1{margin:0;font-size:20px;letter-spacing:0.2px}
.brand p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.14);background: rgba(255,255,255,0.06);color:var(--muted);font-size:12px}
.dot{width:8px;height:8px;border-radius:50%;background: var(--accent);box-shadow:0 0 18px rgba(0,234,255,0.6)}
.grid{display:grid;grid-template-columns: 360px 1fr;gap:14px}
@media (max-width: 980px){.grid{grid-template-columns: 1fr;}}
.card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.panel{padding:14px}
.panel h2{margin:0 0 8px;font-size:14px;letter-spacing:0.2px}
label{display:block;margin:10px 0 6px;color:var(--muted);font-size:13px}
input, select{width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,0.14);background: rgba(255,255,255,0.06);color:var(--text);outline:none}
input:focus, select:focus{border-color: rgba(0,234,255,0.45)}
.row{display:flex;gap:10px;flex-wrap:wrap}
.col{flex:1 1 140px}
.buttons{margin-top:10px}
.btn{cursor:pointer;border-radius:12px;padding:10px 12px;font-weight:700;color:var(--text);border:1px solid rgba(255,255,255,0.16);background: linear-gradient(180deg, rgba(0,234,255,0.18), rgba(0,255,136,0.10));user-select:none}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}
.btn.secondary{background: rgba(255,255,255,0.06)}
.hint{color:var(--muted);font-size:12px;line-height:1.45;margin:8px 0 0}
.divider{height:1px;background:var(--stroke);margin:14px 0}
.viewer{padding:0}
.viewerTop{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--stroke);background: rgba(0,0,0,0.12)}
.viewerBottom{padding:12px 14px;border-top:1px solid var(--stroke);background: rgba(0,0,0,0.10);color:var(--muted);font-size:12px}
.chip{font-size:12px;color:var(--muted);border:1px solid rgba(255,255,255,0.14);background: rgba(255,255,255,0.06);padding:6px 10px;border-radius:999px}
.applet{width:100%;height:700px;overflow:hidden;border-radius:var(--radius)}
.muted{color:var(--muted)}
