/* csnova — светлая тема «карточки» по умолчанию, тёмная — по кнопке или по настройке системы. */
:root{--bg:#eef2f7;--panel:#fff;--panel2:#f6f8fb;--line:#e6eaf1;--line2:#eef1f5;--text:#1d2433;--muted:#7a8396;--th:#8a93a6;
 --accent:#2f6bff;--accent-soft:#e8f0ff;--accent-ink:#fff;--shadow:0 6px 24px rgba(20,40,80,.07);
 --ok:#15803d;--ok-bg:#e9f9ef;--bad:#c53030;--bad-bg:#fdecec;--q:#c2410c;--q-bg:#fff4e5;--ad:#b7791f;--star:#f5a623;
 --p0b:#fff1e6;--p0c:#e8590c;--p1b:#f3e8ff;--p1c:#7c3aed;--p2b:#e6f7ff;--p2c:#0284c7;--p3b:#fff8db;--p3c:#b7791f;--p4b:#e7f9ef;--p4c:#15803d;
 --note:#f0f6ff;--note-c:#2a4a8a;--tip:#1d2433;--tip-c:#fff;
 --c-yellow:rgba(250,225,60,.32);--c-pink:rgba(255,150,205,.30);--c-blue:rgba(120,190,255,.30);--c-green:rgba(140,230,165,.34);
 --c-violet:rgba(190,160,255,.30);--c-orange:rgba(255,185,110,.34);--promo:rgba(47,107,255,.05);color-scheme:light}
:root[data-theme=dark]{--bg:#0e131b;--panel:#161d28;--panel2:#1c2533;--line:#263142;--line2:#212b3a;--text:#e5e9f0;--muted:#8b96a8;--th:#7d889b;
 --accent:#5b8cff;--accent-soft:#1d2c4d;--accent-ink:#fff;--shadow:0 6px 24px rgba(0,0,0,.35);
 --ok:#4ade80;--ok-bg:#12301f;--bad:#f87171;--bad-bg:#3a1a1d;--q:#fb923c;--q-bg:#3a2414;--ad:#e0b347;--star:#f5b342;
 --p0b:#3a2112;--p0c:#ff9a5a;--p1b:#2c1f4a;--p1c:#b794ff;--p2b:#12304a;--p2c:#5cc3ff;--p3b:#3a3112;--p3c:#f0c75a;--p4b:#12301f;--p4c:#5fdc8f;
 --note:#18253e;--note-c:#a9c1f2;--tip:#e5e9f0;--tip-c:#111;
 --c-yellow:rgba(234,200,40,.18);--c-pink:rgba(255,105,180,.16);--c-blue:rgba(70,160,255,.17);--c-green:rgba(60,200,110,.16);
 --c-violet:rgba(160,110,255,.17);--c-orange:rgba(255,140,40,.16);--promo:rgba(91,140,255,.07);color-scheme:dark}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e131b;--panel:#161d28;--panel2:#1c2533;--line:#263142;--line2:#212b3a;--text:#e5e9f0;--muted:#8b96a8;--th:#7d889b;
 --accent:#5b8cff;--accent-soft:#1d2c4d;--accent-ink:#fff;--shadow:0 6px 24px rgba(0,0,0,.35);
 --ok:#4ade80;--ok-bg:#12301f;--bad:#f87171;--bad-bg:#3a1a1d;--q:#fb923c;--q-bg:#3a2414;--ad:#e0b347;--star:#f5b342;
 --p0b:#3a2112;--p0c:#ff9a5a;--p1b:#2c1f4a;--p1c:#b794ff;--p2b:#12304a;--p2c:#5cc3ff;--p3b:#3a3112;--p3c:#f0c75a;--p4b:#12301f;--p4c:#5fdc8f;
 --note:#18253e;--note-c:#a9c1f2;--tip:#e5e9f0;--tip-c:#111;
 --c-yellow:rgba(234,200,40,.18);--c-pink:rgba(255,105,180,.16);--c-blue:rgba(70,160,255,.17);--c-green:rgba(60,200,110,.16);
 --c-violet:rgba(160,110,255,.17);--c-orange:rgba(255,140,40,.16);--promo:rgba(91,140,255,.07);color-scheme:dark}}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:26px;margin:0 0 6px;font-weight:800}h2{font-size:21px;margin:22px 0 8px}h3{font-size:17px;margin:24px 0 6px;font-weight:800}
.wrap{max-width:1160px;margin:0 auto;padding:0 16px}
.small{font-size:13px}.muted,.empty{color:var(--muted)}.sub{font-size:13.5px;margin:0 0 16px}.h3s{font-size:12.5px;margin:0 0 10px}

/* лента покупок и шапка */
.ticker{background:var(--panel);color:var(--muted);border-bottom:1px solid var(--line);font-size:12.5px;padding:6px 0}
.ticker b{color:var(--text);font-weight:600}
.top{background:var(--panel);box-shadow:0 1px 0 var(--line)}
.top__in{display:flex;align-items:center;gap:26px;min-height:62px;flex-wrap:wrap}
.logo{font-weight:800;font-size:24px;letter-spacing:.3px;color:var(--text)}.logo:hover{text-decoration:none}.logo__n{color:var(--accent)}
.nav{display:flex;gap:22px;flex:1;flex-wrap:wrap;font-size:14px;font-weight:600}.nav a{color:var(--text)}.nav a:hover{color:var(--accent);text-decoration:none}.nav a.act{color:var(--accent)}
.top__right{display:flex;align-items:center;gap:12px;font-size:13.5px}
.bal{color:var(--muted)}.bal b{background:var(--accent-soft);color:var(--accent);padding:3px 9px;border-radius:6px;margin-left:4px}
.login{font-weight:600}
.theme{background:transparent;border:1px solid var(--line);color:var(--text);padding:5px 9px;font-size:15px;line-height:1;border-radius:10px;font-weight:400}
.theme:hover{border-color:var(--accent);filter:none}
.theme__sun{display:none}:root[data-theme=dark] .theme__sun{display:inline}:root[data-theme=dark] .theme__moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme__sun{display:inline}:root:not([data-theme=light]) .theme__moon{display:none}}

/* карточки-разделы */
.sec{background:var(--panel);border-radius:18px;box-shadow:var(--shadow);padding:26px 28px;margin:22px 0 0}
.sec.narrow{max-width:760px}
.cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.cardhead h1{margin:0}
.hero .sub b{color:var(--text)}
.note{padding:11px 14px;border-radius:12px;background:var(--note);color:var(--note-c);font-size:13.5px;margin:14px 0}
.note--ok{background:var(--ok-bg);color:var(--ok)}.note--already,.note--limit,.note--err{background:var(--bad-bg);color:var(--bad)}

/* кнопки и поля */
input,select,button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 11px}
input[type=search]{flex:1 1 220px;min-width:0}select{max-width:100%}
input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
button,.btn{cursor:pointer;background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700;border-radius:10px;padding:8px 15px;display:inline-block;font-size:14px}
button:hover,.btn:hover{filter:brightness(1.07);text-decoration:none}
.btn--sm{padding:5px 11px;font-size:12.5px}
.btn--ghost{background:transparent;color:var(--accent)}
button.link{background:none;border:0;color:var(--accent);padding:0;font-weight:600}

/* бейджи */
.pill{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap}
.pill--xs{padding:1px 7px;font-size:10.5px;align-self:flex-start;margin-bottom:2px}
.p0{background:var(--p0b);color:var(--p0c)}.p1{background:var(--p1b);color:var(--p1c)}.p2{background:var(--p2b);color:var(--p2c)}.p3{background:var(--p3b);color:var(--p3c)}.p4{background:var(--p4b);color:var(--p4c)}
.slot,.st{font-size:12px;padding:3px 8px;border-radius:6px;white-space:nowrap}
.slot.q{background:var(--q-bg);color:var(--q)}.slot.ok,.st.on{background:var(--ok-bg);color:var(--ok)}.st.off{background:var(--bad-bg);color:var(--bad)}
.stars{color:var(--star);letter-spacing:1px;white-space:nowrap}.stars i{font-style:normal;opacity:.25}
.price{font-weight:800;white-space:nowrap}
.pos{display:inline-block;min-width:20px}
.tierb{font-style:normal;font-size:11px;font-weight:700;border-radius:6px;padding:1px 7px;background:var(--p3b);color:var(--p3c)}
.tierb.t1{background:var(--p0b);color:var(--p0c)}.tierb.t2{background:var(--p1b);color:var(--p1c)}.tierb.t3{background:var(--p2b);color:var(--p2c)}.tierb.t4{background:var(--p3b);color:var(--p3c)}
.ad{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--p3c);background:var(--p3b);border-radius:6px;padding:1px 7px;font-weight:700}
.flag{font-style:normal;font-size:11px;color:var(--bad);background:var(--bad-bg);border-radius:6px;padding:1px 7px}
.ad-note{color:var(--ad)}

/* таблицы */
.tscroll{overflow-x:auto}
.t,.players,.grid-t{width:100%;border-collapse:collapse;font-size:13.5px}
.t th,.players th,.grid-t th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;padding:9px 10px;color:var(--th);background:var(--panel2);font-weight:700}
.t td,.players td,.grid-t td{padding:9px 10px;border-bottom:1px solid var(--line2);vertical-align:middle}
.t td small{display:block}
.mysrv .buyrow{display:none}.mysrv .buyrow:target{display:table-row}.mysrv .buyrow td{background:var(--panel2)}

/* полоса «ТОП» */
.topstrip{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr));gap:12px;margin:4px 0 16px}
.tcard{display:flex;gap:10px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:9px;color:var(--text)}
.tcard:hover{border-color:var(--accent);text-decoration:none}
.tcard__body{display:flex;flex-direction:column;min-width:0}
.tcard__name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcard__meta{color:var(--muted);font-size:12.5px}
.tcard--yellow{background:var(--c-yellow)}.tcard--pink{background:var(--c-pink)}.tcard--blue{background:var(--c-blue)}.tcard--green{background:var(--c-green)}.tcard--violet{background:var(--c-violet)}.tcard--orange{background:var(--c-orange)}

/* плитка карты — своя «миниатюра»: градиент по названию */
.mapt{flex:0 0 auto;width:84px;height:56px;border-radius:10px;display:flex;align-items:flex-end;padding:4px 6px;color:#fff;font:700 11px/1 ui-monospace,Consolas,monospace;letter-spacing:.04em;text-shadow:0 1px 2px rgba(0,0,0,.6);position:relative;overflow:hidden}
.mapt::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 6px,transparent 6px 12px)}
.mapt span{position:relative;z-index:1}
.mapt--sm{width:46px;height:30px;font-size:8px;padding:2px 4px;border-radius:7px}
.mh0{background:linear-gradient(135deg,#c9a24d,#6e4f1c)}.mh1{background:linear-gradient(135deg,#5f8f5a,#22401f)}.mh2{background:linear-gradient(135deg,#5b7fa8,#1f3550)}
.mh3{background:linear-gradient(135deg,#a85b5b,#4a1d1d)}.mh4{background:linear-gradient(135deg,#8a6aa8,#35214a)}.mh5{background:linear-gradient(135deg,#4f9b9b,#1a4545)}
.mh6{background:linear-gradient(135deg,#b07a3c,#4d2f10)}.mh7{background:linear-gradient(135deg,#7c8590,#2f343a)}

/* фильтры и список серверов: Игра · Название · Адрес · Игроки · Карта · Голоса */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.found{margin:4px 0 10px;font-size:13px}
.table{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.row{display:grid;grid-template-columns:52px minmax(0,1fr) 250px 100px 170px 104px;gap:12px;align-items:center;padding:9px 14px;border-top:1px solid var(--line2)}
.row:first-child{border-top:0}.row--head{background:var(--panel2);color:var(--th);font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:700}
.row--promo{background:var(--promo)}
.row--yellow{background:var(--c-yellow)}.row--pink{background:var(--c-pink)}.row--blue{background:var(--c-blue)}.row--green{background:var(--c-green)}.row--violet{background:var(--c-violet)}.row--orange{background:var(--c-orange)}
.c-game{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted)}.c-game small{font-size:11px}
.game{display:inline-block;font:800 11px/1 Manrope,system-ui,sans-serif;color:#fff;background:linear-gradient(135deg,#5b8cff,#2f4fd1);border-radius:7px;padding:5px 6px}
.c-name a{color:var(--text);font-weight:700;word-break:break-word}.c-name small{display:block;color:var(--muted)}
.c-addr{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.addr{display:flex;align-items:center;gap:6px}.flg{font-size:16px}
.connect{font-size:13px;font-weight:700}
.c-map{display:flex;align-items:center;gap:8px;color:var(--muted);min-width:0}.mapn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.pl b{font-size:16px}.bar{display:block;height:4px;background:var(--line);border-radius:2px;margin-top:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent)}
.vote{display:flex;align-items:center;gap:6px}
.vote__b{width:26px;height:26px;padding:0;border-radius:7px;background:var(--panel2);color:var(--text);border-color:var(--line);font-weight:700}
.vote__b:hover{border-color:var(--accent);color:var(--accent);filter:none}
.vote__n{min-width:24px;text-align:center}.vote__n.pos{color:var(--ok)}.vote__n.neg{color:var(--bad)}
.vote--big .vote__b{width:34px;height:34px;font-size:18px}.vote--big .vote__n{font-size:18px}
.copy{background:transparent;color:var(--text);border:1px dashed var(--line);font-weight:500;font-family:ui-monospace,Consolas,monospace;font-size:13px;padding:4px 8px;border-radius:8px}
.copy:hover{border-color:var(--accent);filter:none}.copy.copied{border-color:var(--ok);color:var(--ok)}.copy--big{font-size:17px;padding:8px 12px}
.empty{padding:20px}
.pager{display:flex;gap:16px;justify-content:center;align-items:center;margin:18px 0 0;color:var(--muted)}

/* страница сервера */
.crumbs{color:var(--muted);margin:22px 0 0}.srv h1{margin:4px 0 12px;word-break:break-word}
.srv__head{display:grid;grid-template-columns:300px 1fr;gap:20px;background:var(--panel);border-radius:18px;box-shadow:var(--shadow);padding:20px}
.srv__addr{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0}
.facts dt{color:var(--muted);font-size:12.5px}.facts dd{margin:0;font-weight:600}
.on{color:var(--ok)}.off{color:var(--bad)}
.tabs{display:flex;gap:6px;margin-bottom:8px}.tabs a{padding:5px 13px;border:1px solid var(--line);border-radius:999px;color:var(--text);background:var(--panel)}.tabs a.on{border-color:var(--accent);color:var(--accent)}
.chart{width:100%;height:auto;background:var(--panel);border-radius:18px;box-shadow:var(--shadow)}
.chart .grid{stroke:var(--line2)}.chart .lbl{fill:var(--muted);font-size:11px}.chart .bar{fill:var(--accent)}.chart .down{fill:var(--bad)}
.chart .slots{stroke:var(--muted);stroke-dasharray:4 4}
.players{background:var(--panel);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}

/* линейный график (статистика) */
.lchart{width:100%;height:auto;display:block}
.lchart .g{stroke:var(--line2);stroke-width:1}.lchart text{fill:var(--th)}.lchart .ty{font-size:10px;text-anchor:end}.lchart .tx{font-size:10.5px;text-anchor:middle}
.lchart .ln{fill:none;stroke:var(--accent);stroke-width:3;stroke-linejoin:round}.lchart .dot{fill:var(--panel);stroke:var(--accent);stroke-width:2}
.lchart .a1{stop-color:var(--accent);stop-opacity:.18}.lchart .a2{stop-color:var(--accent);stop-opacity:0}
.lchart .tip rect{fill:var(--tip)}.lchart .tip text{fill:var(--tip-c);font-size:11px;text-anchor:middle}.lchart .tip .b{font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:14px;margin:4px 0 8px}
.kpi{background:var(--panel2);border-radius:14px;padding:14px 16px}.kpi b{display:block;font-size:24px;color:var(--accent);font-weight:800}.kpi span{font-size:12px;color:var(--muted)}

/* услуги */
.packs{display:flex;flex-wrap:wrap;gap:8px}.pack{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:6px 11px;font-size:13.5px}
.howto li{margin:4px 0}

/* кабинет */
.grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:24px;align-items:start}
.side{background:var(--panel2);border-radius:14px;padding:6px;position:sticky;top:12px}
.side a{display:block;padding:9px 14px;font-size:13.5px;border-radius:10px;color:var(--text);font-weight:600}
.side a:hover{background:var(--accent-soft);text-decoration:none}.side a.act{background:var(--accent);color:#fff}
.balance{font-size:15px}
.topup{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.topup label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted)}
.provs{display:flex;flex-wrap:wrap;gap:10px}.prov{display:flex;align-items:center;gap:6px;color:var(--text)!important;font-size:14px!important;flex-direction:row!important}
.buy{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.buy form{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.buy__t{min-width:230px;font-weight:600}.buy__t small{color:var(--muted);font-weight:500}
.buy input,.buy select,.buy button{padding:5px 9px;font-size:13.5px}
.inline{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;align-items:center}

/* формы, админка */
.narrow{max-width:760px}.form{display:flex;flex-direction:column;gap:12px;max-width:420px}.form label{display:flex;flex-direction:column;gap:4px}
.authbox{margin-top:24px}
main > section:not(.sec){background:var(--panel);border-radius:18px;box-shadow:var(--shadow);padding:24px 28px;margin:22px 0 0}
main > section.srv{background:none;box-shadow:none;padding:0}
.ok{color:var(--ok)}.err{color:var(--bad)}code{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.acts form{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.acts input{padding:4px 6px;width:120px}.num{width:80px}.acts .num{width:70px}.acts button{padding:4px 8px;font-size:13px}
.admin{overflow-x:auto}
.settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:8px 16px;align-items:end;margin-bottom:12px}
.settings label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted)}.settings input{color:var(--text)}
.swatch{display:inline-block;border-radius:6px;padding:1px 8px;border:1px solid var(--line);color:var(--text)}

.foot{margin-top:30px;padding:20px 0 28px;color:var(--muted);font-size:12.5px}
.foot__in{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}.foot b{color:var(--text)}

@media (max-width:980px){
 .row{grid-template-columns:44px minmax(0,1fr) 200px 84px 96px}.c-map{display:none}
 .grid{grid-template-columns:1fr}.side{position:static;order:-1;display:flex;flex-wrap:wrap}.side a{padding:7px 11px}
}
@media (max-width:720px){
 .top__in{padding-top:8px;padding-bottom:8px;row-gap:6px;gap:14px}.nav{order:3;width:100%;flex:0 0 100%;gap:16px;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.nav a{flex:0 0 auto}
 .top__right{margin-left:auto}.sec,main > section:not(.sec){padding:18px 16px;border-radius:14px}
 .row{grid-template-columns:minmax(0,1fr) 72px 84px}.c-game,.c-addr,.c-map{display:none}
 .srv__head{grid-template-columns:1fr}.buy__t{min-width:0;width:100%}
}
.w0{width:0%}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w35{width:35%}.w40{width:40%}.w45{width:45%}.w50{width:50%}.w55{width:55%}.w60{width:60%}.w65{width:65%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w90{width:90%}.w95{width:95%}.w100{width:100%}

/* шапка: выход; кликабельные строки; наведение на графике */
.logout{margin:0}.logout button{padding:7px 13px;font-size:13.5px}
.row[data-href]{cursor:pointer;transition:background .12s}.row[data-href]:hover{background:var(--accent-soft)}
.lchart .dot--h{opacity:0}.lchart .dot.on{fill:var(--accent);opacity:1}
.lchart .hl{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:0}.lchart.hov .hl{opacity:.6}
.lchart{cursor:crosshair}