:root { --bg:#090b0c; --panel:#111517; --line:#293034; --muted:#8d999f; --text:#f2f5f2; --accent:#d5ff3f; --danger:#ff6262; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:radial-gradient(circle at 75% -15%,#26311e 0,transparent 35%),var(--bg); color:var(--text); font:14px/1.5 Inter,Segoe UI,sans-serif; }
.noise { position:fixed; inset:0; pointer-events:none; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.topbar { height:72px; padding:0 max(24px,calc((100vw - 1320px)/2)); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; background:#0a0d0ecc; backdrop-filter:blur(18px); position:sticky; top:0; z-index:5; }
.brand { display:flex; align-items:center; gap:13px; letter-spacing:.12em; }
.brand-logo { width:70px; height:46px; display:block; object-fit:contain; }
.brand span { display:flex; flex-direction:column; }.brand strong{font-size:17px}.brand small{font-size:9px;color:var(--muted)}
.api-state { padding:8px 12px; border:1px solid var(--line); display:flex; align-items:center; gap:8px; font-size:10px; letter-spacing:.1em; }.api-state b{width:7px;height:7px;border-radius:50%;background:var(--danger)}.api-state.online b{background:var(--accent);box-shadow:0 0 12px var(--accent)}
main { max-width:1320px; margin:0 auto; padding:42px 24px 72px; }
.panel { background:linear-gradient(145deg,#13181a,#0e1213); border:1px solid var(--line); box-shadow:0 22px 60px #0005; }
.login { max-width:560px; margin:10vh auto; padding:48px; }.login h1,.heading h1{font-size:36px;margin:4px 0 8px}.login p{color:var(--muted)}
.eyebrow { color:var(--accent)!important; font-size:10px; letter-spacing:.2em; margin:0; font-weight:700; }
label { display:flex; flex-direction:column; gap:7px; color:var(--muted); font-size:11px; letter-spacing:.08em; }
input,textarea,select { width:100%; color:var(--text); background:#080a0b; border:1px solid #343d41; padding:13px; font:13px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; outline:none; resize:vertical; }input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #d5ff3f18}
button { border:0; padding:13px 18px; color:#080a0b; background:var(--accent); font-weight:800; letter-spacing:.08em; cursor:pointer; }button:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:wait}.ghost{color:var(--text);background:transparent;border:1px solid var(--line)}
.login form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:25px}
.heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:25px; }
.dashboard-tabs { display:flex; gap:8px; margin:-8px 0 18px; border-bottom:1px solid var(--line); }
.dashboard-tabs button { color:var(--muted); background:transparent; border-bottom:2px solid transparent; padding:14px 18px; }
.dashboard-tabs button.active { color:var(--accent); border-bottom-color:var(--accent); }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:14px; }.metric{padding:22px;display:flex;flex-direction:column}.metric span{font-size:10px;color:var(--muted);letter-spacing:.14em}.metric strong{font-size:20px;margin-top:8px}.metric small{color:var(--muted);margin-top:2px}.metric strong.online{color:var(--accent)}.metric strong.offline{color:var(--danger)}
.grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.editor-card{padding:24px}.card-head{display:flex;align-items:center;justify-content:space-between}.card-head h2,.release-card h2{margin:4px 0 0}.help{color:var(--muted);font-size:12px}.editor-card textarea{height:440px;margin-top:10px}
.release-card { margin-top:14px; padding:25px; }.release-card>div:first-child{max-width:760px}.release-card form{display:grid;grid-template-columns:170px 1fr 1.4fr auto;gap:12px;align-items:end;margin-top:20px}.notes{grid-column:3}.check{align-self:center;flex-direction:row;align-items:center;white-space:nowrap}.check input{width:auto;accent-color:var(--accent)}
.progress{height:4px;background:#252d30;margin-top:20px;position:relative}.progress i{position:absolute;inset:0;background:var(--accent);animation:load 1.2s ease-in-out infinite}.progress span{position:absolute;right:0;top:8px;color:var(--muted);font-size:9px;letter-spacing:.15em}@keyframes load{0%{right:100%}50%{right:15%;left:15%}100%{left:100%}}
.catalog-card { padding:25px; }
.catalog-head { gap:24px; }
.catalog-head>strong { color:var(--accent); font:700 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.12em; white-space:nowrap; }
.catalog-toolbar { display:flex; align-items:end; gap:10px; margin:22px 0 14px; }
.catalog-toolbar label { flex:1; }
.catalog-toolbar label span { font-size:9px; letter-spacing:.16em; }
.catalog-toolbar input { resize:none; }
.catalog-list { display:grid; gap:8px; min-height:80px; transition:opacity .2s; }
.catalog-list.loading { opacity:.42; pointer-events:none; }
.catalog-item { display:grid; grid-template-columns:76px minmax(180px,1fr) minmax(250px,1.25fr) 210px; gap:16px; align-items:center; padding:14px; background:#0b0e0f; border:1px solid #242b2e; }
.catalog-icon { width:72px; height:72px; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle,#29331c,#101410 70%); border:1px solid #3a4436; color:var(--accent); font:800 20px/1 ui-monospace,SFMono-Regular,Consolas,monospace; }
.catalog-icon img { width:100%; height:100%; object-fit:contain; }
.catalog-identity { min-width:0; display:flex; flex-direction:column; gap:5px; }
.catalog-identity strong { font-size:15px; overflow-wrap:anywhere; }
.catalog-identity code { width:max-content; max-width:100%; color:var(--accent); font-size:11px; overflow:hidden; text-overflow:ellipsis; }
.catalog-identity small { color:var(--muted); overflow-wrap:anywhere; }
.catalog-editor { display:grid; gap:8px; }
.catalog-editor input,.catalog-editor textarea { padding:9px 10px; font-size:12px; }
.catalog-editor textarea { min-height:72px; resize:vertical; line-height:1.45; }
.catalog-file input { padding:7px; color:var(--muted); }
.catalog-shop-fields { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:8px; align-items:end; }
.catalog-shop-enabled { min-height:38px; flex-direction:row; align-items:center; color:var(--text); }
.catalog-shop-enabled input { width:auto; accent-color:var(--accent); }
.catalog-actions { display:grid; gap:7px; }
.catalog-actions button { padding:10px 12px; font-size:9px; }
.catalog-empty { padding:50px 20px; text-align:center; color:var(--muted); border:1px dashed var(--line); }
.catalog-pagination { display:flex; justify-content:center; align-items:center; gap:16px; margin-top:18px; }
.catalog-pagination span { min-width:150px; text-align:center; color:var(--muted); font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.12em; }
.players-card { padding:25px; }
.players-layout { display:grid; grid-template-columns:minmax(520px,.9fr) minmax(460px,1.1fr); gap:14px; align-items:start; }
.players-registry,.player-details { min-width:0; border:1px solid var(--line); background:#0b0e0f; }
.players-table-head,.player-row { display:grid; grid-template-columns:minmax(190px,1.35fr) 100px 142px 86px; gap:10px; align-items:center; }
.players-table-head { padding:10px 13px; color:var(--muted); border-bottom:1px solid var(--line); font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.12em; }
.players-list.loading,.player-activity-list.loading { opacity:.45; pointer-events:none; }
.player-row { width:100%; padding:12px 13px; color:var(--text); background:transparent; border:0; border-bottom:1px solid #20272a; text-align:left; letter-spacing:normal; font-weight:400; }
.player-row:hover,.player-row.selected { filter:none; background:#151b1d; }
.player-row.selected { box-shadow:inset 2px 0 var(--accent); }
.player-identity { min-width:0; display:flex; flex-direction:column; gap:3px; }
.player-identity strong { overflow:hidden; text-overflow:ellipsis; font-size:13px; }
.player-identity code { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; }
.player-status { width:max-content; padding:5px 7px; color:var(--muted); border:1px solid #333c40; font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace; }
.player-status.online { color:var(--accent); border-color:#586b2c; }
.player-status.banned { color:var(--danger); border-color:#633737; }
.player-last-seen { color:var(--muted); font-size:10px; }
.player-row-action { color:var(--accent); font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace; text-align:right; }
.player-details { padding:18px; position:sticky; top:90px; }
.player-details>header { display:flex; justify-content:space-between; gap:18px; align-items:start; padding-bottom:16px; border-bottom:1px solid var(--line); }
.player-details h3 { margin:4px 0 3px; font-size:22px; }
.player-details header code { color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.player-state { padding:7px 9px; color:var(--muted); border:1px solid var(--line); font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:nowrap; }
.player-state.online { color:var(--accent); border-color:#586b2c; }
.player-state.banned { color:var(--danger); border-color:#633737; }
.player-detail-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:14px 0; }
.player-detail-metric { min-width:0; padding:10px; border:1px solid #262e31; background:#101416; }
.player-detail-metric span { display:block; color:var(--muted); font-size:8px; letter-spacing:.1em; }
.player-detail-metric strong { display:block; margin-top:4px; overflow-wrap:anywhere; font:700 11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace; }
.player-moderation { display:grid; grid-template-columns:1fr auto auto; gap:8px; align-items:end; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.player-moderation input { padding:10px; }
.danger-button { color:#fff; background:#8f2929; }
.player-activity { padding-top:16px; }
.player-activity-head { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:10px; }
.player-activity-head h3 { margin:3px 0 0; font-size:17px; }
.player-activity-head label { width:180px; font-size:8px; }
.player-activity-head select { padding:8px; font-size:10px; }
.player-activity-list { display:grid; gap:6px; min-height:40px; transition:opacity .2s; }
.activity-row { display:grid; grid-template-columns:74px 1fr auto; gap:10px; align-items:center; padding:10px; border:1px solid #242b2e; background:#0d1112; }
.activity-kind { color:var(--accent); font:700 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace; }
.activity-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.activity-copy strong { font-size:11px; overflow-wrap:anywhere; }
.activity-copy code,.activity-copy small { color:var(--muted); font-size:8px; overflow-wrap:anywhere; }
.activity-side { display:flex; flex-direction:column; align-items:end; gap:4px; }
.activity-amount { font:700 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace; }
.activity-amount.positive { color:var(--accent); }.activity-amount.negative { color:#ffb060; }
.activity-state { color:var(--muted); font:700 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace; text-transform:uppercase; }
.catalog-pagination.compact { margin-top:10px; }.catalog-pagination.compact button{padding:7px 11px}.catalog-pagination.compact span{min-width:110px}
.infected-card{padding:28px}.infected-head{padding-bottom:22px;border-bottom:1px solid var(--line)}.infected-safety{padding:9px 12px;color:var(--accent);border:1px solid #586b2c;font:800 10px/1 Consolas,monospace;letter-spacing:.12em;white-space:nowrap}.infected-layout{display:grid;grid-template-columns:360px 1fr;gap:14px;align-items:start;margin-top:22px}.infected-spawn-panel{position:sticky;top:90px;display:grid;gap:14px;padding:20px;border:1px solid var(--line);background:#0b0e0f}.infected-selection{min-height:158px;padding:18px;background:radial-gradient(circle at 90% 10%,#37431f55,transparent 45%),#101416;border:1px solid #39442f;display:flex;flex-direction:column}.infected-selection>span{color:var(--muted);font:700 8px/1 Consolas,monospace;letter-spacing:.14em}.infected-selection strong{margin-top:14px;font-size:22px}.infected-selection code{margin-top:3px;color:var(--accent);font-size:10px;overflow-wrap:anywhere}.infected-selection p{margin:auto 0 0;color:var(--muted);font-size:11px}.infected-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.infected-direction{display:flex;gap:10px;align-items:start;padding:11px;border-left:2px solid var(--accent);background:#111616;color:var(--muted);font-size:10px}.infected-direction i{width:7px;height:7px;margin-top:4px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #d5ff3f}.infected-catalog{min-width:0}.infected-toolbar{display:grid;grid-template-columns:1fr 220px;gap:10px;margin-bottom:10px}.infected-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.infected-entry{min-width:0;padding:14px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;color:var(--text);background:#0b0e0f;border:1px solid #242b2e;text-align:left;letter-spacing:normal;font-weight:400}.infected-entry:hover{filter:none;background:#121719;border-color:#414c50}.infected-entry.selected{background:linear-gradient(90deg,#1d281a,#0d1112);border-color:#71883b;box-shadow:inset 2px 0 var(--accent)}.infected-entry-icon{width:48px;height:48px;display:grid;place-items:center;color:#93a083;background:#111616;border:1px solid #303a33;font-size:22px}.infected-entry.selected .infected-entry-icon{color:var(--accent);border-color:#71883b;text-shadow:0 0 15px #d5ff3f}.infected-entry-copy{min-width:0;display:flex;flex-direction:column;gap:5px}.infected-entry-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis}.infected-entry-copy code{color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis}.infected-entry-meta{display:flex;flex-direction:column;align-items:end;gap:6px}.infected-entry-meta small{color:var(--muted);font-size:9px}.infected-entry-meta em{color:var(--accent);font:700 8px/1 Consolas,monospace;text-transform:uppercase;font-style:normal}
.server-control-card{padding:28px}.server-control-head{padding-bottom:22px;border-bottom:1px solid var(--line)}.control-state{padding:9px 12px;border:1px solid var(--line);color:var(--muted);font:800 10px/1 Consolas,monospace;letter-spacing:.12em}.control-state.active{color:var(--accent);border-color:#586b2c}.control-state.inactive,.control-state.failed{color:var(--danger);border-color:#633737}.server-control-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:22px}.control-action{position:relative;min-height:220px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid #293034;background:#0b0e0f}.control-action-index{color:var(--accent);font:700 10px Consolas,monospace}.control-action h3{margin:20px 0 6px;font-size:21px}.control-action p{max-width:520px;margin:0 0 24px;color:var(--muted)}.control-action button{margin-top:auto}.danger-zone{border-color:#543031;background:linear-gradient(145deg,#1d1011,#0b0e0f)}.danger-zone .control-action-index,.danger-zone h3{color:#ff7b72}.control-log{display:grid;grid-template-columns:220px 1fr auto;gap:20px;align-items:center;margin-top:14px;padding:20px;border:1px solid var(--line);background:#0b0e0f}.control-log h3{margin:4px 0 0}.control-log>p{margin:0;color:var(--text)}.control-log time{color:var(--muted);font:10px Consolas,monospace}.server-confirm{width:min(560px,calc(100% - 32px));padding:0;color:var(--text);background:#111517;border:1px solid #3a4448;box-shadow:0 30px 100px #000}.server-confirm::backdrop{background:#000b;backdrop-filter:blur(5px)}.server-confirm form{padding:30px}.server-confirm h2{margin:8px 0}.server-confirm p{color:var(--muted)}.server-confirm label strong{color:var(--danger)}.server-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:10}.toast{max-width:420px;padding:14px 17px;background:#151b1d;border-left:3px solid var(--accent);box-shadow:0 12px 30px #0008}.toast.error{border-color:var(--danger)}
@media(max-width:1100px){.catalog-item{grid-template-columns:76px 1fr 1.4fr}.catalog-actions{grid-column:2/-1;grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){.players-layout{grid-template-columns:1fr}.player-details{position:static}}
@media(max-width:1100px){.infected-layout{grid-template-columns:1fr}.infected-spawn-panel{position:static}.infected-list{grid-template-columns:1fr}}
@media(max-width:900px){.server-control-grid{grid-template-columns:1fr}.control-log{grid-template-columns:1fr}.control-log time{text-align:left}}
@media(max-width:900px){.grid,.metrics{grid-template-columns:1fr}.release-card form{grid-template-columns:1fr}.notes{grid-column:auto}.login form{grid-template-columns:1fr}.topbar{padding:0 18px}main{padding:24px 14px}.dashboard-tabs{overflow-x:auto}.dashboard-tabs button{white-space:nowrap}.catalog-item{grid-template-columns:64px 1fr}.catalog-icon{width:60px;height:60px}.catalog-editor,.catalog-actions{grid-column:1/-1}.catalog-actions{grid-template-columns:1fr}.catalog-toolbar{align-items:stretch;flex-direction:column}.catalog-pagination{gap:8px}.catalog-pagination button{padding:10px}.players-table-head{display:none}.player-row{grid-template-columns:1fr auto}.player-last-seen,.player-row-action{display:none}.player-detail-metrics{grid-template-columns:repeat(2,1fr)}.player-moderation{grid-template-columns:1fr}.player-activity-head{align-items:stretch;flex-direction:column}.player-activity-head label{width:100%}.infected-head{align-items:start;flex-direction:column;gap:12px}.infected-toolbar,.infected-fields{grid-template-columns:1fr}.infected-entry{grid-template-columns:42px minmax(0,1fr)}.infected-entry-icon{width:42px;height:42px}.infected-entry-meta{grid-column:2;align-items:start;flex-direction:row}}
