/* ══════════════════════════════════════════════════════════════════════════
   XOPOZ NEON — official design system of tiritix.com/xopoz
   ──────────────────────────────────────────────────────────────────────────
   One stylesheet, copied byte-for-byte as `_style.css` into every folder of
   public/xopoz (root, ads, faq, marketing, releases, release-notes, security,
   userguide). Each folder links its own copy: <link rel="stylesheet" href="_style.css">.
   Edit the master in userguide/_style.css, then copy it to every folder.

   Visual language mirrors the Xopoz Android app in dark mode (values-night/colors.xml):
   deep navy screen gradient, neon cyan frames with glow, Orbitron titles, Exo 2 body.

   NOMENCLATURE — the only class names pages may use for shared components
   ── Page skeleton ────────────────────────────────────────────────────────
   site-header > header-inner > header-title (h1 + p)   app toolbar
   breadcrumb                                            path, items separated by <span>›</span>
   back-bar > back-btn                                   "← Back to …" pill
   main                                                  960 px content column
   page-hero > hero-text (h2 + p)                        title panel of an article page
   index-hero (h2 + p)                                   centred title panel of an index page
   section-label                                         uppercase cyan group label between blocks
   section-block (h3, h4, p, ul)                         neon panel; one per topic
   site-footer                                           bottom bar, version via <span data-xopoz-version>
   ── Navigation ───────────────────────────────────────────────────────────
   cards-grid > card (card-icon, tag, h3, p, card-arrow)  link tiles of an index page
   btn  [+ btn-danger]                                   neon pill button (links and actions)
   btn-row                                               row of buttons
   ── Content ──────────────────────────────────────────────────────────────
   info-box [+ warning | danger | success] (h4, p, ul)   callout
   tip                                                   dashed hint callout
   steps (ol > li [h4 + p])                              numbered steps
   checklist (ul)                                        ✓ list
   feature-table [td.yes | td.no | td.partial]           data table; wrap in table-wrap to scroll
   code-block (pre)  > .prompt .comment .ok .ko          terminal / command output
   tag [+ green | amber | red | violet | pink]           small pill label (default cyan)
   entry-head > entry-title, entry-date, tag             title row inside a section-block
   stat-grid > stat > stat-value + stat-label           key figures
   kv-grid > kv-label + kv-value                         label / value facts
   quote (blockquote) > quote-by                         citation
   banner [+ success | danger]                           centred highlight panel (banner-label, h2, p)
   shots > shot [phone | wide | small | tile] + figcaption   screenshots
   shot-side > shot + side-text                          screenshot next to text
   legend (ol > li > .num)                               numbered legend of an annotated screenshot
   fab-icon, fab-cell, badge-on, badge-off               app button icons and toggles in tables

   Rules: colours only through the variables below; no page-level colours.
   A page may keep a small inline <style> only for a one-off visual that has
   no equivalent here, and that style must use the variables below.
   ══════════════════════════════════════════════════════════════════════════ */


@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700;800&family=Exo+2:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root {
    /* App dark palette */
    --screen-top: #06122a;          /* neon_screen_top */
    --screen-bottom: #030914;       /* neon_screen_bottom */
    --bar-top: #0a1a33;             /* neon_bar_top */
    --bar-bottom: #030914;          /* neon_bar_bottom */
    --plate: #0a1830;               /* neon_dialog_top */
    --plate-bottom: #050c1a;        /* neon_dialog_bottom */
    --row-plate: #0c1e3a;           /* neon_row_plate */
    --cyan: #3cd8ff;                /* neon_cyan */
    --cyan-hot: #8ff0ff;            /* neon_cyan_hot */
    --brand-blue: #1ea4ff;          /* neon_brand_blue */
    --frame-dim: #1f6a86;           /* neon_frame_dim */
    --label: #e2f2ff;               /* neon_label */
    --title: #ffffff;               /* neon_title_text */
    --muted: #9fb3c8;
    --red: #ff2d4a;                 /* neon_alert_red */
    --amber: #ffb52e;               /* neon_status_amber */
    --green: #39e58c;
    --gray: #7d8b9c;                /* neon_status_gray */
    --button-top: #1a4580;          /* neon_button_top */
    --button-bottom: #0b2044;       /* neon_button_bottom */
    --danger-top: #5a1222;          /* neon_danger_top */
    --danger-bottom: #2a0710;       /* neon_danger_bottom */

    --stroke: rgba(60, 216, 255, 0.35);
    --stroke-soft: rgba(60, 216, 255, 0.18);
    --glow: 0 0 14px rgba(60, 216, 255, 0.22), inset 0 0 18px rgba(60, 216, 255, 0.06);
    --glow-strong: 0 0 22px rgba(60, 216, 255, 0.40), inset 0 0 18px rgba(60, 216, 255, 0.10);
    --radius: 12px;
    --radius-sm: 8px;
    /* Legacy names (light theme) still used by pages that load this stylesheet:
       marketing, security, releases, privacy policy, terms of service. Mapped to the dark palette. */
    --primary: #1ea4ff;
    --primary-dark: #ffffff;
    --primary-light: rgba(60, 216, 255, 0.14);
    --accent-cyan: #3cd8ff;
    --success: #39e58c;
    --danger: #ff2d4a;
    --surface: #0a1830;
    --surface-alt: #0c1e3a;
    --border: rgba(60, 216, 255, 0.35);
    --text: #ffffff;
    --text-secondary: #b9cde0;
    --shadow: 0 0 14px rgba(60, 216, 255, 0.22);
    --shadow-md: 0 0 22px rgba(60, 216, 255, 0.40);
    --font-title: 'Orbitron', 'Segoe UI', system-ui, sans-serif;
    --font-body: 'Exo 2', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { background: var(--screen-bottom); }

body {
    font-family: var(--font-body);
    background: linear-gradient(180deg, var(--screen-top) 0%, var(--screen-bottom) 60%) fixed;
    color: var(--label);
    line-height: 1.65;
    font-size: 16px;
    min-height: 100vh;
}

a { color: var(--cyan); text-decoration: none; }
a:hover { color: var(--cyan-hot); text-decoration: underline; }

code {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 0.88em;
    background: rgba(60, 216, 255, 0.10);
    border: 1px solid var(--stroke-soft);
    color: var(--cyan-hot);
    padding: 1px 6px;
    border-radius: 4px;
}

strong { color: var(--title); font-weight: 600; }
em { color: var(--label); }

/* ─── Header (app toolbar look) ─────────────── */
.site-header {
    background: linear-gradient(180deg, var(--bar-top) 0%, #050e1f 60%, var(--bar-bottom) 100%);
    color: var(--title);
    border-bottom: 2px solid var(--cyan);
    box-shadow: 0 2px 16px rgba(60, 216, 255, 0.45);
    position: relative;
}
.site-header::after {
    content: "";
    position: absolute; left: 0; right: 0; bottom: 5px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(60, 216, 255, 0.35) 20%, rgba(60, 216, 255, 0.35) 80%, transparent);
}

.header-inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 26px 24px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.header-title { flex: 1; }
.header-title h1 {
    font-family: var(--font-title);
    font-size: 1.9rem;
    font-weight: 700;
    letter-spacing: 3px;
    color: var(--title);
    text-shadow: 0 0 14px rgba(90, 200, 255, 0.55);
}
.header-title p {
    font-family: var(--font-title);
    font-size: 0.74rem;
    color: var(--brand-blue);
    margin-top: 6px;
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* ─── Breadcrumb ─────────────────────────────── */
.breadcrumb {
    max-width: 960px;
    margin: 0 auto;
    padding: 14px 24px;
    font-size: 0.85rem;
    color: var(--muted);
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.breadcrumb a { color: var(--cyan); }
.breadcrumb span { color: var(--muted); }

/* ─── Main content ───────────────────────────── */
.main { max-width: 960px; margin: 0 auto; padding: 24px 24px 64px; overflow-wrap: anywhere; }

/* ─── Neon panel (shared by hero, cards, sections) ─ */
.page-hero,
.index-hero,
.section-block,
.card {
    position: relative;
    background: linear-gradient(180deg, var(--plate) 0%, var(--plate-bottom) 100%);
    border: 1px solid var(--stroke);
    border-radius: var(--radius);
    box-shadow: var(--glow);
}
/* Bright corner brackets, like the app's framed panels */
.page-hero::before, .page-hero::after,
.index-hero::before, .index-hero::after,
.section-block::before, .section-block::after,
.card::before, .card::after {
    content: "";
    position: absolute;
    width: 22px; height: 22px;
    pointer-events: none;
    filter: drop-shadow(0 0 4px rgba(60, 216, 255, 0.9));
}
.page-hero::before, .index-hero::before, .section-block::before, .card::before {
    top: -1px; left: -1px;
    border-top: 3px solid var(--cyan);
    border-left: 3px solid var(--cyan);
    border-top-left-radius: var(--radius);
}
.page-hero::after, .index-hero::after, .section-block::after, .card::after {
    bottom: -1px; right: -1px;
    border-bottom: 3px solid var(--cyan);
    border-right: 3px solid var(--cyan);
    border-bottom-right-radius: var(--radius);
}

/* ─── Page hero (section pages) ─────────────── */
.page-hero {
    padding: 28px 32px;
    margin-bottom: 28px;
    display: flex; gap: 20px; align-items: flex-start;
}
.hero-text h2 {
    font-family: var(--font-title);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--title);
    letter-spacing: 1px;
    text-shadow: 0 0 12px rgba(90, 200, 255, 0.5);
}
.hero-text p { color: var(--label); margin-top: 8px; font-size: 1rem; opacity: 0.9; }

/* ─── Cards grid (index) ─────────────────────── */
.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
    margin-top: 8px;
}

.card {
    padding: 18px 18px 20px;
    color: var(--label);
    display: flex; flex-direction: column; gap: 10px;
    transition: box-shadow .15s, transform .15s, border-color .15s;
}
.card:hover {
    box-shadow: var(--glow-strong);
    transform: translateY(-2px);
    border-color: var(--cyan);
    color: var(--label);
    text-decoration: none;
}

.card h3 {
    font-family: var(--font-title);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--title);
    letter-spacing: 0.5px;
}
.card p   { font-size: 0.9rem; color: var(--muted); line-height: 1.5; }
.card-arrow {
    margin-top: auto;
    font-family: var(--font-title);
    color: var(--cyan);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

/* ─── Section blocks ─────────────────────────── */
.section-block {
    padding: 24px 28px;
    margin-bottom: 22px;
}
.section-block h3 {
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--cyan);
    letter-spacing: 0.8px;
    text-align: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid transparent;
    border-image: linear-gradient(90deg, transparent, var(--stroke) 25%, var(--stroke) 75%, transparent) 1;
    text-shadow: 0 0 10px rgba(60, 216, 255, 0.45);
}
.section-block h4 {
    font-family: var(--font-title);
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--title);
    letter-spacing: 0.6px;
    margin: 22px 0 8px;
}
.section-block p  { color: var(--label); margin-bottom: 10px; font-size: 0.97rem; opacity: 0.92; }
.section-block ul { padding-left: 20px; color: var(--label); font-size: 0.96rem; }
.section-block ul li::marker { color: var(--cyan); }
.section-block li { margin-bottom: 6px; opacity: 0.94; }

/* ─── Info boxes ─────────────────────────────── */
.info-box {
    background: rgba(30, 164, 255, 0.10);
    border: 1px solid rgba(30, 164, 255, 0.35);
    border-left: 4px solid var(--brand-blue);
    border-radius: var(--radius-sm);
    padding: 14px 18px;
    margin: 14px 0;
    font-size: 0.94rem;
    color: var(--label);
}
.info-box.warning {
    background: rgba(255, 181, 46, 0.08);
    border-color: rgba(255, 181, 46, 0.35);
    border-left-color: var(--amber);
}
.info-box.warning strong { color: var(--amber); }
.info-box.danger {
    background: linear-gradient(180deg, rgba(90, 18, 34, 0.55), rgba(42, 7, 16, 0.55));
    border-color: rgba(255, 45, 74, 0.45);
    border-left-color: var(--red);
}
.info-box.danger strong { color: #ff8a9b; }
.info-box.success {
    background: rgba(57, 229, 140, 0.08);
    border-color: rgba(57, 229, 140, 0.30);
    border-left-color: var(--green);
}
.info-box.success strong { color: var(--green); }

/* ─── Steps list ─────────────────────────────── */
.steps { list-style: none; padding: 0; counter-reset: steps; margin: 6px 0 10px; }
.steps li {
    counter-increment: steps;
    position: relative;
    padding-left: 42px;
    min-height: 28px;
    margin-bottom: 12px;
    font-size: 0.96rem;
    color: var(--label);
}
.steps li::before {
    content: counter(steps);
    position: absolute; left: 0; top: 0;
    width: 28px; height: 28px;
    background: linear-gradient(180deg, var(--button-top), var(--button-bottom));
    border: 1px solid var(--cyan);
    box-shadow: 0 0 8px rgba(60, 216, 255, 0.5);
    color: var(--title);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-title);
    font-size: 0.75rem;
    font-weight: 700;
}

/* ─── Feature table ──────────────────────────── */
.feature-table {
    width: 100%; border-collapse: separate; border-spacing: 0;
    font-size: 0.92rem; margin: 12px 0;
    border: 1px solid var(--stroke);
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.feature-table th {
    background: var(--row-plate);
    color: var(--cyan);
    font-family: var(--font-title);
    font-size: 0.74rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
    padding: 11px 14px;
    border-bottom: 1px solid var(--stroke);
    text-align: left;
}
.feature-table td {
    padding: 10px 14px;
    border-top: 1px solid var(--stroke-soft);
    color: var(--label);
    vertical-align: top;
}
.feature-table tr:nth-child(even) td { background: rgba(12, 30, 58, 0.55); }
.feature-table td img { display: block; }
.feature-table td.fab-cell img { display: inline-block; }
.badge-on  { color: var(--cyan); font-weight: 700; font-family: var(--font-title); font-size: 0.8rem; }
.badge-off { color: var(--red); font-weight: 700; font-family: var(--font-title); font-size: 0.8rem; }

/* ─── Tip callout ────────────────────────────── */
.tip {
    background: rgba(60, 216, 255, 0.07);
    border: 1px dashed var(--stroke);
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    font-size: 0.93rem;
    margin: 12px 0;
    color: var(--label);
}
.tip strong { color: var(--cyan); }

/* ─── Screenshots ────────────────────────────── */
.shots {
    display: flex; flex-wrap: wrap; gap: 20px;
    justify-content: center;
    margin: 18px 0 8px;
}
.shot { margin: 0; text-align: center; }
.shot img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 14px;
    border: 1px solid var(--stroke);
    box-shadow: 0 0 18px rgba(60, 216, 255, 0.25);
    background: var(--screen-bottom);
}
.shot.phone { width: 260px; max-width: 100%; }
.shot.wide  { width: 420px; max-width: 100%; }
.shot.small { width: 190px; max-width: 100%; }
.shot.tile  { width: 130px; max-width: 100%; }
.shot figcaption {
    font-size: 0.84rem;
    color: var(--muted);
    margin-top: 9px;
    line-height: 1.4;
}
.shot figcaption strong { color: var(--cyan); }
.shot-side {
    display: flex; gap: 26px; align-items: flex-start;
    margin: 16px 0;
}
.shot-side .shot { flex-shrink: 0; }
.shot-side .side-text { flex: 1; min-width: 0; }

/* Numbered legend matching annotated screenshots */
.legend { list-style: none; padding: 0 !important; margin: 0; }
.legend li {
    display: flex; gap: 10px; align-items: flex-start;
    margin-bottom: 9px;
    font-size: 0.93rem;
    color: var(--label);
}
.legend .num {
    min-width: 26px; height: 26px;
    border-radius: 50%;
    background: #ffb300;
    color: #141414;
    font-family: var(--font-title);
    font-weight: 700;
    font-size: 0.72rem;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    border: 2px solid #141414;
    box-shadow: 0 0 8px rgba(255, 179, 0, 0.5);
}

/* Round map-button icons in tables */
.fab-icon {
    width: 64px; height: 64px;
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(60, 216, 255, 0.35);
}

.fab-cell { white-space: nowrap; }
.fab-cell .fab-icon { display: inline-block; vertical-align: middle; }
.fab-cell .fab-icon + .fab-icon { margin-left: 6px; }

/* ─── Back button (app neon button) ──────────── */
.back-bar {
    max-width: 960px;
    margin: 0 auto;
    padding: 10px 24px 0;
}
.back-btn {
    display: inline-flex; align-items: center; gap: 6px;
    background: linear-gradient(180deg, var(--button-top), var(--button-bottom));
    border: 1px solid var(--cyan);
    color: var(--title);
    padding: 9px 20px;
    border-radius: 22px;
    font-family: var(--font-title);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    box-shadow: 0 0 12px rgba(60, 216, 255, 0.40);
    transition: box-shadow .15s;
}
.back-btn:hover { box-shadow: 0 0 20px rgba(60, 216, 255, 0.75); color: var(--title); text-decoration: none; }

/* ─── Footer (app bottom bar look) ──────────── */
.site-footer {
    text-align: center;
    padding: 22px 24px;
    font-family: var(--font-title);
    font-size: 0.7rem;
    color: var(--muted);
    background: linear-gradient(180deg, #0a1830 0%, #040b18 100%);
    border-top: 2px solid var(--cyan);
    box-shadow: 0 -2px 16px rgba(60, 216, 255, 0.35);
    letter-spacing: 1.5px;
    margin-top: 48px;
}
.site-footer a { color: var(--cyan); }

/* ─── Responsive ─────────────────────────────── */
@media (max-width: 600px) {
    .main { padding: 18px 16px 48px; }
    .breadcrumb, .back-bar { padding-left: 16px; padding-right: 16px; }
    .cards-grid { grid-template-columns: 1fr; }
    .page-hero  { flex-direction: column; padding: 20px; }
    .section-block { padding: 18px 16px; }
    .header-inner { padding: 18px 16px; }
    .shot-side { flex-direction: column; align-items: center; }
    .shot.phone { width: 230px; }
    .feature-table { font-size: 0.85rem; }
    .feature-table th, .feature-table td { padding: 8px 9px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Extension components (shared by FAQ, releases, security, marketing, legal)
   ══════════════════════════════════════════════════════════════════════════ */

/* ─── Index hero and section labels ──────────── */
.index-hero {
    padding: 32px;
    margin-bottom: 32px;
    text-align: center;
}
.index-hero h2 {
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--title);
    letter-spacing: 1px;
    text-shadow: 0 0 12px rgba(90, 200, 255, 0.5);
}
.index-hero p { color: var(--label); font-size: 1rem; max-width: 640px; margin: 0 auto; opacity: 0.9; }
.index-hero p + p { margin-top: 10px; }

.section-label {
    font-family: var(--font-title);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cyan);
    margin: 34px 0 12px;
    text-shadow: 0 0 8px rgba(60, 216, 255, 0.5);
}

/* ─── Section block extras ───────────────────── */
.section-block ol:not(.steps):not(.legend) { padding-left: 22px; color: var(--label); font-size: 0.96rem; }
.section-block ol:not(.steps):not(.legend) li::marker { color: var(--cyan); font-weight: 700; }
.section-block h5 {
    font-family: var(--font-title);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--cyan-hot);
    letter-spacing: 0.5px;
    margin: 16px 0 6px;
}
.section-block > :last-child { margin-bottom: 0; }
img.figure {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 14px auto;
    border-radius: var(--radius-sm);
    border: 1px solid var(--stroke);
    box-shadow: 0 0 18px rgba(60, 216, 255, 0.25);
}
.section-block hr {
    border: none;
    height: 1px;
    margin: 20px 0;
    background: linear-gradient(90deg, transparent, var(--stroke) 25%, var(--stroke) 75%, transparent);
}

/* ─── Card extras (index tiles) ──────────────── */
.card-icon { font-size: 2rem; line-height: 1; }
.section-block .card h3 {
    text-align: left;
    margin: 0;
    padding: 0;
    border: none;
    text-shadow: none;
    color: var(--title);
    font-size: 0.95rem;
}
.card .tag { align-self: flex-start; }

/* ─── Tag (pill label) ───────────────────────── */
.tag {
    display: inline-block;
    font-family: var(--font-title);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid currentColor;
    background: rgba(255, 255, 255, 0.04);
    color: var(--cyan);
    vertical-align: middle;
    white-space: nowrap;
}
.tag.green  { color: var(--green); }
.tag.amber  { color: var(--amber); }
.tag.red    { color: #ff8a9b; }
.tag.violet { color: #c39bff; }
.tag.pink   { color: #ff8ac8; }

/* ─── Callout headings and lists ─────────────── */
.info-box h4 {
    font-family: var(--font-title);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.6px;
    color: var(--title);
    margin: 0 0 8px;
}
.info-box.warning h4 { color: var(--amber); }
.info-box.danger h4  { color: #ff8a9b; }
.info-box.success h4 { color: var(--green); }
.info-box p { margin-bottom: 8px; }
.info-box p:last-child { margin-bottom: 0; }
.info-box ul, .info-box ol { padding-left: 20px; margin: 0; }
.info-box ul li::marker { color: var(--cyan); }
.info-box li { margin-bottom: 6px; }
.info-box li:last-child { margin-bottom: 0; }

/* ─── Steps with a title per step ────────────── */
.steps li h4 {
    font-family: var(--font-title);
    font-size: 0.84rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--title);
    margin: 3px 0 6px;
}
.steps li p { margin-bottom: 0; }

/* ─── Checklist ──────────────────────────────── */
.checklist { list-style: none; padding-left: 0 !important; margin: 8px 0 12px; }
.checklist li { position: relative; padding-left: 28px; margin-bottom: 8px; }
.checklist li::before {
    content: "✓";
    position: absolute; left: 0; top: 0;
    color: var(--green);
    font-weight: 700;
    text-shadow: 0 0 8px rgba(57, 229, 140, 0.6);
}
.checklist.cross li::before { content: "✗"; color: var(--red); text-shadow: 0 0 8px rgba(255, 45, 74, 0.6); }

/* ─── Table cells and scrolling wrapper ──────── */
.feature-table td.yes     { color: var(--green); font-weight: 700; }
.feature-table td.no      { color: var(--red);   font-weight: 700; }
.feature-table td.partial { color: var(--amber); font-weight: 700; }
.feature-table tr.highlight td { background: rgba(60, 216, 255, 0.10); }
.feature-table th.highlight, .feature-table td.highlight { background: rgba(60, 216, 255, 0.10); color: var(--title); }
.feature-table th, .feature-table td { overflow-wrap: normal; word-break: normal; hyphens: auto; }
.table-wrap { overflow-x: auto; margin: 12px 0; }
.table-wrap .feature-table { margin: 0; }

/* ─── Code block (terminal) ──────────────────── */
.code-block {
    font-family: 'Consolas', 'Courier New', monospace;
    font-size: 0.86rem;
    line-height: 1.55;
    background: #020812;
    color: var(--label);
    border: 1px solid var(--stroke);
    border-left: 3px solid var(--cyan);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    margin: 12px 0;
    overflow-x: auto;
    white-space: pre;
    box-shadow: inset 0 0 18px rgba(60, 216, 255, 0.06);
}
.code-block.wrap { white-space: pre-wrap; word-break: break-all; }
.code-block code { background: none; border: none; padding: 0; color: inherit; font-size: inherit; }
.code-block .prompt  { color: var(--cyan); }
.code-block .comment { color: var(--gray); font-style: italic; }
.code-block .ok      { color: var(--green); }
.code-block .ko      { color: var(--red); }

/* ─── Button ─────────────────────────────────── */
.btn {
    display: inline-flex; align-items: center; gap: 8px;
    margin-top: 10px;
    padding: 11px 22px;
    background: linear-gradient(180deg, var(--button-top), var(--button-bottom));
    border: 1px solid var(--cyan);
    color: var(--title);
    border-radius: 22px;
    font-family: var(--font-title);
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    box-shadow: 0 0 12px rgba(60, 216, 255, 0.40);
    transition: box-shadow .15s, transform .15s;
}
.btn:hover { color: var(--title); text-decoration: none; box-shadow: 0 0 20px rgba(60, 216, 255, 0.75); transform: translateY(-1px); }
.btn.btn-danger {
    background: linear-gradient(180deg, var(--danger-top), var(--danger-bottom));
    border-color: var(--red);
    box-shadow: 0 0 12px rgba(255, 45, 74, 0.45);
}
.btn.btn-danger:hover { box-shadow: 0 0 20px rgba(255, 45, 74, 0.8); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 6px; }
.btn-row .btn { margin-top: 0; }
.btn-meta { display: block; margin-top: 6px; font-size: 0.8rem; color: var(--muted); }

/* ─── Entry head (title row of a release / document panel) ─ */
.entry-head {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px;
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid transparent;
    border-image: linear-gradient(90deg, var(--stroke), transparent) 1;
}
.entry-title {
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--title);
    letter-spacing: 0.5px;
}
.entry-date {
    font-family: var(--font-title);
    font-size: 0.7rem;
    color: var(--muted);
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

/* ─── Stats ──────────────────────────────────── */
.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 14px;
    margin: 14px 0;
}
.stat {
    background: var(--row-plate);
    border: 1px solid var(--stroke);
    border-radius: var(--radius-sm);
    padding: 16px 12px;
    text-align: center;
}
.stat-value {
    display: block;
    font-family: var(--font-title);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--cyan);
    text-shadow: 0 0 10px rgba(60, 216, 255, 0.5);
}
.stat-label { display: block; margin-top: 6px; font-size: 0.82rem; color: var(--muted); }

/* ─── Key / value facts ──────────────────────── */
.kv-grid {
    display: grid;
    grid-template-columns: minmax(130px, max-content) 1fr;
    gap: 8px 18px;
    margin: 12px 0;
    font-size: 0.94rem;
}
.kv-label {
    font-family: var(--font-title);
    font-size: 0.7rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cyan);
    padding-top: 3px;
}
.kv-value { color: var(--label); }

/* ─── Quote ──────────────────────────────────── */
.quote {
    margin: 14px 0;
    padding: 14px 20px;
    border-left: 3px solid var(--cyan);
    background: rgba(60, 216, 255, 0.06);
    border-radius: var(--radius-sm);
    font-style: italic;
    color: var(--title);
}
.quote-by { display: block; margin-top: 8px; font-style: normal; font-size: 0.85rem; color: var(--muted); }

/* ─── Banner (centred highlight panel) ───────── */
.banner {
    position: relative;
    background: linear-gradient(180deg, rgba(60, 216, 255, 0.14) 0%, rgba(5, 12, 26, 0.95) 100%);
    border: 1px solid var(--cyan);
    border-radius: var(--radius);
    padding: 28px 32px;
    margin-bottom: 28px;
    box-shadow: var(--glow-strong);
    text-align: center;
}
.banner .banner-label {
    font-family: var(--font-title);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--cyan);
    margin-bottom: 10px;
}
.banner h2 {
    font-family: var(--font-title);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 1px;
    color: var(--title);
    text-shadow: 0 0 14px rgba(60, 216, 255, 0.45);
}
.banner p { margin: 12px auto 0; max-width: 640px; font-size: 0.98rem; color: var(--label); opacity: 0.92; }
.banner.success {
    background: linear-gradient(180deg, rgba(57, 229, 140, 0.16) 0%, rgba(5, 12, 26, 0.95) 100%);
    border-color: rgba(57, 229, 140, 0.55);
    box-shadow: 0 0 22px rgba(57, 229, 140, 0.30), inset 0 0 18px rgba(57, 229, 140, 0.08);
}
.banner.success .banner-label { color: var(--green); }
.banner.danger {
    background: linear-gradient(180deg, rgba(255, 45, 74, 0.16) 0%, rgba(5, 12, 26, 0.95) 100%);
    border-color: rgba(255, 45, 74, 0.55);
    box-shadow: 0 0 22px rgba(255, 45, 74, 0.30), inset 0 0 18px rgba(255, 45, 74, 0.08);
}
.banner.danger .banner-label { color: #ff8a9b; }

/* ─── Extension responsive ───────────────────── */
@media (max-width: 600px) {
    .index-hero { padding: 22px 18px; }
    .banner { padding: 22px 18px; }
    .kv-grid { grid-template-columns: 1fr; gap: 2px 0; }
    .kv-value { margin-bottom: 8px; }
    .code-block { font-size: 0.8rem; }
}
