/* Pokémon Aréna V3 – közös alapszabályok és design tokenek */
:root {
    --bg: #0b1014;
    --bg-soft: #111920;
    --surface: #161f26;
    --surface-2: #1c2831;
    --surface-3: #24333e;
    --line: rgba(126, 161, 180, 0.2);
    --line-strong: rgba(126, 161, 180, 0.38);
    --text: #edf5f8;
    --muted: #91a8b5;
    --primary: #0884cb;
    --primary-bright: #19a8f2;
    --gold: #dab241;
    --gold-soft: rgba(218, 178, 65, 0.15);
    --green: #65c66a;
    --red: #ef6262;
    --shadow: 0 18px 45px rgba(0, 0, 0, 0.28);
    --topbar: rgba(11, 16, 20, 0.92);
    --grid: rgba(55, 109, 139, 0.1);
}
body.light {
    --bg: #e8f0f3;
    --bg-soft: #dce8ed;
    --surface: #f9fcfd;
    --surface-2: #edf4f6;
    --surface-3: #e1ebef;
    --line: rgba(31, 67, 83, 0.16);
    --line-strong: rgba(31, 67, 83, 0.28);
    --text: #16252d;
    --muted: #5d737d;
    --primary: #0879b9;
    --primary-bright: #009ced;
    --gold: #ad8214;
    --gold-soft: rgba(198, 151, 24, 0.16);
    --green: #248d45;
    --red: #c34040;
    --shadow: 0 18px 45px rgba(31, 58, 70, 0.12);
    --topbar: rgba(232, 240, 243, 0.92);
    --grid: rgba(34, 88, 112, 0.08);
}
* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    margin: 0;
    min-width: 320px;
    color: var(--text);
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    background:
        linear-gradient(90deg, transparent 0 49px, var(--grid) 50px, transparent 51px) 0 0/50px 50px,
        linear-gradient(0deg, transparent 0 49px, var(--grid) 50px, transparent 51px) 0 0/50px 50px,
        var(--bg);
    transition:
        background 0.25s ease,
        color 0.25s ease;
}
button,
input,
select,
textarea {
    font: inherit;
}
button {
    cursor: pointer;
}
a {
    color: inherit;
    text-decoration: none;
}
.app-shell {
    min-height: 100vh;
}

/* Régi oldalspecifikus token-nevek kompatibilitása az egységes tokenekhez. */
:root {
    --surface2: var(--surface-2);
    --surface3: var(--surface-3);
    --bgsoft: var(--bg-soft);
    --soft: var(--bg-soft);
    --bg2: var(--bg-soft);
    --panel: var(--surface);
    --panel2: var(--surface-2);
    --s2: var(--surface-2);
    --s3: var(--surface-3);
    --txt: var(--text);
    --blue: var(--primary);
    --bright: var(--primary-bright);
    --good: var(--green);
    --bad: var(--red);
    --danger: var(--red);
    --warn: #e2b64a;
    --top: var(--topbar);
    --line2: var(--line-strong);
    --lineStrong: var(--line-strong);
}
body.light {
    --surface2: var(--surface-2);
    --surface3: var(--surface-3);
    --bgsoft: var(--bg-soft);
    --soft: var(--bg-soft);
    --bg2: var(--bg-soft);
    --panel: var(--surface);
    --panel2: var(--surface-2);
    --s2: var(--surface-2);
    --s3: var(--surface-3);
    --txt: var(--text);
    --blue: var(--primary);
    --bright: var(--primary-bright);
    --good: var(--green);
    --bad: var(--red);
    --danger: var(--red);
    --top: var(--topbar);
    --line2: var(--line-strong);
    --lineStrong: var(--line-strong);
}

/* Közös showcase/dokumentációs oldalszerkezet a Forms, Interactions és Typography oldalakhoz. */
.layout {
    width: min(1380px, calc(100% - 40px));
    margin: auto;
    padding: 26px 0 56px;
}
/*.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}*/
.eyebrow {
    color: var(--bright);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2px;
    text-transform: uppercase;
}

h1 {
    margin: 5px 0 0;
    font-size: 30px;
    letter-spacing: -0.8px;
}
.page-desc {
    max-width: 720px;
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
}
.head-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: 11px;
}
.meta-chip {
    padding: 8px 10px;
    border: 1px solid var(--line);
    background: var(--surface);
}
:is(.forms-shell, .interact-shell, .type-shell) {
    position: relative;
    display: grid;
    grid-template-columns: 245px minmax(0, 1fr);
    min-height: 760px;
    border: 1px solid var(--line);
    background: var(--surface);
    box-shadow: var(--shadow);
}
:is(.forms-shell, .interact-shell, .type-shell):before {
    content: "";
    position: absolute;
    z-index: 2;
    left: 0;
    top: 0;
    width: 80px;
    height: 3px;
    background: var(--primary-bright);
}
:is(.forms-nav, .interact-nav, .type-nav) {
    position: sticky;
    top: 76px;
    height: calc(100vh - 76px);
    overflow: auto;
    border-right: 1px solid var(--line);
    padding: 13px;
    background: var(--surface);
}
:is(.forms-nav-label, .interact-nav-label, .type-nav-label) {
    padding: 3px 7px 10px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
}
:is(.forms-nav, .interact-nav, .type-nav) a {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 9px;
    border: 1px solid transparent;
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
}
:is(.forms-nav, .interact-nav, .type-nav) a:hover,
:is(.forms-nav, .interact-nav, .type-nav) a.active {
    color: var(--text);
    border-color: rgba(25, 168, 242, 0.35);
    background: rgba(8, 132, 203, 0.1);
}
:is(.forms-nav, .interact-nav, .type-nav) small {
    color: var(--primary-bright);
    font-size: 9px;
}
.nav-note {
    margin: 16px 6px 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 10px;
    line-height: 1.5;
}
.nav-note b {
    color: var(--gold);
}
:is(.forms-content, .interact-content, .type-content) {
    min-width: 0;
    background: var(--bg-soft);
    padding: 14px;
}
.info-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    background: var(--surface-2);
    margin-bottom: 14px;
}
.info-strip p {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}
.info-strip b {
    color: var(--text);
}
:is(.utility-btn, .copy-all) {
    height: 31px;
    padding: 0 10px;
    border: 1px solid rgba(25, 168, 242, 0.48);
    background: rgba(8, 132, 203, 0.14);
    color: var(--primary-bright);
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
}
:is(.form-section, .ui-section, .type-section) {
    margin-top: 14px;
    border: 1px solid var(--line);
    background: var(--surface);
    scroll-margin-top: 95px;
}
:is(.form-section, .ui-section, .type-section):first-of-type {
    margin-top: 0;
}
.section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-2);
}
.section-head h2 {
    margin: 0;
    font-size: 14px;
    letter-spacing: 0.2px;
}
.section-head span {
    color: var(--muted);
    font-size: 10px;
}
.section-body {
    padding: 14px;
}

/* Közös toast megjelenített állapot. */
.toast.show {
    opacity: 1;
    transform: translate(-50%, 0);
}

/* Közös másolás gomb a showcase kódrészletekhez. */
:is(.code-label, .token-label) {
    display: block;
    margin: 0 0 7px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    font-family: Inter, system-ui, sans-serif;
}
.copy {
    position: absolute;
    right: 8px;
    top: 8px;
    border: 1px solid rgba(25, 168, 242, 0.45);
    background: rgba(8, 132, 203, 0.15);
    color: var(--primary-bright);
    width: 30px;
    height: 28px;
    font-size: 12px;
}
.copy.copied {
    color: #8be690;
    border-color: rgba(101, 198, 106, 0.65);
}

/* Közös divider vonalak az auth/űrlap jellegű panelekhez. */
.divider:before,
.divider:after {
    content: "";
    height: 1px;
    background: var(--line);
    flex: 1;
}
