[hidden]{display:none !important}
:root{--bg:#0a1215;--panel:#101a1eee;--line:#34515a;--text:#dce8e9;--muted:#8da6aa;--cyan:#8eeef5;--blue:#3a95ba;--danger:#d75b5b;--warn:#ca9a44}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 70% -30%,#17343b,transparent 38%),#081013;color:var(--text);font:15px Inter,Segoe UI,Arial,sans-serif;min-height:100vh}body:before{content:"";position:fixed;inset:0;opacity:.18;pointer-events:none;background:linear-gradient(120deg,transparent 20%,#365260 20% 30%,transparent 30% 52%,#233941 52% 59%,transparent 59%)}button,input,textarea{font:inherit}button{color:var(--text);background:#15262c;border:1px solid #416370;border-radius:5px;padding:10px 12px;cursor:pointer}button:hover{filter:brightness(1.2)}button.danger{border-color:#a64545;background:#35191b}button.warn{border-color:#a77d35;background:#342b18}.ghost{background:transparent}.login{display:grid;place-items:center;min-height:100vh}.login section{position:relative;width:min(420px,92vw);background:var(--panel);border:1px solid var(--line);padding:34px;border-radius:10px;box-shadow:0 20px 60px #0009}.eyebrow{color:var(--cyan);font-size:11px;letter-spacing:.13em;margin:0 0 6px}.login h1,h1,h2,h3{margin:.2rem 0}.login form{display:grid;gap:14px;margin-top:25px}label{display:grid;gap:6px;color:var(--muted);font-size:13px}input,textarea{width:100%;padding:10px;background:#091215;border:1px solid #35505b;color:var(--text);border-radius:4px}textarea{min-height:72px;resize:vertical}.error{color:#ff9999;margin:0}#app{position:relative;max-width:1540px;margin:auto;padding:26px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.header-actions{display:flex;align-items:center;gap:10px}.badge{font-size:12px;border:1px solid #516d75;padding:5px 8px;border-radius:999px;color:var(--muted)}.live{color:#8df1b2;border-color:#43785b}.bad{color:#ffb0a9;border-color:#8d4b46}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.metrics article{padding:14px;background:#101a1ee0;border:1px solid var(--line);border-radius:5px}.metrics span{display:block;color:var(--muted);font-size:12px}.metrics strong{font-size:19px;color:var(--cyan)}.layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.8fr) minmax(230px,.8fr);gap:12px}.panel{background:var(--panel);border:1px solid var(--line);min-height:610px}.panel-head{border-bottom:1px solid var(--line);padding:13px 14px;display:flex;gap:10px;align-items:center;justify-content:space-between}.panel-head h2{font-size:15px}.panel-head small{font-weight:400;color:var(--muted)}.player-list{padding:6px}.player{border:0;width:100%;background:transparent;text-align:left;display:flex;gap:10px;align-items:center}.player.selected{background:#1c4150}.player small{display:block;color:var(--muted);font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.dot{width:8px;height:8px;border-radius:50%;background:#73d59b;flex:0 0 auto}.details{padding-bottom:14px}.details>.empty,.details>div:not(.panel-head):not(.broadcast){padding:20px}.empty{color:var(--muted);line-height:1.55}.identity{display:flex;gap:14px;align-items:center;border-bottom:1px solid #27414a}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#1e5965;color:var(--cyan);font-weight:bold;font-size:20px}.identity p{color:var(--muted);margin:4px 0}.details dl{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}.details dl div{padding:12px;border-bottom:1px solid #254049}.details dt{font-size:11px;text-transform:uppercase;color:var(--muted)}.details dd{margin:4px 0 0;overflow-wrap:anywhere}.player-actions{display:flex;gap:10px;padding:0 20px}.broadcast{margin:18px 20px 0;padding-top:18px;border-top:1px solid #29444c}.broadcast button{margin-top:8px}.actions{padding-bottom:10px}.actions>button{display:block;width:calc(100% - 26px);margin:10px 13px;text-align:left}.actions hr{border:0;border-top:1px solid var(--line);margin:18px 13px}.actions h3{font-size:13px;padding:0 13px}.audit{padding:0 13px}.audit article{border-bottom:1px solid #274149;padding:9px 0;display:grid;gap:2px}.audit strong{text-transform:capitalize;color:var(--cyan)}.audit span{font-size:12px}.audit small{font-size:10px;color:var(--muted)}dialog{color:var(--text);background:#112025;border:1px solid #557681;border-radius:8px;width:min(470px,92vw);box-shadow:0 20px 80px #000c}dialog::backdrop{background:#000a}dialog form{display:grid;gap:15px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:950px){.layout{grid-template-columns:1fr}.panel{min-height:auto}.metrics{grid-template-columns:1fr 1fr}header{align-items:flex-start;flex-direction:column}}@media(max-width:540px){#app{padding:14px}.metrics{grid-template-columns:1fr 1fr}.header-actions{flex-wrap:wrap}.details dl{grid-template-columns:1fr}}

/* --- tabs, map, give-item, teleport (2026-08-13) --- */
.tabs{display:flex;gap:4px;margin:14px 0 4px;border-bottom:1px solid var(--line)}
.tab{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--muted);padding:8px 16px}
.tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}
.me-select{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}
.me-select select{background:#091215;border:1px solid #35505b;color:var(--text);border-radius:4px;padding:5px 6px}
#tab-map{margin-top:12px}
.map-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:8px;color:var(--muted);font-size:13px}
.map-toolbar label{display:flex;align-items:center;gap:6px;flex-direction:row}
#map{width:100%;height:calc(100vh - 220px);min-height:480px;background:#05252b;border:1px solid var(--line);border-radius:8px}
.leaflet-container{background:#05252b}
.player-actions{flex-wrap:wrap}
button.disabled,button:disabled{opacity:.4;cursor:not-allowed}
.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;max-height:300px;overflow-y:auto;margin:12px 0;padding:2px}
.item-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:#0d1a1e;border:1px solid #274149;min-height:78px}
.item-cell.sel{border-color:var(--cyan);background:#123039}
.item-cell img{width:40px;height:40px;object-fit:contain}
.item-cell .noicon{width:40px;height:40px;display:grid;place-items:center;color:var(--muted);font-size:20px;border:1px dashed #35505b;border-radius:4px}
.item-cell small{font-size:10px;text-align:center;line-height:1.15;color:var(--muted);overflow:hidden;max-height:26px}
.gi-chosen{display:flex;align-items:center;gap:12px;margin:10px 0;padding:10px;background:#0d1a1e;border:1px solid #274149;border-radius:6px}
.gi-chosen img{width:36px;height:36px;object-fit:contain}
.gi-chosen label{margin-left:auto;flex-direction:row;align-items:center;gap:8px}
.gi-chosen input{width:90px}
#gi-search,#give-item input,#give-exp input{width:100%;padding:9px;background:#091215;border:1px solid #35505b;color:var(--text);border-radius:4px}
dialog#give-item,dialog#give-exp{width:min(560px,94vw)}
.map-popup h3{margin:0 0 2px;color:var(--cyan);font-size:15px}
.map-popup small{color:var(--muted)}
.map-popup .muted{color:var(--muted);font-size:11px}
.map-popup .player-actions{margin-top:8px;gap:5px}
.map-popup .player-actions button{padding:6px 8px;font-size:12px}
.leaflet-popup-content-wrapper{background:#112025;color:var(--text);border:1px solid #557681}
.leaflet-popup-tip{background:#112025}
.leaflet-popup-content{margin:12px 14px;min-width:200px}
