:root{
  --bg:#070a0f; --panel:#0f1520; --panel2:#141d2b; --line:rgba(255,255,255,.09);
  --text:#eef3f8; --muted:#93a2b5; --red:#e63636; --green:#34d399; --yellow:#f59e0b;
  --blue:#60a5fa; --radius:18px; --shadow:0 18px 60px rgba(0,0,0,.35);
  --font:Inter,Segoe UI,Arial,sans-serif;
}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at top left,#132239 0,#070a0f 34%,#05070b 100%);font-family:var(--font);color:var(--text)}
a{color:inherit;text-decoration:none}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:rgba(10,15,24,.92);border-right:1px solid var(--line);padding:22px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:30px}.brand-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#e63636,#7c1d1d);display:grid;place-items:center;font-weight:900}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:12px 14px;border-radius:12px;color:#c8d3e1}.sidebar nav a:hover{background:rgba(255,255,255,.06);color:#fff}.content{flex:1;padding:28px;max-width:1400px}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.top h1{margin:0;font-size:28px}.top p{margin:8px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:linear-gradient(180deg,rgba(20,29,43,.96),rgba(11,16,25,.96));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.metric .label{color:var(--muted);font-size:13px}.metric .value{font-size:30px;font-weight:800;margin-top:8px}.status-on{color:var(--green)}.status-off{color:var(--red)}.btn{border:0;border-radius:12px;padding:11px 14px;background:#22324b;color:#fff;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;gap:8px}.btn:hover{filter:brightness(1.12)}.btn.red{background:#842626}.btn.green{background:#166534}.btn.blue{background:#1d4ed8}.field{display:grid;gap:7px;margin-bottom:12px}.field label{color:#c8d3e1;font-size:13px}.input,textarea,select{width:100%;border:1px solid var(--line);background:#0a0f18;color:#fff;border-radius:12px;padding:12px;outline:none}textarea{min-height:105px;resize:vertical}.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;min-width:720px;background:rgba(8,12,19,.55)}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:#aebbd0;font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:rgba(255,255,255,.03)}td{color:#dbe5f2}.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.badge.pending{background:rgba(245,158,11,.15);color:var(--yellow)}.badge.running{background:rgba(96,165,250,.15);color:var(--blue)}.badge.done{background:rgba(52,211,153,.15);color:var(--green)}.badge.error{background:rgba(230,54,54,.15);color:var(--red)}.notice{padding:12px 14px;border-radius:14px;margin-bottom:16px;border:1px solid var(--line);background:rgba(255,255,255,.04)}.login-page{display:grid;place-items:center;min-height:100vh;padding:20px}.login-card{width:100%;max-width:420px}.actions{display:flex;gap:10px;flex-wrap:wrap}.mono{font-family:Consolas,monospace;font-size:12px;white-space:pre-wrap;max-width:520px}.small{font-size:12px;color:var(--muted)}
@media(max-width:900px){.layout{display:block}.sidebar{width:auto;height:auto;position:relative}.sidebar nav{grid-template-columns:repeat(3,1fr)}.content{padding:18px}.grid.cols-4,.grid.cols-2{grid-template-columns:1fr}.top{display:block}}

/* Command autocomplete */
.command-field{position:relative}
.suggestions{position:absolute;left:0;right:0;top:100%;z-index:50;background:#111827;border:1px solid rgba(255,255,255,.12);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.45);overflow:hidden;margin-top:6px}
.suggestion-item{display:block;width:100%;border:0;background:transparent;color:#e5e7eb;text-align:left;padding:12px 14px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.06)}
.suggestion-item:hover{background:rgba(59,130,246,.16)}
.suggestion-item strong{display:block;font-size:13px;color:#fff;margin-bottom:4px}.suggestion-item span{display:block;font-size:12px;color:#9ca3af}.help{font-size:12px;color:#9ca3af;margin-top:8px}.response-cell{max-width:520px;white-space:pre-wrap}

/* Online players */
.player-grid{display:grid;grid-template-columns:1fr;gap:14px}.player-card{background:#0f172a;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:0;overflow:hidden}.player-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:16px 18px;list-style:none}.player-card summary::-webkit-details-marker{display:none}.player-card summary strong{display:block;color:#fff;font-size:16px}.player-card summary span{display:block;color:#9ca3af;font-size:12px;margin-top:4px}.player-card summary em{font-style:normal;color:#22c55e;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3);padding:5px 9px;border-radius:999px;font-size:12px}.player-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 16px;color:#cbd5e1}.action-panels{padding:0 18px 18px}.mini-form{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.mini-form h3{margin:0 0 4px;font-size:14px}.mini-form input,.mini-form select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#0b1220;color:#fff}.inline-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.danger-zone{border-color:rgba(239,68,68,.22)}.notice.error{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35);color:#fecaca}

/* Map */
.map-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px}.map-panel{height:max-content}.map-panel label{display:block;margin:10px 0;color:#cbd5e1}.map-card{min-height:680px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#9ca3af}.scum-map{position:relative;height:620px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at center,rgba(59,130,246,.13),transparent 45%),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),#07111f;background-size:auto,40px 40px,40px 40px;border:1px solid rgba(255,255,255,.12)}.scum-map:before,.scum-map:after{content:"";position:absolute;background:rgba(255,255,255,.13);z-index:1}.scum-map:before{left:50%;top:0;bottom:0;width:1px}.scum-map:after{top:50%;left:0;right:0;height:1px}.map-grid-label{position:absolute;color:#64748b;font-size:11px;z-index:2;background:rgba(0,0,0,.25);padding:5px 7px;border-radius:8px}.top-left{top:10px;left:10px}.top-right{top:10px;right:10px}.bottom-left{bottom:10px;left:10px}.bottom-right{bottom:10px;right:10px}.map-marker{position:absolute;transform:translate(-50%,-50%);z-index:5;border:0;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap}.map-marker span{width:13px;height:13px;border-radius:50%;background:#38bdf8;border:2px solid #fff;box-shadow:0 0 0 4px rgba(56,189,248,.18)}.map-marker strong{font-size:11px;background:rgba(0,0,0,.55);padding:4px 6px;border-radius:7px}.map-marker.players span{background:#22c55e}.map-marker.drop span{background:#f59e0b}.map-marker.vehicle span{background:#60a5fa}.map-marker.flag span{background:#a78bfa}.map-marker.event span{background:#ef4444}.map-marker.custom span{background:#f472b6}
@media(max-width:900px){.map-layout{grid-template-columns:1fr}.player-info{grid-template-columns:1fr}.inline-inputs{grid-template-columns:1fr}.map-card{min-height:480px}.scum-map{height:460px}}

.map-layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}

.map-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.map-panel {
  min-height: calc(100vh - 170px);
  background: var(--panel, #111827);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
}

.map-toolbar {
  min-height: 58px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  background: rgba(0,0,0,.18);
}

.map-toolbar span {
  margin-left: 10px;
  color: var(--muted, #9ca3af);
  font-size: 13px;
}

.map-toolbar-actions {
  display: flex;
  gap: 8px;
}

#scumMap {
  width: 100%;
  height: 720px;
  min-height: 720px;
  background: #05070b;
  position: relative;
  z-index: 1;
}

.leaflet-container {
  background: #05070b;
}

.layer-check {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  color: var(--text, #f8fafc);
  cursor: pointer;
}

.layer-check input {
  width: 18px;
  height: 18px;
  accent-color: #ef4444;
}

.map-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.map-form label {
  font-size: 13px;
  color: var(--muted, #9ca3af);
}

.map-form input,
.map-form select,
.map-form textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.22);
  color: var(--text, #f8fafc);
  border-radius: 10px;
  padding: 10px 12px;
  outline: none;
}

.map-form input:focus,
.map-form select:focus,
.map-form textarea:focus {
  border-color: rgba(239,68,68,.65);
  box-shadow: 0 0 0 3px rgba(239,68,68,.12);
}

.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.form-result {
  margin-top: 10px;
  color: var(--muted, #9ca3af);
  font-size: 13px;
}

.form-result.success {
  color: #22c55e;
}

.form-result.error {
  color: #ef4444;
}

.map-marker {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 18px;
  background: rgba(15, 23, 42, .88);
  border: 2px solid rgba(255,255,255,.85);
  box-shadow: 0 8px 24px rgba(0,0,0,.45);
}

.map-marker-player {
  background: rgba(34,197,94,.92);
}

.map-marker-drop {
  background: rgba(234,179,8,.92);
}

.map-marker-vehicle {
  background: rgba(59,130,246,.92);
}

.map-marker-flag {
  background: rgba(239,68,68,.92);
}

.map-marker-event {
  background: rgba(249,115,22,.92);
}

.map-marker-custom {
  background: rgba(168,85,247,.92);
}

.map-popup {
  min-width: 210px;
}

.map-popup h3 {
  margin: 0 0 8px;
  font-size: 16px;
}

.map-popup p {
  margin: 4px 0;
  font-size: 13px;
}

@media (max-width: 980px) {
  .map-layout {
    grid-template-columns: 1fr;
  }

  #scumMap {
    height: 70vh;
    min-height: 520px;
  }
}