/* ═══════════════════════════════════════════════════════════════════════════
   LIGHTCONE · 25 — A TÖRVÉNY  (law group, vonat 2026-10-01)
   A keresztmetszeti szabályok és a közös primitívek. Minden szám tokenből.
   1. a gomb-, mező- és harmonika-alapértelmezés a panelekben/modálokban (osztálytalan
      és recept nélküli vezérlőkre — nulla-közeli specificitás, minden osztály-szabály felülírja)
   2. a gomb-nyelv: a régi szöveges gomb-osztályok a .btn receptre ültetve
   3. ikon-gombok (négyzet) — a 30-shells záróin TÚLI tagok
   4. a nagybetű-törvény kivételei (név-csatornák)
   5. közös primitívek: settings-*, tx-readout-*, cdetail-block*, info-icon, pane-tab*,
      table/dl/prose/guide-body, ongoing-bar/transit-bar (→ .meter), modál-állapot :has
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1a. GOMB-ALAP a panelekben és modálokban.
   Specificitás 0,0,1 (a hatókör és a kivétel-lista :where-ben) — a 10-base `button`
   resetjét a betöltési sorrend veri, BÁRMELY osztály-szabály ezt veri.
   KIVÉTEL (négyzet / glif / sor / fül — saját geometriájuk van): .info-icon, .rail-btn,
   .fab-pill, .mv-icon-btn, .m-ibtn, .panel-collapse, .proxy-door, *-close, .feed-jump,
   .feed-chip, .atlas-chip, .chip, .tab, .pane-tab, .cmodal-tab, .system-tab, .mv-tab,
   .acc-head, .tx-group-head, .tx-more, .tx-dismiss, .feed-flag-btn, .imp-min-btn,
   .moon-toggle-btn, .colony-pager-btn, .intercept-track-jump, .fleet-yard-row, .remedy-btn,
   .colony-row. min-height (nem height): a recept nélküli többsoros sor-gomb nőhet. */
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  button:where(:not(.info-icon, .rail-btn, .fab-pill, .mv-icon-btn, .m-ibtn, .panel-collapse, .proxy-door, [class*="-close"],
                     .feed-jump, .feed-chip, .atlas-chip, .chip, .tab, .pane-tab, .cmodal-tab, .system-tab, .mv-tab, .acc-head,
                     .tx-group-head, .tx-more, .tx-dismiss, .feed-flag-btn, .imp-min-btn, .moon-toggle-btn, .colony-pager-btn,
                     .intercept-track-jump, .fleet-yard-row, .remedy-btn, .colony-row)) {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--gap-s);
    min-height: var(--ctl-h); padding: 0 var(--ctl-pad-x);
    font-size: var(--fs-btn); font-weight: 500; letter-spacing: var(--ls-btn); line-height: 1;
    white-space: nowrap; min-width: 0;
    color: var(--accent); background: var(--g-06);
    border: var(--bw) solid var(--g-30); border-radius: var(--r);
    cursor: pointer; text-shadow: none;
}
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  button:where(:not([class]):hover:not(:disabled)) { background: var(--g-12); border-color: var(--surface-edge-strong); color: var(--accent-bright); }
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  button:where(:not([class]).active, :not([class]).on, :not([class])[aria-pressed="true"]) { background: var(--g-18); border-color: var(--accent); color: var(--text-bright); }
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  button:where(:disabled) { opacity: .45; cursor: default; }

/* ── 1b. MEZŐ-ALAP: input / select / textarea = a .ctl recept, ugyanaz a magasság, mint a gomb.
   (pipa, rádió, csúszka, szín, fájl NEM — azoknak saját recept). Specificitás 0,0,1. */
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  :is(input:where(:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="hidden"], [type="image"])), select, textarea) {
    height: var(--ctl-h); padding: 0 var(--ctl-pad-x); min-width: 0; max-width: 100%;
    font-size: var(--fs-body); letter-spacing: var(--ls-body); line-height: 1;
    color: var(--text-bright); background: var(--g-04);
    border: var(--bw) solid var(--g-22); border-radius: var(--r);
    vertical-align: middle;
}
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  :is(input, select, textarea):where(:focus) { border-color: var(--accent); background-color: var(--g-06); }
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  textarea { height: auto; min-height: calc(var(--ctl-h) * 3); padding: var(--pad-y) var(--ctl-pad-x); line-height: var(--lh); resize: vertical; }
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content,
       .planet-content, .atlas-content, .missions-content)
  select {
    appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: calc(var(--ctl-pad-x) + 12px);
    background-image: linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%);
    background-position: calc(100% - 11px) 50%, calc(100% - 7px) 50%; background-size: 4px 4px, 4px 4px; background-repeat: no-repeat;
}
select option, select optgroup { background: var(--bg-base); color: var(--text-base); }

/* ── 1c. A pipa: foszfor-négyzet mindenütt (a .check recept mérete) */
input[type="checkbox"] {
    appearance: none; -webkit-appearance: none; position: relative; flex: none;
    width: 12px; height: 12px; margin: 0; cursor: pointer;
    background: var(--g-04); border: var(--bw) solid var(--accent-deep); border-radius: var(--r);
}
input[type="checkbox"]:hover { border-color: var(--accent); }
input[type="checkbox"]:checked { border-color: var(--accent); background: var(--g-16); }
input[type="checkbox"]:checked::after {
    content: "✓"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    font-size: var(--fs-btn); line-height: 1; color: var(--accent-bright);
}
input[type="checkbox"]:disabled { opacity: .45; cursor: default; }
input[type="radio"], input[type="range"] { accent-color: var(--accent); color-scheme: dark; }

/* ── 1d. Osztálytalan harmonika-fej: a <summary> = alcím-sor (10 bold), ▸/▾ jel.
   A saját receptű nyitók (.mv-more, .brief-more, .eg-collector, .mv-block) kimaradnak. */
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content)
  :where(details:not(.mv-more, .brief-more, .eg-collector, .mv-block)) > summary:where(:not([class])) {
    display: flex; align-items: center; gap: var(--gap); list-style: none;
    min-height: var(--row-h); padding: var(--gap-s) var(--pad-x);
    font-weight: var(--fw-bold); letter-spacing: var(--ls-head); color: var(--text-bright);
    cursor: pointer; user-select: none;
}
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content)
  :where(details:not(.mv-more, .brief-more, .eg-collector, .mv-block)) > summary:where(:not([class]))::before { content: "▸"; color: var(--accent); width: 10px; flex: none; }
:where(.aside-pane, .narrative-panel, .detail-modal-card, .system-content, .fleet-modal-content, .seti-modal-content)
  :where(details[open]:not(.mv-more, .brief-more, .eg-collector, .mv-block)) > summary:where(:not([class]))::before { content: "▾"; }
summary::-webkit-details-marker { display: none; }

/* ── 2. A GOMB-NYELV: a régi szöveges gomb-osztályok a .btn receptre (a csoport-fájlok,
   amelyek UTÁNAM töltődnek, finomíthatják). A .remedy-btn többsoros sáv — nem ide tartozik. */
/* (mega-vonat ui #8) a régi gomb-osztályok a 20-components `.btn` receptjének szelektor-listáján ülnek — EGY deklaráció; itt csak a hover marad */

:is(.petition-btn, .cmodal-foot-btn, .si-btn, .colony-reinforce-btn, .colony-requestship-btn,
.colony-emigrate-btn, .colony-cohort-btn, .colony-alert-btn, .colony-extract-btn, .colony-system-btn,
.colony-invest-btn, .colony-message-btn, .colony-locate-btn, .colony-relocate-btn, .colony-yards-btn,
.feed-focus-btn, .fleet-add-btn, .tx-send-btn, .feed-reply-btn, .feed-succ-btn, .feed-catchup-btn,
.fleet-abandon-btn, .fleet-deroute-btn, .fleet-history-btn, .fleet-recycle-btn, .fleet-redeploy-btn, .fleet-refit-btn,
.fleet-reorder-btn, .fleet-retire-btn, .grave-btn, .hangar-send-btn, .install-build-btn, .landfall-btn, .mind-recap-btn,
.mission-cmd-btn, .mission-rename-btn, .moon-colonize-btn, .moon-console-btn, .moon-icedome-btn, .pc-action-btn, .pv-bio-btn,
.rogue-found-btn, .species-info-btn, .sysrow-sow-btn, .system-compose-btn, .tech-bc-btn, .tx-mode-btn, .ark-lifeboat-btn,
.cdetail-more-btn, .end-veil-btn, .probe-dispatch-btn, .probe-add-waypoint-btn, .view-system-btn, .composer-open-btn,
.expedition-btn, .terraform-btn):hover:not(:disabled) {
    background: var(--g-12); border-color: var(--surface-edge-strong); color: var(--accent-bright);
}
/* a jelentés-színek: a veszélyes tett piros, a dekódolás lila (a stílus jelent) */
.feed-archive-btn:hover, .feed-restore-btn:hover, .install-decommission-btn:hover, .install-scuttle-btn:hover { color: var(--danger); border-color: var(--danger); background: rgba(255,77,77,.08); }
.feed-decode-btn { color: var(--alien-violet-text); border-color: rgba(184,166,255,.4); background: rgba(184,166,255,.06); }
.feed-decode-btn:hover { color: var(--alien-violet-text); border-color: var(--alien-violet-bright); background: rgba(184,166,255,.14); }
.tech-bc-btn.active, .tx-mode-btn.active { background: var(--g-18); border-color: var(--accent); color: var(--text-bright); }
/* a tiltott TELI marad, csak halkabb */
:is(.cmodal-foot-btn, .colony-invest-btn, .colony-extract-btn, .colony-message-btn, .colony-relocate-btn,
    .colony-requestship-btn, .colony-cohort-btn, .colony-reinforce-btn, .colony-emigrate-btn):is(:disabled, .is-disabled) { opacity: .45; cursor: default; }
.btn:hover:not(:disabled), .btn:disabled { text-shadow: none; }

/* ── 3. IKON-GOMBOK: négyzet a vezérlő-magasságon (a .btn--icon). A 30-shells záróin
   (detail/system/fleet/seti/missions/atlas/planet-close) túli tagok. */
.info-icon, .panel-collapse, .proxy-door, .system-rename-btn, .bridge-close, .probe-command-close, .realm-close,
.planetarium-close, .info-popover-close, .event-banner .event-banner-close, .build-hud-cancel, .evac-info-modal .evac-modal-close,
.fleet-history-head button, .sf-close, .fg-close, .verify-bar .verify-bar-close, body.m-panel-open .m-panel-close {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: var(--ctl-h); height: var(--ctl-h); padding: 0; margin: 0;
    font-size: var(--fs-body); font-weight: 400; font-style: normal; line-height: 1;
    color: var(--text-muted); background: transparent;
    border: var(--bw) solid var(--surface-edge); border-radius: var(--r);
    cursor: pointer; text-shadow: none;
}
.info-icon { font-style: italic; font-weight: var(--fw-bold); }
.info-icon.pane-info { color: var(--text-dim); }
:is(.info-icon, .panel-collapse, .proxy-door, .system-rename-btn, .bridge-close, .probe-command-close, .realm-close,
    .planetarium-close, .info-popover-close, .event-banner-close, .build-hud-cancel, .evac-modal-close, .sf-close, .fg-close,
    .verify-bar-close, .m-panel-close):hover,
.info-icon.pane-info:focus-visible, .fleet-history-head button:hover {
    color: var(--accent-bright); border-color: var(--accent); background: var(--g-08); text-shadow: none;
}

/* ── 4. A NAGYBETŰ-TÖRVÉNY KIVÉTELEI: a név-csatornák (a JS upperKeepGreek-kel írja
   a nevet; a CSS nem ront rá). A zárt <select> is — az opciókat a JS nagybetűzi. */
input, textarea, [contenteditable], .proper-name, .proper-name *, .pn, .star-name, .feed-jump, .exp-system-name,
.ar-name, .sar-name, .sr-name, .walker-home, .ongoing-label, .pc-redirect-resolved,
select, option, optgroup,
.system-name-text, .proxy-sel-name, .proxy-stats, .grave-star, .creply-text,
.unit-c, .num-hl .unit-c, .ta-label .unit-c { text-transform: none; }
::placeholder { text-transform: uppercase; }
th, dt { text-transform: uppercase; }

/* ── 5a. SETTINGS-* — a szekció (.sec) és az alcím (10 bold) */
.settings-group { padding: var(--pad-y) var(--pad-x); border-top: var(--bw) solid var(--line); border-bottom: 0; margin: 0; }
.settings-group:first-child { border-top: 0; }
.settings-group.focus-flash { animation: feed-focus-flash 1.4s ease-out 1; }
.settings-label {
    display: block; margin: 0 0 var(--gap); min-width: 0;
    font-size: var(--fs-body); font-weight: var(--fw-bold); letter-spacing: var(--ls-head); line-height: 1.2;
    color: var(--text-bright); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.settings-sublabel {
    display: block; margin: var(--sec-gap) 0 var(--gap);
    font-size: var(--fs-body); font-weight: var(--fw-bold); letter-spacing: var(--ls-head); color: var(--text-muted);
}
.settings-divider { margin: var(--sec-gap) 0; border-top: var(--bw) solid var(--line); }
.settings-hint { margin-top: var(--gap); font-size: var(--fs-body); color: var(--text-muted); line-height: var(--lh); }
/* harmonika: a JS a .settings-label-re teszi az .acc-head-et, a csoportra az .acc-collapsed-et (contract) */
.settings-label.acc-head {
    display: flex; align-items: center; gap: var(--gap); min-height: var(--row-h); margin-bottom: 0;
    cursor: pointer; user-select: none;
}
.settings-label.acc-head::before { content: "▾"; flex: none; width: 10px; color: var(--accent); font-weight: 400; }
.settings-group.acc-collapsed .settings-label.acc-head::before { content: "▸"; }
.settings-group.acc-collapsed > *:not(.settings-label) { display: none; }
.settings-group:not(.acc-collapsed) > .settings-label.acc-head { margin-bottom: var(--gap); }
.settings-label .acc-badge { margin-left: auto; }

/* mező: a .ctl recept teljes szélességben */



/* pipa-sor: a .check recept; a négyzet az ELSŐ sorhoz igazodik (többsoros címke is) */
.settings-checkbox, .pop-valve-line, .mind-order-row, label.row {
    display: flex; align-items: flex-start; gap: var(--gap); min-height: var(--ctl-h);
    padding: calc((var(--ctl-h) - var(--lh) * 1em) / 2) 0;
    font-size: var(--fs-body); color: var(--text-base); cursor: pointer;
}
.settings-checkbox > input[type="checkbox"], .pop-valve-line > input[type="checkbox"],
.mind-order-row > input[type="checkbox"], label.row > input[type="checkbox"] { margin-top: calc((var(--lh) * 1em - 12px) / 2); }
.pop-valve-line > input[type="checkbox"], .mind-order-row:has(.mind-order-param) > input[type="checkbox"] { margin-top: calc((var(--ctl-h) - 12px) / 2); }
/* [mega-vonat 10-03 UI-8] a belépő beleegyezés-sora (login.html .privacy-label): ugyanez a pipa-sor — a törzs betűje (volt inline 13 px),
   token-térköz; a többsoros címke törhet, a négyzet az első sorhoz igazodik. A pipa a 12 px-es recept (a login `.field input`
   mező-geometriáját a nagyobb specificitás veri). */
.privacy-label { display: flex; align-items: flex-start; gap: var(--gap); cursor: pointer; font-size: var(--fs-body); line-height: var(--lh); }
.privacy-label > input[type="checkbox"] { flex: none; width: 12px; height: 12px; padding: 0; margin-top: calc((var(--lh) * 1em - 12px) / 2); }
.pop-valve-line:has(input[type="number"]), .mind-order-row:has(.mind-order-param) { padding: 0; }

/* ── 5b. TX-READOUT — a .kv sor: címke halvány balra, érték fényes jobbra, egy sor egy adat */
.tx-readout-row {
    display: flex; align-items: baseline; justify-content: space-between; gap: var(--gap);
    min-height: var(--row-h); padding-block: 0; min-width: 0; color: var(--text-muted);
}
.tx-readout-row + .tx-readout-row { border-top: var(--bw) solid var(--g-08); }
.tx-readout-row > span:first-child { flex: 0 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-muted); letter-spacing: var(--ls-body); }
.tx-readout-val { margin-left: auto; flex: 0 0 auto; color: var(--text-bright); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tx-readout-val.tx-unaffordable { color: var(--danger); }
/* (a régi nowrap-szabály két idegen tagja — a tulajdonos csoportig itt él) */
.top-bar .top-cell, .fleet-ship-row > span { white-space: nowrap; }

/* ── 5c. CDETAIL-BLOCK — a szekció: vonal fölötte, alcím, levegő (a vízszintes paddingot a törzs adja) */
.cdetail-block { margin-top: var(--sec-gap); padding-top: var(--pad-y); border-top: var(--bw) solid var(--line); }
.cdetail-block:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.cdetail-block-h {
    display: block; margin-bottom: var(--gap); min-width: 0;
    font-size: var(--fs-body); font-weight: var(--fw-bold); letter-spacing: var(--ls-head); line-height: 1.2;
    color: var(--text-bright); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ── 5d. PANE-TABS — a fül-sáv (.tabs/.tab). Az ATL ikon-fülei is a törzs-betűn. */
.pane-tabs {
    display: flex; gap: 0; padding: var(--gap-s) var(--pad-x) 0; min-width: 0; overflow-x: auto; scrollbar-width: none;
    border-bottom: var(--bw) solid var(--line);   /* a fül-sáv a fej alatt lélegzik (Peter 2026-10-02) */
}
.pane-tabs::-webkit-scrollbar { display: none; }
.pane-tab, .pane-tab--text {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--gap-s); flex: 0 0 auto;
    height: var(--tab-h); min-height: 0; min-width: 0; padding: 0 var(--pad-x); margin-bottom: -1px;   /* [mega-vonat 10-03 UI-16] --tab-h (volt --row-h 30) */
    font-size: var(--fs-body); font-weight: var(--fw-bold); letter-spacing: var(--ls-head); line-height: 1; white-space: nowrap;
    font-variant-numeric: tabular-nums; text-align: center;
    color: var(--text-muted); background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
    cursor: pointer; text-shadow: none;
}
.pane-tab:hover { color: var(--accent); }
.pane-tab.active { color: var(--text-bright); border-bottom-color: var(--accent); text-shadow: none; }
.pane-tab-action { color: var(--accent); }
.pane-tab-action:hover { color: var(--accent-bright); }

/* ── 5e. TÁBLA, DEFINÍCIÓS LISTA, PRÓZA — a törzs-betű, egy sor egy adat */
table { border-collapse: collapse; width: 100%; }
th, td { padding: var(--gap-s) var(--pad-x-s); text-align: left; vertical-align: baseline; border-bottom: var(--bw) solid var(--g-08); }
th { color: var(--text-muted); font-weight: var(--fw-bold); letter-spacing: var(--ls-head); white-space: nowrap; }
td { color: var(--text-base); }
dt { color: var(--text-muted); }
dd { color: var(--text-bright); }
.prose, .guide-body { line-height: var(--lh); letter-spacing: var(--ls-body); color: var(--text-base); font-style: normal; }
.guide-body b { color: var(--text-bright); font-weight: var(--fw-bold); }
.guide-body + .guide-body, p + p { margin-top: var(--gap); }

/* ── 5f. FOLYAMAT-SÁVOK — a .meter recept */
.ongoing-bar, .transit-bar {
    display: block; position: relative; height: var(--meter-h); min-width: 40px; overflow: hidden;
    background: var(--g-10); border: 0; border-radius: var(--r); margin: 0;
}
.ongoing-bar > span, .transit-fill { display: block; height: 100%; background: var(--accent); border-radius: var(--r); transition: width .4s ease; }
.ongoing-bar--amber > span { background: var(--amber); }
.ongoing-bar--red > span { background: var(--danger); }
.ongoing-bar--indet > span { width: 35%; background: var(--g-40); animation: ongoing-sweep 2.2s ease-in-out infinite; }
.transit-fill--held { background: repeating-linear-gradient(135deg, var(--amber) 0 4px, rgba(251,191,36,.25) 4px 8px); }
@keyframes ongoing-sweep { 0% { margin-left: -35%; } 100% { margin-left: 100%; } }
@keyframes feed-focus-flash {
    0% { box-shadow: 0 0 0 1px var(--accent), 0 0 18px var(--accent-glow); background: var(--g-10); }
    100% { box-shadow: none; background: transparent; }
}
@media (prefers-reduced-motion: reduce) { .ongoing-bar--indet > span { animation: none; width: 100%; opacity: .3; } }

/* ── 5g. MODÁL-ÁLLAPOT: nyitott modálnál az év-chip látszik, az álló bannerek NEM
   (a banner takarta a × bezárót). !important: a bannerek display-ét a JS inline írja.
   [mega-vonat 10-03 UI-6] az evac-infó .is-open-nel nyit (56), .hidden-t sosem kap — a régi
   :not(.hidden) az első megnyitás után a munkamenet végéig rejtette a bannereket. */
body:has(.system-modal:not(.hidden), .planet-modal:not(.hidden), .missions-modal:not(.hidden), .atlas-modal:not(.hidden),
         .fleet-modal:not(.hidden), .seti-modal:not(.hidden), .realm-modal:not(.hidden), .bridge-modal:not(.hidden),
         .detail-modal:not(.hidden)) .year-chip { display: flex; }
body:has(.system-modal:not(.hidden), .planet-modal:not(.hidden), .missions-modal:not(.hidden), .atlas-modal:not(.hidden),
         .fleet-modal:not(.hidden), .seti-modal:not(.hidden), .realm-modal:not(.hidden), .bridge-modal:not(.hidden),
         .detail-modal:not(.hidden), .probe-command-modal:not(.hidden), .evac-info-modal.is-open, .planetarium-modal:not(.hidden))
    :is(.banner-stack, .impactor-banner, .visitor-banner, .ark-banner, .audience-banner, .nomad-banner, .fl-signal) { display: none !important; }   /* (mega-vonat ui #13) a planetárium is modál */

/* ── 5h. A két fej, amit a 30-shells címlistája nem nevez: ugyanaz a főcím-hang */
.planet-header h2, .planetarium-header h2 {
    margin: 0; flex: 1 1 auto; min-width: 0;
    font-size: var(--fs-title); font-weight: var(--fw-bold); letter-spacing: var(--ls-title); line-height: 1.2;
    color: var(--text-bright); text-shadow: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ── remainder 2026-10-02 ── (remA: az alkalmazás-rács, a dokk-szélesség, generikus jelzők) */
:root { --dock-w: 0px; }        /* a JS írja (dokkolt kártyák száma szerint) */
.app { display: grid; grid-template-columns: 1fr 64px clamp(360px, 35vw, 680px); height: 100vh; }
@media (min-width: 769px) { .app.panel-collapsed { grid-template-columns: 1fr 64px 0; } }
.amber-txt { color: var(--amber); text-shadow: var(--glow-amber); }
/* telepített PWA-ban a telepítő gomb értelmetlen (a 90-mobile display:flex-ét veri: html body …) */
@media (display-mode: standalone) { html.is-mobile body .m-install-btn { display: none; } }
/* érintéses tipp (zseb): a .tip recept, alul-felül a JS helyezi */
.m-touch-tip {
    position: fixed; left: var(--pad-x); right: var(--pad-x); z-index: var(--z-toast); pointer-events: none;
    padding: var(--pad-y) var(--pad-x); line-height: var(--lh); color: var(--text-bright);
    background: var(--surface-deck); border: var(--bw) solid var(--g-22); border-radius: var(--r); box-shadow: 0 4px 18px rgba(0,0,0,.5);
}
/* számláló-jelvény (fül, harmonika-fej): fényes szám a foszfor alapon */
.acc-badge {
    display: inline-flex; align-items: center; justify-content: center; flex: none; margin-left: auto;
    height: var(--badge-h); min-width: var(--badge-h); padding: 0 4px;   /* [mega-vonat 10-03 UI-15] EGY számláló-jelvény méret: 14 (volt --chip-h 18; a sín és a szűrő jelvénye eleve 14) */
    font-size: var(--fs-btn); font-weight: var(--fw-bold); letter-spacing: var(--ls-btn); line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums;
    color: var(--bg-base); background: var(--accent); border: var(--bw) solid var(--accent); border-radius: var(--r);
}

/* (Peter 2026-10-04) a glifás fülek NEVE: az asztali keskeny panelen csak a glifa áll (a név a tooltipben), zsebben a név is */
.cmodal-tab > .tab-lbl { display: none; }
html.is-mobile .cmodal-tab > .tab-lbl { display: inline; margin-left: .6ch; letter-spacing: var(--ls-head); }
