/* 0.7.6b «Единый вид» components (plan/SPEC-0.7.6b-UNIFIED-LOOK.md §3–§7, design/STYLE-BIBLE-LAST-CHANCE.md §7).
   One class per component, built only from src/tokens.css. Loaded LAST in index.html: it overrides the older per-screen rules
   (style.css and friends keep their layout; their colours were moved to the tokens). 0.7.5c areas keep their behaviour:
   the shining card frame/label, the card keys, the segmented control, the damage-number and brightness settings. */

/* ---------- base ---------- */
body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);font-size:var(--fs-m);line-height:var(--lh-text)}
h1,h2,h3{line-height:var(--lh-head)}
.section-kicker{font-family:var(--font-body);font-weight:600;letter-spacing:.08em;font-size:var(--fs-xs)}
.sr-only,.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* ---------- buttons: secondary by default, .btn-primary (alias .primary, .start-button), .btn-danger (alias .danger) ---------- */
button,.btn{border-radius:var(--radius);font-family:var(--font-body)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);min-height:40px;border:var(--bw) solid var(--c-line);background:var(--c-panel);color:var(--c-text);font-weight:500;font-size:var(--fs-m);line-height:1.2;cursor:pointer}
button:hover:not(:disabled),.btn:hover:not(:disabled){border-color:var(--c-gold-line)}
.btn:hover:not(:disabled){background:var(--c-panel-hi)}
.btn-primary,button.primary,.start-button{background:var(--c-gold);color:var(--c-ink);border-color:var(--c-gold);font-weight:600;box-shadow:var(--glow-gold),var(--sh-1)}
.btn-primary:hover:not(:disabled),button.primary:hover:not(:disabled),.start-button:hover:not(:disabled){background:var(--c-gold-hi);border-color:var(--c-gold-hi);color:var(--c-ink)}
.btn-danger,button.danger{background:transparent;color:var(--c-danger);border-color:rgb(var(--c-danger-rgb) / 65%)}
.btn-danger:hover:not(:disabled),button.danger:hover:not(:disabled){background:rgb(var(--c-danger-rgb) / 15%);border-color:var(--c-danger);color:var(--c-danger-edge)}
button:disabled,.btn:disabled{opacity:.45;cursor:default;box-shadow:none}
@media(pointer:coarse){.btn,.modal-content .button-row button,.settings-panel button{min-height:var(--tap)}.btn-primary,.modal-content button.primary{min-height:var(--tap-primary)}}

/* ---------- panel ---------- */
.panel{background:var(--c-panel);border:var(--bw) solid var(--c-line);border-radius:var(--radius);padding:var(--s-5)}
@media(max-width:850px){.panel{padding:var(--s-4)}}
.panel p{line-height:var(--lh-text)}

/* ---------- tabs: one row, scroll without a bar, active = 2 px gold underline ---------- */
.tabs-bar{display:flex;gap:var(--s-1);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;border-bottom:var(--bw) solid var(--c-line);margin:0 0 var(--s-4);padding:0;box-shadow:var(--sh-2)}
.tabs-bar::-webkit-scrollbar{display:none}
.tabs-bar>.tab{flex:0 0 auto;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--c-text-2);padding:var(--s-2) var(--s-3);min-height:var(--tap);font:500 var(--fs-m)/1.2 var(--font-body);letter-spacing:0;text-transform:none;white-space:nowrap;margin-bottom:-1px}
.tabs-bar>.tab:hover:not([aria-selected="true"]){color:var(--c-text);background:transparent}
.tabs-bar>.tab[aria-selected="true"]{color:var(--c-gold);border-bottom-color:var(--c-gold)}
.tabs-bar>.tab:focus-visible{outline:2px solid var(--c-gold);outline-offset:-2px}

/* ---------- chips, counters, reward chip ---------- */
.chip{display:inline-flex;align-items:center;gap:var(--s-1);border-radius:var(--radius-pill);padding:2px var(--s-2);font:600 var(--fs-xs)/1.4 var(--font-body);background:var(--c-panel-hi);color:var(--c-text-2);white-space:nowrap}
.chip-ok{color:var(--c-ok);background:rgb(var(--c-ok-rgb) / 14%)}
.chip-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c-gold);box-shadow:0 0 0 2px var(--c-bg)}
.reward-chip{display:inline-flex;align-items:center;gap:var(--s-1);border-radius:var(--radius-pill);padding:2px var(--s-3);background:var(--c-panel-hi);font:600 var(--fs-s)/1.4 var(--font-body);font-variant-numeric:tabular-nums;color:var(--c-gold);white-space:nowrap}

/* ---------- modal: solid scrim, no blur; the world stays visible (40%) under the level-up, the relic chest and the codex-free run modals ---------- */
#modal{background:var(--c-scrim);backdrop-filter:none;-webkit-backdrop-filter:none}
#modal[data-type="upgrade"],#modal[data-type="relic"]{background:var(--c-scrim-light)}
.modal-content{background:var(--c-panel);border:var(--bw) solid var(--c-gold-line);border-radius:var(--radius);box-shadow:var(--sh-3)}
.modal-content h2{color:var(--c-gold);font-weight:400}
.modal-content>.button-row:last-child{background:var(--c-panel)}
html[data-rotate] #modal{background:var(--c-scrim)}
html[data-rotate] #modal[data-type="upgrade"],html[data-rotate] #modal[data-type="relic"]{background:var(--c-scrim-light)}

/* ---------- toast ---------- */
.toast{background:var(--c-panel);border:var(--bw) solid var(--c-gold-line);border-radius:var(--radius);color:var(--c-text);font:500 var(--fs-m)/1.35 var(--font-body);max-width:92vw;bottom:calc(var(--s-5) + var(--safe-bottom,0px));box-shadow:var(--sh-3)}

/* ---------- settings: tabs, switches, account rows ---------- */
.settings-page .page-head{margin-bottom:var(--s-3)}
.settings-page .settings-grid,.run-settings .settings-grid,.settings-panel .settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--s-4);align-items:start}
.settings-panel .panel h2{font-size:var(--fs-l);margin:0 0 var(--s-3)}
.settings-panel .panel h3{font-family:var(--font-body);font-weight:600;font-size:var(--fs-m);margin:var(--s-4) 0 var(--s-2)}
.settings-panel .setting-row{margin:0 0 var(--s-4)}
.settings-panel .setting-note{font-size:var(--fs-xs);color:var(--c-text-3);line-height:var(--lh-text);margin:var(--s-1) 0 0}
#modal-content .settings-tabs{position:sticky;top:calc(var(--s-3) * -1);z-index:2;background:var(--c-panel)}
.switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:var(--s-3);cursor:pointer}
.switch-row>span{display:flex;flex-direction:column;min-width:0}
.switch-row.is-disabled{cursor:default;opacity:.6}
input[type="checkbox"][role="switch"]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:44px;height:24px;min-height:0;margin:0;padding:0;border-radius:var(--radius-pill);border:var(--bw) solid var(--c-line);background:var(--c-night-0);position:relative;cursor:pointer;transition:background .15s}
input[type="checkbox"][role="switch"]::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--c-text-3);transition:transform .15s,background .15s}
input[type="checkbox"][role="switch"]:checked{background:rgb(var(--c-gold-rgb) / 30%);border-color:var(--c-gold-line)}
input[type="checkbox"][role="switch"]:checked::after{transform:translateX(20px);background:var(--c-gold)}
input[type="checkbox"][role="switch"]:disabled{cursor:default}
input[type="checkbox"][role="switch"]:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}
.mixer-row input[type="checkbox"][role="switch"]{width:44px;height:24px}
.account-row{display:grid;grid-template-columns:minmax(80px,32%) minmax(0,1fr) auto;gap:var(--s-2) var(--s-3);align-items:center;padding:var(--s-3) 0;border-bottom:var(--bw) solid var(--c-line)}
.account-label{color:var(--c-text-2);font-size:var(--fs-s)}
.account-value{min-width:0;overflow-wrap:anywhere}
.account-local{color:var(--c-text-2);font-size:var(--fs-s)}
.account-row .btn{min-height:36px;padding:var(--s-1) var(--s-3)}
.account-tab .button-row,.about-tab .about-buttons{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.account-tab .button-row .btn,.about-buttons .btn{flex:1 1 160px}
.account-danger-zone{margin-top:var(--s-6);padding-top:var(--s-4);border-top:var(--bw) solid var(--c-line)}
.account-danger-zone .btn{width:100%}
.about-tab p{color:var(--c-text-2)}
.about-buttons{margin-top:var(--s-4)}
.about-contacts{margin-top:var(--s-3)}
@media(max-width:420px){.account-row{grid-template-columns:1fr auto}.account-row .account-label{grid-column:1/-1}}

/* ---------- account deletion ---------- */
.delete-flow{max-width:520px;margin:0 auto;text-align:left}
.delete-flow h2{text-align:center}
.delete-points{margin:var(--s-4) 0;padding-left:var(--s-5);display:grid;gap:var(--s-2);color:var(--c-text)}
.delete-word-label{display:block;margin:var(--s-4) 0 var(--s-2);color:var(--c-text-2)}
.delete-word{width:100%;text-transform:uppercase;letter-spacing:.08em;font:600 var(--fs-l)/1.2 var(--font-body);border-radius:var(--radius);border:var(--bw) solid var(--c-line);background:var(--c-night-0);color:var(--c-text);padding:var(--s-3)}
.delete-word:focus{outline:2px solid var(--c-danger);outline-offset:1px}
.delete-error{min-height:1.4em;color:var(--c-danger);font-size:var(--fs-s);margin:var(--s-2) 0 0}
.delete-done{text-align:center;font-size:var(--fs-l);color:var(--c-text)}
.delete-flow .button-row{justify-content:center}

/* ---------- legal line, legal window, FAQ ---------- */
.legal-line{background:none!important;border:0!important;box-shadow:none!important;min-height:0!important;padding:var(--s-1) var(--s-2);color:var(--c-text-3);font:400 var(--fs-xs)/1.3 var(--font-body);text-decoration:underline;text-underline-offset:2px;cursor:pointer;pointer-events:auto}
.legal-line:hover{color:var(--c-text-2)}
.title-screen{position:relative}
.title-legal{position:absolute;left:0;right:0;bottom:calc(var(--s-2) + var(--safe-bottom,0px));text-align:center}
.lobby-footer{flex-wrap:wrap;gap:var(--s-2) var(--s-4)}
.legal-window,.faq-window{text-align:left;max-width:760px;margin:0 auto}
.legal-window h2,.faq-window h2{text-align:center}
.legal-edition{text-align:center;color:var(--c-text-3);font-size:var(--fs-xs);margin:0 0 var(--s-3)}
.legal-edition a,.legal-body a,.about-contacts a{color:var(--c-gold)}
.legal-body h3{font-size:var(--fs-xl);color:var(--c-gold);margin:var(--s-2) 0 var(--s-3)}
.legal-body p,.legal-body li{color:var(--c-text);font-size:var(--fs-m);line-height:var(--lh-text)}
.legal-body ul{padding-left:var(--s-5);display:grid;gap:var(--s-2)}
.legal-table{width:100%;border-collapse:collapse;font-size:var(--fs-s)}
.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:var(--s-2);border-bottom:var(--bw) solid var(--c-line)}
.legal-table th{color:var(--c-text-2);font-weight:600}
@media(max-width:600px){.legal-table thead{display:none}.legal-table tr{display:block;padding:var(--s-2) 0;border-bottom:var(--bw) solid var(--c-line)}.legal-table td{display:block;border:0;padding:2px 0}.legal-table td:before{content:attr(data-label) ': ';color:var(--c-text-2)}}
.faq-list dt{font-weight:600;color:var(--c-gold);margin-top:var(--s-3)}
.faq-list dd{margin:var(--s-1) 0 0;color:var(--c-text)}

/* ---------- compact HUD (§4.1): timer + one line in the centre, portrait + HP + level left, pause right, small slots ---------- */
#arena .hud{text-shadow:0 1px 2px var(--c-night-0);gap:var(--s-2)}
#arena .hud-hero{min-width:0;gap:var(--s-2);padding:var(--s-1) var(--s-2) var(--s-1) var(--s-1);background:var(--c-hud);border:0;border-radius:var(--radius-pill)}
#arena .hud-hero .portrait{display:block;width:32px;height:32px;border-radius:50%;flex:0 0 auto;background-color:var(--c-panel)}
#arena .hud-vitals{flex:0 0 auto;min-width:0}
#arena #hud-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0}
#arena .health{width:120px;height:12px;border:0;border-radius:var(--radius-pill);overflow:hidden;background:rgb(var(--c-night-0-rgb) / 85%)}
#arena .health span{font:600 var(--fs-xs)/12px var(--font-body);font-variant-numeric:tabular-nums;color:var(--c-text);text-shadow:0 1px 1px var(--c-night-0)}
#arena #hud-level{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--c-gold);color:var(--c-ink);font:600 var(--fs-xs)/1 var(--font-body);text-shadow:none;flex:0 0 auto}
#arena .hud-center{min-width:0;padding:var(--s-1) var(--s-3);background:var(--c-hud);border:0;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;gap:2px;max-width:min(52vw,420px)}
#arena .hud-center #hud-wave{display:none}
#arena .hud-center strong#hud-time{font:600 var(--fs-2xl)/1.1 var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:1px;margin:0}
#arena .hud-center .hud-line{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-s);letter-spacing:0;color:var(--c-text-2);white-space:nowrap;max-width:100%}
#arena .hud-center .hud-line span{display:inline-flex;align-items:center;gap:3px;letter-spacing:0;font-size:inherit;color:inherit}
#arena .hud-center .hud-line #hud-map{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}
#arena .hud-center .hud-line b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--c-text)}
#arena .hud-center .hud-line .gold b{color:var(--c-gold)}
#arena .hud-center .hud-line .currency-art{width:14px;height:14px}
#arena .hud-center .hud-ico{font-style:normal;color:var(--c-text-3)}
#arena .hud-center .run-ranking-status{margin:0;max-width:100%;font-size:var(--fs-xs)}
#arena .hud-right{display:flex;height:auto;min-height:0;padding:var(--s-1);gap:0;background:var(--c-hud);border:0;border-radius:var(--radius-pill);max-width:none}
#arena .hud-right #codex-button{display:none}
#arena .hud-right #pause-button{width:36px;height:36px;border-radius:50%;font-size:var(--fs-l);display:grid;place-items:center;padding:0;background:var(--c-panel);border:var(--bw) solid var(--c-line)}
@media(pointer:coarse){#arena .hud-right #pause-button{width:44px;height:44px}}
@media(max-width:550px){#arena .health{width:96px}#arena .hud-center strong#hud-time{font-size:var(--fs-xl)}#arena .hud-center{padding:2px var(--s-2)}#arena .hud-center .hud-line{font-size:var(--fs-xs);gap:4px}#arena .hud-center .hud-line #hud-map{max-width:84px}}
@media(max-width:380px){#arena .hud-center .hud-line #hud-map{display:none}#arena .hud-center .hud-line #hud-map+.hud-sep{display:none}}
/* slots: no group captions; 28 px (phone 24), relics 20 px after them */
#arena .equipment .equipment-label{display:none}
#arena .equipment{top:calc(max(18px,var(--safe-top)) + 52px);gap:var(--s-1)}
#arena .equipment-group{gap:var(--s-2)}
#arena .equipment-items{gap:3px}
#arena .equipment .slot{width:28px;height:28px;font-size:var(--fs-l);border-radius:var(--radius);border:var(--bw) solid var(--c-line);background:rgb(var(--c-night-0-rgb) / 65%);background-size:contain}
#arena .equipment .slot small{font:600 var(--fs-xs)/1 var(--font-body);right:1px;bottom:0}
#arena .equipment .slot.empty{opacity:.35}
#arena .equipment .relic-strip .slot,#arena .equipment .relic-strip .relic-slot{width:20px;height:20px}
@media(max-width:850px){#arena .equipment{top:calc(max(12px,var(--safe-top)) + 50px)}#arena .equipment .slot{width:24px;height:24px;font-size:var(--fs-m)}}
@media(max-width:550px){#arena .equipment{top:calc(max(12px,var(--safe-top)) + 48px)}}
.fps-counter{position:absolute;left:calc(var(--s-2) + var(--safe-left,0px));bottom:calc(var(--s-2) + var(--safe-bottom,0px));z-index:3;pointer-events:none;font:600 var(--fs-xs)/1 var(--font-body);font-variant-numeric:tabular-nums;color:var(--c-text-2);background:var(--c-hud);padding:2px 6px;border-radius:var(--radius-pill)}
@media(pointer:coarse){.fps-counter{left:auto;right:calc(var(--s-2) + var(--safe-right,0px));top:calc(84px + var(--safe-top,0px));bottom:auto}}

/* ---------- pause ---------- */
.pause-line{color:var(--c-text);font-size:var(--fs-m)}
.pause-note{color:var(--c-text-3);font-size:var(--fs-xs)}
.modal-content .pause-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2)}
.modal-content .pause-actions button{min-width:0}
.modal-content .pause-actions #resume-game{grid-column:1/-1}

/* ---------- level-up (§4.2): compact card, rarity = frame colour ---------- */
#modal[data-type="upgrade"] .modal-content{padding:var(--s-4) var(--s-4) var(--s-3);width:min(980px,100%);max-height:calc(100svh - 24px);overflow:auto}
.modal-content .choice-title{font-size:var(--fs-2xl);margin:0 0 var(--s-1)}
.modal-content .slot-summary{font-size:var(--fs-xs);color:var(--c-text-2);margin:0 0 var(--s-3);letter-spacing:0}
.choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);margin:0 0 var(--s-3)}
.choices .card-choice{--tier:var(--tier-color,var(--r-common));position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--s-2);min-height:0;padding:var(--s-4) var(--s-3) var(--s-3);text-align:center;background:var(--c-panel);border:2px solid var(--tier);border-radius:var(--radius);color:var(--c-text);overflow:visible}
.choices .card-choice:hover{background:var(--c-panel-hi);transform:translateY(-2px);box-shadow:0 0 0 1px var(--tier)}
.choices .card-choice.tier-uncommon{border-left-width:2px}
.choices .card-choice.tier-mythic{border-style:solid}
.choices .card-choice.tier-legendary{box-shadow:0 0 14px rgb(var(--r-legendary-rgb) / 25%)}
.choices .card-choice.tier-mythic{box-shadow:0 0 14px rgb(var(--r-mythic-rgb) / 25%)}
.card-choice .item-icon{width:48px;height:48px;margin:0;font-size:var(--fs-3xl);flex:0 0 auto}
.card-choice.synthesis-card .item-icon{width:48px;height:48px}
.card-choice .card-text{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;width:100%}
.card-choice strong{font:600 var(--fs-l)/1.2 var(--font-body);color:var(--c-text);overflow-wrap:anywhere;hyphens:auto}
.card-choice .card-tag{display:block;font-size:var(--fs-xs);color:var(--c-text-2);letter-spacing:0;line-height:1.3}
.card-choice .choice-effect{display:block;color:var(--tier);font:500 var(--fs-s)/1.3 var(--font-body);font-variant-numeric:tabular-nums;margin:2px 0 0;overflow-wrap:anywhere}
.card-choice .card-corner{position:absolute;top:var(--s-1);right:var(--s-2);display:flex;align-items:center;gap:var(--s-1);font-size:var(--fs-xs)}
.card-choice .card-corner kbd{font:600 var(--fs-xs)/1 var(--font-body);color:var(--c-text-3);border:var(--bw) solid var(--c-line);border-radius:var(--radius);padding:2px 4px}
@media(pointer:coarse){.card-choice .card-corner kbd{display:none}}
.card-choice .card-mark{color:var(--c-gold);font-size:var(--fs-s);line-height:1}
.card-choice .card-mark.stronger{color:var(--c-ok)}
.card-choice .choice-details{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);z-index:5;width:max(100%,240px);max-width:min(320px,92vw);display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-3);text-align:left;background:var(--c-bg);border:var(--bw) solid var(--tier);border-radius:var(--radius);box-shadow:var(--sh-3);font-size:var(--fs-s);line-height:1.4;color:var(--c-text);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s 0s,visibility 0s .12s}
.card-choice .choice-details b{color:var(--tier)}
.card-choice .choice-details-effect{color:var(--c-text-2);font-variant-numeric:tabular-nums}
@media(hover:hover) and (pointer:fine){.card-choice:hover .choice-details{opacity:1;visibility:visible;transition-delay:.3s,.3s}}
.card-choice.show-details .choice-details{opacity:1;visibility:visible;transition-delay:0s,0s}
.card-choice.show-details .choice-shine-tip{display:none}
.choice-details-hint{font-size:var(--fs-xs);color:var(--c-text-3);margin:0 0 var(--s-2)}
/* phones, portrait: four rows of ~76 px, icon left */
@media(max-width:600px) and (orientation:portrait),(max-width:600px) and (min-height:600px){
 .choices{grid-template-columns:1fr;gap:var(--s-2)}
 .choices .card-choice{flex-direction:row;align-items:center;text-align:left;min-height:76px;padding:var(--s-2) var(--s-6) var(--s-2) var(--s-3);gap:var(--s-3)}
 .card-choice .item-icon{width:40px;height:40px;font-size:var(--fs-2xl)}
 .card-choice .card-text{align-items:flex-start}
 .card-choice strong{font-size:var(--fs-m)}
 .card-choice .choice-details{left:var(--s-2);right:var(--s-2);transform:none;width:auto;max-width:none}
}
/* landscape phones: 4 columns, height by content, no scroll */
@media(max-height:520px) and (min-width:650px){
 #modal[data-type="upgrade"] .modal-content{padding:var(--s-2) var(--s-3)}
 .modal-content .choice-title{font-size:var(--fs-xl)}
 .modal-content .slot-summary{margin-bottom:var(--s-2)}
 .choices .card-choice{padding:var(--s-3) var(--s-2) var(--s-2);gap:var(--s-1)}
 .card-choice .item-icon{width:36px;height:36px}
 .card-choice strong{font-size:var(--fs-m)}
}
/* the 0.7.5c prize status: its text for the first seconds of a run, then a 16 px flag chip (the text stays as the title) */
#arena .hud-center .run-ranking-status.is-chip{font-size:0;line-height:0;width:16px;height:16px;margin:0 auto;display:block;overflow:hidden}
#arena .hud-center .run-ranking-status.is-chip::before{content:'⚑';display:block;font-size:var(--fs-s);line-height:16px;color:var(--c-text-3)}
#arena .hud-center .run-ranking-status.is-chip[data-ranked="true"]::before{color:var(--c-gold)}
/* phones: the world name leaves the HUD line (it is in the pause line); kills · gold stay */
@media(max-width:550px){#arena .hud-center .hud-line #hud-map,#arena .hud-center .hud-line #hud-map+.hud-sep{display:none}}
/* camp header on phones: no 6–9 px captions any more — icons and numbers only, the account state lives in «Аккаунт» */
@media(max-width:550px){.topbar .wallet small,.topbar .profile-chip small{display:none}.topbar .profile-chip strong{white-space:nowrap;overflow:visible;max-width:none}}
@media(max-width:550px){.tabs-bar>.tab{padding:var(--s-2) var(--s-2);font-size:var(--fs-s)}}
.tabs-bar>.tab:focus-visible{outline:0;box-shadow:inset 0 -2px 0 var(--c-gold-hi);color:var(--c-gold-hi)}

/* ---------- achievements (§7): one row on phones (72 px), three columns on PC ---------- */
.achievements-page .ach-head{margin:var(--s-1) 0;color:var(--c-gold);font-size:var(--fs-l)}
.achievements-page .ach-intro summary,.ach-card .ach-more summary{cursor:pointer;color:var(--c-text-3);font-size:var(--fs-xs);list-style:none}
.achievements-page .ach-intro summary::-webkit-details-marker,.ach-card .ach-more summary::-webkit-details-marker{display:none}
.achievements-page .ach-intro p{color:var(--c-text-2);font-size:var(--fs-s)}
.achievements-page .achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}
.ach-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"icon main side" "more more more";gap:var(--s-1) var(--s-3);align-items:start;padding:var(--s-3);text-align:left}
.ach-card>:first-child{grid-area:icon;width:48px;height:48px;margin:0}
.ach-card .ach-main{grid-area:main;min-width:0}
.ach-card .ach-main h2{font:600 var(--fs-m)/1.25 var(--font-body);margin:0;color:var(--c-text)}
.ach-card .ach-cond{margin:2px 0 var(--s-2);font-size:var(--fs-s);line-height:1.3;color:var(--c-text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ach-card .progress-track{height:6px;border-radius:var(--radius-pill);overflow:hidden;margin:0}
.ach-card .ach-count{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--c-text-3);font-variant-numeric:tabular-nums}
.ach-card .ach-side{grid-area:side;display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-1)}
.ach-card .achievement-seal{position:static;font-size:var(--fs-xs);letter-spacing:1px;color:var(--c-gold)}
.ach-card .ach-more{grid-area:more}
.ach-card .ach-more .star-rewards{margin-top:var(--s-1)}
.ach-card .star-rewards{font-size:var(--fs-xs)}
@media(max-width:1100px){.achievements-page .achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.achievements-page .achievement-grid{grid-template-columns:1fr;gap:var(--s-2)}.ach-card{min-height:72px;padding:var(--s-2) var(--s-3)}}

/* 0.7.5o: reserve focus/shadow space inside scrolling panels; no document overflow masking. */
.modal-content{min-width:0;max-height:calc(100svh - 28px - var(--safe-top,0px) - var(--safe-bottom,0px));overflow:auto;scroll-padding:12px;overflow-wrap:anywhere}
.modal-content .button-row{padding:10px 8px 8px;gap:10px;min-width:0;mask-image:none;-webkit-mask-image:none}
.modal-content .button-row button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.modal-content :is(button,a,input,select,textarea):focus-visible{outline-offset:2px}
.modal-content .pause-actions button{width:100%;min-height:44px;padding:12px 8px;white-space:normal}
@media(max-width:650px){.modal-content .pause-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Details expand the selected card in the scroll area instead of escaping its clipping ancestor. */
#modal[data-type="upgrade"] .modal-content{padding:20px;scroll-padding:14px}
#modal[data-type="upgrade"] .choices{padding:10px 7px 7px;align-items:start;min-width:0}
.card-choice{min-width:0;max-width:100%}
.card-choice .choice-details{position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;width:100%;max-width:100%;display:none;opacity:1;visibility:visible;transition:none;box-shadow:none;overflow-wrap:anywhere;pointer-events:none;flex:none;margin-top:6px}
.card-choice.show-details .choice-details,.card-choice:focus-visible .choice-details{display:flex}
@media(hover:hover) and (pointer:fine){.card-choice:hover .choice-details{display:flex}}
.choice-shine-label{max-width:calc(100% - 8px);white-space:normal;text-align:center;line-height:1.25}
.choice-shine-tip{position:static;left:auto;top:auto;transform:none;width:100%;max-width:100%;box-shadow:none}
@media(max-width:600px) and (orientation:portrait),(max-width:600px) and (min-height:600px){
 #modal[data-type="upgrade"] .modal-content{padding:14px 10px}
 .choices .card-choice{flex-wrap:wrap}.card-choice .card-text{flex:1 1 0;width:auto}.card-choice .choice-details{flex-basis:100%}
}
/* Pixel cross: the icon is a 3px grid, the entire button is at least 44 physical CSS pixels even at 85% UI scale. */
.dialog-close-row{position:sticky;top:0;z-index:9;display:flex;justify-content:flex-end;pointer-events:none;margin:0 0 6px;padding:0;min-width:0}
.dialog-close-row .pixel-close{display:grid;place-items:center;pointer-events:auto;flex:0 0 auto;width:max(44px,calc(44px / var(--ui-scale,1)));height:max(44px,calc(44px / var(--ui-scale,1)));min-width:44px;min-height:44px;margin:0;padding:0;border:1px solid var(--c-gold-line);border-radius:0;background:var(--c-panel);color:var(--c-gold);box-shadow:none}
.dialog-close-row .pixel-close:hover{color:var(--c-gold-hi);border-color:var(--c-gold);background:var(--c-panel-hi)}
.pixel-close-icon{display:block;position:relative;width:15px;height:15px;pointer-events:none}
.pixel-close-icon:before{content:'';position:absolute;left:0;top:0;width:3px;height:3px;background:currentColor;box-shadow:12px 0 currentColor,3px 3px currentColor,9px 3px currentColor,6px 6px currentColor,3px 9px currentColor,9px 9px currentColor,0 12px currentColor,12px 12px currentColor}
/* The codex used its own text cross; retain its bottom action but show the common upper-right control. */
#modal-content #close-codex-top{display:none}
#main-content>.section-close-row{margin:8px 0 0;top:var(--safe-top,0px)}
#main-content>.section-close-row+section.page{padding-top:8px}
#main-content :is(.panel,.skin-choice,.relic-panel){min-width:0;overflow-wrap:anywhere}
#main-content :is(.skin-filter,.skin-filter label,.settings-panel,.setting-row){min-width:0}
#main-content .skin-filter select{max-width:100%}

.modal-content>.button-row:last-child{padding:10px 8px 8px;mask-image:none;-webkit-mask-image:none}

/* Sign art lives beside the clipped HP fill. Reserve its old footprint so the three HUD groups still fit 360px. */
#arena .hud-vitals{position:relative;padding-right:28px}
#arena .health{width:92px}
#arena .hud-vitals>.pa-hud-sign{right:0;top:50%;width:24px;height:24px;transform:translateY(-50%)}
#arena .hud-vitals>.pa-hud-sign b{right:0;bottom:-4px}
@media(max-width:550px){#arena .health{width:68px}}
