.admin-body { background:#0b0c0e; min-height:100svh; }
.admin-header { height:4.8rem; padding:0 clamp(1rem,3vw,3rem); display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.admin-header > div { display:flex; gap:1.4rem; }
.admin-header a:not(.logo) { color:var(--muted); font-size:.7rem; }
.admin-header a:hover { color:var(--accent); }
.admin-main,.editor-main { width:min(1380px,calc(100% - 2rem)); margin:0 auto; padding:clamp(2.5rem,6vw,5rem) 0; }
.dashboard-head,.editor-title { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; }
.dashboard-head h1,.editor-title h1 { margin:.6rem 0 .4rem; font-size:clamp(2.8rem,6vw,5.5rem); line-height:1; font-weight:500; letter-spacing:-.055em; }
.dashboard-head p { margin:0; color:var(--muted); font-size:.8rem; }
.admin-kicker { color:var(--accent); font-size:.66rem; }
.admin-primary { display:inline-flex; justify-content:center; align-items:center; gap:1.5rem; padding:.9rem 1.25rem; border:0; border-radius:.7rem; background:var(--accent); color:#151709; font-size:.72rem; font-weight:800; cursor:pointer; }
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:1rem; margin-bottom:2rem; overflow:hidden; }
.stats-row > div { min-height:8rem; padding:1.3rem; display:flex; flex-direction:column; justify-content:space-between; border-left:1px solid var(--line); }
.stats-row > div:last-child { border-left:0; }
.stats-row span { color:var(--muted); font-size:.66rem; }
.stats-row strong { font-size:2.2rem; font-weight:400; }
.admin-list { border:1px solid var(--line); border-radius:1rem; overflow:hidden; }
.list-heading,.admin-device-row { display:grid; grid-template-columns:minmax(17rem,1.4fr) .5fr .4fr .6fr; align-items:center; gap:1rem; padding:0 1.2rem; }
.list-heading { min-height:3.2rem; color:#6e706a; font-size:.58rem; border-bottom:1px solid var(--line); }
.admin-device-row { min-height:7rem; border-bottom:1px solid var(--line); }
.admin-device-row:last-child { border-bottom:0; }
.admin-device-identity { display:flex; align-items:center; gap:1rem; min-width:0; }
.admin-device-identity model-viewer { width:5rem; height:5rem; flex:0 0 auto; border-radius:.65rem; background:#e6e5de; }
.admin-device-identity div { display:flex; flex-direction:column; min-width:0; }
.admin-device-identity small { color:var(--accent); font-size:.57rem; }
.admin-device-identity strong { margin:.2rem 0; font-size:.9rem; }
.admin-device-identity span { color:#686a65; font-size:.57rem; direction:ltr; text-align:right; }
.status-badge { display:inline-flex; padding:.45rem .7rem; border-radius:999px; font-size:.58rem; }
.status-badge.published { color:var(--accent); background:rgba(215,255,63,.08); }
.status-badge.draft { color:#aaa; background:rgba(255,255,255,.06); }
.hotspot-count { color:#a2a39d; font-size:.7rem; }
.row-actions { display:flex; align-items:center; gap:.5rem; }
.row-actions a,.row-actions button { padding:.5rem .65rem; border:1px solid var(--line); border-radius:.5rem; background:transparent; color:#bbbcb5; font-size:.6rem; cursor:pointer; }
.row-actions button { color:#e58c8c; }
.row-actions form { margin:0; }
.form-alert { padding:.85rem 1rem; border-radius:.65rem; font-size:.7rem; margin-bottom:1rem; }
.form-alert.success { color:#d7ff3f; background:rgba(215,255,63,.08); border:1px solid rgba(215,255,63,.18); }
.form-alert.error { color:#ffc0c0; background:rgba(255,100,100,.08); border:1px solid rgba(255,100,100,.18); }

.login-shell { min-height:100svh; display:grid; grid-template-columns:1fr minmax(20rem,33rem); gap:3rem; align-items:center; padding:clamp(1rem,5vw,5rem); background:radial-gradient(circle at 20% 50%,rgba(215,255,63,.06),transparent 35%); }
.login-shell > .logo { align-self:start; }
.login-card { padding:clamp(1.5rem,5vw,4rem); border:1px solid var(--line); border-radius:1.25rem; background:#101214; }
.login-card h1 { margin:1rem 0 .6rem; font-size:3.5rem; line-height:1; font-weight:500; letter-spacing:-.055em; }
.login-card > p { color:var(--muted); font-size:.76rem; line-height:1.9; margin-bottom:2rem; }
.stack-form,.stack-form label { display:flex; flex-direction:column; }
.stack-form { gap:1rem; }
label > span { display:block; color:#979993; font-size:.64rem; margin-bottom:.48rem; }
input,textarea,select { width:100%; border:1px solid var(--line); border-radius:.62rem; background:#0c0e10; color:var(--text); padding:.78rem .85rem; outline:0; transition:border-color .2s; }
input:focus,textarea:focus,select:focus { border-color:rgba(215,255,63,.55); }
textarea { resize:vertical; line-height:1.8; }
.stack-form .admin-primary { margin-top:.5rem; }
.login-hint { display:block; margin-top:1.2rem; color:#60625d; direction:ltr; text-align:center; }

.editor-main { width:min(1500px,calc(100% - 2rem)); padding-top:2.5rem; }
.editor-title { align-items:center; }
.editor-title h1 { font-size:clamp(2.4rem,4vw,4rem); }
.editor-grid { display:grid; grid-template-columns:minmax(22rem,.75fr) minmax(32rem,1.25fr); gap:1rem; align-items:start; }
.form-column { display:grid; gap:1rem; }
.admin-panel { padding:1.3rem; border:1px solid var(--line); border-radius:1rem; background:#101214; }
.panel-title { display:flex; align-items:flex-start; gap:.85rem; padding-bottom:1.25rem; margin-bottom:1.25rem; border-bottom:1px solid var(--line); }
.panel-title > span { display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background:rgba(215,255,63,.08); color:var(--accent); font-size:.58rem; }
.panel-title h2 { margin:0 0 .2rem; font-size:.95rem; }
.panel-title p { margin:0; color:#6f716b; font-size:.59rem; }
.admin-panel > label { display:block; margin-top:.9rem; }
.form-grid { display:grid; gap:.8rem; }
.form-grid.two { grid-template-columns:1fr 1fr; }
input[type="color"] { height:2.85rem; padding:.25rem; cursor:pointer; }
.publish-toggle { display:flex!important; align-items:center; gap:.6rem; width:max-content; cursor:pointer; }
.publish-toggle input { width:1.1rem; height:1.1rem; accent-color:var(--accent); }
.publish-toggle span { margin:0; color:#c4c5bf; }
.spec-editor { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.spec-editor > div { display:grid; grid-template-columns:.8fr 1.2fr; }
.spec-editor input { border-radius:0 .55rem .55rem 0; }
.spec-editor input + input { border-right:0; border-radius:.55rem 0 0 .55rem; }
.file-drop { padding:1.3rem; border:1px dashed rgba(215,255,63,.28); border-radius:.7rem; background:rgba(215,255,63,.025); cursor:pointer; }
.file-drop span,.file-drop small { display:block; }
.file-drop span { color:#dfe0d9; }
.file-drop small { color:#6c6e68; font-size:.56rem; }
.file-drop input { margin-top:.8rem; padding:.5rem; background:transparent; }
.current-file { color:#777973; font-size:.6rem; direction:ltr; text-align:left; overflow-wrap:anywhere; }
.hotspot-editor-panel { position:sticky; top:1rem; }
.hotspot-editor-stage { height:min(59svh,40rem); min-height:26rem; position:relative; border-radius:.8rem; overflow:hidden; background:#e6e5de; }
.hotspot-editor-stage::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px); background-size:4rem 4rem; }
#admin-viewer { position:absolute; inset:0; width:100%; height:100%; direction:ltr; --poster-color:transparent; }
.empty-model-message { position:absolute; inset:0; display:grid; place-items:center; color:#777; font-size:.7rem; pointer-events:none; }
#admin-viewer[src] + .empty-model-message { display:none; }
.add-hotspot-button { position:absolute; right:1rem; bottom:1rem; padding:.8rem 1rem; border:0; border-radius:999px; background:#111; color:white; font-size:.64rem; cursor:pointer; }
.add-hotspot-button.is-active { background:var(--accent); color:#111; box-shadow:0 0 0 .45rem rgba(215,255,63,.2); }
.admin-hotspot { position:relative; width:2rem; height:2rem; padding:0; border:0; border-radius:50%; background:var(--accent); color:#111; box-shadow:0 0 0 .35rem rgba(215,255,63,.2); font-size:.55rem; font-weight:800; cursor:pointer; }
.admin-hotspot.is-selected { transform:scale(1.2); }
.hotspot-workspace { display:grid; grid-template-columns:.8fr 1.2fr; gap:1rem; padding-top:1rem; min-height:15rem; }
.subhead { display:flex; justify-content:space-between; align-items:center; margin-bottom:.7rem; color:#b9bab4; font-size:.65rem; }
.subhead span { color:var(--accent); }
.editor-hotspot-list { display:grid; gap:.45rem; max-height:13rem; overflow:auto; }
.editor-hotspot-item { display:flex; align-items:center; gap:.6rem; padding:.65rem; border:1px solid var(--line); border-radius:.55rem; background:transparent; text-align:right; cursor:pointer; }
.editor-hotspot-item.is-selected { border-color:rgba(215,255,63,.45); background:rgba(215,255,63,.04); }
.editor-hotspot-item b { display:grid; place-items:center; width:1.6rem; aspect-ratio:1; border-radius:50%; background:var(--accent); color:#111; font-size:.5rem; }
.editor-hotspot-item span { color:#bbbcb6; font-size:.62rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hotspot-fields { border-right:1px solid var(--line); padding-right:1rem; }
.hotspot-fields.is-empty .field-controls { display:none; }
.hotspot-fields:not(.is-empty) .field-placeholder { display:none; }
.field-placeholder { color:#656761; font-size:.64rem; }
.field-controls { display:grid; gap:.7rem; }
.danger-button { justify-self:start; padding:.55rem .75rem; border:1px solid rgba(255,100,100,.22); border-radius:.5rem; background:rgba(255,100,100,.06); color:#e59494; font-size:.58rem; cursor:pointer; }
.mobile-save { display:none; }

@media(max-width:1050px){
  .editor-grid { grid-template-columns:1fr; }
  .hotspot-editor-panel { position:static; }
}
@media(max-width:720px){
  .admin-header { height:4.4rem; }
  .admin-header .logo span:last-child { display:none; }
  .admin-main,.editor-main { width:calc(100% - 1.2rem); padding-top:2rem; }
  .dashboard-head,.editor-title { align-items:flex-start; }
  .dashboard-head p { max-width:15rem; }
  .stats-row > div { min-height:6rem; padding:.8rem; }
  .stats-row strong { font-size:1.5rem; }
  .list-heading { display:none; }
  .admin-device-row { grid-template-columns:1fr auto; gap:.8rem; padding:1rem; }
  .admin-device-row > div:nth-child(2),.hotspot-count { display:none; }
  .row-actions { justify-content:flex-end; }
  .login-shell { display:flex; flex-direction:column; align-items:stretch; justify-content:center; padding:1rem; }
  .login-shell > .logo { position:absolute; top:1rem; right:1rem; }
  .login-card h1 { font-size:2.8rem; }
  .editor-title .save-top { display:none; }
  .form-grid.two,.spec-editor { grid-template-columns:1fr; }
  .admin-panel { padding:1rem; }
  .hotspot-editor-stage { height:55svh; min-height:25rem; }
  .hotspot-workspace { grid-template-columns:1fr; }
  .hotspot-fields { border-right:0; border-top:1px solid var(--line); padding:1rem 0 0; }
  .mobile-save { display:block; position:sticky; bottom:0; padding:.7rem 0; z-index:10; }
  .mobile-save .admin-primary { width:100%; }
}
