/* Spread Goblin — dislocation desk terminal */
:root{
  --bg:#0a0b0d; --surface:#101216; --surface2:#161a1f; --border:#222831;
  --green:#8FFF3C; --green-dim:#5fa829; --amber:#FFB020; --red:#FF5C5C;
  --text:#E8EAED; --muted:#8A919C; --muted2:#5c636e;
}
*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--text);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
body{padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:24px 20px calc(40px + env(safe-area-inset-bottom))}

/* topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:12px}
.logo{display:block;filter:drop-shadow(0 0 6px rgba(143,255,60,.25))}
h1{font-family:'Space Mono',monospace;font-size:22px;font-weight:700;letter-spacing:.5px;margin:0;line-height:1}
.sub{margin:3px 0 0;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{font-size:10px;letter-spacing:.5px;padding:4px 8px;border-radius:3px;border:1px solid var(--border);background:var(--surface);text-transform:uppercase;white-space:nowrap}
.badge.live{color:var(--green);border-color:#2a3a1c;background:#0f1607}
.badge.warn{color:var(--amber);border-color:#3a2f0c;background:#181404}
.badge.off{color:var(--muted);border-color:var(--border);background:var(--surface)}

/* stats */
.stats{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.stat{flex:1 1 120px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px 14px;min-width:120px}
.stat .n{font-family:'Space Mono',monospace;font-size:24px;font-weight:700;color:var(--text)}
.stat .n.amber{color:var(--amber)}
.stat .n.green{color:var(--green)}
.stat .l{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}

/* panels */
.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 18px;margin-bottom:18px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.panel-head h2{font-family:'Space Mono',monospace;font-size:13px;letter-spacing:1px;margin:0;text-transform:uppercase;color:var(--text)}
.hint{font-size:11px;color:var(--muted)}
.tag{font-size:9px;padding:2px 6px;border-radius:3px;background:rgba(143,255,60,.12);color:var(--green);border:1px solid #2a3a1c;margin-left:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.5px}

/* freshness badge */
.fresh{font-size:11px;color:var(--muted);font-family:'JetBrains Mono',monospace}
.fresh.stale{color:var(--red);animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* controls */
.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.search{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:12px;padding:7px 10px;width:160px;outline:none}
.search:focus{border-color:var(--green-dim)}
.toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);cursor:pointer;white-space:nowrap}
.toggle input{accent-color:var(--green)}

/* table */
.table-wrap{overflow-x:auto}
table.data{width:100%;border-collapse:collapse;font-size:12px;min-width:720px}
table.data th{text-align:left;color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
table.data th.sortable{cursor:pointer;user-select:none}
table.data th.sortable:hover{color:var(--text)}
table.data th.sortable::after{content:' ⇅';opacity:.4;font-size:9px}
table.data th.sortable.asc::after{content:' ▲';color:var(--green);opacity:1}
table.data th.sortable.desc::after{content:' ▼';color:var(--green);opacity:1}
table.data td{padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
table.data tbody tr:hover{background:var(--surface2)}
.sym{font-weight:700;color:var(--text)}
.dev{font-weight:700}
.mono{font-family:'JetBrains Mono',monospace}
.muted{color:var(--muted)}
.row-alert{background:rgba(255,176,32,.06)!important}
.row-alert .sym{color:var(--amber)}
.pill{font-size:10px;padding:2px 6px;border-radius:3px;background:var(--surface2);color:var(--muted);border:1px solid var(--border)}
.spark-cell{width:70px}
.spark{display:block;vertical-align:middle}

/* movers */
.movers{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.mover{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:9px 11px;display:flex;flex-direction:column;gap:2px}
.mover .m-sym{font-weight:700;color:var(--text);font-size:13px}
.mover .m-delta{font-family:'Space Mono',monospace;font-weight:700;font-size:13px}
.mover .muted{font-size:10px}

/* alerts */
.alert-list{display:flex;flex-direction:column;gap:8px}
.alert-item{background:rgba(255,176,32,.06);border:1px solid #3a2f0c;border-radius:6px;padding:10px 12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.alert-item .a-sym{font-weight:700;color:var(--amber)}
.alert-item .a-dev{font-family:'Space Mono',monospace;color:var(--amber);font-weight:700}
.empty{color:var(--muted);font-size:12px;margin:6px 0;font-style:italic}

/* two col */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 10px;font-size:12px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;color:var(--text)}
.note{font-size:11px;color:var(--muted);margin:0;line-height:1.6}
.steps{margin:0;padding-left:0;list-style:none;counter-reset:s}
.steps li{font-size:12px;padding:7px 0;border-bottom:1px solid var(--border);color:var(--muted)}
.steps li:last-child{border-bottom:none}
.steps li b{color:var(--text);font-family:'Space Mono',monospace;font-size:11px}
.steps li.dim{color:var(--muted2)}
.steps li.dim i{color:var(--amber)}

/* footer */
.foot{margin-top:30px;padding-top:18px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);line-height:1.8}
.foot p{margin:0 0 4px}
.foot a{word-break:break-word}
.disc{color:var(--muted2);margin-top:6px}

@media(max-width:720px){
  .wrap{padding:18px 14px calc(32px + env(safe-area-inset-bottom))}
  .two-col{grid-template-columns:1fr}
  .badges{width:100%;justify-content:flex-start}
  h1{font-size:18px}
  .search{width:100%}
  .controls{gap:8px}
  table.data{min-width:640px}
}
