:root{
  --bg:#070d1f; --panel:#101b3a; --panel2:#15224a; --deep:#0a132b;
  --line:rgba(160,180,255,.12); --line2:rgba(160,180,255,.22);
  --text:#e9eeff; --muted:#8e9cc4; --dim:#5d6a92;
  --gold:#ffb020; --gold2:#ffd27a; --cyan:#3fd0ff; --good:#3ecf8e; --bad:#ff5d6c; --hot:#ff8a3d; --cold:#6bb8ff; --story:#c77dff;
  --land1:#1c2f63; --land2:#132349; --glow1:rgba(63,208,255,.10); --glow2:rgba(255,176,32,.08);
  --r:14px; --mono:'JetBrains Mono',ui-monospace,monospace; --head:'Russo One',system-ui,sans-serif;
  --soft:rgba(255,255,255,.03); --soft2:rgba(255,255,255,.07); --card-grad:linear-gradient(180deg,rgba(255,255,255,.015),rgba(0,0,0,.12));
  --glass:rgba(16,27,58,.92); --backdrop:rgba(3,6,16,.72);
  --cyan-t:#c6f2ff; --green-t:#c4f5dd; --red-t:#ffc3c9; --hot-t:#ffb58a; --cold-t:#a9d4ff; --good-t:#9ff0c8; --bad-t:#ffb3ba;
  --map-label:#e3e9ff; --map-halo:rgba(4,8,20,.85); --grid:rgba(160,190,255,.08); --rail:rgba(230,236,255,.38); --rail-shadow:rgba(0,0,0,.35);
  --land-stroke:rgba(120,200,255,.55); --dots:rgba(255,255,255,.06); --city-core:#f1f5ff; --city-stroke:rgba(4,8,20,.9); --token-in:#0b1226; --watermark:rgba(255,255,255,.05);
}
body[data-theme=graphite]{--bg:#0c0e12;--panel:#171a21;--panel2:#20242d;--deep:#101318;--line:rgba(200,210,230,.1);--line2:rgba(200,210,230,.2);--land1:#262c38;--land2:#1b2029;--glow1:rgba(255,255,255,.04);--glow2:rgba(255,176,32,.06)}
body[data-theme=burgundy]{--bg:#12060b;--panel:#241019;--panel2:#321523;--deep:#1a0a11;--line:rgba(255,180,200,.1);--line2:rgba(255,180,200,.2);--muted:#c19aa8;--dim:#86606e;--land1:#3a1728;--land2:#2a101c;--glow1:rgba(255,93,108,.10);--glow2:rgba(255,176,32,.08)}
body[data-theme=forest]{--bg:#04110c;--panel:#0c2018;--panel2:#122d22;--deep:#08170f;--line:rgba(160,255,200,.1);--line2:rgba(160,255,200,.2);--muted:#8fb8a3;--dim:#5b8270;--land1:#16402d;--land2:#0f2c1f;--glow1:rgba(62,207,142,.10);--glow2:rgba(255,197,61,.07)}
body[data-theme=violet]{--bg:#0b0719;--panel:#181132;--panel2:#221944;--deep:#110c24;--line:rgba(200,180,255,.12);--line2:rgba(200,180,255,.22);--muted:#a79cc9;--dim:#6e6394;--land1:#2c2060;--land2:#1e1645;--glow1:rgba(199,125,255,.12);--glow2:rgba(63,208,255,.07)}
body[data-theme=ocean]{--bg:#021117;--panel:#08232c;--panel2:#0d313c;--deep:#05181e;--line:rgba(150,230,255,.11);--line2:rgba(150,230,255,.22);--muted:#8bb6c4;--dim:#57808c;--land1:#0f4150;--land2:#0a2e39;--glow1:rgba(45,212,191,.11);--glow2:rgba(255,176,32,.07)}

body[data-mode=light]{
  --bg:#eef2fa; --panel:#ffffff; --panel2:#eef2f9; --deep:#e5eaf4; --line:rgba(20,40,90,.10); --line2:rgba(20,40,90,.18);
  --text:#131a33; --muted:#56627f; --dim:#8a94ad; --gold:#c97d00; --gold2:#9a5d00; --cyan:#0a86b8; --good:#128a57; --bad:#d23246; --hot:#dd6417; --cold:#2a76cc; --story:#8a3fd1;
  --land1:#dde6f7; --land2:#cad7ef; --glow1:rgba(63,150,255,.12); --glow2:rgba(255,176,32,.12);
  --soft:rgba(20,40,90,.03); --soft2:rgba(20,40,90,.07); --card-grad:linear-gradient(180deg,rgba(255,255,255,0),rgba(20,40,90,.02));
  --glass:rgba(255,255,255,.93); --backdrop:rgba(20,30,60,.4);
  --cyan-t:#065a7d; --green-t:#0b6a41; --red-t:#a3182a; --hot-t:#a8470c; --cold-t:#1a5aa6; --good-t:#0b6a41; --bad-t:#a3182a;
  --map-label:#16203d; --map-halo:rgba(255,255,255,.92); --grid:rgba(40,70,140,.10); --rail:rgba(50,70,120,.55); --rail-shadow:rgba(255,255,255,.7);
  --land-stroke:rgba(30,100,190,.5); --dots:rgba(20,40,90,.07); --city-core:#16203d; --city-stroke:#ffffff; --token-in:#ffffff; --watermark:rgba(20,40,90,.06);
}
body[data-mode=light][data-theme=graphite]{--bg:#f1f2f4;--panel2:#eceef1;--deep:#e3e5e9;--land1:#e2e5ea;--land2:#d0d4dc;--glow1:rgba(0,0,0,.03)}
body[data-mode=light][data-theme=burgundy]{--bg:#fbf0f3;--panel2:#f8e8ee;--deep:#f1dde4;--land1:#f3dce5;--land2:#e7c6d3;--glow1:rgba(255,93,108,.10)}
body[data-mode=light][data-theme=forest]{--bg:#edf7f1;--panel2:#e5f2ea;--deep:#d9ede1;--land1:#d6eedf;--land2:#bfe1cc;--glow1:rgba(62,207,142,.12)}
body[data-mode=light][data-theme=violet]{--bg:#f4f1fd;--panel2:#ede8fb;--deep:#e3dcf7;--land1:#e3daf8;--land2:#d0c3f1;--glow1:rgba(199,125,255,.12)}
body[data-mode=light][data-theme=ocean]{--bg:#ecf7f9;--panel2:#e2f2f5;--deep:#d5ebf0;--land1:#d3edf3;--land2:#badfe8;--glow1:rgba(45,212,191,.12)}
body[data-mode=light] .btn.gold{color:#1c1200}
body[data-mode=light] .card{box-shadow:0 1px 2px rgba(20,40,90,.05),0 8px 24px -16px rgba(20,40,90,.25)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body{min-height:100vh;background:radial-gradient(1200px 600px at 15% -10%,var(--glow1),transparent 60%),radial-gradient(900px 500px at 100% 0%,var(--glow2),transparent 60%),var(--bg);transition:background-color .3s}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
a{color:var(--cyan)}
.hidden{display:none!important}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .t-good{color:var(--good)} .t-bad{color:var(--bad)} .t-gold{color:var(--gold)} .t-cyan{color:var(--cyan)}
.ico{width:1.4em;height:1.4em;vertical-align:-.35em;flex:none}
.ico.lg{width:40px;height:40px} .ico.xl{width:56px;height:56px} .ico.md{width:28px;height:28px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:10px;font-weight:700;
  background:var(--panel2);border:1px solid var(--line2);transition:transform .08s,background .15s,border-color .15s,opacity .15s;white-space:nowrap;line-height:1.2}
.btn:hover:not(:disabled){border-color:rgba(160,180,255,.45)} .btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.38;cursor:not-allowed}
.btn.gold{background:linear-gradient(180deg,#ffc24d,#ff9f10);color:#1c1200;border-color:transparent;box-shadow:0 6px 24px -8px rgba(255,176,32,.6)}
.btn.cyan{background:rgba(63,208,255,.14);border-color:rgba(63,208,255,.45);color:var(--cyan-t)}
.btn.green{background:rgba(62,207,142,.15);border-color:rgba(62,207,142,.45);color:var(--green-t)}
.btn.red{background:rgba(255,93,108,.12);border-color:rgba(255,93,108,.42);color:var(--red-t)}
.btn.ghost{background:transparent}
.btn.sm{padding:6px 11px;font-size:13px;border-radius:8px}
.btn.xs{padding:4px 8px;font-size:12px;border-radius:7px;font-weight:600}
.btn.block{width:100%}
.in{background:var(--deep);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;outline:none;min-width:0}
.in:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(63,208,255,.15)}
.card{background:var(--card-grad),var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.logo{font-family:var(--head);letter-spacing:.04em;line-height:1}
.logo b{color:var(--gold);font-weight:400}
.logo i{font-style:normal;color:var(--cyan);font-size:.5em;vertical-align:super;margin-left:4px}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:var(--soft2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.badge.you{background:rgba(255,176,32,.16);color:var(--gold2)}
.badge.hot{background:rgba(255,138,61,.18);color:var(--hot-t)} .badge.cold{background:rgba(107,184,255,.16);color:var(--cold-t)}
.badge.good{background:rgba(62,207,142,.16);color:var(--good-t)} .badge.bad{background:rgba(255,93,108,.16);color:var(--bad-t)}
.chip{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#0a0f1f;flex:none;font-size:14px;position:relative}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;border:3px solid;background:var(--deep)}
.avatar img{width:78%;height:78%}
.avatar.sm{width:34px;height:34px;border-width:2px}
.avatar.lg{width:64px;height:64px;border-width:4px}
.sect{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.sect:first-child{margin-top:0}
.hint{font-size:12px;color:var(--muted)} .hint b{color:var(--text)}
.row{display:flex;gap:10px;align-items:center} .row>.in{flex:1}
.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}
.err{color:var(--bad);font-size:13px;min-height:1em}
.seg{display:flex;background:var(--deep);border:1px solid var(--line2);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{flex:1;padding:7px 8px;border-radius:8px;font-weight:700;color:var(--muted);font-size:13.5px;white-space:nowrap}
.seg button.on{background:var(--panel2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}
.page{max-width:1080px;margin:0 auto;padding:32px 16px 60px}
.footer{text-align:center;font-size:12px;color:var(--dim);padding:20px 16px 30px}
.footer button{color:var(--muted);text-decoration:underline}

/* ── профили ─────────────────── */
.hero-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.hero-top h1{font-size:clamp(40px,8vw,72px);margin:0}
.tag{display:inline-block;font-family:var(--mono);font-size:12px;color:var(--cyan);border:1px solid rgba(63,208,255,.35);padding:3px 8px;border-radius:6px;margin-bottom:14px}
.lead{color:var(--muted);font-size:16.5px;max-width:34em;margin:10px 0 0}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.pcard{padding:18px;display:flex;flex-direction:column;gap:10px;text-align:left;transition:transform .15s,border-color .15s;position:relative;overflow:hidden}
.pcard:hover{transform:translateY(-2px);border-color:var(--line2)}
.pcard .nick{font-family:var(--head);font-size:20px}
.pcard .real{color:var(--muted);font-size:13px}
.pcard .stripe{position:absolute;top:0;left:0;right:0;height:4px}
.pcard.add{align-items:center;justify-content:center;border-style:dashed;color:var(--muted);min-height:170px}
.mini-awards{display:flex;gap:4px;flex-wrap:wrap}
.mini-awards span{display:inline-flex;align-items:center;gap:2px;font-size:12px;color:var(--muted);background:var(--soft);border-radius:6px;padding:1px 5px}
.mini-awards img{width:18px;height:18px}
.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:26px}
.feat div{padding:12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);font-size:13px;color:var(--muted);display:flex;gap:10px;align-items:flex-start}
.feat b{display:block;color:var(--text);font-size:14px}
.feat img{width:34px;height:34px;flex:none}

/* ── кабинет ─────────────────── */
.dash{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;align-items:start}
.me-box{padding:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.me-box .nick{font-family:var(--head);font-size:24px}
.balance{font-family:var(--mono);font-weight:700;color:var(--gold);font-size:18px}
.rooms{display:flex;flex-direction:column;gap:8px}
.roomc{padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.roomc .code{font-family:var(--mono);font-weight:700;color:var(--gold);letter-spacing:.12em;font-size:18px}
.box{padding:18px;display:flex;flex-direction:column;gap:12px}
.box h3{margin:0;font-family:var(--head);font-weight:400;font-size:19px}
.box label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.or{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}

/* ── лобби ───────────────────── */
.codebox{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;flex-wrap:wrap}
.bigcode{font-family:var(--mono);font-size:40px;letter-spacing:.18em;color:var(--gold);font-weight:700}
.seats{display:grid;gap:10px;margin:14px 0}
.seat{display:flex;align-items:center;gap:12px;padding:14px 16px;flex-wrap:wrap}
.seat .nm{font-weight:700;flex:1;min-width:120px}
.seat.empty{border-style:dashed;color:var(--dim)}
.palette{display:flex;gap:6px;flex-wrap:wrap}
.palette button{width:30px;height:30px;border-radius:50%;border:3px solid transparent;position:relative}
.palette button.on{border-color:var(--text);box-shadow:0 0 0 2px var(--bg) inset}
.palette button:disabled{opacity:.25;cursor:not-allowed}
.themes{display:flex;gap:8px;flex-wrap:wrap}
.themes button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--muted);font-weight:700}
.themes button i{width:46px;height:32px;border-radius:9px;border:2px solid var(--line2);display:block}
.themes button.on i{border-color:var(--gold)} .themes button.on{color:var(--text)}

/* ── игра ────────────────────── */
#game{max-width:1480px;margin:0 auto;padding:12px 16px 40px}
.top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px}
.top .logo{font-size:19px}
.date{font-family:var(--head);font-size:17px}
.date small{font-family:Manrope;font-size:12px;color:var(--muted);margin-left:6px}
.stats{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.stat{padding:5px 9px;border-radius:9px;background:var(--soft);border:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap}
.stat b{font-family:var(--mono);color:var(--text);margin-left:4px;font-weight:700}
.stat.timer b{color:var(--gold)}
.layout{display:grid;grid-template-columns:360px minmax(0,1fr);grid-template-areas:'map map' 'left right';gap:12px;align-items:start}
.layout>.mapwrap{grid-area:map} .col-left{grid-area:left} .col-right{grid-area:right}
.col{display:flex;flex-direction:column;gap:12px;min-width:0}

.mapwrap{position:relative;overflow:hidden;padding:0}
#map{display:block;width:100%;height:auto;aspect-ratio:908/600;cursor:default}
.city-g{cursor:pointer}
.city-lbl{font:800 14px Manrope;fill:var(--map-label);paint-order:stroke;stroke:var(--map-halo);stroke-width:4.5px;stroke-linejoin:round;pointer-events:none}
.city-g:hover .city-core{stroke:var(--gold)}
.token{transition:transform 1.6s cubic-bezier(.5,0,.2,1)}
.token .bob{animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-2.5px)}}
.pulse{animation:pulse 2.2s infinite;transform-origin:center;transform-box:fill-box}
@keyframes pulse{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(3.4)}}
.dash-anim{animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-28}}
.maplegend{position:absolute;left:12px;bottom:10px;font-size:11.5px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;pointer-events:none}
.maplegend span{display:flex;align-items:center;gap:4px}
.maplegend img{width:16px;height:16px}
.mapstory{position:absolute;right:10px;top:10px;max-width:46%;font-size:12px;padding:8px 10px;border-radius:10px;background:var(--glass);border:1px solid var(--line2);backdrop-filter:blur(6px);color:var(--text)}
.mapstory small{display:block;color:var(--story);font-weight:800;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}

.players{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.pl{display:flex;align-items:center;gap:10px;padding:10px 12px}
.pl .info{min-width:0;flex:1}
.pl .nm{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl .sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl .nw{font-family:var(--mono);font-weight:700;font-size:13px;text-align:right;white-space:nowrap}
.pl.me{border-color:rgba(255,176,32,.4)}
.pl.out{opacity:.45}
.place{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:50%;background:var(--panel2);border:1px solid var(--line2);font-size:10px;font-weight:800;display:grid;place-items:center;color:var(--text)}
.rd{font-size:11px;font-weight:700;text-align:right} .rd.y{color:var(--good)} .rd.n{color:var(--dim)} .rd.v{color:var(--cold)}

.me-card{padding:0;overflow:hidden}
.citybanner{position:relative;height:118px;background:var(--deep) center/cover no-repeat;display:flex;align-items:flex-end;padding:12px 14px}
.citybanner:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.72) 100%)}
.citybanner>*{position:relative;z-index:1}
.who{display:flex;align-items:center;gap:10px;width:100%}
.who .where{font-size:13px;color:#dfe6ff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.who .where b{color:#fff}
.who .nm{font-weight:800;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.me-body{padding:12px 14px 14px}
.money{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.money div{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:7px 10px;min-width:0}
.money small{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.money b{font-family:var(--mono);font-size:14.5px;white-space:nowrap}
.seatsw{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.seatsw button{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid rgba(255,255,255,.35);color:#fff;background:rgba(0,0,0,.35)}
.seatsw button.on{color:#0a0f1f}

.tabs{display:flex;flex-wrap:wrap;gap:3px;padding:4px;margin:12px 0 0;background:var(--deep);border-radius:11px;border:1px solid var(--line)}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:1 1 auto;padding:7px 9px;border-radius:8px;font-weight:700;font-size:13px;color:var(--muted);white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:5px}
.tabs button img{width:18px;height:18px}
.tabs button.on{background:var(--panel2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}
.tabs button.here{color:var(--gold2)}
.pane{padding-top:12px}

/* рынок */
.mhead{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.mhead select{padding:6px 8px;font-size:13px}
.cap{margin-left:auto;font-size:12px;text-align:right}
.capbar{height:6px;background:var(--deep);border-radius:4px;overflow:hidden;margin-top:4px;width:140px}
.capbar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold))}
.goods{display:flex;flex-direction:column;gap:8px}
.gd{padding:10px 12px;border-radius:12px;background:var(--soft);border:1px solid var(--line)}
.gd.have{border-color:rgba(63,208,255,.35);background:rgba(63,208,255,.05)}
.gd-top{display:flex;align-items:center;gap:10px}
.gd-top img{width:34px;height:34px;flex:none}
.gd .gn{font-weight:800;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.gd .gs{font-size:11.5px;color:var(--muted)}
.prices{display:flex;gap:14px;margin-left:auto;text-align:right}
.prices div small{display:block;font-size:10px;color:var(--dim);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.prices div b{font-family:var(--mono);font-size:14px}
.gd-ctl{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:9px}
.stepper{display:flex;align-items:center;background:var(--deep);border:1px solid var(--line2);border-radius:9px;overflow:hidden}
.stepper button{width:30px;height:32px;font-weight:800;color:var(--muted);font-size:16px}
.stepper button:hover{color:var(--text);background:var(--soft2)}
.stepper input{width:58px;border:0;background:transparent;text-align:center;font-family:var(--mono);font-size:13.5px;outline:none;padding:0;height:32px}
.gd-ctl .act{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.gd-ctl .act .btn{min-width:150px}
.bestline{font-size:11.5px;color:var(--muted);margin-top:6px}
.bestline b{color:var(--good)}
.gd.locked{opacity:.5}

.list{display:flex;flex-direction:column;gap:6px}
.li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;background:var(--soft);border:1px solid var(--line);flex-wrap:wrap}
.li .t{font-weight:800} .li .s{font-size:12px;color:var(--muted)}
.li img.ph{width:64px;height:44px;border-radius:8px;object-fit:cover;flex:none}
.li.mine{border-color:rgba(255,176,32,.45)}
.risk{font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;white-space:nowrap}
.risk.l{background:rgba(62,207,142,.14);color:var(--good-t)} .risk.m{background:rgba(255,176,32,.14);color:var(--gold2)} .risk.h{background:rgba(255,93,108,.14);color:var(--bad-t)}

.bank{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bk{padding:12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.bk h4{margin:0;font-size:14px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.bk h4 span{font-family:var(--mono);color:var(--gold2);font-size:12px}
.q{display:flex;gap:4px;flex-wrap:wrap}
.fxt{width:100%;border-collapse:collapse;font-size:13px}
.fxt td{padding:7px 4px;border-top:1px solid var(--line);vertical-align:middle}
.fxt td.n{font-family:var(--mono);text-align:right;white-space:nowrap}
.fxt input{width:92px;padding:6px 8px;font-size:12.5px;font-family:var(--mono)}

.cards3{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.bz{padding:12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);display:flex;flex-direction:column;gap:4px;position:relative}
.bz img{width:40px;height:40px}
.bz .t{font-weight:800;font-size:14.5px}
.bz .s{font-size:12px;color:var(--muted)}
.bz .btn{margin-top:auto}
.bz.lock{opacity:.5}

/* казино */
.casino{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:start}
.wheelbox{position:relative;width:230px;height:230px;margin:0 auto}
.wheelbox svg{width:100%;height:100%;display:block}
#wheel{transition:transform 4.2s cubic-bezier(.12,.6,.1,1);transform-origin:50% 50%}
.pointer{position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:18px solid var(--gold);filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
.wres{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;place-items:center;pointer-events:none}
.wres b{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;font-family:var(--head);font-size:28px;background:var(--deep);border:3px solid var(--gold);box-shadow:0 0 30px rgba(255,176,32,.35)}
.board{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}
.board button{height:32px;border-radius:6px;font-family:var(--mono);font-weight:700;font-size:12.5px;color:#fff;position:relative}
.board button.r{background:#c2262e} .board button.k{background:#1d2130;border:1px solid rgba(255,255,255,.12)} .board button.z{background:#138a4b;grid-column:span 12}
.board button.sel{outline:3px solid var(--gold);outline-offset:-3px}
.board button .ch{position:absolute;right:-3px;top:-5px;background:var(--gold);color:#1c1200;border-radius:8px;font-size:9.5px;padding:0 4px}
.outside{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:6px}
.outside button{padding:7px 4px;border-radius:7px;font-weight:700;font-size:12.5px;background:var(--panel2);border:1px solid var(--line2);position:relative}
.outside button.r{background:#8f1c22} .outside button.k{background:#1d2130}
.outside button .ch{position:absolute;right:-3px;top:-6px;background:var(--gold);color:#1c1200;border-radius:8px;font-size:9.5px;padding:0 4px}
.chips{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}
.chips button{width:48px;height:48px;border-radius:50%;font-weight:800;font-size:11.5px;border:4px dashed rgba(255,255,255,.55);color:#fff}
.chips button.on{box-shadow:0 0 0 3px var(--gold)}

/* покер */
.felt{position:relative;border-radius:120px;background:radial-gradient(ellipse at center,#1f7a4b 0%,#145a36 55%,#0d3f26 100%);border:10px solid #5a3a1d;box-shadow:inset 0 0 40px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.4);min-height:250px;padding:18px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.felt .pot{font-family:var(--mono);font-weight:800;color:#ffe9a8;font-size:14px;background:rgba(0,0,0,.3);padding:3px 10px;border-radius:999px}
.boardc{display:flex;gap:5px;min-height:62px;align-items:center}
.pk-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:10px}
.pk-seat{padding:9px 10px;border-radius:11px;background:var(--soft);border:1px solid var(--line);font-size:12.5px;position:relative}
.pk-seat.turn{border-color:var(--gold);box-shadow:0 0 0 2px rgba(255,176,32,.25)}
.pk-seat.fold{opacity:.45}
.pk-seat .nm{font-weight:800;display:flex;align-items:center;gap:5px}
.pk-seat .st{font-family:var(--mono)}
.pk-seat .bt{font-family:var(--mono);color:var(--gold2)}
.dealer{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#fff;color:#111;font-size:10px;font-weight:900}
.pcard-c{width:42px;height:60px;border-radius:7px;background:#fdfdfd;color:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;box-shadow:0 2px 6px rgba(0,0,0,.4);font-size:17px;line-height:1}
.pcard-c.red{color:#d11d2b}
.pcard-c small{font-size:18px}
.pcard-c.back{background:repeating-linear-gradient(45deg,#8b1d2c 0 6px,#a8283a 6px 12px);border:2px solid #fff}
.pcard-c.mini{width:28px;height:40px;font-size:12px}
.pcard-c.mini small{font-size:12px}
.mycards{display:flex;gap:6px;align-items:center}
.pk-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px}
.tbar{height:4px;border-radius:3px;background:var(--deep);overflow:hidden;margin-top:8px}
.tbar i{display:block;height:100%;background:var(--gold);transition:width 1s linear}

.endbar{position:sticky;bottom:10px;padding:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;z-index:5;
  background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 40px -12px rgba(0,0,0,.7)}
.endbar .wait{flex:1;font-size:13px;color:var(--muted);min-width:160px}
.endbar .btn.gold{padding:12px 20px}

.feed{padding:12px}
.feed .tabs{margin:0 0 10px}
.news{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto;padding-right:4px}
.nw-i{font-size:13.5px;padding:8px 10px;border-radius:9px;background:var(--soft);border-left:3px solid var(--dim)}
.nw-i small{display:block;color:var(--dim);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.nw-i.hot{border-color:var(--hot)} .nw-i.cold{border-color:var(--cold)} .nw-i.good{border-color:var(--good)} .nw-i.bad{border-color:var(--bad)} .nw-i.story{border-color:var(--story);background:rgba(199,125,255,.06)}
.chatlog{display:flex;flex-direction:column;gap:5px;max-height:320px;overflow:auto;margin-bottom:8px}
.cm{font-size:13.5px} .cm b{margin-right:6px} .cm small{color:var(--dim);margin-right:6px;font-family:var(--mono);font-size:10.5px}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);opacity:0;transition:.25s;padding:11px 18px;border-radius:12px;pointer-events:none;
  background:var(--panel2);border:1px solid var(--line2);font-weight:600;z-index:80;box-shadow:0 12px 30px rgba(0,0,0,.5);max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.e{border-color:rgba(255,93,108,.5);color:var(--red-t)}

.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:60;padding:16px}
.modal>.card{width:min(620px,100%);max-height:90vh;overflow:auto;padding:22px}
.modal>.card.wide{width:min(900px,100%)}
.modal h2{font-family:var(--head);font-weight:400;margin:0 0 4px;font-size:25px}
.mclose{float:right;font-size:22px;color:var(--muted);line-height:1}
.rep{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.rep div{font-size:14px;padding:8px 10px;border-radius:9px;background:var(--soft);border-left:3px solid var(--dim)}
.rep .good{border-color:var(--good)} .rep .bad{border-color:var(--bad)} .rep .hot{border-color:var(--hot)} .rep .cold{border-color:var(--cold)} .rep .story{border-color:var(--story)}
.help li{margin-bottom:8px;color:var(--muted)} .help li b{color:var(--text)}
.podium{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.pd{display:flex;align-items:center;gap:12px;padding:12px 14px;flex-wrap:wrap}
.pd .place-n{font-family:var(--head);font-size:22px;width:28px;color:var(--muted)}
.pd:first-child{border-color:rgba(255,176,32,.5);background:linear-gradient(90deg,rgba(255,176,32,.12),transparent)}
.pd:first-child .place-n{color:var(--gold)}
.awardg{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.aw{padding:12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.aw img{width:44px;height:44px}
.aw .t{font-weight:800} .aw .s{font-size:11.5px;color:var(--muted)}
.aw.off{opacity:.35;filter:grayscale(1)}
.aw .cnt{font-family:var(--mono);color:var(--gold);font-weight:700}
.shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.shop .it{padding:10px;border-radius:12px;background:var(--soft);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.shop .it img{width:46px;height:46px}
.shop .it.eq{border-color:var(--gold)}
.shop .it .p{font-family:var(--mono);font-size:12px;color:var(--gold2)}

@media (max-width:1100px){
  .layout{display:flex;flex-direction:column} .col{display:contents}
  .mapwrap{order:1} .me-card{order:2} .endbar{order:3} .players{order:4} .feed{order:5}
  .dash{grid-template-columns:1fr}
}
@media (max-width:700px){
  .feat{grid-template-columns:1fr 1fr}
  .money{grid-template-columns:repeat(2,1fr)}
  .bank{grid-template-columns:1fr}
  .stats{margin-left:0}
  .bigcode{font-size:30px}
  .city-lbl{font-size:20px}
  .maplegend,.mapstory{display:none}
  .endbar{bottom:6px;padding:10px} .endbar .wait{font-size:12px}
  .casino{grid-template-columns:1fr}
  .gd-ctl .act{margin-left:0;width:100%} .gd-ctl .act .btn{flex:1;min-width:0}
  .prices{gap:10px}
  .board button{height:28px;font-size:11px}
  .felt{border-radius:60px}
}
@media (max-width:420px){ .feat{grid-template-columns:1fr} }

/* ── v3 ─────────────────────── */
.mapwrap{touch-action:none}
#map{touch-action:none;user-select:none;-webkit-user-select:none}
#map.drag{cursor:grabbing}
.mapctl{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:4px;z-index:2}
.mapctl button{width:34px;height:34px;border-radius:9px;background:var(--glass);border:1px solid var(--line2);font-weight:800;font-size:17px;color:var(--text)}
.city-lbl.t2{display:none}
#map.z2 .city-lbl.t2{display:block}
.chatbar{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.chatbar button{padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:700;border:1px solid var(--line2);color:var(--muted)}
.chatbar button.on{background:var(--panel2);color:var(--text)}
.cm.pm{background:rgba(199,125,255,.08);border-left:3px solid var(--story);padding:4px 8px;border-radius:6px}
.cm .to{font-size:11px;color:var(--story);font-weight:800;margin-right:6px}
.unread{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font-size:10.5px;font-weight:800;margin-left:4px}
.topbtns{display:flex;gap:8px;flex-wrap:wrap}
.install-steps li{margin:6px 0;color:var(--muted)} .install-steps b{color:var(--text)}
#fatal{position:fixed;left:0;right:0;bottom:0;z-index:99;background:#d23246;color:#fff;padding:14px 16px;font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#fatal button{background:#fff;color:#a3182a;border-radius:8px;padding:8px 12px;font-weight:800}
.slots{font-size:11.5px;color:var(--muted)} .slots b{color:var(--text)}
.seats.eight{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.city-lbl{font-size:13px;stroke-width:4.5px}
.cm-s{transform:scale(var(--cs,1))}
.city-g image{transform-box:fill-box}
@media (max-width:700px){ .city-lbl{font-size:19px;stroke-width:5px} #chatTo{flex:1 1 100%;max-width:none!important} }
#map.zooming .token{transition:none}
/* индекс */
.ki{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--cyan);text-align:right}
.idxcard{padding:12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);margin-bottom:10px}
.idxbig{font-family:var(--head);font-size:30px;line-height:1}
.idxrow{display:grid;grid-template-columns:170px 1fr 34px;gap:8px;align-items:center;font-size:12.5px;margin-top:6px;color:var(--muted)}
.idxrow i{display:block;height:7px;border-radius:4px;background:var(--deep);overflow:hidden}
.idxrow i b{display:block;height:100%;border-radius:4px}
.idxrow em{font-style:normal;font-family:var(--mono);text-align:right;color:var(--text)}
@media (max-width:500px){ .idxrow{grid-template-columns:120px 1fr 30px;font-size:11.5px} }
/* мини-обучение */
#tour{position:fixed;top:0;left:0;right:0;bottom:0;z-index:70}
#tour .tour-block{position:absolute;top:0;left:0;right:0;bottom:0}
#tour .tour-hole{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px rgba(3,6,16,.66);outline:3px solid var(--gold);outline-offset:3px;transition:all .35s cubic-bezier(.3,.7,.2,1);pointer-events:none}
#tour .tour-tip{position:absolute;width:min(380px,calc(100vw - 24px));background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:14px;padding:16px 16px 12px;box-shadow:0 18px 50px rgba(0,0,0,.45);transition:top .35s,left .35s}
#tour .tour-tip h3{margin:0 0 6px;font-family:var(--head);font-weight:400;font-size:19px}
#tour .tour-tip p{margin:0 0 10px;font-size:14px;color:var(--muted)}
#tour .tour-tip p b{color:var(--text)}
#tour .tour-nav{display:flex;align-items:center;gap:6px}
#tour .tour-dots{flex:1;font-size:12px;color:var(--dim);font-family:var(--mono)}
@media (max-width:700px){ #tour .tour-tip{left:12px!important;right:12px;width:auto;top:auto!important;bottom:12px} }
/* ── CQ бренд ─────────────────── */
.cq-logo{display:flex;align-items:center;gap:14px;margin:0;font-weight:400}
.cq-mark{font-family:var(--head);font-size:clamp(64px,12vw,112px);line-height:.9;letter-spacing:-.04em;background:linear-gradient(180deg,#ffd27a,#ff9f10);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 18px rgba(255,160,16,.25))}
.cq-name{font-family:var(--head);font-size:clamp(20px,3.6vw,34px);line-height:1.05;color:var(--text);text-transform:uppercase;letter-spacing:.02em}
.cq-logo.sm{gap:8px} .cq-logo.sm .cq-mark{font-size:30px;filter:none} .cq-logo.sm .cq-name{font-size:10.5px;letter-spacing:.08em;color:var(--muted)}
.slogan{font-size:clamp(17px,2.4vw,21px);font-weight:700;margin:14px 0 6px;max-width:32em;color:var(--cyan)}
/* ── под картой: игроки и телефон ─ */
.under-map{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
.under-map .players{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-content:start}
.phone-dock{position:sticky;top:12px}
.phone{width:340px;height:640px;border-radius:44px;padding:12px;background:linear-gradient(145deg,#2a2f3d,#0e1118);box-shadow:0 0 0 2px #3a4152,0 24px 60px -18px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.06);display:flex;flex-direction:column;position:relative}
.ph-status{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;color:#fff;font:700 12.5px Manrope;position:relative;z-index:2}
.ph-notch{position:absolute;left:50%;top:4px;transform:translateX(-50%);width:96px;height:24px;border-radius:14px;background:#000}
.ph-sig{font-size:10.5px;letter-spacing:.02em;display:flex;align-items:center;gap:5px}
.ph-bat{display:inline-block;width:20px;height:10px;border:1.5px solid #fff;border-radius:3px;position:relative}
.ph-bat:after{content:"";position:absolute;left:1px;top:1px;bottom:1px;width:70%;background:#3ecf8e;border-radius:1px}
.ph-screen{flex:1;border-radius:32px;overflow:hidden;background:var(--bg);margin-top:-30px;padding-top:34px;display:flex;flex-direction:column;position:relative}
.ph-homebar{height:22px;display:flex;align-items:center;justify-content:center}
.ph-homebar button{width:110px;height:5px;border-radius:3px;background:rgba(255,255,255,.55)}
.ph-home{flex:1;padding:14px 16px;background:radial-gradient(circle at 20% 0%,rgba(63,208,255,.25),transparent 55%),radial-gradient(circle at 100% 100%,rgba(255,176,32,.22),transparent 55%),var(--bg);overflow:auto}
.ph-clock{text-align:center;margin:6px 0 14px}
.ph-clock b{display:block;font-family:var(--head);font-size:40px;line-height:1;font-weight:400}
.ph-clock span{font-size:12px;color:var(--muted)}
.ph-apps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 6px}
.ph-app{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--text);position:relative}
.ph-app i{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;box-shadow:0 6px 14px -6px rgba(0,0,0,.5)}
.ph-app i img{width:32px;height:32px}
.ph-app .unread{position:absolute;top:-4px;right:6px}
.ph-widget{margin-top:14px;padding:10px 12px;border-radius:16px;background:var(--glass);border:1px solid var(--line);font-size:12px}
.ph-widget small{display:block;color:var(--muted);font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.ph-bar{display:flex;align-items:center;gap:8px;padding:6px 12px 8px;border-bottom:1px solid var(--line);font-weight:800}
.ph-bar button.back{font-size:24px;line-height:1;color:var(--cyan);padding:0 6px 2px 0}
.ph-body{flex:1;overflow:auto;padding:10px 12px;font-size:13px}
.ph-body .news{max-height:none}
.bubbles{display:flex;flex-direction:column;gap:6px}
.bub{max-width:82%;padding:7px 10px;border-radius:14px;background:var(--panel2);align-self:flex-start;font-size:13px;line-height:1.35}
.bub.mine{align-self:flex-end;background:linear-gradient(180deg,#2f7df6,#1d5fd6);color:#fff}
.bub.pm{box-shadow:inset 0 0 0 1.5px var(--story)}
.bub small{display:block;font-size:10px;opacity:.75;font-weight:700}
.ph-compose{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line);flex-wrap:wrap}
.ph-compose input,.ph-compose select{flex:1;min-width:0;padding:8px 10px;border-radius:18px;font-size:13px}
.ph-compose select{flex:1 1 100%}
.ph-compose button{border-radius:18px;padding:8px 12px}
.ph-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.ph-row .grow b{display:block}
.st-list{display:flex;flex-direction:column;gap:6px}
.st{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;background:var(--soft);border:1px solid var(--line);text-align:left;width:100%}
.st.on{border-color:var(--gold);background:rgba(255,176,32,.1)}
.st i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:12px;color:#fff;flex:none}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:14px}
.eq b{width:3px;background:var(--gold);animation:eq 1s infinite ease-in-out}
.eq b:nth-child(2){animation-delay:.2s} .eq b:nth-child(3){animation-delay:.4s}
@keyframes eq{0%,100%{height:3px}50%{height:14px}}
.radio-mini{display:flex;align-items:center;gap:6px}
.radio-mini .btn{max-width:210px;overflow:hidden;text-overflow:ellipsis}
.phone-fab{position:fixed;left:14px;bottom:90px;z-index:40;width:56px;height:56px;border-radius:18px;background:linear-gradient(145deg,#2a2f3d,#0e1118);box-shadow:0 10px 26px rgba(0,0,0,.45),0 0 0 2px #3a4152;display:grid;place-items:center}
.phone-fab img{width:32px;height:32px}
.phone-fab .unread{position:absolute;top:-4px;right:-4px}
/* фильтры рынка */
.mfilter{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 10px;font-size:12px;color:var(--muted)}
.mfilter .seg{padding:2px} .mfilter .seg button{padding:4px 8px;font-size:12px;flex:0 0 auto}
.stat.scen{border-color:rgba(255,93,108,.5);background:rgba(255,93,108,.1)} .stat.scen b{color:var(--bad)}
.stat.fee b{color:var(--hot)}
.food .li img{width:34px;height:34px}
@media (max-width:1100px){
  .under-map{display:contents}
  .phone-dock{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background:var(--backdrop);display:none;align-items:center;justify-content:center;padding:10px}
  .phone-dock.open{display:flex}
  .phone-fab{display:grid}
  .phone{width:min(380px,100%);height:min(720px,calc(100vh - 20px))}
}
@media (min-width:1101px){ .phone-fab{display:none!important} }
/* ── вступление ─────────────── */
.intro{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 16px;position:relative;overflow:hidden}
.intro-bg{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}
.intro-bg i{position:absolute;border-radius:50%;filter:blur(60px);opacity:.45;animation:float 14s ease-in-out infinite}
.intro-bg i:nth-child(1){width:420px;height:420px;background:#3fd0ff;left:-120px;top:-80px}
.intro-bg i:nth-child(2){width:360px;height:360px;background:#ffb020;right:-100px;top:30%;animation-delay:-4s}
.intro-bg i:nth-child(3){width:300px;height:300px;background:#c77dff;left:30%;bottom:-120px;animation-delay:-8s}
@keyframes float{50%{transform:translate(40px,30px) scale(1.1)}}
.intro-hero{text-align:center;position:relative;animation:rise .9s cubic-bezier(.2,.8,.2,1) both}
.intro-hero .cq-logo{justify-content:center}
.cq-logo.big .cq-mark{font-size:clamp(90px,18vw,170px)}
.cq-logo.big .cq-name{font-size:clamp(20px,3.6vw,34px)}
.intro-sub{font-size:clamp(17px,2.4vw,22px);color:var(--muted);max-width:34em;margin:12px auto 0}
.intro-cards{display:grid;grid-template-columns:repeat(4,minmax(0,230px));gap:12px;position:relative}
.intro-cards div{padding:16px;border-radius:16px;background:var(--glass);border:1px solid var(--line2);display:flex;flex-direction:column;gap:6px;animation:rise .9s cubic-bezier(.2,.8,.2,1) both}
.intro-cards div:nth-child(2){animation-delay:.1s} .intro-cards div:nth-child(3){animation-delay:.2s} .intro-cards div:nth-child(4){animation-delay:.3s}
.intro-cards img{width:40px;height:40px} .intro-cards span{font-size:13.5px;color:var(--muted)}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
.gate{padding:18px;width:min(460px,100%);display:flex;flex-direction:column;gap:10px;position:relative;animation:rise .9s .4s both}
.gate label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.gate.shake{animation:shake .4s}
@keyframes shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
@media (max-width:900px){ .intro-cards{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .intro-cards{grid-template-columns:1fr} }
/* ── арена ───────────────────── */
.under-map{grid-template-columns:340px minmax(0,1fr)}
.under-map .phone-dock{order:0} .under-map .arena{order:1}
.arena{padding:14px;display:flex;flex-direction:column;gap:10px;align-self:stretch}
.arena h3{margin:0;font-family:var(--head);font-weight:400;font-size:19px;display:flex;align-items:center;gap:8px}
.arena .rules{font-size:12.5px;color:var(--muted)}
.duelrow{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:11px;background:var(--soft);border:1px solid var(--line);flex-wrap:wrap}
.duelrow .grow b{display:block}
.duelrow input{width:110px;padding:6px 8px;font-size:12.5px}
.duelrow.inc{border-color:var(--gold);background:rgba(255,176,32,.08)}
.specials{display:flex;gap:6px;flex-wrap:wrap}
/* ── доска ───────────────────── */
.dboard{display:grid;grid-template-columns:repeat(8,1fr);width:min(440px,100%);aspect-ratio:1;border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);margin:10px auto;user-select:none}
.dboard button{position:relative;display:grid;place-items:center;font-size:clamp(24px,6vw,40px);line-height:1;padding:0;border:0}
.dboard .l{background:#eed9b6} .dboard .d{background:#b58863}
.dboard .last{box-shadow:inset 0 0 0 100px rgba(255,210,70,.35)}
.dboard .sel{box-shadow:inset 0 0 0 4px #2f7df6}
.dboard .tgt:after{content:"";width:28%;height:28%;border-radius:50%;background:rgba(40,120,60,.55);position:absolute}
.dboard .tgt.cap:after{width:86%;height:86%;background:transparent;border:4px solid rgba(40,120,60,.6)}
.dboard .chk{box-shadow:inset 0 0 0 100px rgba(255,60,60,.45)}
.pc-w{color:#fff;text-shadow:0 0 2px #000,0 1px 2px #000,0 0 1px #000} .pc-b{color:#111;text-shadow:0 0 1px rgba(255,255,255,.5)}
.coord{position:absolute;left:3px;bottom:1px;font-size:9px;font-weight:800;opacity:.55;color:#000}
.duelhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.duelhead .vs{flex:1;min-width:180px}
.bcgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bcgrid table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:13px}
.bcgrid td{padding:4px 6px;border-top:1px solid var(--line)}
.dice{font-size:44px;line-height:1;letter-spacing:4px}
/* ── слоты ───────────────────── */
.slotm{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;border-radius:18px;background:linear-gradient(180deg,#5a1026,#2a0714);border:3px solid #d4a24a;box-shadow:0 10px 30px rgba(0,0,0,.4),inset 0 0 30px rgba(0,0,0,.4)}
.reels{display:flex;gap:10px}
.reel{width:88px;height:96px;border-radius:12px;background:linear-gradient(180deg,#fff,#e7e7e7 50%,#fff);box-shadow:inset 0 6px 12px rgba(0,0,0,.25);display:grid;place-items:center;overflow:hidden}
.reel img{width:64px;height:64px}
.reel.spin img{animation:reelspin .12s linear infinite}
@keyframes reelspin{0%{transform:translateY(-60px)}100%{transform:translateY(60px)}}
.paytab{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:12px;color:#ffe9b8}
.paytab span{display:flex;align-items:center;gap:4px} .paytab img{width:18px;height:18px}
/* ── рейтинг ─────────────────── */
.lb{width:100%;border-collapse:collapse;font-size:13.5px}
.lb th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px;background:var(--soft);white-space:nowrap}
.lb td{padding:8px;border-top:1px solid var(--line);vertical-align:middle}
.lb td.n{font-family:var(--mono);white-space:nowrap}
.lb tr.me td{background:rgba(255,176,32,.08)}
.lbwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
/* ── рамки аватара ───────────── */
.avatar.fr_gold{box-shadow:0 0 0 3px #ffd27a,0 0 14px rgba(255,200,80,.7)}
.avatar.fr_neon{box-shadow:0 0 0 3px #3fd0ff,0 0 16px #3fd0ff,0 0 30px rgba(63,208,255,.6)}
.avatar.fr_fire{box-shadow:0 0 0 3px #ff6a00,0 0 16px #ff3d00,0 0 26px rgba(255,120,0,.7);animation:flick 1.2s infinite alternate}
.avatar.fr_brain{box-shadow:0 0 0 3px #c77dff,0 0 0 6px #ffb020,0 0 22px rgba(199,125,255,.7)}
@keyframes flick{to{box-shadow:0 0 0 3px #ffb020,0 0 22px #ff6a00,0 0 34px rgba(255,80,0,.6)}}
.reco{display:flex;flex-direction:column;gap:6px}
.reco div{padding:10px 12px;border-radius:10px;background:var(--soft);border-left:3px solid var(--gold);font-size:13.5px}
.reco b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--gold2)}
@media (max-width:1100px){ .col-left .arena{order:4} }
.dboard{grid-template-rows:repeat(8,1fr)} .dboard button{aspect-ratio:1;min-height:0;min-width:0}
/* кабинет: карточка игрока — информация сверху, кнопки отдельной строкой */
.me-box{align-items:center}
.me-box > .grow{flex:1 1 320px;min-width:0}
.me-box > .grow .nick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.me-box > div[style*="text-align:right"]{flex:0 0 auto}
.me-box > .row.wrap{flex:1 1 100%;justify-content:flex-start;padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:560px){ .me-box > div[style*="text-align:right"]{text-align:left!important} .me-box > .row.wrap .btn{flex:1 1 auto} }
/* ── кабинет v2 ─────────────── */
.me-box{display:block;padding:18px}
.mb-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mb-name{flex:1 1 180px;min-width:0}
.mb-name .nick{font-family:var(--head);font-size:26px;line-height:1.1}
.mb-actions{display:flex;gap:8px;flex-wrap:wrap}
.mb-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}
.mb-tile{padding:10px 12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);min-width:0}
.mb-tile small{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.mb-tile b{display:block;font-family:var(--mono);font-size:22px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-tile span{font-size:11.5px;color:var(--muted)}
.mb-awards{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.mb-awards span{display:inline-flex;align-items:center;gap:5px;padding:4px 9px 4px 5px;border-radius:999px;background:var(--soft);border:1px solid var(--line);font-size:12.5px;font-weight:700}
.mb-awards img{width:20px;height:20px}
.dash-col{display:flex;flex-direction:column;min-width:0}
.dash-col .sect:first-child,.dash-col > div:first-child .sect{margin-top:0}
.empty-card{padding:16px;color:var(--muted);font-size:14px}
@media (min-width:1101px){ .dash{grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr)} }
@media (max-width:1100px){ .dash{grid-template-columns:minmax(0,1fr)} .roomc .grow{flex:1 1 180px} }
@media (max-width:900px){ .mb-stats{grid-template-columns:repeat(2,minmax(0,1fr))} .mb-stats .mb-tile:last-child{grid-column:1/-1} .mb-actions{width:100%} .mb-actions .btn.gold,.mb-actions .btn.cyan{flex:1 1 auto} }
/* ── мобильная версия v2 ─────── */
.layout > *, .col > *{min-width:0}
.mapwrap{width:100%}
.phone-close{display:none}
.ph-open{display:none}
@media (max-width:1100px){
  .phone-fab{display:none!important}
  .ph-open{display:inline-flex;position:relative}
  .ph-open .unread{position:absolute;top:-6px;right:-6px}
  .phone-dock.open{flex-direction:column;justify-content:flex-start;gap:8px;padding:10px 10px 12px;overflow:auto}
  .phone-close{display:block;align-self:stretch;padding:12px;border-radius:14px;background:var(--panel2);border:1px solid var(--line2);color:var(--text);font-weight:800;font-size:15px;flex:none}
  .phone{height:min(720px,calc(100vh - 80px));height:min(720px,calc(100dvh - 80px));flex:none;margin:0 auto}
  body.phone-on{overflow:hidden}
}
@media (max-width:700px){
  /* шапка компактнее */
  .top{gap:8px;padding:10px 12px}
  .top .date{font-size:15px;width:100%}
  .top .stats{flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none;margin:0 -2px;padding-bottom:2px}
  .top .stats::-webkit-scrollbar{display:none}
  .top .stat{flex:none}
  #gBell,.top .js-install{display:none}
  .top .btn.xs{padding:5px 8px}
  .radio-mini .btn{max-width:150px}
  /* карта */
  .mapctl{right:6px;bottom:6px;gap:3px}
  .mapctl button{width:28px;height:28px;font-size:15px;border-radius:8px}
  /* нижняя панель компактнее */
  .endbar{gap:6px;padding:8px}
  .endbar .wait{flex:1 1 100%;min-width:0;font-size:11.5px;line-height:1.35;max-height:3.1em;overflow:hidden}
  .endbar .btn{padding:9px 11px;font-size:13px}
  .endbar .btn.gold{padding:10px 14px;flex:1 1 auto}
  /* рынок */
  .howto{display:none}
  .gd-top{flex-wrap:wrap;row-gap:6px}
  .gd-top img{width:28px;height:28px}
  .gd-top .grow{flex:1 1 calc(100% - 40px)}
  .prices{width:100%;margin-left:0;justify-content:space-between;text-align:left;padding-left:38px}
  .prices div{display:flex;gap:6px;align-items:baseline}
  .gd-ctl .stepper input{width:48px}
  .mhead .cap{margin-left:0;width:100%;text-align:left}
  .mhead .capbar{width:100%}
  .money b{font-size:13.5px}
}
@media (max-width:700px){
  .endbar .wait{order:0;white-space:nowrap;text-overflow:ellipsis;max-height:none}
  .endbar .ph-open{order:1} .endbar .btn{order:2} .endbar .btn.gold{order:3;flex:1 1 100%}
  #bVac .lbl{display:none}
}
/* страховка от горизонтального сдвига на телефоне */
#game{overflow-x:hidden;overflow-x:clip}
@media (max-width:700px){
  .top > *{min-width:0}
  .top .stats{flex:1 1 100%;min-width:0;max-width:100%}
  .endbar{max-width:100%;min-width:0}
  .endbar .wait{min-width:0!important;max-width:100%}
  .endbar > *{min-width:0}
}
/* ── фон: падающие цифры ─────── */
#bgMatrix{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;opacity:.55}
body{background-attachment:fixed}
body[data-mode=light] #bgMatrix{opacity:.45}
/* ── липкая шапка ───────────── */
.appbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);flex-wrap:wrap}
.appbar .cq-logo{text-decoration:none}
.appnav{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto;align-items:center}
.appnav .btn{position:relative}
.appnav .unread{position:absolute;top:-6px;right:-6px}
@media (max-width:700px){ .appnav .lbl{display:none} .appbar{padding:6px 10px;gap:6px} .appnav{gap:4px} }
/* ── стартовый экран ─────────── */
.about{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 22px}
.about-card{padding:16px;border-radius:14px;background:var(--glass);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.about-card img{width:36px;height:36px} .about-card b{font-size:16px} .about-card span{font-size:13.5px;color:var(--muted);line-height:1.5}
@media (max-width:900px){ .about{grid-template-columns:1fr} }
.pcard .seen{font-size:11.5px;color:var(--good);font-weight:700}
.lb-more{display:block;margin:10px auto 12px}
/* ── обучение ───────────────── */
.acad-nav{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 12px}
.acad-nav button{width:28px;height:6px;border-radius:3px;background:var(--line2)}
.acad-nav button.on{background:var(--gold)}
.acad h3{font-family:var(--head);font-weight:400;font-size:21px;margin:4px 0 8px;display:flex;align-items:center;gap:8px}
.acad p,.acad li{font-size:14.5px;line-height:1.55}
.acad .ico.xl{width:48px;height:48px}
.scale{position:relative;height:38px;margin:22px 0 30px;border-radius:10px;background:linear-gradient(90deg,#d23246 0%,#ff8a3d 30%,#ffb020 50%,#3ecf8e 75%,#2dd4bf 90%,#c77dff 100%)}
.scale .tick{position:absolute;top:-6px;width:2px;height:50px;background:rgba(0,0,0,.35)}
.scale .dot{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.5)}
.scale .me{position:absolute;top:-30px;transform:translateX(-50%);font-weight:800;font-size:12px;white-space:nowrap;background:var(--text);color:var(--bg);padding:2px 8px;border-radius:6px}
.scale .me:after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-5px;border:5px solid transparent;border-top-color:var(--text)}
.scale-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:-22px}
/* ── сообщения ──────────────── */
.msgr{display:grid;grid-template-columns:230px minmax(0,1fr);gap:10px;min-height:380px}
.msgr .convs{display:flex;flex-direction:column;gap:4px;max-height:420px;overflow:auto}
.msgr .conv{display:flex;gap:8px;align-items:center;padding:8px;border-radius:10px;text-align:left;border:1px solid var(--line);background:var(--soft)}
.msgr .conv.on{border-color:var(--gold)}
.msgr .conv .grow span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msgr .thread{display:flex;flex-direction:column;min-width:0}
.msgr .bubbles{flex:1;overflow:auto;max-height:340px;padding:4px}
@media (max-width:640px){ .msgr{grid-template-columns:1fr} .msgr .convs{max-height:160px} }
/* ── показатели и сертификат ─── */
.cert-prev{width:100%;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.35);margin:10px 0}
.notif-card{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* путь через города */
.vpath{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:10px 0 4px}
.vpath i{color:var(--muted);font-style:normal;font-size:12px}
.vstop{display:inline-flex;flex-direction:column;align-items:flex-start;padding:4px 9px;border-radius:9px;border:1px solid var(--line);background:var(--soft);font-size:12.5px;font-weight:700;line-height:1.2}
.vstop small{font-weight:500;color:var(--muted);font-size:10.5px}
.vstop.past{opacity:.55}
.vstop.now{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,transparent);opacity:1}
.vstop .ico{width:14px;height:14px;vertical-align:-2px}
/* рынок: пояснение про объём партии */
.volnote{margin-top:8px;padding:8px 10px;border-radius:10px;font-size:12.5px;line-height:1.45;background:color-mix(in srgb,var(--hot) 10%,transparent);border:1px solid color-mix(in srgb,var(--hot) 35%,transparent)}
.volnote .ico{width:15px;height:15px;vertical-align:-3px}
/* путеводитель */
.gsec{padding:10px 0;border-bottom:1px solid var(--line)}
.gsec:last-child{border-bottom:0}
.gsec .gh{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:14px}
.gcities{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.gchip{border:1px solid var(--line2);background:var(--soft);color:var(--text);border-radius:99px;padding:3px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.gchip.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 18%,transparent)}
/* график курса */
.fxseg{margin:6px 0 8px}
.fxchart{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:10px 12px;margin-bottom:10px}
.fxchart svg{width:100%;height:190px;display:block}
.fxc-head{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;font-size:13px;margin-bottom:4px}
.fxc-head .mono{font-size:17px;font-weight:800}
button.vstop{cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;color:var(--text)}
.vstop.sel{box-shadow:0 0 0 2px var(--gold)}
.fxchart svg{height:170px}
.fxc-axis{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin:2px 0 4px;flex-wrap:wrap}
@media (max-width:600px){ .li.trip{flex-wrap:wrap} .li.trip .grow{flex:1 1 60%;min-width:0} .li.trip > .btn{flex:1 1 100%} }
/* история цен товара */
.phbtn{border:1px solid var(--line2);background:var(--soft);color:var(--muted);border-radius:99px;padding:1px 8px 1px 5px;font:inherit;font-size:11px;font-weight:700;cursor:pointer;vertical-align:2px;margin-left:4px}
.phbtn:hover{color:var(--text);border-color:var(--cyan)}
.phbtn .ico{width:13px;height:13px;vertical-align:-2px}
.phcities{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 10px;max-height:96px;overflow:auto}
/* ─── газета CI NEWS (в стиле игры) ─── */
#modalBody.news-modal{padding:0;max-width:880px;overflow:auto}
.paper{padding:20px 24px 16px;position:relative}
.paper::before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:.5;
  background:radial-gradient(600px 200px at 50% 0,var(--glow1),transparent 70%)}
.np-mast{text-align:center;border-bottom:3px double var(--line2);padding-bottom:10px;position:relative}
.np-top{display:flex;justify-content:space-between;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:6px;flex-wrap:wrap;font-weight:700}
.np-mast h1{font-family:var(--head);font-weight:400;font-size:clamp(44px,10vw,84px);line-height:1;margin:10px 0 4px;letter-spacing:.04em;
  background:linear-gradient(180deg,var(--gold2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.np-sub{font-size:12.5px;color:var(--muted);letter-spacing:.04em}
.np-rates{display:flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;background:var(--soft);margin:12px 0}
.np-fx{flex:1 1 90px;padding:7px 10px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
.np-fx:last-child{border-right:0}
.np-fx span{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.np-fx b{font-family:var(--mono);font-size:14.5px}
.np-fx i{font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--muted)} .np-fx i.up{color:var(--good)} .np-fx i.dn{color:var(--bad)}
.np-lead{border-bottom:1px solid var(--line2);padding-bottom:14px;margin-bottom:14px}
.np-kicker{display:inline-block;background:var(--gold);color:#1a1200;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:3px 9px;border-radius:6px;margin-bottom:8px}
.np-lead.bad .np-kicker,.np-lead.hot .np-kicker{background:var(--bad);color:#fff}
.np-lead h2{font-family:var(--head);font-weight:400;font-size:clamp(22px,4vw,32px);line-height:1.15;margin:0 0 8px}
.np-lead p{margin:0;font-size:15px;line-height:1.55;color:var(--text)}
.np-drop::first-letter{float:left;font-family:var(--head);font-size:3em;line-height:.85;padding:4px 8px 0 0;color:var(--gold)}
.np-cols{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:18px}
.np-news{columns:2 220px;column-gap:18px;column-rule:1px solid var(--line)}
.np-item{break-inside:avoid;margin:0 0 12px;padding:0 0 10px;border-bottom:1px dashed var(--line2)}
.np-item h4{font-size:14.5px;line-height:1.3;margin:0 0 4px;font-weight:800}
.np-item p{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}
.np-item.bad h4,.np-item.hot h4{color:var(--bad)} .np-item.good h4{color:var(--good)} .np-item.story h4{color:var(--story)}
.np-side{display:flex;flex-direction:column;gap:12px}
.np-box{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:10px 12px}
.np-box h5,.np-mine h5{font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 6px;color:var(--gold2);font-weight:800}
.np-box ul,.np-mine ul{margin:0;padding-left:16px;font-size:13px;line-height:1.5}
.np-box p{margin:0;font-size:13px}
.np-lbl{font-size:11.5px;color:var(--muted);margin:4px 0 2px}
.np-mine{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:10px 12px;margin-top:14px}
.np-mine li.bad{color:var(--bad)} .np-mine li.good{color:var(--good)}
.np-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);margin-top:14px;padding-top:12px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}
@media (max-width:640px){
  .paper{padding:16px 14px 14px}
  .np-cols{grid-template-columns:minmax(0,1fr)}
  .np-fx{flex:1 1 30%}
}
/* ── компьютер: карта во всю ширину, под ней телефон и панель управления ── */
@media (min-width:1101px){
  #map{aspect-ratio:923/420;height:auto;max-height:72vh}
  .col-left .phone-dock{position:sticky;top:12px;z-index:2}
  .col-left .phone{width:100%;max-width:360px}
  .col-left .arena{margin-top:0}
}
/* подсветка кнопок при наведении */
@media (hover:hover){
  .btn:not(:disabled):hover{filter:brightness(1.12);border-color:var(--cyan);box-shadow:0 0 0 1px color-mix(in srgb,var(--cyan) 45%,transparent),0 6px 18px -8px color-mix(in srgb,var(--cyan) 60%,transparent)}
  .btn.gold:not(:disabled):hover{border-color:var(--gold2);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 55%,transparent),0 8px 22px -8px color-mix(in srgb,var(--gold) 70%,transparent)}
  .btn.red:not(:disabled):hover{border-color:var(--bad);box-shadow:0 0 0 1px color-mix(in srgb,var(--bad) 45%,transparent)}
  .tabs button:hover:not(.on){background:var(--soft2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}
  .seg button:not(:disabled):hover:not(.on){background:var(--soft2);color:var(--text)}
  .gchip:hover,.phbtn:hover,button.vstop:hover{border-color:var(--cyan);color:var(--text)}
  .ph-app:hover i{transform:translateY(-2px);box-shadow:0 8px 18px -6px rgba(0,0,0,.6)}
  .ph-app i{transition:transform .12s,box-shadow .12s}
  .li:is(button):hover,.ph-widget:hover{border-color:var(--cyan)}
  .money .mclick:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,var(--soft))}
  .mapctl button:hover{background:var(--panel2);color:var(--gold)}
}
.btn:disabled{cursor:not-allowed}
/* деньги: точные суммы и кнопка «внутренний банк» */
.money .mclick{cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,background .15s}
.money .mclick small::after{content:' ›';opacity:.7}
.money b{font-variant-numeric:tabular-nums;white-space:nowrap}
/* внутренний банк */
.ib-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;border:1px solid var(--line2);background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 14%,transparent),transparent 60%),var(--soft);margin-bottom:12px}
.ib-total b{font-family:var(--mono);font-size:26px;color:var(--good)}
.ib-bar{display:flex;height:12px;border-radius:99px;overflow:hidden;background:var(--deep);margin:8px 0 14px}
.ib-bar i{display:block;height:100%}
.ib-sec{border:1px solid var(--line);border-radius:12px;background:var(--soft);margin-bottom:10px;overflow:hidden}
.ib-sec summary{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;list-style:none;font-weight:800}
.ib-sec summary::-webkit-details-marker{display:none}
.ib-sec summary .dot{width:10px;height:10px;border-radius:3px;flex:none}
.ib-sec summary .pc{color:var(--muted);font-weight:600;font-size:12px}
.ib-sec summary b{margin-left:auto;font-family:var(--mono)}
.ib-sec summary:hover{background:var(--soft2)}
.ib-row{display:flex;gap:10px;align-items:baseline;padding:7px 12px;border-top:1px solid var(--line);font-size:13px}
.ib-row .grow small{display:block;color:var(--muted);font-size:11.5px}
.ib-row b{font-family:var(--mono);white-space:nowrap}
.ib-debt{border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.ib-debt b{color:var(--bad)}
.money .mclick{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:7px 10px;min-width:0;overflow:hidden}
.money .mclick b{display:block;font-size:clamp(12.5px,1.25vw,15px);overflow:hidden;text-overflow:ellipsis}
.np-expert{border-color:color-mix(in srgb,var(--story) 45%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--story) 12%,transparent),transparent 70%),var(--soft)}
.np-expert h5{color:var(--story)}
.np-expert blockquote{margin:0 0 10px;font-size:13px;line-height:1.5;font-style:italic}
.np-expert cite{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:3px}
.nw-i.expert{border-color:var(--story);font-style:italic}
/* газета: навигация по выпускам, рубрики, кризис, рынки */
.np-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
.np-rub{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800;margin-bottom:2px}
.np-item.bad .np-rub,.np-item.hot .np-rub{color:var(--bad)} .np-item.good .np-rub{color:var(--good)} .np-item.story .np-rub{color:var(--story)} .np-item.cold .np-rub{color:var(--cold)}
.np-crisis{margin:0 0 12px;padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--bad) 16%,transparent);border:1px solid color-mix(in srgb,var(--bad) 45%,transparent);font-weight:800;font-size:13px;color:var(--text)}
.np-crisis .ico{width:16px;height:16px;vertical-align:-3px}
.np-markets p{margin:0 0 6px;font-size:12.5px;line-height:1.5}
.np-box h5 .ico{width:14px;height:14px;vertical-align:-2px}
/* телефон: выпуски газеты и лента по неделям */
.np-issues{display:flex;flex-direction:column;gap:6px}
.np-issue{display:flex;gap:10px;align-items:center;text-align:left;padding:9px 10px;border-radius:12px;border:1px solid var(--line);background:var(--soft);color:var(--text);font:inherit;cursor:pointer}
.np-issue:hover{border-color:var(--gold)}
.np-issue .no{font-family:var(--head);color:var(--gold);font-size:13px;min-width:44px}
.np-issue small{display:block;color:var(--muted);font-size:11px}
.np-issue b{display:block;font-size:12.5px;line-height:1.3}
.np-issue .cnt{font-size:11px;color:var(--muted);background:var(--deep);border-radius:99px;padding:1px 7px}
.nw-week{position:sticky;top:-10px;z-index:1;background:var(--panel);padding:6px 2px 4px;margin-top:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--gold2)}
.nw-i small{display:block}
.nw-i.digest{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 6%,transparent)}
/* обучающая партия */
.train-card{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px 16px;margin-bottom:14px;border-radius:14px;border:1px solid var(--gold);background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 16%,transparent),transparent 70%),var(--soft)}
.train-card b{display:block;font-size:16px;margin-bottom:4px} .train-card span{color:var(--muted);font-size:13px}
.train-card .ico{width:20px;height:20px;vertical-align:-4px}
.coach{display:flex;gap:12px;align-items:center;padding:10px 12px;margin:0 0 10px;border-radius:12px;border:1px solid var(--cyan);background:color-mix(in srgb,var(--cyan) 9%,transparent)}
.coach small{display:block;color:var(--cyan);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.coach b{display:block;font-size:14.5px} .coach span{font-size:13px;color:var(--text)}
.tabs button.coach-hl{box-shadow:0 0 0 2px var(--cyan);animation:coachPulse 1.4s ease-in-out infinite}
@keyframes coachPulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--cyan) 35%,transparent)}}
@media (max-width:600px){ .coach{flex-wrap:wrap} .coach .btn{flex:1 1 100%} }
/* карточка игрока */
.pc-head{display:flex;gap:12px;align-items:center}
.badge.scam{background:var(--bad);color:#fff;border-color:var(--bad);font-weight:900;letter-spacing:.06em}
.badge.partner{background:linear-gradient(90deg,var(--gold),var(--story),var(--cyan),var(--gold));background-size:300% 100%;animation:partnerShine 4s linear infinite;color:#0b1226;border:0;font-weight:900}
@keyframes partnerShine{to{background-position:300% 0}}
.stars{display:flex;align-items:center;gap:2px}
.star{font-size:30px;line-height:1;color:var(--line2);padding:0 2px;cursor:pointer;transition:transform .1s,color .1s}
.star.on{color:var(--gold)} .star:hover{transform:scale(1.15);color:var(--gold2)}
/* ─── онлайн-мир ─── */
.world-card{margin-top:14px;padding:16px;border-color:color-mix(in srgb,var(--cyan) 45%,transparent);background:radial-gradient(500px 160px at 0 0,color-mix(in srgb,var(--cyan) 14%,transparent),transparent 70%),var(--card-grad),var(--panel)}
.world-card h3 .ico{width:22px;height:22px;vertical-align:-4px}
.wc-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan);font-weight:800}
.wc-num{text-align:center;padding:8px 12px;border-radius:12px;background:var(--soft);border:1px solid var(--line);min-width:92px}
.wc-num b{display:block;font-family:var(--mono);font-size:20px} .wc-num small{color:var(--muted);font-size:11px}
.wc-top{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.wc-p{display:flex;gap:6px;align-items:center;padding:4px 10px;border-radius:99px;border:1px solid var(--line);background:var(--soft);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}
.wc-p span{color:var(--muted);font-weight:800} .wc-p i{font-style:normal;font-family:var(--mono);color:var(--gold)}
.wj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px;max-height:60vh;overflow:auto}
.wj-city{height:84px;border-radius:12px;border:1px solid var(--line);background-size:cover;background-position:center;color:#fff;font:inherit;text-align:left;padding:8px 10px;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;transition:transform .1s,border-color .1s}
.wj-city:hover{transform:translateY(-2px);border-color:var(--gold)} .wj-city b{font-size:14px;text-shadow:0 1px 3px #000} .wj-city small{font-size:11px;color:var(--gold2)}
.tok-ci rect{fill:var(--panel2);stroke:var(--gold);stroke-width:1.2}
.tok-ci text{font:800 9.5px var(--mono);fill:var(--gold2)}
#mTokens .token{cursor:pointer}
#mTokens .token.scam .tok-ci rect{stroke:var(--bad);fill:#3a0d14}
#mTokens .token.asleep{opacity:.55}
.tok-more{font:800 12px Manrope;fill:var(--gold2);paint-order:stroke;stroke:var(--map-halo);stroke-width:3px}
.wtip{position:fixed;z-index:80;min-width:170px;max-width:220px;padding:9px 11px;border-radius:12px;background:var(--glass);border:1px solid var(--line2);box-shadow:0 14px 30px -10px rgba(0,0,0,.6);backdrop-filter:blur(6px);font-size:13px}
body.in-world #gArena h3 .ico{width:18px;height:18px;vertical-align:-3px}
/* ─── v16: главный экран «Живой мир CI» с планетой ─── */
.world-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:10px;align-items:center;margin:0 0 16px;padding:22px 26px;border-radius:20px;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--cyan) 45%,transparent);
  background:radial-gradient(700px 360px at 78% 50%,rgba(63,208,255,.16),transparent 70%),radial-gradient(500px 260px at 0 0,rgba(255,176,32,.10),transparent 70%),linear-gradient(160deg,#07142e,#050b1c 70%);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.03)}
.world-hero .wh-text{position:relative;z-index:1;order:0}
.world-hero .wh-globe{position:relative;order:1;height:380px;min-width:0}
.globe-cv{display:block;cursor:grab;touch-action:pan-y}
.globe-cv:active{cursor:grabbing}
.wh-kicker{display:flex;align-items:center;gap:8px;font-size:11.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--cyan);font-weight:800}
.live-dot{width:9px;height:9px;border-radius:50%;background:#3ecf8e;box-shadow:0 0 0 0 rgba(62,207,142,.7);animation:livePulse 1.8s infinite}
@keyframes livePulse{70%{box-shadow:0 0 0 10px rgba(62,207,142,0)}100%{box-shadow:0 0 0 0 rgba(62,207,142,0)}}
.world-hero h2{font-family:var(--head);font-weight:400;font-size:clamp(34px,5vw,56px);line-height:1;margin:10px 0 10px;
  background:linear-gradient(180deg,#fff,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.world-hero p{color:#c8d4f5;font-size:15px;line-height:1.55;margin:0 0 14px;max-width:56ch}
.wh-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.wh-stats div{padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(160,200,255,.18);min-width:110px}
.wh-stats b{display:block;font-family:var(--mono);font-size:24px;color:#fff} .wh-stats b i{font-style:normal;color:var(--muted);font-size:16px}
.wh-stats small{color:var(--muted);font-size:11.5px}
.wh-cta{gap:8px;margin:14px 0 6px}
.btn.big{padding:14px 24px;font-size:16px}
body[data-mode=light] .world-hero{background:radial-gradient(700px 360px at 78% 50%,rgba(63,208,255,.25),transparent 70%),linear-gradient(160deg,#0b1f45,#081330 70%)}
@media (max-width:900px){
  .world-hero{grid-template-columns:minmax(0,1fr);padding:16px}
  .world-hero .wh-globe{order:0;height:280px;margin:-6px -6px 0}
  .world-hero .wh-text{order:1}
  .wh-stats div{flex:1 1 90px;min-width:0}
  .wh-cta .btn{flex:1 1 100%}
}
/* метка «несколько игроков в городе» */
.tok-cluster{cursor:pointer}
.tok-cluster circle{fill:var(--panel2);stroke:var(--gold);stroke-width:2.5}
.tok-cluster text.n{font:800 13px Manrope;fill:#fff}
.tok-cluster rect{fill:var(--panel2);stroke:var(--gold);stroke-width:1.2}
.tok-cluster g text{font:800 9px var(--mono);fill:var(--gold2)}
.tok-cluster:hover circle{fill:color-mix(in srgb,var(--gold) 30%,var(--panel2))}
/* яркие крестики «закрыть» */
.mclose{position:sticky;top:0;float:right;z-index:20;width:40px;height:40px;margin:-10px -10px 6px 12px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(180deg,#ff6b7a,#e53950);color:#fff!important;font-size:26px;font-weight:700;line-height:1;border:2px solid rgba(255,255,255,.85);
  box-shadow:0 6px 18px -4px rgba(229,57,80,.7);cursor:pointer;transition:transform .12s}
.mclose:hover{transform:scale(1.1) rotate(90deg)}
.ph-bar .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph-x{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;background:linear-gradient(180deg,#ff6b7a,#e53950);color:#fff;font-size:20px;font-weight:700;line-height:1;border:2px solid rgba(255,255,255,.8);box-shadow:0 4px 12px -3px rgba(229,57,80,.7)}
.ph-x:hover{transform:scale(1.08)}
.phone-x{display:none;position:absolute;top:-12px;right:-12px;z-index:30;width:42px;height:42px;border-radius:50%;place-items:center;
  background:linear-gradient(180deg,#ff6b7a,#e53950);color:#fff;font-size:28px;font-weight:700;line-height:1;border:3px solid #fff;box-shadow:0 8px 20px -4px rgba(229,57,80,.8)}
@media (max-width:1100px){ .phone-dock.open .phone-x{display:grid} }
/* нижняя панель в мире: не прилипает, в одну-две строки */
body.in-world .endbar{position:static}
body.in-world .endbar .wait{flex:1 1 260px;min-width:0;white-space:normal;max-height:none;overflow:visible;font-size:13px}
body.in-world .endbar .wait .ico{width:16px;height:16px;vertical-align:-3px}
@media (max-width:700px){ body.in-world .endbar .wait{flex:1 1 100%;font-size:12.5px} body.in-world .endbar .btn{flex:1 1 auto} }
/* строки игроков в мире: иконки репутации мельче, кнопки не налезают */
.li .hint .ico{width:13px;height:13px;vertical-align:-2px}
@media (max-width:520px){
  .li .btn.xs{padding:5px 8px}
  .li > .btn.xs + .btn.xs{margin-left:-2px}
  table.lb th:nth-child(4),table.lb td:nth-child(4),table.lb th:nth-child(6),table.lb td:nth-child(6),table.lb th:nth-child(7),table.lb td:nth-child(7){display:none}
}
@media (max-width:520px){ table.lb td .hint{display:none} table.lb td,table.lb th{padding:8px 6px} }
