:root{--bg:#0a0c0e;--panel:#14171a;--panel2:#1a1e22;--line:#2b3036;--text:#f5f6f7;--muted:#9aa0a8;--green:#00d36f;--green2:#0b7d49;--gold:#e4ad10;--gold2:#6d4c00;--violet:#8d48ff;--red:#ef4444;--cyan:#1fc6df;--shadow:0 10px 30px #0008}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;min-height:100%;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit}.hidden{display:none!important}.boot{position:fixed;inset:0;display:grid;place-content:center;gap:12px;text-align:center;background:#080a0b;z-index:999}.boot b{font-size:24px}.boot span{color:var(--muted)}.spinner{width:34px;height:34px;border:3px solid #222;border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.app{max-width:760px;margin:auto;min-height:100vh;background:linear-gradient(#0b0e10,#090b0d)}.topbar{position:sticky;top:0;z-index:40;height:64px;background:#0b0d0fdd;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:44px auto 1fr auto 44px;align-items:center;padding:0 10px;gap:8px}.topbar h1{font-size:20px;text-align:center;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{background:transparent;border:0;font-size:24px;height:44px;min-width:44px;cursor:pointer}.status{font-size:13px;color:var(--green);display:flex;align-items:center;gap:5px;white-space:nowrap}.status b{font-weight:700}.latency{color:var(--green)}.bell{position:relative}.bell i{position:absolute;right:0;top:3px;background:var(--red);font-style:normal;font-size:10px;padding:2px 5px;border-radius:999px}.drawer{position:fixed;left:0;top:0;bottom:0;width:min(390px,86vw);background:#0c0e10;z-index:80;transform:translateX(-102%);transition:.22s;box-shadow:var(--shadow);overflow:auto;border-right:1px solid var(--line)}.drawer.open{transform:none}.shade,.modal-shade{position:fixed;inset:0;background:#000b;opacity:0;pointer-events:none;z-index:70;transition:.2s}.shade.show,.modal-shade.show{opacity:1;pointer-events:auto}.drawer-head{display:flex;align-items:center;gap:10px;padding:18px;border-bottom:1px solid var(--line)}.drawer-head .icon-btn{margin-left:auto}.drawer-head small{display:block;color:var(--muted)}.logo-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--gold),#643f00);display:grid;place-items:center;font-weight:900;font-size:24px}.drawer-banner{margin:16px;border:1px solid #5f4200;border-radius:12px;padding:16px;background:linear-gradient(135deg,#362400,#17120a);font-weight:900;font-size:20px;color:#ffd45a}.drawer-banner span{float:right;font-size:12px;color:#d1b257}nav{padding:0 10px 80px}nav button{width:100%;border:0;background:transparent;text-align:left;padding:14px 16px;border-radius:10px;font-size:17px;display:flex;gap:14px;align-items:center;cursor:pointer}nav button.active{background:#171b1f;color:#ffd45a}nav button:hover{background:#13171a}.nav-group small{display:block;color:#707780;padding:0 0 8px 50px}.drawer-bottom{position:sticky;bottom:0;background:#0c0e10;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:10px}.drawer-bottom button{border:0;background:transparent;color:var(--gold);font-size:24px;padding:8px}main{padding:14px 16px 40px}.screen{display:none}.screen.active{display:block}.card,.action-card,.empty-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;margin-bottom:16px}.card{padding:18px}.card h2{margin:0 0 14px;font-size:20px}.card h3{font-size:15px;color:#d8dbe0;margin:16px 0 10px}.muted{color:var(--muted)}.action-card{display:grid;grid-template-columns:54px 1fr 20px;align-items:center;gap:12px;padding:16px;cursor:pointer}.action-card.gold{border-color:#5b4200;background:linear-gradient(135deg,#1c160b,#15130f)}.action-card.violet{border-color:#49306f;background:linear-gradient(135deg,#15101d,#121016)}.action-card b{font-size:18px}.action-card span{display:block;color:var(--muted);margin-top:4px}.action-card em{font-style:normal;color:var(--muted);font-size:28px}.round-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#2d2309;color:#ffca32;font-size:24px}.violet .round-icon{background:#24133d}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-head h2{margin:0}.ghost,.mini-btn{border:1px solid var(--line);background:#111418;border-radius:10px;padding:8px 11px;cursor:pointer}.primary,.gold-btn{border:0;border-radius:12px;padding:12px 16px;background:linear-gradient(135deg,#d79f0a,#936400);font-weight:800;cursor:pointer;color:#111}.primary{background:linear-gradient(135deg,#0fd478,#07874d);color:white}.wide{width:100%}.common-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.common-grid>div{background:var(--panel2);padding:12px;border-radius:12px}.common-grid span,.profile-lines span,.battle-stats span{display:block;color:var(--muted);font-size:13px}.common-grid b{display:block;font-size:18px;margin-top:4px}.reward-chips{display:flex;gap:8px;flex-wrap:wrap}.reward-chips span{background:#202428;border-radius:9px;padding:7px 9px;font-size:13px}.auto-box{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.auto-box small{display:block;color:var(--muted);margin-top:4px}.switch input{display:none}.switch i{display:block;width:52px;height:28px;background:#30353b;border-radius:99px;position:relative;transition:.2s}.switch i:after{content:"";position:absolute;width:22px;height:22px;background:white;left:3px;top:3px;border-radius:50%;transition:.2s}.switch input:checked+i{background:var(--gold)}.switch input:checked+i:after{left:27px}.time-row{display:grid;grid-template-columns:1fr 100px auto;gap:8px;align-items:center;margin-top:12px}.time-row input,.calc-card input{background:#101316;border:1px solid var(--line);color:white;border-radius:10px;padding:9px}.profile-tools{display:grid;grid-template-columns:1fr 44px 44px 44px;gap:8px}.profile-tools span,.profile-tools button{background:#1b1f23;border:1px solid var(--line);border-radius:10px;padding:9px}.profile-tools button{cursor:pointer}.profile-top{display:flex;justify-content:space-between;align-items:center;margin:26px 0 12px}.avatar{width:98px;height:98px;border-radius:50%;border:3px solid #8d6d1e;background:radial-gradient(circle at 35% 30%,#666,#24272a 55%,#111);display:grid;place-items:center;font-size:30px;font-weight:900}.badge-shield{width:90px;height:98px;clip-path:polygon(50% 0,92% 15%,84% 72%,50% 100%,16% 72%,8% 15%);background:linear-gradient(#41d46f,#0e6e32);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#111;font-size:32px;font-weight:900}.badge-shield small{font-size:10px;color:#ffd85d;margin-top:10px}.profile-card>h2{font-size:27px;color:#f1be29;margin-bottom:4px}.profile-card>p{color:var(--muted)}.profile-pills{display:flex;gap:8px;flex-wrap:wrap}.profile-pills span{background:#202429;border-radius:10px;padding:8px 12px}.profile-lines{margin-top:18px;display:grid;gap:8px}.profile-lines>div{display:flex;justify-content:space-between;background:#191d20;padding:12px;border-radius:10px}.profile-lines i{font-style:normal}.battle-stats{display:grid;gap:10px}.battle-stats>div{background:#181c20;border:1px solid var(--line);padding:12px;border-radius:12px}.battle-stats b{font-size:22px;color:var(--green)}.battle-stats small{color:var(--muted);margin-left:8px}.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.resource-item{background:#181c20;border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;grid-template-columns:30px 1fr;align-items:center}.resource-item .emoji{font-size:24px}.resource-item b{font-size:18px}.resource-item small{display:block;color:var(--muted)}.segmented{display:grid;grid-template-columns:1fr 1fr;background:#202327;padding:4px;border-radius:12px;margin:12px 0 16px}.segmented.compact{display:flex;overflow:auto}.segmented button{border:0;background:transparent;color:#aaa;padding:11px;border-radius:9px;white-space:nowrap}.segmented button.active{background:#0c0e10;color:white}.feed-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--muted)}.stack{display:grid;gap:10px}.news-card,.raid-card,.task,.inventory-item{background:#15191c;border:1px solid var(--line);border-radius:14px;padding:14px}.news-card h3,.raid-card h3{margin:4px 0 10px}.news-card p,.raid-card p{line-height:1.5;color:#ddd}.raid-card{border-color:#553080;background:linear-gradient(135deg,#191020,#151018)}.raid-card .tag{color:#d9a6ff}.tag{display:inline-block;border:1px solid #33586e;color:#6ee6ff;border-radius:7px;padding:2px 7px;font-size:12px}.boss-head{background:linear-gradient(135deg,#1b1407,#111);border:1px solid #684b00;border-radius:14px;padding:14px;margin-bottom:12px}.boss-head b{display:block;font-size:22px;color:#ffbf00}.queue-strip{display:flex;gap:8px;overflow:auto;margin-bottom:12px}.queue-chip{background:#171b1e;border:1px solid var(--line);border-radius:10px;padding:9px 11px;white-space:nowrap}.queue-chip span{color:var(--red);margin-left:8px;cursor:pointer}.boss-list{display:grid;gap:10px}.boss-row,.boss-card{background:#171b1d;border:1px solid #0a6c3c;border-radius:13px;padding:12px;cursor:pointer}.boss-row.locked,.boss-card.locked{border-color:#383d42;opacity:.7}.boss-row-top{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center}.boss-row h3{margin:0}.boss-row .meta-line{margin-top:7px;color:var(--muted);font-size:13px}.green{color:var(--green)}.yellow{color:#f6ca25}.cyan{color:var(--cyan)}.red{color:var(--red)}.hp-label,.my-damage{display:flex;justify-content:space-between;margin:14px 0 8px}.hp{height:28px;background:#080a0c;border-radius:999px;position:relative;overflow:hidden;border:1px solid #333}.hp i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#b57b00,#f1c40f);transition:width .75s cubic-bezier(.2,.8,.2,1)}.hp span{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:800}.thresholds{display:grid;gap:8px}.threshold{background:#181c1f;border:1px solid var(--line);border-radius:11px;padding:10px}.threshold .row,.threshold .bottom,.task .top,.task .bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}.threshold button,.task button,.inventory-item button,.attack-grid button,.boss-card button{border:0;border-radius:9px;padding:8px 10px;background:#22533c}.threshold button:disabled,.task button:disabled,.attack-grid button:disabled,.boss-card button:disabled{opacity:.45}.leader-list{display:grid;gap:6px}.leader-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;background:#191d20;border-radius:10px;padding:9px}.place{font-weight:900}.score{color:var(--green);font-weight:800}.attack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.attack-grid button{background:#20262a;border:1px solid var(--line);font-weight:700;min-height:72px}.attack-grid small{display:block;color:#9bcab3;margin-top:5px}.empty-card{padding:20px;text-align:center;color:var(--muted)}.day-nav{text-align:center;padding:18px;color:#ddd}.ok-pill,.bad-pill{border:1px solid #195b40;border-radius:8px;padding:5px 10px;margin-left:5px;color:var(--green)}.bad-pill{border-color:#6a2525;color:var(--red)}.mini{height:6px;background:#090b0d;border-radius:10px;margin:10px 0}.mini i{display:block;height:100%;background:var(--green);border-radius:10px}.inventory-item{display:grid;grid-template-columns:1fr auto;gap:12px}.inventory-item .rarity{color:#d0a4ff;font-size:12px}.inventory-item .name{font-weight:800;margin:4px 0}.inventory-item .desc,.inventory-item .bonus{color:var(--muted);font-size:12px}.inventory-item button{background:#1d6947}.calc-card{display:grid;gap:12px}.calc-card label{display:grid;gap:6px;color:var(--muted)}.calc-result{background:#191d20;border-radius:12px;padding:18px;text-align:center}.calc-result b{display:block;font-size:32px;color:var(--gold)}.mini-games{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-games div{background:#181c1f;border:1px solid var(--line);padding:18px 10px;text-align:center;border-radius:12px;font-weight:800}.mini-games small{display:block;color:var(--muted);margin-top:7px;font-weight:400}.modal-shade{z-index:90}.modal{position:fixed;left:50%;bottom:0;z-index:100;width:min(720px,100%);max-height:88vh;overflow:auto;background:#111416;border:1px solid var(--line);border-radius:22px 22px 0 0;padding:18px;transform:translate(-50%,105%);transition:.25s;box-shadow:var(--shadow)}.modal.show{transform:translate(-50%,0)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.modal-head h2{margin:0}.modal-head small{color:var(--muted)}.modal-head button{background:transparent;border:0;font-size:22px}.shop-tabs{display:flex;gap:7px;overflow:auto;padding:8px 0 14px}.shop-tabs button{border:0;background:#202428;padding:10px 13px;border-radius:9px}.shop-tabs button.active{background:#0a0c0e;border:1px solid #555}.package-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.package{background:#181c1f;border:1px solid var(--line);border-radius:13px;padding:14px;cursor:pointer}.package b{font-size:19px}.package small{display:block;color:#ffd33d;margin-top:5px}.modal-foot{position:sticky;bottom:-18px;background:#111416;border-top:1px solid var(--line);padding:14px 0 4px;margin-top:12px}.toast{position:fixed;left:50%;bottom:24px;z-index:150;transform:translate(-50%,80px);opacity:0;background:#171b1f;border:1px solid #3d444b;padding:11px 16px;border-radius:12px;transition:.2s;max-width:90%;text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}@media(min-width:761px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}.resource-grid{grid-template-columns:repeat(3,1fr)}.boss-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:430px){main{padding:12px}.topbar{grid-template-columns:40px auto 1fr auto 40px;gap:3px}.topbar h1{font-size:18px}.status{font-size:11px}.resource-grid{grid-template-columns:1fr 1fr}.attack-grid{grid-template-columns:1fr}.time-row{grid-template-columns:1fr 100px}.time-row .mini-btn{grid-column:1/-1}.package-grid{grid-template-columns:1fr 1fr}.profile-tools{grid-template-columns:1fr 40px 40px 40px}.boss-row-top{grid-template-columns:1fr auto auto}.boss-row-top .boss-trophy{display:none}}
.stars-owner{margin-top:14px;padding:12px;border:1px solid #5d4700;border-radius:12px;background:linear-gradient(135deg,#1d1708,#12110d);display:flex;align-items:center;justify-content:space-between;gap:12px}.stars-owner small{display:block;color:var(--muted);margin-bottom:3px}.stars-owner b{font-size:20px;color:#ffd33d}.stars-help{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;color:var(--muted);font-size:12px}.payment-row{background:#171b1e;border:1px solid var(--line);border-radius:11px;padding:10px;display:grid;grid-template-columns:1fr auto;gap:8px}.payment-row small{display:block;color:var(--muted);margin-top:4px}.payment-status{font-weight:800}.payment-status.paid{color:var(--green)}.payment-status.refunded{color:var(--red)}.payment-status.pending{color:var(--gold)}.package.buying{opacity:.6;pointer-events:none}.package small{font-weight:800}.telegram-pay-note{color:#ffd33d;font-size:12px;margin-top:8px}

/* Big Escape v7 - legacy asset integration */
.legacy-hero,.legacy-scene{position:relative;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:#121518 center/cover no-repeat;box-shadow:inset 0 0 80px #0008}.legacy-hero{height:220px;margin-bottom:14px;display:flex;align-items:flex-end}.yard-hero{background-image:linear-gradient(180deg,transparent 35%,#07090bd9 100%),url('/assets/legacy/yard_scene.webp')}.legacy-hero>div{padding:18px;width:100%;display:grid;gap:3px}.legacy-hero small{color:#ffd34a;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.legacy-hero b{font-size:24px}.legacy-hero span{color:#c8cdd2;font-size:12px}.legacy-scene{height:210px;margin:-4px -4px 16px}.boss-scene{background-image:linear-gradient(180deg,#0001,#0009),url('/assets/legacy/boss_night.webp')}.dealer-scene{background-image:linear-gradient(90deg,#0001,#0008),url('/assets/legacy/dealer_board.webp');background-size:cover;background-position:center;height:185px}.escape-scene{background-image:linear-gradient(180deg,#0000,#000a),url('/assets/legacy/escape_board.webp');height:230px;background-size:cover;background-position:center}.escape-overlay{position:absolute;left:14px;bottom:14px;background:#0b0d0edb;border:1px solid #605019;border-radius:12px;padding:10px 14px;display:grid}.escape-overlay small{color:var(--muted)}.escape-overlay b{color:#ffd33d;font-size:20px}.escape-progress{height:30px;border-radius:999px;background:#090b0d;border:1px solid #34383c;position:relative;overflow:hidden;margin:15px 0}.escape-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1da85d,#f0b700);transition:width .25s}.escape-progress span{position:absolute;inset:0;display:grid;place-items:center;font-weight:900}.escape-stats{display:flex;justify-content:space-between;background:#181c20;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.escape-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.reward-box{margin-top:12px;border:1px dashed #6e5811;background:#1c1708;border-radius:10px;padding:11px;color:#e9d69a;font-size:12px}.legacy-status{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);background:#171b1e;border-radius:12px;padding:12px;margin:14px 0}.legacy-status small{display:block;color:var(--muted);margin-bottom:4px}.legacy-status b.ok{color:var(--green)}.legacy-status b.warn{color:var(--gold)}.legacy-status b.bad{color:var(--red)}
@media(max-width:430px){.legacy-hero{height:185px}.legacy-hero b{font-size:21px}.legacy-scene{height:180px}.escape-scene{height:200px}.escape-actions{grid-template-columns:1fr}}

/* Big Escape v7.1 - friends */
.friends-code-card{border-color:#244a3b;background:linear-gradient(135deg,#111a16,#14171a)}
.friends-total{color:var(--green);font-size:13px;white-space:nowrap}.friends-total b{font-size:18px}
.friend-code-box{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid #28533f;border-radius:12px;background:#0e1512}.friend-code-box small{display:block;color:var(--muted);margin-bottom:4px}.friend-code-box b{font-size:18px;letter-spacing:.04em;color:#b7ffd9}
.friend-search-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}.friend-search-row input{width:100%;min-width:0;background:#0e1113;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:0}.friend-search-row input:focus{border-color:#248456;box-shadow:0 0 0 2px #0d3b2777}.friend-search-row button{padding:0 16px}
.friend-list{display:grid;gap:9px}.friend-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px;background:#171b1e;border:1px solid var(--line);border-radius:12px}.friend-main{display:flex;align-items:center;gap:10px;min-width:0}.friend-main>div{min-width:0}.friend-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-main small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.friend-code{display:block;color:#7f8993;font-size:10px;margin-top:5px}.friend-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:linear-gradient(135deg,#164d35,#20272a);border:1px solid #2b7554;color:#d8ffeb}.friend-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.friend-actions button{border:0;border-radius:9px;padding:8px 10px;font-size:12px;cursor:pointer}.friend-add,.friend-accept{background:#1d6a47}.friend-decline,.friend-remove{background:#542629}.friend-cancel,.friend-state{background:#272d31;color:#c5c9ce}.friend-state{opacity:.75}.request-count{min-width:28px;text-align:center;padding:4px 8px;border-radius:999px;background:#352817;color:#ffd34a;font-weight:800}.online-dot,.offline-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 2px}.online-dot{background:var(--green);box-shadow:0 0 7px #00d36f99}.offline-dot{background:#66707a}
@media(max-width:430px){.friend-row{grid-template-columns:1fr}.friend-actions{justify-content:flex-start;padding-left:52px}.friend-search-row{grid-template-columns:1fr 88px}.friend-code-box{align-items:flex-start}.friend-code-box b{font-size:15px}}
.nav-badge{margin-left:auto;background:var(--red);color:white;font-style:normal;font-size:10px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:inline-grid;place-items:center;font-weight:900}
.brigade-card{border-color:#31506a;background:linear-gradient(135deg,#111820,#14171a)}
.brigade-count{color:var(--cyan);font-weight:800;font-size:13px}
.brigade-create-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:16px 0 8px}
.brigade-create-row input{width:100%;background:#0e1113;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:0}
.brigade-create-row input:focus{border-color:#2e7190;box-shadow:0 0 0 2px #173c4d}
.brigade-title{display:flex;align-items:center;gap:12px;margin:16px 0 10px}.brigade-title>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#18364a;color:#69d8f0;font-size:23px}.brigade-title b{display:block;font-size:21px}.brigade-title small{display:block;color:var(--muted);margin-top:3px}
.brigade-members{display:grid;gap:8px;margin-top:14px}.brigade-member{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:9px;background:#171b1e;border:1px solid var(--line);border-radius:12px}.brigade-member b{display:block}.brigade-member small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.brigade-member em{font-style:normal}
@media(max-width:430px){.brigade-create-row{grid-template-columns:1fr}.brigade-create-row button{width:100%}}
.brigade-tabs{display:flex;gap:5px;overflow:auto;background:#202327;padding:4px;border-radius:10px;margin:14px 0}.brigade-tabs button{border:0;background:transparent;color:#aeb4bb;border-radius:8px;padding:9px 11px;white-space:nowrap;font-size:12px}.brigade-tabs button.active{background:#0c0e10;color:#fff}.brigade-modes{margin-top:14px}.brigade-bosses{display:grid;gap:8px}.brigade-boss{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:11px;background:#171b1e;border:1px solid var(--line);border-radius:11px}.brigade-boss b,.brigade-boss small{display:block}.brigade-boss small{color:var(--muted);font-size:11px;margin-top:4px}.brigade-boss button{padding:7px 9px}.brigade-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.brigade-stat-grid>div{background:#171b1e;border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center}.brigade-stat-grid b{display:block;color:var(--green);font-size:20px}.brigade-stat-grid small{color:var(--muted);font-size:11px}.brigade-switch{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#171b1e;border-radius:10px}.brigade-switch input{display:none}.brigade-switch i{width:42px;height:23px;border-radius:20px;background:#333;position:relative}.brigade-switch i:after{content:"";position:absolute;width:17px;height:17px;left:3px;top:3px;background:#eee;border-radius:50%}.brigade-switch input:checked+i{background:var(--green2)}.brigade-switch input:checked+i:after{left:22px}.brigade-reward{padding:18px;background:#171b1e;border-radius:10px;color:#ffd33d}

/* v7.3 dark prison combat animations */
@keyframes card-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes tab-in{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes hit{0%,100%{transform:none}18%{transform:translateX(-7px) rotate(-1deg)}36%{transform:translateX(7px) rotate(1deg)}55%{transform:translateX(-3px)}}
@keyframes flash{0%,100%{box-shadow:var(--shadow)}35%{box-shadow:0 0 0 3px #f3ca38,0 0 34px #d22b22aa, inset 0 0 35px #ff3b1c55}}
@keyframes win{0%{box-shadow:0 0 0 #51ed8a}45%{box-shadow:0 0 0 5px #51ed8a,0 0 50px #1ebc68}100%{box-shadow:0 0 0 #51ed8a}}
@keyframes miss{0%,100%{filter:none}50%{filter:saturate(.3) brightness(.65)}}
@keyframes reward{0%{transform:scale(.85);opacity:.35}55%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes run{0%,100%{background-position:center}50%{background-position:calc(50% + 12px) center;filter:brightness(1.2)}}
@keyframes progress-pulse{50%{filter:brightness(1.7);box-shadow:0 0 18px #efbe31}}
.card-in{animation:card-in .42s both}.brigade-tabs button{animation:tab-in .35s both}.brigade-tabs button:nth-child(2){animation-delay:.04s}.brigade-tabs button:nth-child(3){animation-delay:.08s}.brigade-tabs button:nth-child(4){animation-delay:.12s}.brigade-tabs button:nth-child(5){animation-delay:.16s}
.boss-hit{animation:hit .5s ease-in-out}.damage-flash{animation:flash .7s ease-out}.boss-win{animation:win 1s ease-out}.boss-miss{animation:miss .5s}.reward-pop{animation:reward .7s ease-out}.escape-run{animation:run .8s ease-out}.escape-win{animation:win 1s ease-out}.escape-fail{animation:miss .5s}.progress-pulse{animation:progress-pulse .65s}
.camp-card{position:relative;overflow:hidden;min-height:112px;grid-template-columns:66px 1fr auto auto}.camp-card.locked{filter:grayscale(.65)}.camp-portrait{width:58px;height:78px;border-radius:10px;background:linear-gradient(180deg,#0002,#0008),var(--camp-image) center/cover;border:1px solid #516451;box-shadow:inset 0 0 18px #000}.camp-info{min-width:0}.camp-info>b{font-size:16px}.camp-hp{height:17px;border-radius:99px;overflow:hidden;background:#080a0b;border:1px solid #343b3a;position:relative;margin-top:9px}.camp-hp i{display:block;height:100%;background:linear-gradient(90deg,#af281e,#e4b21e,#38bd65);transition:width .75s cubic-bezier(.2,.8,.2,1)}.camp-hp span{position:absolute;inset:0;text-align:center;font-size:10px;line-height:15px;color:#fff;text-shadow:0 1px 2px #000}.camp-card>.tag{align-self:start}.camp-attack{align-self:end;white-space:nowrap}
@media(max-width:560px){.camp-card{grid-template-columns:54px 1fr}.camp-portrait{width:48px;height:68px}.camp-card>.tag{grid-column:2;justify-self:start}.camp-attack{grid-column:2;justify-self:stretch}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.dev-languages-box{margin:16px 0;padding:13px;border:1px solid #2b4b5d;border-radius:13px;background:#11181d}.dev-languages-box h3{margin:0}.dev-language-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.dev-language{display:grid;grid-template-columns:auto 1fr;gap:4px 7px;align-items:center;background:#171e22;border-radius:9px;padding:8px}.dev-language span{font-weight:800;color:#e1e6e9}.dev-language small{grid-column:1/-1;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev-language b{font-size:10px;text-align:right}.dev-language b.green{color:var(--green)}
@media(max-width:430px){.dev-language-list{grid-template-columns:1fr}}

/* Programming language learning mode */
.languages-hero{border-color:#31506a;background:linear-gradient(135deg,#111820,#151719)}
.language-wheel{width:150px;height:150px;margin:18px auto;border-radius:50%;background:conic-gradient(#6597d4 0 55%,#d87872 55% 77%,#9ccc61 77% 83%,#69bdd2 83% 89%,#a996d0 89% 94%,#e6a23c 94% 96%,#b9d978 96% 97%,#d98c74 97% 98%,#9bd6e5 98% 99%,#98a3ad 99% 100%);box-shadow:0 0 0 8px #101519,0 0 28px #387b9a66;position:relative}.language-wheel:after{content:'КОД';position:absolute;inset:35px;border-radius:50%;display:grid;place-items:center;background:#12171a;color:#f1c33b;font-weight:900;letter-spacing:.15em;font-size:13px}
.language-list{display:grid;gap:8px}.language-row{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;text-align:left;background:#171c20;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;transition:transform .18s,border-color .18s,background .18s}.language-row:hover,.language-row.active{transform:translateX(3px);border-color:#39a870;background:#14251e}.language-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#202e38;color:#f0c23a;font-weight:900;font-size:12px}.language-main{min-width:0}.language-main b{display:block;font-size:15px}.language-main small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.language-main i{display:block;height:5px;background:#090b0d;border-radius:5px;margin-top:7px;overflow:hidden}.language-main i em{display:block;height:100%;background:linear-gradient(90deg,#1e985b,#d1a72b);border-radius:5px;transition:width .7s}.language-row strong{color:#f0c23a;min-width:36px;text-align:right}.language-selected{color:var(--green);font-size:12px}.language-info{border-color:#2d7c55;background:linear-gradient(135deg,#111b16,#16191a)}

/* Paid adventure arsenal */
.weapon-shop-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}.weapon-shop-row small{display:block;max-width:520px;color:var(--muted);margin-top:4px;line-height:1.35}.adventure-weapon-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.weapon-button{display:grid;grid-template-columns:auto 1fr auto;gap:3px 8px;align-items:center;text-align:left;padding:11px;border:1px solid #475569;border-radius:14px;background:#18212b;color:inherit;cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}.weapon-button:hover:not(:disabled){transform:translateY(-2px);border-color:#eab308;box-shadow:0 8px 22px rgba(234,179,8,.15)}.weapon-button:disabled{opacity:.46;cursor:not-allowed}.weapon-button>span{grid-row:span 2;font-size:24px}.weapon-button>b{font-size:14px}.weapon-button>small{color:#facc15}.weapon-button>em{grid-column:2/-1;font-size:11px;color:var(--muted);font-style:normal}@media(max-width:560px){.adventure-weapon-actions{grid-template-columns:1fr}.weapon-shop-row{align-items:flex-start;flex-direction:column}}
/* Mini-games disciplines */
.games-head{border-color:#5f4c1d;background:linear-gradient(135deg,#1b160b,#14171a)}
.mini-games-list{display:grid;gap:14px}.mini-game-card{background:#171c20;border:1px solid var(--line);border-radius:16px;padding:14px}.mini-game-top{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:start}.mini-game-icon{font-size:30px}.mini-game-card h3{margin:2px 0 4px;font-size:18px}.mini-game-card small{color:var(--muted)}.game-level{color:#ffd33d;font-weight:800;white-space:nowrap}.game-progress{height:8px;background:#090b0d;border-radius:99px;overflow:hidden;margin:12px 0 8px}.game-progress i{display:block;height:100%;background:linear-gradient(90deg,#1a9d5d,#e2b52a);transition:width .5s}.game-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.game-meta b{color:#f0c23a}.reward-chances{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0}.reward-chances span{border:1px solid #343c43;border-radius:8px;padding:6px 7px;color:#cbd2d8;font-size:11px}.reward-chances b{color:#ffd33d;margin-left:3px}.mini-game-play{margin-top:3px}.mini-games-rating{display:grid;gap:7px}.mini-rating-row{display:grid;grid-template-columns:34px 1fr auto;gap:6px;align-items:center;background:#181d21;border-radius:10px;padding:10px}.mini-rating-row>b{color:#ffd33d}.mini-rating-row span{font-weight:700}.mini-rating-row strong{color:var(--green);white-space:nowrap}.mini-rating-row small{grid-column:2/-1;color:var(--muted);font-size:11px}@media(max-width:430px){.mini-game-top{grid-template-columns:38px 1fr}.game-level{grid-column:2;justify-self:start}.mini-rating-row{grid-template-columns:28px 1fr}.mini-rating-row strong{grid-column:2;justify-self:start}}
/* Catala dealing and mini-game motion */
.catala-table{border-color:#6c5317;background:linear-gradient(145deg,#18140b,#14171a)}.catala-cards{display:flex;gap:9px;justify-content:center;margin:18px 0}.catala-card{position:relative;width:58px;height:82px;border:1px solid #aeb8c2;border-radius:10px;background:linear-gradient(145deg,#f8fafc,#cbd5e1);color:#17202a;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 12px #0007;transition:transform .18s,box-shadow .18s,border-color .18s}.catala-card span{font-weight:900;font-size:19px;position:absolute;top:7px;left:9px}.catala-card b{font-size:32px;font-weight:500}.catala-card.red-card{color:#c43737}.catala-card:hover:not(:disabled){transform:translateY(-6px)}.catala-card.selected{transform:translateY(-10px);border:2px solid #f0bd2a;box-shadow:0 0 0 3px #f0bd2a55,0 12px 18px #0009}.catala-card:disabled{cursor:default}.catala-actions{display:flex;gap:8px;flex-wrap:wrap}.catala-actions button{flex:1;min-width:180px}.catala-unlocks{margin:9px 0;color:#ffd34a;font-size:12px}.catala-game-card{border-color:#654d1a}.mini-game-result{min-height:17px;text-align:center;color:#ffd34a;font-size:13px;margin-top:9px}.catala-deal{animation:catala-deal .7s ease-out}.catala-replace{animation:catala-replace .65s ease-in-out}.wheel-spin{animation:wheel-spin .85s ease-out}.dice-roll{animation:dice-roll .6s ease-out}.reward-reveal{animation:reward-reveal .7s ease-out}@keyframes catala-deal{0%{opacity:.2;transform:translateY(18px) rotate(-2deg)}100%{opacity:1;transform:none}}@keyframes catala-replace{0%,100%{transform:none}35%{transform:translateY(-8px) rotate(-1deg)}70%{transform:translateY(2px) rotate(1deg)}}@keyframes wheel-spin{0%{transform:rotate(0)}60%{transform:rotate(5deg) scale(1.015)}100%{transform:rotate(0)}}@keyframes dice-roll{0%{transform:rotate(0) scale(1)}55%{transform:rotate(4deg) scale(1.03)}100%{transform:none}}@keyframes reward-reveal{0%{opacity:.3;transform:scale(.94)}55%{opacity:1;transform:scale(1.03)}100%{transform:none}}@media(max-width:480px){.catala-cards{gap:4px}.catala-card{width:52px;height:74px}.catala-card b{font-size:28px}}

/* Five-dice game */
.dice-table{border-color:#31506a;background:linear-gradient(145deg,#111820,#151719)}
.dice-set{display:flex;gap:10px;justify-content:center;margin:18px 0;flex-wrap:wrap}
.die{width:62px;height:62px;border-radius:12px;border:2px solid #687786;background:linear-gradient(145deg,#f8fafc,#cbd5e1);color:#111827;cursor:pointer;display:grid;place-items:center;transition:transform .18s,border-color .18s,box-shadow .18s}
.die span{font-size:28px;line-height:1}.die b{font-size:15px}.die.held{transform:translateY(-8px);border-color:#f0bd2a;box-shadow:0 0 0 3px #f0bd2a55,0 10px 15px #0009}.die:hover:not(:disabled){transform:translateY(-4px)}.die:disabled{cursor:default}
.dice-actions{display:flex;gap:8px;flex-wrap:wrap}.dice-actions button{flex:1;min-width:180px}
.discipline-rating{display:grid;gap:7px;margin-bottom:14px}.discipline-rating h3{margin:2px 0 3px;color:#f0c23a;font-size:14px}
@media(max-width:480px){.die{width:54px;height:54px}}

/* Connection feedback stays above the existing game without replacing it. */
.connection-banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:10000;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:#24374a;color:#fff;border:1px solid #7994ad;border-radius:10px;box-shadow:0 4px 24px #0007;font-size:14px;line-height:1.5}
.connection-banner button{flex-shrink:0;padding:8px 12px;border:1px solid #b6c8d8;border-radius:6px;background:#192939;color:#fff;font:inherit;cursor:pointer}
.connection-banner.hidden{display:none}
@media(max-width:480px){.connection-banner{align-items:flex-start;flex-direction:column;gap:8px}.connection-banner button{align-self:flex-end}}


/* Big Escape — interface spacing and adventure layout, 2026-09-10.
   Extends the existing visual theme without changing game rules or APIs. */

:root {
  --muted: #a6b1b7;
  --ui-gap: 16px;
  --ui-pad: 18px;
  --ui-radius: 16px;
}

html { color-scheme: dark; -webkit-text-size-adjust: 100%; }
body { font-size: 15px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button { touch-action: manipulation; }
button:disabled { cursor: not-allowed; }
button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid #7de2b1;
  outline-offset: 3px;
}
small { font-size: 12px; line-height: 1.5; }
main {
  padding: var(--ui-gap) var(--ui-gap) calc(56px + env(safe-area-inset-bottom, 0px));
}
.app { min-height: 100dvh; }
.card, .action-card, .empty-card {
  border-radius: var(--ui-radius);
  margin-bottom: var(--ui-gap);
}
.card { padding: var(--ui-pad); }
.card h2 { font-size: 19px; line-height: 1.35; margin: 0 0 14px; }
.card h3 { font-size: 16px; line-height: 1.4; margin: 18px 0 10px; }
.card p { margin: 12px 0 16px; line-height: 1.6; }
.card > :last-child { margin-bottom: 0; }
.card :is(p, h2, h3, small, .name, .desc, .bonus) { overflow-wrap: anywhere; }
.section-head {
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-bottom: 14px;
}
.section-head > div { flex: 1 1 165px; min-width: 0; }
.section-head > h2 { flex: 1 1 145px; }
.section-head h2 { margin: 0; }
.section-head > div > small { display: block; margin-top: 6px; }
.section-head > .muted { font-size: 12px; line-height: 1.5; }
.section-head > :is(.tag, small, span) { max-width: 100%; }
.tag {
  padding: 4px 8px;
  font-size: 11px;
  line-height: 1.5;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.primary, .ghost, .gold-btn, .mini-btn {
  min-height: 44px;
  padding: 11px 14px;
  font-size: 14px;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
}
.primary:disabled, .ghost:disabled, .gold-btn:disabled, .mini-btn:disabled {
  opacity: .5;
}
.stack { gap: 12px; }
.segmented button, .shop-tabs button, .brigade-tabs button { min-height: 44px; }
.topbar { grid-template-columns: 40px auto minmax(0, 1fr) auto 40px; gap: 6px; }
.topbar h1 { font-size: 18px; line-height: 1.3; }
.topbar .icon-btn { width: 40px; min-width: 40px; }
.topbar .status { font-size: 11px; }
.modal { padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)); }
.modal-head { margin-bottom: 14px; }
.modal-head h2 { font-size: 20px; line-height: 1.4; }
.modal-head small { display: block; margin-top: 6px; }
.modal-head > div { min-width: 0; }
.modal-head > button { min-width: 44px; min-height: 44px; }
.toast { line-height: 1.5; overflow-wrap: anywhere; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }

/* Chapter overview: progress and resource chips. */
.adventure-head {
  border-color: #315042;
  background: linear-gradient(135deg, #17251e, #14191b 75%);
}
.adventure-progress {
  height: 7px;
  margin: 16px 0;
  overflow: hidden;
  border-radius: 99px;
  background: #09120e;
  border: 1px solid #283b31;
}
.adventure-progress > i {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #089959, #71dc9c);
  transition: width .45s ease;
}
.adventure-counters { display: flex; flex-wrap: wrap; gap: 8px; }
.adventure-counters > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 9px;
  border-radius: 9px;
  border: 1px solid #304139;
  background: #0f1915;
  font-size: 12px;
  line-height: 1.5;
  color: #d5ded8;
}
.adventure-counters b { color: #f1f7f3; font-variant-numeric: tabular-nums; }

/* Each camp has a portrait and separate lines for its name, place and state. */
.adventure-map { display: grid; gap: 10px; }
.adventure-node {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 13px;
  border: 1px solid #30393f;
  border-radius: 12px;
  background: #191f23;
}
.node-image {
  width: 58px;
  height: 72px;
  border: 1px solid #424d4a;
  border-radius: 9px;
  background-color: #27322d;
  background-image: linear-gradient(180deg, transparent 35%, #07120b77), var(--node-image);
  background-size: cover;
  background-position: center 28%;
}
.adventure-node > div:not(.node-image) { min-width: 0; display: grid; gap: 4px; }
.adventure-node b, .adventure-node small, .adventure-node em {
  display: block;
  margin: 0;
  overflow-wrap: anywhere;
}
.adventure-node b { color: #f1f4f2; font-size: 15px; line-height: 1.4; }
.adventure-node small { color: #b6c1c6; font-size: 12px; }
.adventure-node em { font-size: 12px; line-height: 1.5; font-style: normal; color: #9ba8b1; }
.adventure-node.unlocked { border-color: #357a55; background: linear-gradient(110deg, #192e22, #18221d); }
.adventure-node.unlocked em { color: #85dba8; }
.adventure-node.completed { border-color: #927537; }
.adventure-node.completed em { color: #e8c374; }
.adventure-node.locked .node-image { filter: grayscale(.85) brightness(.72); }
.adventure-node > button { grid-column: 2; justify-self: start; max-width: 100%; margin-top: 2px; }

/* Story choices, crafting and skills. */
.adventure-quest { border-color: #35463e; }
.adventure-quest-text { color: #e0e8e3; }
.adventure-options, .adventure-actions, .recipe-grid, .skill-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.adventure-options:empty { display: none; }
.adventure-options > button, .adventure-actions > button { width: 100%; margin: 0; }
#adventureHint { margin-top: 12px; }
.hint-text {
  padding: 12px 14px;
  border-left: 3px solid #d3ad4e;
  border-radius: 0 8px 8px 0;
  background: #292518;
  color: #eedba9;
}
.recipe-grid, .skill-grid { margin-top: 16px; }
.recipe, .skill {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  min-height: 108px;
  padding: 14px;
  text-align: left;
  border: 1px solid #35433b;
  border-radius: 12px;
  background: #1a221e;
  color: var(--text);
  cursor: pointer;
}
.recipe > *, .skill > * { display: block; overflow-wrap: anywhere; }
.recipe b, .skill b { font-size: 14px; line-height: 1.45; }
.recipe small, .skill small { font-size: 12px; color: #b7c5bd; }
.recipe em { font-size: 12px; line-height: 1.5; font-style: normal; color: #ecd296; margin-top: 3px; }
.recipe.active, .skill.active { border-color: #56be86; background: #183424; box-shadow: inset 3px 0 #56be86; }
.recipe:disabled, .skill:disabled { opacity: .6; cursor: not-allowed; }
.recipe.active:disabled, .skill.active:disabled { opacity: 1; }
#adventureMissionBtn { margin-top: 2px; }

/* Tactical fight: visible boss art and separated health gauges. */
.adventure-battle { border-color: #694735; }
.adventure-boss-art {
  height: clamp(180px, 48vw, 280px);
  margin: 16px 0 20px;
  border-radius: 12px;
  border: 1px solid #554938;
  background: linear-gradient(180deg, #06100a11, #06100a99), url('/assets/bosses/boss_troika.png') center 24% / cover;
}
.adventure-hp { display: grid; gap: 8px; }
.adventure-hp > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px; font-size: 13px; }
.adventure-hp > div > b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.adventure-hp > i { display: block; height: 10px; overflow: hidden; border-radius: 99px; background: #090e0b; border: 1px solid #39433d; margin-bottom: 10px; }
.adventure-hp em { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #087b4a, #63d590); transition: width .5s ease; }
#adventureBossHpBar { background: linear-gradient(90deg, #b44f31, #eca75d); }
.adventure-actions { margin: 16px 0; }
.weapon-shop-row { padding: 14px; gap: 12px; margin: 18px 0 12px; }
.weapon-shop-row > div { min-width: 0; }
.weapon-shop-row small { line-height: 1.6; margin-top: 6px; }
.weapon-button { padding: 14px; gap: 6px 10px; min-height: 100px; }
.weapon-button small { font-size: 12px; }
.weapon-button em { line-height: 1.5; font-size: 12px; }
.adventure-journal { display: grid; gap: 0; }
.journal-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid #2c3630; }
.journal-row:first-child { padding-top: 0; }
.journal-row:last-child { padding-bottom: 0; border-bottom: 0; }
.journal-row span { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.journal-row small { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.journal-row .victory, .journal-row .reward { color: #86dcaa; }

/* Shared spacing for games, brigade, profile and shops. */
.mini-games-list { gap: 16px; }
.mini-game-card { padding: 16px; }
.mini-game-top { grid-template-columns: 32px minmax(0, 1fr) auto; gap: 10px; }
.mini-game-top h3 { font-size: 17px; margin: 0 0 6px; line-height: 1.4; }
.mini-game-top small { display: block; line-height: 1.6; }
.mini-game-icon { font-size: 25px; }
.game-level { font-size: 12px; padding-top: 3px; }
.game-meta { flex-wrap: wrap; gap: 4px 12px; line-height: 1.5; }
.game-meta b { white-space: nowrap; }
.game-progress { margin: 16px 0 8px; }
.reward-chances { gap: 8px; margin: 14px 0; }
.reward-chances span { line-height: 1.5; padding: 7px 9px; overflow-wrap: anywhere; }
.reward-chances b { display: inline-block; }
.mini-game-result:empty { display: none; }
.mini-game-result { margin-top: 12px; line-height: 1.5; }
.catala-cards { gap: 8px; padding: 10px 0 6px; margin: 12px 0 16px; }
.catala-card { width: clamp(36px, 12vw, 58px); flex: 0 1 58px; min-width: 0; }
.catala-card span { font-size: 17px; }
.dice-set { gap: 10px; padding: 10px 0 6px; margin: 12px 0 16px; flex-wrap: nowrap; }
.die { width: clamp(32px, 12vw, 62px); height: clamp(46px, 14vw, 62px); flex: 0 1 62px; min-width: 0; }
.die:hover:not(:disabled).held { transform: translateY(-8px); }
.catala-actions, .dice-actions { gap: 10px; }
.catala-actions button, .dice-actions button { min-width: 0; flex-basis: 180px; }
.discipline-rating { gap: 8px; margin-bottom: 18px; }
.discipline-rating h3 { margin: 0 0 8px; font-size: 16px; }
.mini-rating-row { grid-template-columns: 30px minmax(0, 1fr) auto; padding: 12px; gap: 6px 10px; }
.mini-rating-row span { min-width: 0; overflow-wrap: anywhere; line-height: 1.45; }
.mini-rating-row strong { font-size: 13px; }
.mini-rating-row small { line-height: 1.5; }
.brigade-tabs { gap: 6px; margin: 16px 0; padding: 5px; }
.brigade-tabs button { font-size: 13px; }
.brigade-bosses, .brigade-members { gap: 12px; }
.brigade-member { grid-template-columns: 42px minmax(0, 1fr) auto; padding: 12px; }
.brigade-member b { overflow-wrap: anywhere; }
.brigade-member small { font-size: 12px; line-height: 1.5; margin-top: 5px; }
.brigade-title > div { min-width: 0; }
.brigade-title b { overflow-wrap: anywhere; }
.brigade-stat-grid > div { min-width: 0; padding: 12px 8px; }
.brigade-stat-grid b { font-size: 19px; overflow-wrap: anywhere; }
.brigade-stat-grid small { display: block; font-size: 12px; margin-top: 4px; }
.camp-card { gap: 10px 12px; padding: 14px; grid-template-columns: 58px minmax(0, 1fr) auto; }
.camp-card .camp-portrait { width: 58px; height: 78px; grid-row: span 2; }
.camp-card .camp-info { grid-column: 2 / -1; }
.camp-card > .tag { grid-column: 2; }
.camp-card .camp-attack { grid-column: 3; max-width: 100%; white-space: normal; }
.camp-info small { line-height: 1.5; margin-top: 5px; }
.camp-hp { height: 22px; }
.camp-hp span { font-size: 11px; line-height: 20px; }
.resource-item { grid-template-columns: 28px minmax(0, 1fr); gap: 8px; }
.resource-item b { font-size: 17px; overflow-wrap: anywhere; }
.resource-item small { margin-top: 3px; }
.common-grid > div { min-width: 0; }
.common-grid b { overflow-wrap: anywhere; }
.reward-chips { gap: 8px; }
.reward-chips span { line-height: 1.6; }
.profile-pills { gap: 8px; }
.profile-lines > div { align-items: flex-start; gap: 12px; }
.profile-lines > div > :last-child { text-align: right; overflow-wrap: anywhere; }
.profile-tools { grid-template-columns: minmax(0, 1fr) repeat(3, 40px); gap: 6px; }
.profile-tools > span { min-width: 0; font-size: 12px; overflow-wrap: anywhere; }
.profile-tools button { min-height: 44px; }
.leader-row { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; padding: 12px; }
.leader-row b, .leader-row small { display: block; overflow-wrap: anywhere; }
.leader-row small { margin-top: 4px; }
.inventory-item { grid-template-columns: minmax(0, 1fr) auto; }
.inventory-item .desc, .inventory-item .bonus { line-height: 1.6; margin-top: 5px; }
.inventory-item button, .task button, .threshold button, .boss-card button { min-height: 44px; }
.task .top, .task .bottom, .threshold .row, .threshold .bottom { flex-wrap: wrap; gap: 8px 12px; }
.task > small { display: block; margin-top: 7px; }
.friend-actions button { min-height: 44px; }
.friend-main small { line-height: 1.5; }
.package-grid { gap: 12px; }
.package { min-width: 0; padding: 14px; }
.package b { font-size: 18px; overflow-wrap: anywhere; }
.package small { line-height: 1.5; margin-top: 7px; }
.stars-help { flex-wrap: wrap; gap: 10px; line-height: 1.5; }
.payment-row { gap: 10px; padding: 12px; }
.auto-box { align-items: flex-start; }
.auto-box > div, .brigade-switch > span { min-width: 0; }
.switch, .brigade-switch > i { flex-shrink: 0; }
.time-row input, .calc-card input, .friend-search-row input, .brigade-create-row input { min-height: 44px; min-width: 0; }

@media (max-width: 480px) {
  :root { --ui-gap: 12px; --ui-pad: 16px; }
  .card h2 { font-size: 18px; }
  .adventure-options, .recipe-grid, .skill-grid { grid-template-columns: minmax(0, 1fr); }
  .adventure-options button { text-align: center; }
  .recipe, .skill { min-height: 0; }
  .adventure-actions { grid-template-columns: minmax(0, 1fr); }
  #adventureMissionBtn { width: 100%; }
  .weapon-shop-row { align-items: stretch; }
  .weapon-shop-row > button { width: 100%; }
  .weapon-button { min-height: 92px; }
  .mini-game-top { grid-template-columns: 28px minmax(0, 1fr) auto; }
  .game-level { grid-column: 3; grid-row: 1; }
  .catala-cards { gap: 6px; }
  .dice-set { gap: 7px; }
  .mini-rating-row { grid-template-columns: 26px minmax(0, 1fr); gap: 6px 8px; }
  .mini-rating-row strong, .mini-rating-row small { grid-column: 2; }
  .inventory-item { grid-template-columns: minmax(0, 1fr); }
  .inventory-item button { width: 100%; }
  .escape-stats { gap: 10px; flex-wrap: wrap; }
}

@media (max-width: 360px) {
  :root { --ui-pad: 14px; }
  .topbar { padding-inline: 6px; gap: 2px; grid-template-columns: 36px auto minmax(0, 1fr) auto 36px; }
  .topbar .icon-btn { min-width: 36px; width: 36px; }
  .topbar h1 { font-size: 16px; }
  .topbar .status { font-size: 10px; }
  .adventure-node { padding: 11px; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
  .node-image { width: 48px; height: 64px; }
  .camp-card { grid-template-columns: 48px minmax(0, 1fr); }
  .camp-card .camp-portrait { width: 48px; }
  .camp-card > .tag, .camp-card .camp-attack { grid-column: 2; }
  .mini-game-card { padding: 13px; }
  .mini-game-top { grid-template-columns: 26px minmax(0, 1fr); }
  .game-level { grid-column: 2; grid-row: auto; }
  .resource-grid, .package-grid { gap: 8px; }
  .resource-item { padding: 10px; grid-template-columns: 24px minmax(0, 1fr); gap: 6px; }
  .resource-item b { font-size: 15px; }
  .profile-tools { grid-template-columns: minmax(0, 1fr) repeat(3, 36px); gap: 4px; }
  .boss-row-top { display: flex; flex-wrap: wrap; }
  .boss-row-top h3 { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .adventure-progress > i, .adventure-hp em { transition: none; }
}
