/*
 * Glomnia — profil de companie (F03)
 *
 * Direcția: lumina prin sticlă. Subiectul este fenestrația, deci materialul care dă
 * limbajul vizual e geamul — suprafețe translucide peste conținut, o reflexie care
 * traversează elementul activ, un hero care se comportă ca o fațadă privită din mers.
 * Restul rămâne tăcut: tipografie fermă, spațiu mult, o singură culoare de accent.
 *
 * Fără dependențe: nici Tailwind, nici webfonts, nici reset extern.
 */

/* ---------------------------------------------------------------- tokens */

:root {
    /* Paleta de marcă, primită de la client (docs/design/). Două accente, nu unul:
       bleumarinul poartă structura — bara de sus, secțiunile grele, butonul care
       duce mai departe — iar auriul e rezervat gestului comercial ("Claim your
       company", "Start free trial"). Auriul nu trece pragul AA pe alb, deci nu
       îmbracă niciodată text mic pe fundal deschis. */

    --gl-bg: #f7f8fa;
    --gl-surface: #ffffff;
    --gl-surface-2: #f1f3f7;

    --gl-ink: #12294a;
    --gl-ink-2: #46536a;
    --gl-ink-3: #6b7686;

    --gl-line: rgba(18, 41, 74, 0.10);
    --gl-line-2: rgba(18, 41, 74, 0.20);

    /* Bleumarinul: fundalul barei de sus și al secțiunilor întunecate. */
    --gl-navy: #0a1628;
    --gl-navy-2: #0f2440;
    --gl-navy-3: #16355c;

    --gl-accent: #1c4d8f;
    --gl-accent-2: #2f6bbd;
    --gl-accent-deep: #143a6b;
    --gl-accent-soft: #e9f0fa;
    --gl-accent-ink: #ffffff;

    /* Auriul: doar pentru acțiunea comercială și pentru sublinierea din meniu. */
    --gl-gold: #c69749;
    --gl-gold-2: #dcb471;
    --gl-gold-deep: #a97c33;
    --gl-gold-soft: #f7efe0;
    --gl-gold-ink: #1a1206;

    --gl-danger: #b3261e;
    --gl-danger-soft: #fdecea;

    --gl-glass: rgba(255, 255, 255, 0.74);
    --gl-glass-strong: rgba(255, 255, 255, 0.88);
    --gl-glass-line: rgba(255, 255, 255, 0.5);
    --gl-blur: saturate(180%) blur(20px);

    --gl-on-media: #ffffff;
    --gl-on-media-2: rgba(255, 255, 255, 0.76);

    /* Designul primit lucrează cu dreptunghiuri, nu cu pastile: colțurile sunt
       abia rotunjite, iar butonul are propria rază, mai mică decât a cardului. */
    --r-btn: 6px;
    --r-sm: 8px;
    --r: 12px;
    --r-lg: 18px;
    --r-xl: 24px;
    --r-pill: 980px;

    --gl-1: 0.25rem;
    --gl-2: 0.5rem;
    --gl-3: 0.75rem;
    --gl-4: 1rem;
    --gl-5: 1.5rem;
    --gl-6: 2rem;
    --gl-7: 3rem;
    --gl-8: 4.5rem;
    --gl-9: 7rem;

    --gl-shell: 1240px;
    --gl-measure: 66ch;

    /* Un singur element rămâne lipit de marginea de sus; restul se raportează la el. */
    --topbar-h: 4.5rem;

    --gl-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
        "Segoe UI", Inter, system-ui, "Helvetica Neue", Arial, sans-serif;

    --sh-1: 0 1px 2px rgba(29, 29, 31, 0.04), 0 4px 14px -6px rgba(29, 29, 31, 0.08);
    --sh-2: 0 2px 6px rgba(29, 29, 31, 0.05), 0 18px 44px -20px rgba(29, 29, 31, 0.18);
    --sh-3: 0 50px 100px -40px rgba(29, 29, 31, 0.4);

    /* Un singur set de curbe pentru tot: „spring" pentru intrări, „calm" pentru stări. */
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-calm: cubic-bezier(0.4, 0, 0.2, 1);
}

@media (prefers-color-scheme: dark) {
    :root {
        --gl-bg: #060d18;
        --gl-surface: #0f1c30;
        --gl-surface-2: #16243b;

        --gl-ink: #eef2f8;
        --gl-ink-2: #b3bdcd;
        --gl-ink-3: #8b97a9;

        --gl-line: rgba(255, 255, 255, 0.12);
        --gl-line-2: rgba(255, 255, 255, 0.22);

        --gl-navy: #060d18;
        --gl-navy-2: #12294a;
        --gl-navy-3: #1c4d8f;

        --gl-accent: #6ea8ec;
        --gl-accent-2: #94c2f5;
        --gl-accent-deep: #b7d5f8;
        --gl-accent-soft: rgba(110, 168, 236, 0.16);
        --gl-accent-ink: #06152b;

        --gl-gold: #d2a75c;
        --gl-gold-2: #e4c48b;
        --gl-gold-deep: #b98c3f;
        --gl-gold-soft: rgba(210, 167, 92, 0.16);

        --gl-danger: #e8a696;
        --gl-danger-soft: rgba(232, 166, 150, 0.14);

        --gl-glass: rgba(28, 28, 30, 0.72);
        --gl-glass-strong: rgba(28, 28, 30, 0.88);
        --gl-glass-line: rgba(255, 255, 255, 0.10);

        --sh-1: 0 1px 2px rgba(0, 0, 0, 0.5), 0 4px 14px -6px rgba(0, 0, 0, 0.6);
        --sh-2: 0 2px 6px rgba(0, 0, 0, 0.5), 0 18px 44px -20px rgba(0, 0, 0, 0.8);
        --sh-3: 0 50px 100px -40px rgba(0, 0, 0, 0.9);
    }
}

/* ------------------------------------------------------------------ base */

*,
*::before,
*::after { box-sizing: border-box; }

.gl-root { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

.gl-body {
    margin: 0;
    background: var(--gl-bg);
    color: var(--gl-ink);
    font-family: var(--gl-sans);
    font-size: 1.0625rem;
    line-height: 1.55;
    letter-spacing: -0.011em;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4, p, dl, dd, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }

:focus-visible {
    outline: 2.5px solid var(--gl-accent);
    outline-offset: 3px;
    border-radius: var(--r-sm);
}

.gl-visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.gl-skip {
    position: absolute;
    left: var(--gl-4);
    top: -5rem;
    z-index: 100;
    padding: var(--gl-2) var(--gl-4);
    background: var(--gl-accent);
    color: var(--gl-accent-ink);
    border-radius: var(--r-pill);
    text-decoration: none;
    transition: top 0.3s var(--ease);
}
.gl-skip:focus { top: var(--gl-4); }

/* ---------------------------------------------------------- glass & sweep */

/*
 * Semnătura paginii. `gl-sweep` trece o dâră de lumină peste elementul activ —
 * reflexia de pe un geam când treci prin fața lui. Se aplică doar acolo unde
 * atenția e deja: acțiunea principală, logo-ul, imaginile din galerie.
 */
.gl-sweep { position: relative; overflow: hidden; isolation: isolate; }
.gl-sweep::after {
    content: "";
    position: absolute;
    inset: -20%;
    background: linear-gradient(104deg, transparent 42%, rgba(255, 255, 255, 0.42) 50%, transparent 58%);
    transform: translate3d(-130%, 0, 0);
    pointer-events: none;
    z-index: 2;
}
.gl-sweep:hover::after,
.gl-sweep:focus-visible::after { animation: gl-sweep 0.9s var(--ease); }

@keyframes gl-sweep {
    from { transform: translate3d(-130%, 0, 0); }
    to { transform: translate3d(130%, 0, 0); }
}

/* -------------------------------------------------------------- scaffold */

.gl-shell {
    width: 100%;
    max-width: var(--gl-shell);
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.gl-main { min-height: 60vh; padding-bottom: var(--gl-9); }

.gl-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    border-bottom: 1px solid transparent;
    transition: background-color 0.4s var(--ease-calm), border-color 0.4s var(--ease-calm);
}
.gl-topbar.is-stuck {
    background: var(--gl-glass);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-bottom-color: var(--gl-line);
}

.gl-topbar__inner {
    max-width: var(--gl-shell);
    margin-inline: auto;
    padding: var(--gl-3) clamp(1.25rem, 4vw, 2.5rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-4);
}

.gl-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: -0.03em;
    font-size: 1.0625rem;
}
.gl-brand__mark {
    width: 15px; height: 15px;
    border: 2.5px solid var(--gl-accent);
    border-radius: 3px;
    transform: rotate(45deg);
    transition: transform 0.5s var(--ease);
}
.gl-brand:hover .gl-brand__mark { transform: rotate(135deg); }

/* Bara de sus și navigarea din ea sunt desenate în topbar.css: acolo e designul
   primit de la client, aici a rămas doar ce ține de prototip. */

/* ------------------------------------------------- comenzile din bara de sus */

/*
 * Clopoțelul și limba stau în aceeași familie: un buton rotund, discret cât timp
 * nu are nimic de spus, și un panou de sticlă care coboară din el. Panourile
 * împrumută materialul barei (blur + translucid), ca să pară că se desprind din
 * ea, nu că aterizează peste pagină.
 */

.gl-icon { width: 1.25rem; height: 1.25rem; display: block; }

.gl-flag {
    width: 1.25rem;
    height: 0.875rem;
    display: block;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(29, 29, 31, 0.12) inset;
}

@keyframes gl-menu-in {
    from { opacity: 0; transform: translateY(-6px) scale(0.98); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .gl-locale__menu,
    .gl-bell__menu { animation: none; }
}

/* ------------------------------------------------------------ limba (steag) */

.gl-locale { position: relative; display: inline-flex; }

.gl-locale__toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    width: auto;
    height: 2.125rem;
    padding-inline: 0.5rem;
    background: transparent;
    border: 0;
    border-radius: var(--r-pill);
    color: var(--gl-ink-2);
    cursor: pointer;
    transition: background-color 0.2s var(--ease-calm);
}
.gl-locale__toggle:hover,
.gl-locale__toggle[aria-expanded="true"] { background: var(--gl-surface-2); }

.gl-locale__caret {
    width: 0.4rem;
    height: 0.4rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translate(-1px, -1px);
    opacity: 0.6;
    transition: transform 0.25s var(--ease);
}
.gl-locale__toggle[aria-expanded="true"] .gl-locale__caret { transform: rotate(225deg) translate(-2px, -2px); }

.gl-locale__menu {
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    z-index: 50;
    min-width: 11rem;
    padding: var(--gl-1);
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    box-shadow: var(--sh-2);
    animation: gl-menu-in 0.22s var(--ease);
    transform-origin: top right;
}

.gl-locale__menu form { margin: 0; }

.gl-locale__item {
    display: flex;
    align-items: center;
    gap: var(--gl-2);
    width: 100%;
    padding: 0.5rem 0.65rem;
    background: transparent;
    border: 0;
    border-radius: var(--r-sm);
    font-size: 0.9375rem;
    text-align: left;
    color: var(--gl-ink);
    cursor: pointer;
    transition: background-color 0.15s var(--ease-calm);
}
.gl-locale__item:hover { background: var(--gl-surface-2); }
.gl-locale__item.is-active { color: var(--gl-accent-deep); font-weight: 590; }
.gl-locale__item.is-active::after {
    content: "";
    width: 0.35rem;
    height: 0.65rem;
    margin-left: auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translate(-1px, -1px);
}

/* ------------------------------------------------------------- clopoțelul */

.gl-bell { position: relative; display: inline-flex; }

.gl-bell__toggle {
    position: relative;
    display: inline-flex;
    width: 2.125rem;
    height: 2.125rem;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: var(--gl-ink-2);
    cursor: pointer;
    transition: background-color 0.2s var(--ease-calm), color 0.2s var(--ease-calm);
}
.gl-bell__toggle:hover,
.gl-bell__toggle[aria-expanded="true"] { background: var(--gl-surface-2); color: var(--gl-ink); }

.gl-bell__badge {
    position: absolute;
    top: 0.1rem;
    right: 0.05rem;
    min-width: 1.05rem;
    padding: 0 0.22rem;
    background: var(--gl-danger);
    color: #fff;
    border: 2px solid var(--gl-bg);
    border-radius: var(--r-pill);
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.05rem;
    text-align: center;
    letter-spacing: 0;
}

.gl-topbar.is-stuck .gl-bell__badge { border-color: transparent; }

.gl-bell__menu {
    position: absolute;
    top: calc(100% + 0.6rem);
    right: 0;
    z-index: 50;
    width: min(22rem, calc(100vw - 2rem));
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    box-shadow: var(--sh-2);
    overflow: hidden;
    animation: gl-menu-in 0.22s var(--ease);
    transform-origin: top right;
}

.gl-bell__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-3);
    padding: var(--gl-3) var(--gl-4);
    border-bottom: 1px solid var(--gl-line);
}
.gl-bell__head form { margin: 0; }

.gl-bell__title { font-size: 0.9375rem; font-weight: 590; letter-spacing: -0.014em; }

.gl-bell__list { max-height: 22rem; overflow-y: auto; }

.gl-bell__item {
    display: flex;
    gap: var(--gl-3);
    padding: var(--gl-3) var(--gl-4);
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--gl-line);
    transition: background-color 0.15s var(--ease-calm);
}
.gl-bell__list li:last-child .gl-bell__item { border-bottom: 0; }
.gl-bell__item:hover { background: var(--gl-surface-2); }

/* Necititul se marchează cu o dungă de accent, nu cu fundal colorat: lista
   rămâne lizibilă și când totul e nou. */
.gl-bell__item.is-unread { box-shadow: inset 3px 0 0 var(--gl-accent); }

.gl-bell__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--gl-accent-soft);
    color: var(--gl-accent-deep);
}

.gl-bell__text { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.gl-bell__item-title { font-size: 0.9375rem; font-weight: 560; letter-spacing: -0.012em; }
.gl-bell__item-body {
    font-size: 0.875rem;
    color: var(--gl-ink-2);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gl-bell__empty { padding: var(--gl-5) var(--gl-4); color: var(--gl-ink-3); font-size: 0.9375rem; text-align: center; }

.gl-bell__more {
    display: block;
    padding: var(--gl-3);
    border-top: 1px solid var(--gl-line);
    color: var(--gl-accent-deep);
    font-size: 0.9375rem;
    font-weight: 560;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.15s var(--ease-calm);
}
.gl-bell__more:hover { background: var(--gl-surface-2); }

/* ------------------------------------------------------ mesageria pe roluri */

/*
 * Layout-ul clasic de mesagerie — listă la stânga, conversație la dreapta —
 * preluat de la Fordaq, dar cu un singur sistem în loc de două (mailbox + chat).
 * Capetele sunt roluri, deci fiecare rând spune întâi compania, apoi rolul.
 */

.gl-mail { padding-top: var(--gl-7); display: grid; gap: var(--gl-4); }

.gl-mail__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--gl-4);
    flex-wrap: wrap;
}
.gl-mail__head .gl-meta { max-width: var(--gl-measure); }

.gl-mail__seats { display: flex; gap: var(--gl-2); flex-wrap: wrap; }
.gl-mail__seats .gl-chip { display: inline-flex; gap: 0.4rem; align-items: baseline; text-decoration: none; }
.gl-mail__seats .gl-chip.is-active { background: var(--gl-accent-soft); color: var(--gl-accent-deep); }

.gl-mail__body {
    display: grid;
    grid-template-columns: minmax(15rem, 20rem) 1fr;
    gap: var(--gl-4);
    align-items: start;
}

.gl-mail__list {
    background: var(--gl-surface);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh-1);
    max-height: 34rem;
    overflow-y: auto;
}

.gl-mail__item {
    display: grid;
    gap: 0.15rem;
    padding: var(--gl-3) var(--gl-4);
    border-bottom: 1px solid var(--gl-line);
    text-decoration: none;
    color: inherit;
    transition: background-color 0.15s var(--ease-calm);
}
.gl-mail__item:hover { background: var(--gl-surface-2); }
.gl-mail__item.is-current { background: var(--gl-accent-soft); }
.gl-mail__item.is-unread .gl-mail__partner { font-weight: 640; }

.gl-mail__item-head { display: flex; align-items: center; justify-content: space-between; gap: var(--gl-2); }
.gl-mail__partner { font-weight: 560; letter-spacing: -0.012em; }

.gl-mail__count {
    min-width: 1.15rem;
    padding: 0 0.3rem;
    background: var(--gl-accent);
    color: var(--gl-accent-ink);
    border-radius: var(--r-pill);
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.15rem;
    text-align: center;
}

.gl-mail__preview {
    color: var(--gl-ink-2);
    font-size: 0.875rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gl-mail__empty { padding: var(--gl-5) var(--gl-4); text-align: center; }
.gl-mail__archived { padding: var(--gl-3) var(--gl-4); }
.gl-mail__archived summary { cursor: pointer; }

.gl-mail__panel {
    display: flex;
    flex-direction: column;
    min-height: 34rem;
    background: var(--gl-surface);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-1);
    overflow: hidden;
}

.gl-mail__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--gl-3);
    padding: var(--gl-4) var(--gl-5);
    border-bottom: 1px solid var(--gl-line);
}
.gl-mail__panel-head a { text-decoration: none; }
.gl-mail__panel-head a:hover { color: var(--gl-accent-deep); }
.gl-mail__panel-actions { display: flex; gap: var(--gl-2); }
.gl-mail__panel-actions form { margin: 0; }

.gl-mail__placeholder {
    margin: auto;
    display: grid;
    justify-items: center;
    gap: var(--gl-3);
    padding: var(--gl-7) var(--gl-5);
    color: var(--gl-ink-3);
    text-align: center;
}
.gl-mail__placeholder-icon { width: 2.5rem; height: 2.5rem; opacity: 0.5; }

.gl-mail__stream {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gl-3);
    padding: var(--gl-5);
    overflow-y: auto;
}

/* Bula proprie stă la dreapta și în accent; a partenerului la stânga, neutră —
   diferența trebuie citită dintr-o privire, fără să citești textul. */
.gl-mail__bubble {
    max-width: min(38rem, 78%);
    padding: var(--gl-3) var(--gl-4);
    background: var(--gl-surface-2);
    border-radius: var(--r);
    border-bottom-left-radius: var(--r-sm);
}
.gl-mail__bubble p { white-space: pre-wrap; }
.gl-mail__bubble.is-mine {
    align-self: flex-end;
    background: var(--gl-accent-soft);
    border-bottom-left-radius: var(--r);
    border-bottom-right-radius: var(--r-sm);
}
.gl-mail__bubble time { display: block; margin-top: var(--gl-1); font-size: 0.75rem; }

.gl-mail__system {
    align-self: center;
    max-width: 44ch;
    padding: var(--gl-2) var(--gl-4);
    background: var(--gl-surface-2);
    border-radius: var(--r-pill);
    color: var(--gl-ink-3);
    font-size: 0.8125rem;
    text-align: center;
}

.gl-mail__compose {
    display: grid;
    gap: var(--gl-2);
    padding: var(--gl-4) var(--gl-5);
    border-top: 1px solid var(--gl-line);
    margin: 0;
}
.gl-mail__compose textarea { resize: vertical; }
.gl-mail__compose-foot { display: flex; align-items: center; justify-content: space-between; gap: var(--gl-3); }

.gl-account-nav__badge {
    display: inline-block;
    min-width: 1.05rem;
    margin-left: 0.35rem;
    padding: 0 0.25rem;
    background: var(--gl-accent);
    color: var(--gl-accent-ink);
    border-radius: var(--r-pill);
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.05rem;
    text-align: center;
}

@media (max-width: 60rem) {
    .gl-mail__body { grid-template-columns: 1fr; }
    .gl-mail__list { max-height: 18rem; }
    .gl-mail__panel { min-height: 24rem; }
}

/* --------------------------------------------------- ecranul de conexiuni */

.gl-network { padding-top: var(--gl-7); display: grid; gap: var(--gl-5); }
.gl-network__head { display: grid; gap: var(--gl-2); }
.gl-network__head .gl-meta { max-width: var(--gl-measure); }

.gl-network__section { display: grid; gap: var(--gl-3); }
.gl-network__section .gl-h4 { display: flex; align-items: center; gap: var(--gl-2); }

.gl-network__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--gl-4);
    padding: var(--gl-3) 0;
    border-top: 1px solid var(--gl-line);
}
.gl-network__section .gl-network__row:first-of-type { border-top: 0; }

.gl-network__party { display: grid; gap: 0.15rem; min-width: 0; }
.gl-network__identity { display: flex; align-items: center; gap: var(--gl-2); }
.gl-membership-mark { display: grid; place-items: center; width: 2rem; height: 2rem; overflow: hidden; border: 1px solid var(--gl-line); border-radius: 50%; color: #137a45; background: #fff; }
.gl-membership-mark img { width: 100%; height: 100%; object-fit: contain; }
.gl-membership-mark .gl-icon { width: 1.1rem; height: 1.1rem; }
.gl-network__name { font-weight: 560; letter-spacing: -0.012em; text-decoration: none; }
.gl-network__name:hover { color: var(--gl-accent-deep); }

/* Nota de la cerere e citatul cuiva, nu textul nostru — se vede ca atare. */
.gl-network__note {
    margin-top: var(--gl-1);
    padding-left: var(--gl-3);
    border-left: 2px solid var(--gl-line-2);
    color: var(--gl-ink-2);
    font-size: 0.9375rem;
    max-width: 52ch;
}

.gl-network__actions { display: flex; align-items: center; gap: var(--gl-2); flex: none; }
.gl-network__actions form { margin: 0; }

.gl-company-network-shell .gl-certifications-shell__body { display: grid; gap: var(--gl-5); }
.gl-company-network__head-actions,
.gl-company-network__form-actions,
.gl-company-network__group-head,
.gl-company-network__form-head,
.gl-company-network__invite-prompt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-3);
}
.gl-company-network__pending { text-decoration: none; }
.gl-company-network__pending:hover { border-color: var(--gl-accent); }
.gl-company-network__form {
    display: grid;
    gap: var(--gl-4);
    padding: var(--gl-5);
    background: var(--gl-surface-2);
    border: 1px solid var(--gl-line);
}
.gl-company-network__form-head button,
.gl-company-network__group-head > button {
    border: 0;
    background: transparent;
    color: var(--gl-accent-deep);
    cursor: pointer;
    font: inherit;
    font-weight: 650;
}
.gl-company-network__form-head > button { color: var(--gl-ink-3); font-size: 1.5rem; }
.gl-company-network__results {
    display: grid;
    max-height: 18rem;
    overflow-y: auto;
    background: var(--gl-surface);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-md);
}
.gl-company-network__results > button {
    display: grid;
    gap: 0.2rem;
    padding: var(--gl-3) var(--gl-4);
    border: 0;
    border-bottom: 1px solid var(--gl-line);
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
}
.gl-company-network__results > button:last-child { border-bottom: 0; }
.gl-company-network__results > button:hover { background: var(--gl-surface-2); }
.gl-company-network__results > button span { color: var(--gl-ink-3); font-size: 0.875rem; }
.gl-company-network__invite-prompt { padding: var(--gl-3); }
.gl-company-network__details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gl-4);
    padding-top: var(--gl-2);
}
.gl-company-network__details > label { display: grid; gap: var(--gl-2); }
.gl-company-network__details > label > span,
.gl-company-network__visibility legend { color: var(--gl-ink-2); font-size: 0.875rem; font-weight: 650; }
.gl-company-network__details input,
.gl-company-network__details select,
.gl-company-network__details textarea { width: 100%; }
.gl-company-network__details > .gl-notice { grid-column: 1 / -1; }
.gl-company-network__visibility {
    display: flex;
    align-items: center;
    gap: var(--gl-4);
    padding: var(--gl-3);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-md);
}
.gl-company-network__visibility legend { padding: 0 var(--gl-1); }
.gl-company-network__visibility label { display: inline-flex; align-items: center; gap: var(--gl-2); }
.gl-company-network__form-actions { align-self: end; justify-content: flex-end; }
.gl-company-network__invite-form {
    grid-column: 1 / -1;
    padding: var(--gl-4);
    background: var(--gl-surface);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-md);
}
.gl-company-network__invite-form > h3,
.gl-company-network__invite-form > p { grid-column: 1 / -1; }
.gl-company-network__groups { display: grid; gap: var(--gl-4); }
.gl-company-network__group-head { padding-bottom: var(--gl-2); border-bottom: 1px solid var(--gl-line); }
.gl-company-network__empty { padding: var(--gl-3) 0; color: var(--gl-ink-3); }
.gl-network--public { padding-top: 0; }

@media (max-width: 40rem) {
    .gl-network__row { flex-direction: column; }
    .gl-network__actions { flex-wrap: wrap; }
    .gl-company-network__details { grid-template-columns: 1fr; }
    .gl-company-network__head-actions,
    .gl-company-network__form-actions { width: 100%; flex-wrap: wrap; }
}

/* ------------------------------------------------------- cerere de conexiune */

/*
 * Panoul cu nota de context. Nu e un modal de sistem, ci o foaie mică ridicată
 * peste pagină — decizia e mică și nu merită un ecran întreg.
 */

.gl-connect {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    place-items: center;
    padding: var(--gl-4);
}
.gl-connect[hidden] { display: none; }

.gl-connect__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(29, 29, 31, 0.32);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.gl-connect__panel {
    position: relative;
    width: min(30rem, 100%);
    display: grid;
    gap: var(--gl-3);
    padding: var(--gl-5);
    background: var(--gl-surface);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-3);
    animation: gl-connect-in 0.28s var(--ease);
}

.gl-connect__panel form { display: grid; gap: var(--gl-4); margin: 0; }

.gl-connect__actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--gl-3);
}

@keyframes gl-connect-in {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .gl-connect__panel { animation: none; }
}

/* Starea în care butonul doar spune ce este, fără să mai facă ceva. */
.gl-btn.is-static { cursor: default; opacity: 0.9; }
.gl-btn__icon { width: 1rem; height: 1rem; }

/* ------------------------------------------------- pagina de notificări */

.gl-notifications { padding-top: var(--gl-7); }

.gl-notifications__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--gl-4);
    flex-wrap: wrap;
    margin-bottom: var(--gl-5);
}
.gl-notifications__head form { margin: 0; }

.gl-notifications__list {
    background: var(--gl-surface);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh-1);
}

.gl-notifications__item {
    display: flex;
    align-items: flex-start;
    gap: var(--gl-4);
    padding: var(--gl-4) var(--gl-5);
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--gl-line);
    transition: background-color 0.15s var(--ease-calm);
}
.gl-notifications__list li:last-child .gl-notifications__item { border-bottom: 0; }
.gl-notifications__item:hover { background: var(--gl-surface-2); }
.gl-notifications__item.is-unread { box-shadow: inset 3px 0 0 var(--gl-accent); }

.gl-notifications__text { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; flex: 1; }
.gl-notifications__title { font-weight: 560; letter-spacing: -0.014em; }
.gl-notifications__body { color: var(--gl-ink-2); font-size: 0.9375rem; }

.gl-notifications__aside {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--gl-1);
    text-align: right;
}

.gl-notifications__pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--gl-4);
    margin-top: var(--gl-5);
}

@media (max-width: 640px) {
    .gl-notifications__item { flex-wrap: wrap; }
    .gl-notifications__aside { flex-direction: row; align-items: center; gap: var(--gl-2); width: 100%; }
}

.gl-footer {
    border-top: 1px solid var(--gl-line);
    padding: var(--gl-6) clamp(1.25rem, 4vw, 2.5rem);
    color: var(--gl-ink-3);
    font-size: 0.875rem;
    text-align: center;
}

/* ------------------------------------------------------------ typography */

.gl-display {
    font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
    font-weight: 600;
}

.gl-h2 {
    font-size: clamp(1.625rem, 1.2rem + 1.5vw, 2.375rem);
    line-height: 1.1;
    letter-spacing: -0.032em;
    font-weight: 600;
}

.gl-h3 {
    font-size: 1.3125rem;
    line-height: 1.2;
    letter-spacing: -0.024em;
    font-weight: 600;
}

.gl-h4 {
    font-size: 1.0625rem;
    line-height: 1.3;
    letter-spacing: -0.018em;
    font-weight: 590;
}

.gl-lede {
    font-size: 1.125rem;
    line-height: 1.5;
    letter-spacing: -0.016em;
    color: var(--gl-ink-2);
    max-width: var(--gl-measure);
}

.gl-meta { font-size: 0.875rem; line-height: 1.45; color: var(--gl-ink-3); letter-spacing: -0.006em; }

.gl-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    color: var(--gl-ink-3);
    font-weight: 600;
}

.gl-muted { color: var(--gl-ink-3); }

.gl-dot {
    display: inline-block;
    width: 3px; height: 3px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.45;
    vertical-align: middle;
    margin-inline: 0.45em;
}

.gl-prose { max-width: var(--gl-measure); color: var(--gl-ink-2); font-size: 1.0625rem; }
.gl-prose p + p { margin-top: var(--gl-4); }
.gl-prose strong { color: var(--gl-ink); font-weight: 590; }

.gl-stack > * + * { margin-top: var(--gl-4); }
.gl-stack-xl > * + * { margin-top: var(--gl-8); }

.gl-page-head { padding-block: var(--gl-9) var(--gl-4); }
.gl-page-head .gl-display { margin-top: var(--gl-3); }
.gl-page-head .gl-lede { margin-top: var(--gl-5); font-size: 1.25rem; }

.gl-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--gl-4);
    padding-bottom: var(--gl-5);
    border-bottom: 1px solid var(--gl-line);
}
.gl-section-head .gl-lede { margin-top: var(--gl-3); font-size: 1rem; }

/* -------------------------------------------------------- reveal on scroll */

[data-reveal] {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
    transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-revealed { opacity: 1; transform: none; }

/* --------------------------------------------------------------- buttons */

.gl-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gl-2);
    padding: 0.7rem 1.35rem;
    border: 1px solid transparent;
    border-radius: var(--r-btn);
    background: transparent;
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: -0.012em;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.4s var(--ease), background-color 0.3s var(--ease-calm),
                border-color 0.3s var(--ease-calm), color 0.3s var(--ease-calm), box-shadow 0.4s var(--ease);
}
.gl-btn:active { transform: scale(0.97); }

/* Acțiunea principală rămâne plată: culoarea plină e semnalul, nu strălucirea. */
.gl-btn--primary {
    background: var(--gl-navy-2);
    color: #fff;
    box-shadow: 0 1px 2px rgba(10, 22, 40, 0.14);
}
.gl-btn--primary:hover { background: var(--gl-navy-3); box-shadow: 0 2px 4px rgba(10, 22, 40, 0.18), 0 14px 30px -14px rgba(10, 22, 40, 0.55); }

/*
 * Auriul e singurul care iese din bleumarin, deci îl păstrăm pentru gestul
 * comercial: revendică-ți compania, pornește perioada de probă. Dacă ar îmbrăca
 * și navigarea, n-ar mai marca nimic.
 */
.gl-btn--gold {
    background: var(--gl-gold);
    color: #fff;
    box-shadow: 0 1px 2px rgba(10, 22, 40, 0.14);
}
.gl-btn--gold:hover { background: var(--gl-gold-deep); box-shadow: 0 2px 4px rgba(10, 22, 40, 0.18), 0 14px 30px -14px rgba(169, 124, 51, 0.5); }

.gl-btn--ghost { border-color: var(--gl-line-2); color: var(--gl-ink); }
.gl-btn--ghost:hover { border-color: var(--gl-ink-3); background: var(--gl-surface); }

.gl-btn--glass {
    background: var(--gl-glass);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-color: var(--gl-glass-line);
    color: var(--gl-ink);
}
.gl-btn--glass:hover { background: var(--gl-glass-strong); }

.gl-btn--danger { background: var(--gl-danger); color: #fff; }
.gl-btn--danger:hover { filter: brightness(0.92); }

.gl-btn--link {
    padding-inline: 0;
    color: var(--gl-ink-3);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.gl-btn--link:hover { color: var(--gl-ink); }

.gl-btn--sm { padding: 0.45rem 0.9rem; font-size: 0.875rem; }

.gl-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem; height: 2.75rem;
    border: 1px solid var(--gl-line-2);
    border-radius: 50%;
    background: transparent;
    color: var(--gl-ink-2);
    cursor: pointer;
    flex: none;
    transition: transform 0.4s var(--ease), border-color 0.3s var(--ease-calm),
                color 0.3s var(--ease-calm), background-color 0.3s var(--ease-calm);
}
.gl-icon-btn svg { width: 1.2rem; height: 1.2rem; }
.gl-icon-btn:hover { border-color: var(--gl-ink-3); color: var(--gl-ink); }
.gl-icon-btn:active { transform: scale(0.92); }
.gl-icon-btn--glass {
    background: var(--gl-glass);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-color: var(--gl-glass-line);
    color: var(--gl-ink);
}
.gl-icon-btn--sm { width: 2.15rem; height: 2.15rem; border-radius: var(--r-sm); }
.gl-icon-btn--sm svg { width: 1rem; height: 1rem; }
.gl-icon-btn--danger:hover { border-color: var(--gl-danger); color: var(--gl-danger); }

/* --------------------------------------------------- badges, chips, state */

.gl-chips { display: flex; flex-wrap: wrap; gap: var(--gl-2); align-items: center; }

.gl-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.8rem;
    border: 1px solid var(--gl-line-2);
    border-radius: var(--r-pill);
    font-size: 0.875rem;
    color: var(--gl-ink-2);
    background: var(--gl-surface);
    transition: border-color 0.3s var(--ease-calm), transform 0.4s var(--ease);
}
.gl-chip:hover { border-color: var(--gl-ink-3); }

.gl-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.85rem 0.3rem 0.6rem;
    border-radius: var(--r-pill);
    font-size: 0.875rem;
    font-weight: 500;
}
.gl-badge__icon { width: 1.05rem; height: 1.05rem; }
.gl-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; margin-left: 0.25rem; }
.gl-badge--verified { background: var(--gl-accent-soft); color: var(--gl-accent-deep); }
.gl-badge--muted { background: var(--gl-surface-2); color: var(--gl-ink-3); border: 1px solid var(--gl-line); }

.gl-state {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    padding: 0.2rem 0.7rem;
    border-radius: var(--r-pill);
    white-space: nowrap;
}
.gl-state::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.gl-state--verified { background: var(--gl-accent-soft); color: var(--gl-accent-deep); }
.gl-state--extracted { background: var(--gl-surface-2); color: var(--gl-ink-2); border: 1px solid var(--gl-line); }
.gl-state--declared { color: var(--gl-ink-3); border: 1px solid var(--gl-line); }
.gl-state--pending { color: var(--gl-ink-3); border: 1px dashed var(--gl-line-2); }

.gl-legend { display: flex; flex-wrap: wrap; gap: var(--gl-2); }

/* -------------------------------------------------------------- demo bar */

/* Bara de demonstrație curge cu pagina: e o unealtă de review, nu face parte din produs. */
.gl-demo {
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-bottom: 1px solid var(--gl-line);
}

.gl-demo__inner {
    max-width: var(--gl-shell);
    margin-inline: auto;
    padding: var(--gl-2) clamp(1.25rem, 4vw, 2.5rem);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gl-4);
    font-size: 0.8125rem;
}

.gl-demo__tag {
    font-size: 0.625rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--gl-ink-3);
}

.gl-demo__group { display: flex; align-items: center; gap: var(--gl-2); }
.gl-demo__label { color: var(--gl-ink-3); }

/* Segmented control în tradiția iOS: pistă gri, pastilă albă pe opțiunea activă. */
.gl-segmented {
    display: inline-flex;
    padding: 2px;
    border-radius: var(--r-pill);
    background: var(--gl-surface-2);
    border: 1px solid var(--gl-line);
}
.gl-segmented__option {
    padding: 0.25rem 0.85rem;
    border-radius: var(--r-pill);
    text-decoration: none;
    color: var(--gl-ink-2);
    transition: background-color 0.3s var(--ease-calm), color 0.3s var(--ease-calm), box-shadow 0.3s var(--ease);
}
.gl-segmented__option:hover { color: var(--gl-ink); }
.gl-segmented__option.is-active {
    background: var(--gl-surface);
    color: var(--gl-ink);
    box-shadow: var(--sh-1);
    font-weight: 500;
}

.gl-demo__links { display: flex; flex-wrap: wrap; gap: var(--gl-3); }

/* Pe ecran mic, bara de demo renunță la etichete: comenzile se explică singure. */
@media (max-width: 48rem) {
    .gl-demo__inner { gap: var(--gl-2) var(--gl-3); padding-block: var(--gl-2); }
    .gl-demo__label, .gl-demo__tag { display: none; }
    .gl-demo__editor { margin-left: 0; }
}
.gl-demo__links a { color: var(--gl-ink-2); text-underline-offset: 3px; }
.gl-demo__editor { margin-left: auto; color: var(--gl-accent-deep); font-weight: 500; text-decoration: none; }
.gl-demo__editor:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ------------------------------------------------------------------ hero */

.gl-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-end;
    min-height: min(78vh, 680px);
    padding-block: var(--gl-9) var(--gl-7);
    overflow: hidden;
    margin-bottom: var(--gl-7);
}

.gl-hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }

.gl-hero__image {
    position: absolute;
    inset: -12% 0;
    background-size: cover;
    background-position: center;
    will-change: transform;
}

/* Montanți peste imagine: hero-ul se citește ca o fațadă, nu ca o fotografie de stoc. */
.gl-hero__scrim::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(90deg,
        rgba(255, 255, 255, 0.09) 0 1px,
        transparent 1px 168px);
    mask-image: linear-gradient(180deg, #000 0%, transparent 72%);
}

.gl-hero__scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(8, 12, 18, 0.34) 0%, transparent 30%, rgba(8, 12, 18, 0.55) 78%, rgba(8, 12, 18, 0.88) 100%),
        radial-gradient(90% 70% at 8% 96%, rgba(8, 12, 18, 0.62), transparent 62%);
}

/* Fațadă desenată pentru profilurile fără banner: montanți, riglă, un plan de lumină. */
.gl-hero__facade {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(70% 60% at 82% -5%, rgba(255, 255, 255, 0.95), transparent 62%),
        linear-gradient(168deg, rgba(0, 113, 227, 0.10) 0%, transparent 42%),
        linear-gradient(0deg, rgba(29, 29, 31, 0.05) 0%, transparent 30%),
        var(--gl-surface-2);
}

/* Montanți: verticale rare care se sting spre bază, nu o grilă de tabel. */
.gl-hero__facade::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(90deg, var(--gl-line-2) 0 1px, transparent 1px 184px);
    mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.35) 55%, transparent 88%);
}

.gl-hero--light .gl-logo { border-color: var(--gl-line); }

.gl-hero__content {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--gl-6);
    width: 100%;
}

.gl-hero__identity {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gl-5);
    flex: 1 1 34rem;
    min-width: min(100%, 20rem);
}

.gl-hero__eyebrow {
    font-size: 0.9375rem;
    letter-spacing: -0.005em;
}

.gl-hero__name {
    margin-top: var(--gl-2);
    font-size: clamp(2.5rem, 1.5rem + 3.9vw, 4.5rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
    font-weight: 600;
}

.gl-hero__slogan {
    margin-top: var(--gl-4);
    font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.375rem);
    line-height: 1.4;
    letter-spacing: -0.02em;
    max-width: 38ch;
}

.gl-hero__chips { margin-top: var(--gl-5); }
.gl-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gl-2); }

.gl-hero--dark { color: var(--gl-on-media); }
.gl-hero--dark .gl-hero__eyebrow { color: var(--gl-on-media-2); }
.gl-hero--dark .gl-hero__slogan { color: var(--gl-on-media-2); }
.gl-hero--dark .gl-chip {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.28);
    color: var(--gl-on-media);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
/* Fundalul badge-ului de pe hero e alb în ambele teme, deci textul lui nu urmează
   tokenul de accent — altfel în temă întunecată ar deveni albastru deschis pe alb. */
.gl-hero--dark .gl-badge--verified { background: rgba(255, 255, 255, 0.94); color: #0058b0; }
.gl-hero--dark .gl-badge--muted { background: rgba(255, 255, 255, 0.16); color: #fff; border-color: rgba(255, 255, 255, 0.24); }
.gl-hero--dark .gl-btn--glass,
.gl-hero--dark .gl-icon-btn--glass {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
}
.gl-hero--dark .gl-btn--glass:hover,
.gl-hero--dark .gl-icon-btn--glass:hover { background: rgba(255, 255, 255, 0.26); }

.gl-hero--light { min-height: min(62vh, 540px); }

@media (max-width: 48rem) {
    .gl-hero { min-height: auto; padding-block: var(--gl-8) var(--gl-6); }
    .gl-hero__identity { flex-direction: column; align-items: flex-start; gap: var(--gl-4); }
}

.gl-logo {
    display: grid;
    place-items: center;
    width: clamp(76px, 8vw, 112px);
    aspect-ratio: 1;
    border-radius: var(--r-lg);
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border: 1px solid var(--gl-glass-line);
    box-shadow: var(--sh-2);
    font-weight: 600;
    letter-spacing: -0.04em;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    color: var(--gl-ink-2);
    flex: none;
    background-size: cover;
    background-position: center;
}
.gl-logo--sm {
    width: 48px;
    border-radius: var(--r-sm);
    font-size: 0.9375rem;
    box-shadow: var(--sh-1);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: var(--gl-surface-2);
    border-color: var(--gl-line);
}
.gl-logo--alumira-systems {
    background: linear-gradient(145deg, #4a90d9 0%, #1a4d7e 55%, #0d2740 100%);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.25);
}
.gl-logo--fallback { color: var(--gl-ink-3); }

/* --------------------------------------------------- media placeholders */

/* Nicio fotografie reală: fiecare imagine e un gradient sobru, ca atenția să
   rămână pe structură. Tonurile imită sticlă, aluminiu anodizat și lemn. */
.gl-banner--alumira-systems {
    background-image:
        radial-gradient(58% 46% at 74% 12%, rgba(255, 255, 255, 0.6), transparent 62%),
        linear-gradient(112deg, #0a121c 0%, #17324f 34%, #4f7492 60%, #aabecd 82%, #dfe6ec 100%);
}

.gl-tone-1 { --tone: linear-gradient(145deg, #d6ddd4, #93a396); }
.gl-tone-2 { --tone: linear-gradient(145deg, #ded7c7, #a4967f); }
.gl-tone-3 { --tone: linear-gradient(145deg, #ccd4d8, #85949c); }
.gl-tone-4 { --tone: linear-gradient(145deg, #d6cfd2, #978b91); }
.gl-tone-5 { --tone: linear-gradient(145deg, #cfd9d1, #869a8c); }
.gl-tone-6 { --tone: linear-gradient(145deg, #dbd3c6, #9d8f79); }

.gl-notice {
    margin-bottom: var(--gl-7);
    padding: var(--gl-4) var(--gl-5);
    border: 1px solid var(--gl-line);
    background: var(--gl-surface);
    border-radius: var(--r);
    font-size: 0.9375rem;
    color: var(--gl-ink-2);
    max-width: var(--gl-measure);
    box-shadow: var(--sh-1);
}

/* ------------------------------------------------------------------ tabs */

.gl-tabs {
    position: sticky;
    top: var(--topbar-h);
    z-index: 30;
    margin-bottom: var(--gl-8);
    background: var(--gl-glass);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-bottom: 1px solid var(--gl-line);
}

.gl-tabs__scroller {
    position: relative;
    display: flex;
    gap: var(--gl-5);
    overflow-x: auto;
    scrollbar-width: none;
}
.gl-tabs__scroller::-webkit-scrollbar { display: none; }

/* Indicatorul glisant este creat din JS ca să poată interpola între taburi. */
.gl-tabs__indicator {
    position: absolute;
    left: 0; bottom: 0;
    height: 2px;
    background: var(--gl-accent);
    border-radius: 2px;
    transition: transform 0.55s var(--ease), width 0.55s var(--ease);
    pointer-events: none;
}

.gl-tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: var(--gl-4) 0;
    border: 0;
    background: none;
    cursor: pointer;
    color: var(--gl-ink-3);
    font-size: 0.9375rem;
    white-space: nowrap;
    transition: color 0.3s var(--ease-calm);
}
.gl-tab:hover { color: var(--gl-ink); }
.gl-tab[aria-selected="true"] { color: var(--gl-ink); font-weight: 550; }

.gl-tab__count {
    font-size: 0.6875rem;
    color: var(--gl-ink-3);
    background: var(--gl-surface-2);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-pill);
    padding: 0.05rem 0.4rem;
    line-height: 1.4;
}

.gl-panel:focus { outline: none; }

/* ---------------------------------------------------------- split layout */

.gl-layout-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gl-8); }

@media (min-width: 62rem) {
    .gl-layout-split { grid-template-columns: minmax(0, 1fr) 20.5rem; gap: var(--gl-9); align-items: start; }
    .gl-sidebar { position: sticky; top: calc(var(--topbar-h) + 5.5rem); }
}

.gl-card {
    padding: var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    background: var(--gl-surface);
    box-shadow: var(--sh-1);
    transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.gl-card > * + * { margin-top: var(--gl-4); }

.gl-facts { display: grid; gap: var(--gl-4); }
.gl-facts dt { font-size: 0.8125rem; color: var(--gl-ink-3); }
.gl-facts dd { font-size: 1rem; font-weight: 450; }

.gl-link-out {
    display: inline-block;
    font-size: 0.9375rem;
    color: var(--gl-accent-deep);
    text-underline-offset: 4px;
}

.gl-numbers { display: grid; gap: var(--gl-5); }
.gl-numbers__value {
    display: block;
    font-size: 2.5rem;
    line-height: 1;
    letter-spacing: -0.045em;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--gl-ink);
}
.gl-numbers__label { font-size: 0.875rem; color: var(--gl-ink-3); }

/* ------------------------------------------------------------ activities */

.gl-activity-grid { display: grid; gap: var(--gl-5); }
@media (min-width: 48rem) {
    .gl-activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gl-6); }
}
.gl-activity-grid dt { font-size: 0.8125rem; color: var(--gl-ink-3); margin-bottom: var(--gl-2); }

/* ------------------------------------------------------------------- map */

.gl-map {
    position: relative;
    aspect-ratio: 16 / 7.5;
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    background:
        radial-gradient(80% 60% at 50% 0%, rgba(0, 113, 227, 0.05), transparent 70%),
        var(--gl-surface);
    overflow: hidden;
    box-shadow: var(--sh-1);
}

.gl-map__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--gl-line) 1px, transparent 1px),
        linear-gradient(90deg, var(--gl-line) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(120% 100% at 50% 50%, #000 55%, transparent 100%);
}

.gl-map__pin { position: absolute; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 0.45rem; }
.gl-map__pin::before {
    content: "";
    width: 9px; height: 9px;
    border-radius: 50%;
    border: 2px solid var(--gl-ink-3);
    background: var(--gl-surface);
}
.gl-map__pin--hq::before {
    border-color: var(--gl-accent);
    background: var(--gl-accent);
    box-shadow: 0 0 0 5px var(--gl-accent-soft);
    animation: gl-pulse 3.4s var(--ease-calm) infinite;
}
@keyframes gl-pulse {
    0%, 100% { box-shadow: 0 0 0 5px var(--gl-accent-soft); }
    50% { box-shadow: 0 0 0 11px rgba(0, 113, 227, 0.08); }
}
.gl-map__pin-label { font-size: 0.8125rem; color: var(--gl-ink-2); white-space: nowrap; }
.gl-map__pin--below .gl-map__pin-label {
    position: absolute;
    left: 50%; top: 1.15rem;
    transform: translateX(-50%);
}

.gl-location-list { display: grid; }
.gl-location-list li {
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr);
    gap: var(--gl-1) var(--gl-5);
    padding: var(--gl-4) 0;
    border-bottom: 1px solid var(--gl-line);
    font-size: 1rem;
}
.gl-location-list__type { font-size: 0.8125rem; color: var(--gl-ink-3); }
.gl-location-list__detail { grid-column: 2; font-size: 0.875rem; color: var(--gl-ink-3); }
@media (max-width: 40rem) {
    .gl-location-list li { grid-template-columns: minmax(0, 1fr); }
    .gl-location-list__detail { grid-column: 1; }
}

/* --------------------------------------------------------------- gallery */

.gl-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: var(--gl-3);
}

.gl-gallery__item {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border: 0;
    border-radius: var(--r);
    background: var(--tone, var(--gl-surface-2));
    cursor: zoom-in;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.6s var(--ease), box-shadow 0.6s var(--ease);
}
.gl-gallery__item::after {
    content: "";
    position: absolute;
    inset: -20%;
    background: linear-gradient(104deg, transparent 42%, rgba(255, 255, 255, 0.42) 50%, transparent 58%);
    transform: translate3d(-130%, 0, 0);
    pointer-events: none;
}
.gl-gallery__item:hover { transform: translateY(-4px); box-shadow: var(--sh-2); }
.gl-gallery__item:hover::after { animation: gl-sweep 0.9s var(--ease); }
.gl-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.gl-gallery__caption {
    position: absolute;
    inset: auto 0 0;
    z-index: 1;
    padding: var(--gl-5) var(--gl-3) var(--gl-3);
    color: var(--gl-surface);
    background: linear-gradient(transparent, rgba(9, 25, 49, 0.88));
    font-size: 0.8125rem;
    line-height: 1.4;
    text-align: left;
}

.gl-lightbox { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: var(--gl-6); }
.gl-lightbox[hidden] { display: none; }
.gl-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 20, 24, 0.55);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    animation: gl-fade 0.4s var(--ease);
}

@keyframes gl-fade { from { opacity: 0; } to { opacity: 1; } }

.gl-lightbox__figure {
    position: relative;
    width: min(100%, 62rem);
    background: var(--gl-surface);
    border-radius: var(--r-xl);
    padding: var(--gl-4);
    box-shadow: var(--sh-3);
}
.gl-lightbox__image { display: block; width: 100%; aspect-ratio: 3 / 2; border-radius: var(--r-lg); background: var(--tone, var(--gl-surface-2)); object-fit: contain; }
.gl-lightbox__caption { margin-top: var(--gl-4); padding-inline: var(--gl-2); font-size: 0.9375rem; color: var(--gl-ink-2); }

.gl-lightbox__nav,
.gl-lightbox__close {
    position: absolute;
    display: grid;
    place-items: center;
    width: 2.75rem; height: 2.75rem;
    border-radius: 50%;
    border: 1px solid var(--gl-glass-line);
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    color: var(--gl-ink);
    cursor: pointer;
    transition: transform 0.4s var(--ease);
}
.gl-lightbox__nav:hover, .gl-lightbox__close:hover { transform: scale(1.08); }
.gl-lightbox__nav svg, .gl-lightbox__close svg { width: 1.25rem; height: 1.25rem; }
.gl-lightbox__nav--prev { left: calc(-1 * var(--gl-6)); top: 45%; }
.gl-lightbox__nav--next { right: calc(-1 * var(--gl-6)); top: 45%; }
.gl-lightbox__close { top: calc(-1 * var(--gl-6)); right: 0; }
@media (max-width: 52rem) {
    .gl-lightbox__nav--prev { left: var(--gl-2); }
    .gl-lightbox__nav--next { right: var(--gl-2); }
    .gl-lightbox__close { top: var(--gl-2); right: var(--gl-2); }
}

/* ------------------------------------------------------------- documents */

.gl-doc-list { display: grid; gap: var(--gl-2); }

.gl-doc {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--gl-5);
    padding: var(--gl-4) var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease), border-color 0.4s var(--ease-calm);
}
.gl-doc:hover { transform: translateY(-2px); box-shadow: var(--sh-2); border-color: transparent; }

.gl-doc__glyph {
    display: grid;
    place-items: center;
    width: 2.85rem; height: 3.4rem;
    border-radius: var(--r-sm);
    font-size: 0.625rem;
    letter-spacing: 0.06em;
    font-weight: 600;
    color: var(--gl-ink-3);
    background: linear-gradient(160deg, var(--gl-surface-2), var(--gl-surface));
    border: 1px solid var(--gl-line);
}

.gl-doc__body > * + * { margin-top: var(--gl-1); }
.gl-doc__actions { display: flex; gap: var(--gl-2); }
.gl-availability-picker { display: grid; min-width: min(20rem, 100%); gap: var(--gl-1); color: var(--gl-ink-2); font-size: .72rem; font-weight: 600; }
.gl-availability-picker select { width: 100%; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--gl-line); border-radius: var(--r-sm); background: var(--gl-surface); color: var(--gl-ink); font: inherit; }
.gl-location-map { display: grid; gap: var(--gl-2); margin-top: var(--gl-3); }
.gl-location-map iframe { width: 100%; height: 18rem; border: 1px solid var(--gl-line); border-radius: var(--r-sm); background: var(--gl-surface-2); }
.gl-location-map a { width: fit-content; font-size: .78rem; font-weight: 600; }

.gl-documents-page { display: grid; gap: var(--gl-5); }
.gl-documents-editor { padding: var(--gl-5); }
.gl-document-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gl-3); margin-top: var(--gl-4); }
.gl-document-form label { display: grid; gap: var(--gl-1); color: var(--gl-ink-2); font-size: .78rem; font-weight: 600; }
.gl-document-form input,
.gl-document-form select,
.gl-document-form textarea,
.gl-document-share select {
    width: 100%;
    min-height: 2.75rem;
    padding: .65rem .75rem;
    border: 1px solid var(--gl-line);
    border-radius: var(--r-sm);
    background: var(--gl-surface);
    color: var(--gl-ink);
    font: inherit;
}
.gl-document-form select[multiple] { min-height: 8rem; }
.gl-document-form__wide { grid-column: 1 / -1; }
.gl-doc--editor { align-items: start; }
.gl-document-details { grid-column: 1 / -1; padding-top: var(--gl-2); border-top: 1px solid var(--gl-line); }
.gl-document-details summary { cursor: pointer; color: var(--gl-accent-strong); font-weight: 600; }
.gl-document-share,
.gl-document-delete { display: flex; align-items: center; gap: var(--gl-2); margin-top: var(--gl-3); }
.gl-document-share select { max-width: 24rem; }
.gl-document-delete { justify-content: space-between; color: var(--gl-ink-3); font-size: .78rem; }

@media (max-width: 48rem) {
    .gl-doc { grid-template-columns: auto minmax(0, 1fr); gap: var(--gl-3); }
    .gl-doc__actions { grid-column: 1 / -1; }
    .gl-availability-picker { grid-column: 1 / -1; }
    .gl-document-form { grid-template-columns: 1fr; }
    .gl-document-form__wide { grid-column: auto; }
    .gl-document-share,.gl-document-delete { align-items: stretch; flex-direction: column; }
}

/* --------------------------------------------------------------- systems */

.gl-system + .gl-system { margin-top: var(--gl-8); }

.gl-system__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--gl-3);
    margin-bottom: var(--gl-4);
}
.gl-system__source { font-style: italic; }

.gl-table-scroll {
    overflow-x: auto;
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    background: var(--gl-surface);
    box-shadow: var(--sh-1);
}

.gl-table { width: 100%; min-width: 44rem; border-collapse: collapse; font-size: 0.9375rem; }
.gl-table th, .gl-table td { text-align: left; padding: var(--gl-4) var(--gl-5); vertical-align: baseline; }
.gl-table thead th {
    font-size: 0.6875rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--gl-ink-3);
    border-bottom: 1px solid var(--gl-line);
}
.gl-table tbody tr { transition: background-color 0.25s var(--ease-calm); }
.gl-table tbody tr:hover { background: var(--gl-surface-2); }
.gl-table tbody tr + tr th, .gl-table tbody tr + tr td { border-top: 1px solid var(--gl-line); }
.gl-table tbody th { font-weight: 400; color: var(--gl-ink-2); }
.gl-table__value {
    font-variant-numeric: tabular-nums;
    font-weight: 590;
    letter-spacing: -0.02em;
    white-space: nowrap;
    font-size: 1rem;
}
.gl-table__note { font-size: 0.8125rem; color: var(--gl-ink-3); }

/* ----------------------------------------------------------------- roles */

.gl-role-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: var(--gl-4); }
.gl-role { display: flex; flex-direction: column; }
.gl-role > * + * { margin-top: var(--gl-2); }
.gl-role:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.gl-role__title { font-size: 0.8125rem; color: var(--gl-ink-3); }
.gl-role__contact { display: grid; gap: var(--gl-2); margin-top: var(--gl-4); font-size: 0.9375rem; }
.gl-role__contact dt { font-size: 0.75rem; color: var(--gl-ink-3); }
.gl-role__contact dd { overflow-wrap: anywhere; }
.gl-role__flag { font-style: italic; }
.gl-role .gl-btn { margin-top: auto; align-self: flex-start; }

/* ---------------------------------------------------------- certificates */

.gl-cert-list { display: grid; gap: var(--gl-2); }

.gl-cert {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--gl-4);
    align-items: center;
    padding: var(--gl-4) var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.gl-cert:hover { transform: translateY(-2px); box-shadow: var(--sh-2); }
.gl-cert--verified { background: linear-gradient(180deg, var(--gl-accent-soft) 0%, var(--gl-surface) 55%); }

.gl-cert__mark {
    display: grid;
    place-items: center;
    width: 2.5rem; height: 2.5rem;
    border-radius: 50%;
    background: var(--gl-accent);
    color: #fff;
}
.gl-cert__mark svg { width: 1.35rem; height: 1.35rem; }
.gl-cert__mark--plain { background: var(--gl-surface-2); border: 1px solid var(--gl-line); }

/* -------------------------------------------------------- gate and empty */

.gl-gate {
    display: grid;
    gap: var(--gl-6);
    padding: var(--gl-8);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-xl);
    background:
        radial-gradient(100% 80% at 85% 0%, rgba(0, 113, 227, 0.07), transparent 65%),
        var(--gl-surface);
    box-shadow: var(--sh-1);
}
@media (min-width: 56rem) {
    .gl-gate { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; }
}
.gl-gate__body > * + * { margin-top: var(--gl-4); }
.gl-gate__actions { display: flex; flex-wrap: wrap; gap: var(--gl-2); margin-top: var(--gl-6); }

.gl-gate__preview {
    display: grid;
    gap: var(--gl-3);
    padding: var(--gl-5);
    border-radius: var(--r-lg);
    background: var(--gl-surface-2);
    border: 1px solid var(--gl-line);
    color: var(--gl-ink-3);
    font-size: 0.9375rem;
    mask-image: linear-gradient(180deg, #000 35%, transparent 100%);
}
.gl-gate__preview li { filter: blur(3px); }

.gl-empty {
    padding: var(--gl-8);
    border: 1px dashed var(--gl-line-2);
    border-radius: var(--r-xl);
    text-align: center;
    color: var(--gl-ink-3);
}
.gl-empty p { margin-top: var(--gl-3); max-width: 46ch; margin-inline: auto; font-size: 1rem; }

/* -------------------------------------------------------- company index */

.gl-company-list { display: grid; gap: var(--gl-2); }
.gl-company-list__item {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--gl-5);
    padding: var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    background: var(--gl-surface);
    box-shadow: var(--sh-1);
    transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.gl-company-list__item:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.gl-company-list__identity { display: flex; align-items: center; gap: var(--gl-4); }
.gl-company-list__identity a { text-decoration: none; }
.gl-company-list__identity a:hover { text-decoration: underline; text-underline-offset: 5px; }
.gl-company-list__scenario { font-size: 0.9375rem; color: var(--gl-ink-3); }
.gl-company-list__actions { display: flex; gap: var(--gl-2); }
@media (max-width: 56rem) {
    .gl-company-list__item { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------------------------------------------------------- drawer */

.gl-drawer { position: fixed; inset: 0; z-index: 60; }
.gl-drawer[hidden] { display: none; }
.gl-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 20, 24, 0.38);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    animation: gl-fade 0.4s var(--ease);
}

.gl-drawer__panel {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: min(100%, 31rem);
    display: flex;
    flex-direction: column;
    background: var(--gl-surface);
    box-shadow: var(--sh-3);
    animation: gl-slide-in 0.5s var(--ease);
}

@keyframes gl-slide-in {
    from { transform: translateX(3rem); opacity: 0; }
    to { transform: none; opacity: 1; }
}

.gl-drawer__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--gl-3);
    padding: var(--gl-5) var(--gl-6);
    border-bottom: 1px solid var(--gl-line);
}
.gl-drawer__body { flex: 1; overflow-y: auto; padding: var(--gl-6); display: grid; gap: var(--gl-4); align-content: start; }
.gl-drawer__foot { display: flex; gap: var(--gl-2); padding: var(--gl-4) var(--gl-6); border-top: 1px solid var(--gl-line); }
.gl-drawer__foot .gl-input { flex: 1; }

.gl-chat__hint { font-size: 0.875rem; color: var(--gl-ink-3); }

.gl-chat-msg {
    padding: var(--gl-3) var(--gl-4);
    border-radius: var(--r-lg);
    font-size: 0.9375rem;
    max-width: 88%;
    animation: gl-pop 0.45s var(--ease);
}
@keyframes gl-pop {
    from { opacity: 0; transform: translateY(8px) scale(0.98); }
    to { opacity: 1; transform: none; }
}
.gl-chat-msg--user {
    background: var(--gl-accent);
    color: var(--gl-accent-ink);
    justify-self: end;
    border-bottom-right-radius: var(--r-sm);
}
.gl-chat-msg--bot { background: var(--gl-surface-2); border: 1px solid var(--gl-line); border-bottom-left-radius: var(--r-sm); }
.gl-chat-msg__cite {
    display: block;
    margin-top: var(--gl-3);
    font-size: 0.8125rem;
    color: var(--gl-ink-3);
    border-top: 1px solid var(--gl-line);
    padding-top: var(--gl-2);
}

/* ----------------------------------------------------------------- toast */

.gl-toast {
    position: fixed;
    left: 50%;
    bottom: var(--gl-6);
    transform: translateX(-50%);
    z-index: 70;
    padding: var(--gl-3) var(--gl-5);
    border-radius: var(--r-pill);
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border: 1px solid var(--gl-glass-line);
    color: var(--gl-ink);
    font-size: 0.9375rem;
    box-shadow: var(--sh-2);
    max-width: min(90vw, 34rem);
    text-align: center;
    animation: gl-toast-in 0.5s var(--ease);
}
.gl-toast[hidden] { display: none; }

@keyframes gl-toast-in {
    from { transform: translate(-50%, 1rem) scale(0.94); opacity: 0; }
    to { transform: translate(-50%, 0) scale(1); opacity: 1; }
}

/* --------------------------------------------------------------- confirm */

.gl-confirm { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: var(--gl-4); }
.gl-confirm[hidden] { display: none; }
.gl-confirm__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 20, 24, 0.38);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.gl-confirm__panel {
    position: relative;
    width: min(100%, 27rem);
    padding: var(--gl-6);
    border-radius: var(--r-xl);
    background: var(--gl-surface);
    box-shadow: var(--sh-3);
    animation: gl-pop 0.45s var(--ease);
}
.gl-confirm__panel p { margin-top: var(--gl-3); color: var(--gl-ink-2); font-size: 0.9375rem; }
.gl-confirm__actions { display: flex; justify-content: flex-end; gap: var(--gl-2); margin-top: var(--gl-6); }

/* ---------------------------------------------------------------- editor */

.gl-editor__head {
    position: sticky;
    top: var(--topbar-h);
    z-index: 35;
    background: var(--gl-glass-strong);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-bottom: 1px solid var(--gl-line);
}

.gl-editor__head-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-4);
    padding-block: var(--gl-4);
}

.gl-editor__head-right { display: flex; align-items: center; gap: var(--gl-5); flex-wrap: wrap; }

.gl-score-mini { display: grid; gap: 0.4rem; min-width: 12rem; }
.gl-score-mini__text { display: flex; align-items: baseline; gap: var(--gl-2); }
.gl-score-mini__value { font-size: 1.25rem; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -0.03em; }
.gl-score-mini__label { font-size: 0.8125rem; color: var(--gl-ink-3); }

.gl-progress { height: 7px; border-radius: var(--r-pill); background: var(--gl-surface-2); border: 1px solid var(--gl-line); overflow: hidden; }
.gl-progress--sm { height: 5px; }
.gl-progress__bar {
    height: 100%;
    background: linear-gradient(90deg, var(--gl-accent) 0%, var(--gl-accent-2) 100%);
    border-radius: inherit;
    transition: width 0.8s var(--ease);
}

.gl-editor__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gl-6);
    padding-top: var(--gl-7);
    align-items: start;
}
@media (min-width: 60rem) { .gl-editor__body { grid-template-columns: 14rem minmax(0, 1fr); } }
@media (min-width: 82rem) { .gl-editor__body { grid-template-columns: 14rem minmax(0, 1fr) 20rem; gap: var(--gl-7); } }

.gl-editor__nav-toggle {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    padding: var(--gl-3) var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    box-shadow: var(--sh-1);
    cursor: pointer;
}
.gl-editor__nav-toggle svg { width: 1.25rem; height: 1.25rem; transition: transform 0.4s var(--ease); }
.gl-editor__nav-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.gl-editor__nav-list { display: grid; gap: 2px; margin-top: var(--gl-2); }

.gl-editor__nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-2);
    width: 100%;
    padding: var(--gl-2) var(--gl-4);
    border: 0;
    border-radius: var(--r-sm);
    background: none;
    text-align: left;
    font-size: 0.9375rem;
    color: var(--gl-ink-2);
    cursor: pointer;
    transition: background-color 0.3s var(--ease-calm), color 0.3s var(--ease-calm);
}
.gl-editor__nav-item:hover { background: var(--gl-surface); color: var(--gl-ink); }
.gl-editor__nav-item.is-active {
    background: var(--gl-surface);
    color: var(--gl-ink);
    font-weight: 550;
    box-shadow: var(--sh-1);
}

.gl-editor__dirty { width: 7px; height: 7px; border-radius: 50%; background: var(--gl-danger); flex: none; }

@media (min-width: 60rem) {
    .gl-editor__nav-toggle { display: none; }
    .gl-editor__nav-list { display: grid !important; position: sticky; top: calc(var(--topbar-h) + 6.5rem); }
}
@media (max-width: 59.99rem) {
    .gl-editor__nav-list[hidden] { display: none; }
}

.gl-editor__section { scroll-margin-top: calc(var(--topbar-h) + 6rem); }
.gl-editor__section[hidden] { display: none; }
.gl-editor__section:not([hidden]) { animation: gl-section-in 0.5s var(--ease); }

@keyframes gl-section-in {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

/* ------------------------------------------------------------------ form */

.gl-form { display: grid; gap: var(--gl-6); }
.gl-form__head > * + * { margin-top: var(--gl-2); }

.gl-field-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--gl-4); }
.gl-field-grid--tight { gap: var(--gl-3); }
.gl-field--wide { grid-column: span 2; }
@media (max-width: 40rem) { .gl-field--wide { grid-column: auto; } }

.gl-field { display: grid; gap: 0.4rem; align-content: start; }
.gl-field > label,
.gl-field__label { font-size: 0.875rem; font-weight: 500; color: var(--gl-ink-2); }

.gl-input {
    width: 100%;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--gl-line-2);
    border-radius: var(--r-sm);
    background: var(--gl-surface);
    font-size: 0.9375rem;
    transition: border-color 0.25s var(--ease-calm), box-shadow 0.25s var(--ease-calm);
}
.gl-input:hover { border-color: var(--gl-ink-3); }
.gl-input:focus {
    outline: none;
    border-color: var(--gl-accent);
    box-shadow: 0 0 0 4px var(--gl-accent-soft);
}
.gl-input--sm { padding: 0.4rem 0.6rem; font-size: 0.875rem; }
.gl-input[aria-invalid="true"] { border-color: var(--gl-danger); }
.gl-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 4px var(--gl-danger-soft); }

.gl-textarea { resize: vertical; min-height: 11rem; line-height: 1.55; }

.gl-field__help, .gl-field__counter { font-size: 0.8125rem; color: var(--gl-ink-3); }
.gl-field__counter.is-over { color: var(--gl-danger); }
.gl-field__error { font-size: 0.8125rem; color: var(--gl-danger); animation: gl-shake 0.4s var(--ease-calm); }
.gl-field__error[hidden] { display: none; }

@keyframes gl-shake {
    0%, 100% { transform: none; }
    25% { transform: translateX(-3px); }
    75% { transform: translateX(3px); }
}

.gl-fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: var(--gl-3); }
.gl-fieldset > legend { padding: 0; margin-bottom: var(--gl-1); }

.gl-form__foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--gl-4);
    padding-top: var(--gl-5);
    border-top: 1px solid var(--gl-line);
}
.gl-form__status { font-size: 0.875rem; color: var(--gl-danger); margin-right: auto; }
.gl-form__status[hidden] { display: none; }

/* Account editor inside the shared concept shell: one navigation, one card. */
.gl-editor__body.gl-editor__body--single { display: block; max-width: 72rem; padding-block: 2rem 3rem; }
.gl-account-form-card { overflow: hidden; padding: 0; border-color: #dce1e9; border-radius: .55rem; background: #fff; box-shadow: 0 3px 12px rgba(16, 47, 98, .05); }
.gl-account-form-card > .gl-notice { margin: 1.5rem 1.8rem 0; }
.gl-account-form-card .gl-form { gap: 1.5rem; padding: 1.8rem 2rem 0; }
.gl-account-form-card .gl-form__head { padding-bottom: 1.25rem; border-bottom: 1px solid #e0e4ea; }
.gl-account-form-card .gl-form__head h2 { color: #102f62; font-size: 1.55rem; letter-spacing: -.025em; }
.gl-account-form-card .gl-form__head .gl-lede { color: #6f7887; font-size: .9rem; }
.gl-account-form-card .gl-field-grid { gap: 1.2rem 1.5rem; }
.gl-account-form-card .gl-field > label, .gl-account-form-card .gl-field__label { color: #394456; font-size: .82rem; font-weight: 600; }
.gl-account-form-card .gl-input, .gl-account-form-card .gl-textarea { border-color: #cfd6e0; border-radius: .3rem; background: #fff; color: #394456; }
.gl-account-form-card .gl-input { min-height: 2.7rem; }
.gl-account-form-card .gl-input:focus, .gl-account-form-card .gl-textarea:focus { border-color: #2867b4; box-shadow: 0 0 0 3px rgba(39, 101, 178, .12); }
.gl-account-form-card .gl-form__foot { margin-inline: -2rem; padding: 1.1rem 2rem; background: #fbfbfc; }
.gl-account-form-card .gl-offer-search { max-width: 34rem; }
.gl-account-form-card .gl-offer-section { overflow: hidden; border: 1px solid #dce1e9; border-radius: .45rem; background: #fff; }
.gl-account-form-card .gl-offer-section__head { padding: 1rem 1.2rem; background: #f7faff; }
.gl-account-form-card .gl-taxonomy { padding: .6rem 1rem 1rem; }
.gl-account-form-card .gl-market-grid { border: 1px solid #dce1e9; border-radius: .4rem; padding: 1rem; background: #fbfcfe; }
.gl-account-form-card .gl-role-choice__item { border-color: #dce1e9; border-radius: .4rem; background: #fbfcfe; }
@media(max-width: 40rem){.gl-account-form-card .gl-form{padding:1.3rem 1.3rem 0}.gl-account-form-card .gl-form__foot{margin-inline:-1.3rem;padding-inline:1.3rem}}

/* --------------------------------------------------------------- choices */

.gl-choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); gap: var(--gl-2); }

.gl-choice {
    display: flex;
    align-items: center;
    gap: var(--gl-3);
    padding: var(--gl-3) var(--gl-4);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    font-size: 0.9375rem;
    cursor: pointer;
    transition: border-color 0.3s var(--ease-calm), background-color 0.3s var(--ease-calm), transform 0.4s var(--ease);
}
.gl-choice:hover { border-color: var(--gl-line-2); }
.gl-choice:active { transform: scale(0.985); }
.gl-choice input { position: absolute; opacity: 0; width: 0; height: 0; }

.gl-choice__box {
    width: 1.15rem; height: 1.15rem;
    border: 1.5px solid var(--gl-line-2);
    border-radius: 50%;
    background: var(--gl-surface);
    flex: none;
    position: relative;
    transition: background-color 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.4s var(--ease);
}
.gl-choice__box::after {
    content: "";
    position: absolute;
    left: 0.34rem; top: 0.16rem;
    width: 0.3rem; height: 0.58rem;
    border: solid var(--gl-accent-ink);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transition: transform 0.35s var(--ease);
}
.gl-choice input:checked ~ .gl-choice__box { background: var(--gl-accent); border-color: transparent; }
.gl-choice input:checked ~ .gl-choice__box::after { transform: rotate(45deg) scale(1); }
.gl-choice:has(input:checked) { border-color: color-mix(in srgb, var(--gl-accent) 35%, var(--gl-line)); background: var(--gl-accent-soft); }
.gl-choice input:focus-visible ~ .gl-choice__box { outline: 2.5px solid var(--gl-accent); outline-offset: 3px; }

/* -------------------------------------------------------------- taxonomy */

.gl-taxonomy { display: grid; border-top: 1px solid var(--gl-line); }
.gl-taxonomy__group { border-bottom: 1px solid var(--gl-line); }

.gl-taxonomy__toggle {
    display: flex;
    align-items: center;
    gap: var(--gl-3);
    width: 100%;
    padding: var(--gl-4) 0;
    border: 0;
    background: none;
    cursor: pointer;
    text-align: left;
}
.gl-taxonomy__chevron { width: 1.1rem; height: 1.1rem; color: var(--gl-ink-3); transition: transform 0.4s var(--ease); }
.gl-taxonomy__toggle[aria-expanded="true"] .gl-taxonomy__chevron { transform: rotate(90deg); }
.gl-taxonomy__label { font-weight: 550; }
.gl-taxonomy__count {
    margin-left: auto;
    font-size: 0.8125rem;
    color: var(--gl-accent-deep);
    font-variant-numeric: tabular-nums;
    background: var(--gl-accent-soft);
    border-radius: var(--r-pill);
    min-width: 1.5rem;
    text-align: center;
    padding: 0.05rem 0.4rem;
}
.gl-taxonomy__count:empty { display: none; }

.gl-taxonomy__children {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
    gap: var(--gl-2);
    padding: 0 0 var(--gl-5) var(--gl-6);
}
.gl-taxonomy__children[hidden] { display: none; }

/* -------------------------------------------------------------- repeater */

.gl-repeater { display: grid; gap: var(--gl-3); }
.gl-repeater__row {
    display: flex;
    align-items: flex-start;
    gap: var(--gl-4);
    padding: var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    background: var(--gl-surface);
    animation: gl-pop 0.4s var(--ease);
}
.gl-repeater__row > .gl-field-grid { flex: 1; }

/* --------------------------------------------------------------- uploads */

.gl-upload-grid { display: grid; gap: var(--gl-6); }
@media (min-width: 48rem) { .gl-upload-grid { grid-template-columns: 13rem minmax(0, 1fr); align-items: start; } }

.gl-upload { display: grid; gap: var(--gl-3); }
.gl-upload__preview {
    display: grid;
    place-items: center;
    border: 1px dashed var(--gl-line-2);
    border-radius: var(--r);
    background: var(--gl-surface-2);
    background-size: cover;
    background-position: center;
    color: var(--gl-ink-3);
    font-size: 0.875rem;
    transition: border-color 0.3s var(--ease-calm), background-color 0.3s var(--ease-calm), transform 0.4s var(--ease);
}
.gl-upload--square .gl-upload__preview { aspect-ratio: 1; }
.gl-upload--wide .gl-upload__preview { aspect-ratio: 4 / 1; }
.gl-upload__preview[data-filled="true"] { border-style: solid; border-color: var(--gl-line); }
.gl-upload.is-dragover .gl-upload__preview {
    border-color: var(--gl-accent);
    background-color: var(--gl-accent-soft);
    transform: scale(1.015);
}
.gl-upload__controls { display: flex; align-items: center; gap: var(--gl-3); flex-wrap: wrap; }

.gl-dropzone {
    display: grid;
    justify-items: center;
    gap: var(--gl-2);
    padding: var(--gl-7);
    border: 1px dashed var(--gl-line-2);
    border-radius: var(--r-lg);
    text-align: center;
    color: var(--gl-ink-3);
    font-size: 0.9375rem;
    transition: border-color 0.3s var(--ease-calm), background-color 0.3s var(--ease-calm);
}
.gl-dropzone.is-dragover { border-color: var(--gl-accent); background: var(--gl-accent-soft); }

/* -------------------------------------------------------- gallery editor */

.gl-gallery-editor { display: grid; gap: var(--gl-4); }
.gl-gallery-editor__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: var(--gl-3); }

.gl-gallery-upload-form { display: grid; gap: var(--gl-3); margin-bottom: var(--gl-6); }
.gl-gallery-upload-form__actions { display: flex; align-items: center; justify-content: space-between; gap: var(--gl-4); color: var(--gl-ink-3); font-size: .8rem; }
.gl-gallery-upload-form .filepond--root { margin: 0; color: var(--gl-ink); font-family: inherit; }
.gl-gallery-upload-form .filepond--drop-label { min-height: 12rem; color: var(--gl-ink-3); }
.gl-gallery-upload-form .filepond--drop-label label { cursor: pointer; font-size: .95rem; }
.gl-gallery-upload-form .filepond--panel-root { border: 1px dashed #b9c5d4; border-radius: var(--r-lg); background: #f7faff; }
.gl-gallery-upload-form .filepond--item { width: calc(33.333% - .75rem); }
.gl-gallery-upload-form .filepond--item-panel { background: var(--gl-navy-2); }
.gl-gallery-upload-form .filepond--file-action-button { cursor: pointer; }

.gl-gallery-editor__item {
    display: grid;
    gap: var(--gl-2);
    padding: var(--gl-2);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    cursor: default;
    transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease-calm);
    animation: gl-pop 0.4s var(--ease);
}
.gl-gallery-editor__item:hover { box-shadow: var(--sh-1); }
.gl-gallery-editor__item.is-dragging { opacity: 0.35; transform: scale(0.97); }
.gl-gallery-editor__item.is-drop-target { border-color: var(--gl-accent); box-shadow: 0 0 0 4px var(--gl-accent-soft); }

.gl-gallery-editor__thumb {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: var(--r-sm);
    background: var(--tone, var(--gl-surface-2));
    object-fit: cover;
}
.gl-gallery-editor__controls { display: flex; gap: var(--gl-1); justify-content: flex-end; }
.gl-gallery-editor__order { display: flex; align-items: center; gap: var(--gl-2); color: var(--gl-ink-3); font-size: .72rem; }
.gl-gallery-editor__order > div { display: flex; gap: var(--gl-1); margin-left: auto; }
.gl-gallery-editor__handle,
.gl-gallery-editor__order > div button {
    min-width: 1.9rem;
    min-height: 1.9rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--gl-line);
    border-radius: var(--r-sm);
    color: var(--gl-ink-2);
    background: var(--gl-surface);
    cursor: pointer;
}
.gl-gallery-editor__handle { cursor: grab; font-weight: 700; letter-spacing: -.2rem; }
.gl-gallery-editor__handle:active { cursor: grabbing; }
.gl-gallery-editor__metadata { display: grid; gap: var(--gl-2); }
.gl-gallery-editor__metadata label { display: grid; gap: var(--gl-1); color: var(--gl-ink-2); font-size: .72rem; font-weight: 600; }
.gl-gallery-editor__metadata input,
.gl-gallery-editor__metadata textarea {
    width: 100%;
    border: 1px solid var(--gl-line);
    border-radius: var(--r-sm);
    padding: var(--gl-2);
    color: var(--gl-ink);
    background: var(--gl-surface);
    font: inherit;
    font-weight: 400;
    resize: vertical;
}
.gl-gallery-editor__metadata input:focus,
.gl-gallery-editor__metadata textarea:focus { border-color: var(--gl-accent); outline: 3px solid var(--gl-accent-soft); }
.gl-gallery-editor__readonly-caption { color: var(--gl-ink-3); font-size: .78rem; line-height: 1.45; }
.gl-gallery-presence-notice { display: flex; align-items: center; justify-content: space-between; gap: var(--gl-4); margin-bottom: var(--gl-5); }
.gl-gallery-presence-notice strong { display: block; color: var(--gl-navy-2); }
.gl-gallery-presence-notice p { margin-top: var(--gl-1); color: var(--gl-ink-3); font-size: .82rem; }
@media (max-width: 50rem) { .gl-gallery-upload-form .filepond--item { width: calc(50% - .5rem); } }
@media (max-width: 34rem) { .gl-gallery-upload-form .filepond--item { width: 100%; }.gl-gallery-upload-form__actions,.gl-gallery-presence-notice { align-items: stretch; flex-direction: column; } }

/* ------------------------------------------------------------ claim list */

.gl-claim-list { display: grid; gap: var(--gl-2); }
.gl-claim-list__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: var(--gl-4);
    padding: var(--gl-4) var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    animation: gl-pop 0.4s var(--ease);
}
.gl-claim-list__name { font-size: 0.9375rem; }
@media (max-width: 40rem) {
    .gl-claim-list__item { grid-template-columns: minmax(0, 1fr) auto; }
    .gl-claim-list__item .gl-state { grid-column: 1; }
}

/* ------------------------------------------------------------ rich text */

.gl-rich { border: 1px solid var(--gl-line-2); border-radius: var(--r); overflow: hidden; background: var(--gl-surface); transition: border-color 0.25s var(--ease-calm), box-shadow 0.25s var(--ease-calm); }
.gl-rich:focus-within { border-color: var(--gl-accent); box-shadow: 0 0 0 4px var(--gl-accent-soft); }
.gl-rich__toolbar { display: flex; gap: var(--gl-1); padding: var(--gl-2); border-bottom: 1px solid var(--gl-line); background: var(--gl-surface-2); }
.gl-rich__toolbar button {
    padding: 0.25rem 0.7rem;
    border: 0;
    border-radius: var(--r-sm);
    background: none;
    font-size: 0.875rem;
    color: var(--gl-ink-2);
    cursor: pointer;
    transition: background-color 0.25s var(--ease-calm), color 0.25s var(--ease-calm);
}
.gl-rich__toolbar button:hover { background: var(--gl-surface); color: var(--gl-ink); }
.gl-rich .gl-input { border: 0; border-radius: 0; }
.gl-rich .gl-input:focus { box-shadow: none; }

/* ----------------------------------------------------------- score panel */

.gl-score__sticky { display: grid; gap: var(--gl-5); }
@media (min-width: 82rem) { .gl-score__sticky { position: sticky; top: calc(var(--topbar-h) + 6.5rem); } }

.gl-score__head {
    display: grid;
    gap: var(--gl-3);
    padding: var(--gl-6);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-lg);
    background:
        radial-gradient(100% 80% at 100% 0%, rgba(0, 113, 227, 0.10), transparent 65%),
        var(--gl-surface);
    box-shadow: var(--sh-1);
}
.gl-score__number {
    font-size: 3.5rem;
    line-height: 1;
    font-weight: 600;
    letter-spacing: -0.05em;
    font-variant-numeric: tabular-nums;
    color: var(--gl-accent);
}
.gl-score__unit { font-size: 1.5rem; }

.gl-score__subtitle {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--gl-ink-3);
    font-weight: 600;
    margin-bottom: var(--gl-3);
}

.gl-score__steps { display: grid; gap: var(--gl-2); }
.gl-score__step {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--gl-2) var(--gl-3);
    align-items: baseline;
    width: 100%;
    padding: var(--gl-4);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
    text-align: left;
    cursor: pointer;
    transition: transform 0.45s var(--ease), border-color 0.3s var(--ease-calm), box-shadow 0.45s var(--ease);
    animation: gl-pop 0.45s var(--ease);
}
.gl-score__step:hover { transform: translateY(-2px); border-color: transparent; box-shadow: var(--sh-2); }
.gl-score__step-index {
    display: grid;
    place-items: center;
    width: 1.5rem; height: 1.5rem;
    border-radius: 50%;
    background: var(--gl-accent-soft);
    color: var(--gl-accent-deep);
    font-size: 0.75rem;
    font-weight: 600;
    align-self: start;
}
.gl-score__step-label { font-size: 0.9375rem; font-weight: 500; }
.gl-score__step-weight { font-size: 0.8125rem; color: var(--gl-accent-deep); font-variant-numeric: tabular-nums; font-weight: 550; }
.gl-score__step-hint { grid-column: 2 / -1; font-size: 0.8125rem; color: var(--gl-ink-3); }
.gl-score__done { font-size: 0.9375rem; color: var(--gl-ink-2); }
.gl-score__done[hidden] { display: none; }

.gl-score__all { font-size: 0.875rem; }
.gl-score__all summary { cursor: pointer; color: var(--gl-ink-2); padding: var(--gl-2) 0; }
.gl-score__rules { display: grid; gap: var(--gl-3); margin: var(--gl-4) 0; }
.gl-score__rules li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.2rem var(--gl-3); align-items: baseline; }
.gl-score__rule-check {
    width: 1rem; height: 1rem;
    border: 1.5px solid var(--gl-line-2);
    border-radius: 50%;
    position: relative;
    align-self: start;
    margin-top: 0.25rem;
    transition: background-color 0.4s var(--ease), border-color 0.4s var(--ease);
}
.gl-score__rules li.is-met .gl-score__rule-check { background: var(--gl-accent); border-color: transparent; }
.gl-score__rules li.is-met .gl-score__rule-check::after {
    content: "";
    position: absolute;
    left: 0.31rem; top: 0.12rem;
    width: 0.25rem; height: 0.5rem;
    border: solid #fff;
    border-width: 0 1.6px 1.6px 0;
    transform: rotate(45deg);
}
.gl-score__rule-label { color: var(--gl-ink-2); }
.gl-score__rules li.is-met .gl-score__rule-label { color: var(--gl-ink); }
.gl-score__rule-weight { color: var(--gl-ink-3); font-variant-numeric: tabular-nums; }
.gl-score__rule-hint { grid-column: 2 / -1; color: var(--gl-ink-3); font-size: 0.8125rem; }


/* ------------------------------------------------------- navigația de cont */

/*
 * A doua bară, pentru zona de cont. Stă sub cea principală și se comportă ca un
 * set de taburi: aceeași disciplină ca pe profil, alt registru de conținut.
 */
.gl-account-nav {
    position: sticky;
    top: var(--topbar-h);
    z-index: 32;
    background: var(--gl-glass);
    backdrop-filter: var(--gl-blur);
    -webkit-backdrop-filter: var(--gl-blur);
    border-bottom: 1px solid var(--gl-line);
}

.gl-account-nav__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-4);
}

.gl-account-nav__list {
    display: flex;
    gap: var(--gl-5);
    overflow-x: auto;
    scrollbar-width: none;
}
.gl-account-nav__list::-webkit-scrollbar { display: none; }

.gl-account-nav__item {
    display: inline-block;
    padding: var(--gl-3) 0;
    border-bottom: 2px solid transparent;
    color: var(--gl-ink-3);
    text-decoration: none;
    font-size: 0.9375rem;
    white-space: nowrap;
    transition: color 0.25s var(--ease-calm), border-color 0.25s var(--ease-calm);
}
.gl-account-nav__item:hover { color: var(--gl-ink); }
.gl-account-nav__item.is-active { color: var(--gl-ink); border-bottom-color: var(--gl-accent); font-weight: 550; }
.gl-account-nav__item.is-disabled { opacity: 0.45; cursor: not-allowed; }
.gl-account-nav__signout { flex: none; }

/* ---------------------------------------------------------------- dashboard */

.gl-dash { padding-block: var(--gl-7) var(--gl-9); }
.gl-dash__head { margin-bottom: var(--gl-6); }
.gl-dash__company { margin-top: var(--gl-2); display: flex; align-items: center; gap: var(--gl-3); flex-wrap: wrap; }
.gl-dash__company a { text-decoration: none; font-weight: 500; }
.gl-dash__company a:hover { text-decoration: underline; text-underline-offset: 4px; }

.gl-dash__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gl-5); align-items: start; }
@media (min-width: 62rem) {
    .gl-dash__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--gl-6); }
}

.gl-dash__todo-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-4);
    padding: var(--gl-3) 0;
    border-bottom: 1px solid var(--gl-line);
    font-size: 0.9375rem;
}
.gl-dash__todo-item:last-child { border-bottom: 0; padding-bottom: 0; }

.gl-dash__list { display: grid; gap: var(--gl-1); }
.gl-dash__list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--gl-4);
    padding: var(--gl-2) 0;
    border-bottom: 1px solid var(--gl-line);
    font-size: 0.9375rem;
}
.gl-dash__list li:last-child { border-bottom: 0; }
.gl-dash__list li.is-warning strong { color: var(--gl-danger); }
.gl-dash__list a { text-decoration: none; }
.gl-dash__list a:hover { text-decoration: underline; text-underline-offset: 3px; }

.gl-dash__figure { display: flex; align-items: baseline; gap: var(--gl-3); }
.gl-dash__figure-value { font-size: 2.25rem; font-weight: 600; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.gl-dash__figure-label { color: var(--gl-ink-3); font-size: 0.9375rem; }

.gl-dash__completion .gl-score__number { font-size: 3rem; }
.gl-dash__steps { display: grid; gap: var(--gl-2); counter-reset: step; }
.gl-dash__steps li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--gl-3);
    font-size: 0.9375rem;
}
.gl-dash__steps a { text-decoration: none; }
.gl-dash__steps a:hover { text-decoration: underline; text-underline-offset: 3px; }
.gl-dash__step-weight { color: var(--gl-accent-deep); font-size: 0.8125rem; font-variant-numeric: tabular-nums; }

.gl-dash__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gl-4); }
.gl-dash__stat-value {
    display: block;
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: -0.035em;
    font-variant-numeric: tabular-nums;
}
.gl-dash__stat-label { font-size: 0.8125rem; color: var(--gl-ink-3); }

.gl-dash__empty-actions { margin-top: var(--gl-5); }

/* Welcome dashboard — Glomnia onboarding concept, page 6. */
.gl-account-layout { min-height: calc(100vh - var(--topbar-h)); display: grid; grid-template-columns: 20rem minmax(0, 1fr); background: #fafbfc; }
.gl-account-layout__main { min-width: 0; }
.gl-hub { min-height: 100%; background: #fafbfc; }
.gl-hub__sidebar { padding: 2.4rem 1.7rem; border-right: 1px solid var(--gl-line); background: #fff; }
.gl-hub__identity { display: flex; align-items: center; gap: .9rem; border: 1px solid var(--gl-line); border-radius: .35rem; padding: 1rem; margin-bottom: 1.8rem; }
.gl-hub__identity > span { width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border-radius: .4rem; background: #f4f6f9; color: var(--gl-navy-2); }
.gl-hub__identity .gl-icon { width: 1.65rem; height: 1.65rem; }
.gl-hub__identity strong { display: block; color: var(--gl-ink); font-size: .88rem; }
.gl-hub__identity small { display: flex; align-items: center; gap: .25rem; margin-top: .3rem; color: #2867b4; font-size: .72rem; }
.gl-hub__identity small .gl-icon { width: .9rem; height: .9rem; }
.gl-hub__sidebar nav { display: grid; gap: .15rem; }
.gl-hub__sidebar nav a, .gl-hub__sidebar nav > span { min-height: 2.35rem; display: flex; align-items: center; gap: .65rem; padding: .55rem 1rem; color: #2767b2; text-decoration: none; font-size: .84rem; }
.gl-hub__sidebar nav a.is-active { margin-bottom: .35rem; border-radius: .25rem; background: linear-gradient(100deg, #286bc5, #1685dc); color: #fff; font-weight: 650; }
.gl-hub__sidebar nav a.is-current-section { color: var(--gl-navy-2); background: #edf5ff; font-weight: 650; }
.gl-hub__sidebar nav a b { margin-left: auto; min-width: 1.2rem; border-radius: 1rem; padding: .1rem .3rem; color: #fff; background: #2867b4; text-align: center; font-size: .62rem; }
.gl-hub__sidebar nav .gl-icon { width: 1.15rem; height: 1.15rem; }
.gl-hub__sidebar nav > span { color: #8993a2; }
.gl-hub__sidebar nav > span small,
.gl-hub__sidebar nav > a small { margin-left: auto; font-size: .62rem; text-transform: uppercase; }
.gl-hub__sidebar .gl-hub__nav-block { margin-top: .45rem; border: 1px solid var(--gl-line); border-radius: .25rem; color: var(--gl-ink); background: #fafafa; }
.gl-hub__help { margin-top: 2rem; border: 1px solid var(--gl-line); border-radius: .35rem; padding: 1rem; font-size: .78rem; }
.gl-hub__help p { color: var(--gl-ink-3); margin: .45rem 0; }.gl-hub__help a { color: #2867b4; text-decoration: none; }
.gl-hub__signout { margin-top: 1rem; }.gl-hub__signout button { display: flex; align-items: center; gap: .55rem; border: 0; padding: .55rem 1rem; color: var(--gl-ink-3); background: transparent; cursor: pointer; font: inherit; font-size: .8rem; }.gl-hub__signout .gl-icon { width: 1rem; height: 1rem; }
.gl-hub__content { min-width: 0; padding: 2.8rem 3.5rem 3rem; }
.gl-hub__welcome { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.gl-hub__welcome h1 { color: var(--gl-navy-2); font-size: clamp(2rem, 3vw, 2.65rem); letter-spacing: -.04em; }.gl-hub__welcome p { margin-top: .45rem; color: var(--gl-ink-3); }
.gl-hub__notice { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; border: 1px solid #9bd8b3; border-radius: .35rem; padding: 1.15rem 1.4rem; color: #425969; background: #f7fdf9; }
.gl-hub__notice > .gl-icon { flex: none; width: 2.5rem; height: 2.5rem; color: #2bab65; }.gl-hub__notice p { color: var(--gl-ink-3); font-size: .82rem; }.gl-hub__notice .gl-btn { margin-left: auto; }.gl-hub__notice--warning { border-color: #e8cc91; background: #fffaf0; }
.gl-hub__overview { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.4rem; margin-top: 1.4rem; }
.gl-hub__completion, .gl-hub__company-card { min-height: 12.5rem; display: flex; gap: 1.5rem; border: 1px solid var(--gl-line); border-radius: .35rem; padding: 1.5rem; background: #fff; }
.gl-hub__completion { justify-content: space-between; }.gl-hub__completion h2, .gl-hub__company-card h2 { color: var(--gl-navy-2); font-size: 1.05rem; }.gl-hub__completion p { max-width: 28rem; margin: .35rem 0 1.3rem; color: var(--gl-ink-3); font-size: .82rem; }.gl-hub__completion strong { display: block; color: var(--gl-ink-3); font-size: .8rem; }.gl-hub__completion strong b { color: var(--gl-navy-2); font-size: 1.35rem; }.gl-hub__completion > .gl-icon { width: 5rem; height: 5rem; color: #9fb6d5; }
.gl-hub__progress { width: min(22rem, 100%); height: .65rem; margin: .6rem 0; border-radius: 1rem; overflow: hidden; background: #edf0f3; }.gl-hub__progress span { display: block; height: 100%; border-radius: inherit; background: #276ac8; }.gl-hub__completion small { color: var(--gl-ink-3); }
.gl-hub__todo { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .7rem; }.gl-hub__todo a, .gl-hub__todo span { color: #2867b4; font-size: .7rem; text-decoration: none; }
.gl-hub__company-card > span { flex: none; width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: .6rem; color: #2867b4; background: #f0f5fb; }.gl-hub__company-card > span .gl-icon { width: 2.4rem; height: 2.4rem; }.gl-hub__company-card h2 { display: flex; gap: .6rem; align-items: center; }.gl-hub__company-card h2 small { display: inline-flex; align-items: center; gap: .2rem; color: #2867b4; font-size: .65rem; }.gl-hub__company-card h2 small .gl-icon, .gl-hub__company-card a .gl-icon { width: .85rem; height: .85rem; }.gl-hub__company-card p, .gl-hub__company-card a { display: flex; align-items: center; gap: .35rem; margin-top: .65rem; color: var(--gl-ink-3); font-size: .78rem; }.gl-hub__company-card a { color: #2867b4; text-decoration: none; }
.gl-hub__roles { flex-wrap: wrap; }.gl-hub__roles span { border-radius: 1rem; padding: .2rem .45rem; color: #2867b4; background: #edf5ff; font-size: .65rem; }
.gl-hub__setup { margin-top: 1.7rem; }.gl-hub__setup > h2 { color: var(--gl-navy-2); font-size: 1.15rem; }.gl-hub__setup > p { color: var(--gl-ink-3); font-size: .82rem; margin: .3rem 0 1rem; }
.gl-hub__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }.gl-hub-card { min-height: 10.5rem; display: flex; gap: 1rem; border: 1px solid var(--gl-line); border-radius: .35rem; padding: 1.2rem; background: #fff; }.gl-hub-card__icon { flex: none; width: 3.2rem; height: 3.2rem; display: grid; place-items: center; border-radius: 50%; color: #2867b4; background: #edf4ff; }.gl-hub-card__icon .gl-icon { width: 1.65rem; height: 1.65rem; }.gl-hub-card__icon.is-green { color: #29955b; background: #eaf9ef; }.gl-hub-card__icon.is-purple { color: #8054bd; background: #f4ecff; }.gl-hub-card__icon.is-gold { color: #bd852b; background: #fff6e6; }.gl-hub-card__icon.is-red { color: #c65555; background: #fff0f0; }.gl-hub-card h3 { color: var(--gl-navy-2); font-size: .9rem; }.gl-hub-card p { min-height: 3.2rem; margin: .35rem 0 .7rem; color: var(--gl-ink-3); font-size: .75rem; }.gl-hub-card a, .gl-hub-card .is-disabled { display: inline-flex; align-items: center; justify-content: center; gap: 1.4rem; min-width: 7rem; border: 1px solid var(--gl-line); border-radius: .25rem; padding: .55rem .75rem; color: #2867b4; text-decoration: none; font-size: .75rem; }.gl-hub-card a .gl-icon { width: .8rem; height: .8rem; }.gl-hub-card .is-disabled { color: #959eaa; background: #fafafa; }
.gl-hub__explore { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; border: 1px solid #cfdbeb; border-radius: .35rem; padding: 1rem 1.3rem; background: #f8fbff; }.gl-hub__explore > .gl-icon { width: 2.4rem; height: 2.4rem; color: #2867b4; }.gl-hub__explore p { color: var(--gl-ink-3); font-size: .78rem; }.gl-hub__explore .gl-btn { margin-left: auto; }
@media(max-width: 72rem){.gl-account-layout{grid-template-columns:1fr}.gl-hub__sidebar{padding:1rem 2rem;border-right:0;border-bottom:1px solid var(--gl-line)}.gl-hub__identity,.gl-hub__help{display:none}.gl-hub__sidebar nav{display:flex;overflow-x:auto}.gl-hub__sidebar nav a,.gl-hub__sidebar nav>span{flex:none}.gl-hub__sidebar nav a.is-active{margin:0}.gl-hub__signout{margin-top:.35rem}.gl-hub__content{padding:2rem}.gl-hub__cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width: 48rem){.gl-hub__welcome,.gl-hub__notice,.gl-hub__explore{align-items:flex-start;flex-direction:column}.gl-hub__notice .gl-btn,.gl-hub__explore .gl-btn{margin-left:0}.gl-hub__overview,.gl-hub__cards{grid-template-columns:1fr}.gl-hub__content{padding:1.25rem}.gl-hub__completion>svg{display:none}}

/* ------------------------------------------------------------- hardening */


/*
 * Alte pachete din aplicație injectează în pagină un reset de tip Tailwind preflight,
 * cu `[type=button],button { background-color: transparent }`. Selectorul de atribut are
 * aceeași specificitate ca o clasă și vine mai târziu în cascadă, deci ar șterge fundalul
 * butoanelor. Dublarea clasei ridică specificitatea fără `!important`.
 */

.gl-btn.gl-btn--primary { background: var(--gl-navy-2); }
.gl-btn.gl-btn--primary:hover { background: var(--gl-navy-3); }
.gl-btn.gl-btn--gold { background: var(--gl-gold); }
.gl-btn.gl-btn--gold:hover { background: var(--gl-gold-deep); }
.gl-btn.gl-btn--ghost:hover { background: var(--gl-surface); }
.gl-btn.gl-btn--glass { background: var(--gl-glass); }
.gl-hero--dark .gl-btn.gl-btn--glass { background: rgba(255, 255, 255, 0.16); }
.gl-hero--dark .gl-btn.gl-btn--glass:hover { background: rgba(255, 255, 255, 0.26); }
.gl-btn.gl-btn--danger { background: var(--gl-danger); }

.gl-editor__nav-toggle.gl-editor__nav-toggle { background: var(--gl-surface); }
.gl-editor__nav-item.is-active { background: var(--gl-surface); }

.gl-score__step.gl-score__step { background: var(--gl-surface); }
.gl-score__step.gl-score__step:hover { background: var(--gl-surface); }

.gl-lightbox__nav.gl-lightbox__nav,
.gl-lightbox__close.gl-lightbox__close { background: var(--gl-glass-strong); }

.gl-gallery__item.gl-gallery__item { background: var(--tone, var(--gl-surface-2)); }

.gl-icon-btn.gl-icon-btn--glass { background: var(--gl-glass); }
.gl-hero--dark .gl-icon-btn.gl-icon-btn--glass { background: rgba(255, 255, 255, 0.16); }
.gl-icon-btn.gl-icon-btn[aria-pressed="true"] { background: var(--gl-accent-soft); border-color: var(--gl-accent); color: var(--gl-accent); }
.gl-icon-btn.gl-icon-btn--danger:hover { background: var(--gl-danger-soft); }

.gl-tab.gl-tab { background: none; }
.gl-taxonomy__toggle.gl-taxonomy__toggle { background: none; }

/* ---------------------------------------------------------------- motion */

@media (prefers-reduced-motion: reduce) {
    .gl-root { scroll-behavior: auto; }

    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }

    [data-reveal] { opacity: 1; transform: none; }
    .gl-hero__image { transform: none !important; }
}

/* ------------------------------------------------------------ invitații */

/* Pagina de invitații pe rol (F02): organigrama citită pe verticală, cu starea
   fiecărui loc la dreapta. Aceleași forme ca listele de revendicări. */

.gl-invite-seats { display: grid; gap: var(--gl-2); list-style: none; margin: 0; padding: 0; }
.gl-invite-seat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-4);
    flex-wrap: wrap;
    padding: var(--gl-3) var(--gl-4);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
}
.gl-invite-seat__identity { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.gl-invite-seat__state { display: flex; align-items: center; gap: var(--gl-2); flex-wrap: wrap; margin-left: auto; }

.gl-invite-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gl-4);
    padding: var(--gl-3) 0;
    border-bottom: 1px solid var(--gl-line);
}
.gl-invite-row:last-child { border-bottom: 0; padding-bottom: 0; }
.gl-invite-row strong { display: block; font-weight: 550; }

/* ------------------------------------------------------- director (F06) */

.gl-directory {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--gl-7);
    align-items: start;
}

.gl-directory__filters {
    position: sticky;
    top: calc(var(--topbar-h) + var(--gl-4));
    padding: var(--gl-5);
    border: 1px solid var(--gl-line);
    border-radius: var(--r);
    background: var(--gl-surface);
}

.gl-directory__filters details > ul { margin-top: var(--gl-3); max-height: 16rem; overflow-y: auto; }

.gl-directory__pagination { display: flex; justify-content: center; gap: var(--gl-2); flex-wrap: wrap; }
.gl-directory__pagination a,
.gl-directory__pagination span {
    padding: var(--gl-2) var(--gl-3);
    border: 1px solid var(--gl-line);
    border-radius: var(--r-sm, 8px);
    font-size: 0.9375rem;
}
.gl-directory__pagination [aria-current="page"] span { background: var(--gl-accent-soft); }

@media (max-width: 900px) {
    .gl-directory { grid-template-columns: 1fr; }
    .gl-directory__filters { position: static; }
}

/* ------------------------------------------------ certifications account */

.gl-certifications-page { min-height: 100%; padding: 2rem clamp(1.25rem, 3vw, 3.5rem) 3rem; background: #fafbfc; }
.gl-certifications-intro {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    max-width: 30rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--gl-line);
    border-radius: .55rem;
    padding: 1.25rem;
    background: #fff;
}
.gl-certifications-intro__icon { flex: none; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; color: #bd852b; background: #fff5e5; }
.gl-certifications-intro__icon .gl-icon { width: 1.45rem; height: 1.45rem; }
.gl-certifications-intro strong { color: #bd852b; font-size: .8rem; }
.gl-certifications-intro h1 { margin: .35rem 0 .45rem; color: var(--gl-navy-2); font-size: 1.35rem; }
.gl-certifications-intro p { color: var(--gl-ink-3); font-size: .82rem; line-height: 1.55; }
.gl-certifications-shell { max-width: 88rem; }
.gl-certifications-shell__body { padding: clamp(1.5rem, 3vw, 2.8rem); }
.gl-certifications-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 1.7rem; }
.gl-certifications-head h2 { color: var(--gl-navy-2); font-size: clamp(1.75rem, 3vw, 2.35rem); letter-spacing: -.035em; }
.gl-certifications-head p { max-width: 44rem; margin-top: .35rem; color: var(--gl-ink-3); line-height: 1.5; }
.gl-certification-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 2.2rem; align-items: start; }
.gl-certification-search { width: min(100%, 35rem); height: 3.25rem; display: flex; align-items: center; gap: .75rem; border: 1px solid #cfd6e0; border-radius: .4rem; padding: 0 1rem; background: #fff; }
.gl-certification-search:focus-within { border-color: #2867b4; box-shadow: 0 0 0 3px rgba(40, 103, 180, .1); }
.gl-certification-search .gl-icon { width: 1.25rem; height: 1.25rem; color: #344054; }
.gl-certification-search input { width: 100%; border: 0; outline: 0; color: var(--gl-ink); background: transparent; font: inherit; }
.gl-certification-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.5rem; border-top: 1px solid var(--gl-line); border-left: 1px solid transparent; }
.gl-certification-grid > button { min-height: 4.6rem; display: flex; align-items: center; gap: .75rem; border: 0; border-right: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); padding: .85rem .55rem; color: #4a5260; background: #fff; text-align: left; cursor: pointer; font: inherit; font-size: .82rem; line-height: 1.35; }
.gl-certification-grid > button:nth-child(3n) { border-right-color: transparent; }
.gl-certification-grid > button:hover, .gl-certification-grid > button.is-open { color: var(--gl-navy-2); background: #f5f9ff; }
.gl-certification-grid > button.is-selected { color: var(--gl-navy-2); font-weight: 600; }
.gl-certification-grid > button:disabled { cursor: default; opacity: .72; }
.gl-certification-check { flex: none; width: 1.15rem; height: 1.15rem; display: grid; place-items: center; border: 1px solid #929baa; border-radius: .2rem; color: #fff; font-size: .72rem; }
.is-selected > .gl-certification-check, .gl-certification-check.is-filled { border-color: #2867b4; background: #2867b4; }
.gl-certification-no-results { grid-column: 1 / -1; padding: 2rem; color: var(--gl-ink-3); text-align: center; }
.gl-certification-help { display: flex; align-items: center; gap: .7rem; margin-top: 1.4rem; border: 1px solid var(--gl-line); border-radius: .35rem; padding: .85rem 1rem; color: #667085; background: #fafafa; font-size: .76rem; }
.gl-certification-help .gl-icon { width: 1.1rem; height: 1.1rem; }
.gl-certification-selected { min-height: 24.5rem; position: sticky; top: calc(var(--topbar-h) + 1.5rem); border: 1px solid var(--gl-line); border-radius: .5rem; padding: 1.35rem; background: #fff; }
.gl-certification-selected__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.gl-certification-selected__head h3 { color: var(--gl-navy-2); font-size: .95rem; }
.gl-certification-selected__head > span { min-width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: 50%; color: #2867b4; background: #eaf3ff; font-size: .75rem; font-weight: 650; }
.gl-certification-empty { min-height: 20rem; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--gl-ink-3); text-align: center; }
.gl-certification-empty .gl-icon { width: 3.4rem; height: 3.4rem; margin-bottom: 1rem; color: #8c99ac; }
.gl-certification-empty strong { color: #334155; font-size: .84rem; }
.gl-certification-empty p { max-width: 15rem; margin-top: .55rem; font-size: .75rem; line-height: 1.45; }
.gl-certification-form { display: grid; gap: .8rem; margin-top: 1.2rem; }
.gl-certification-form > p { color: var(--gl-ink-3); font-size: .76rem; line-height: 1.45; }
.gl-certification-form__title { display: flex; align-items: center; gap: .7rem; border-radius: .35rem; padding: .7rem; background: #f5f9ff; }
.gl-certification-form__title strong, .gl-certification-form__title small { display: block; }.gl-certification-form__title small { margin-top: .15rem; color: var(--gl-ink-3); font-size: .68rem; }
.gl-certification-form label { display: grid; gap: .3rem; color: #344054; font-size: .73rem; font-weight: 600; }
.gl-certification-form label > span b { color: #bd852b; }.gl-certification-form label > span em { margin-left: .25rem; color: #8a93a2; font-style: normal; font-weight: 400; }
.gl-certification-form input, .gl-certification-form select, .gl-certification-form textarea { width: 100%; min-height: 2.55rem; border: 1px solid #cfd6e0; border-radius: .3rem; padding: .55rem .65rem; color: var(--gl-ink); background: #fff; font: inherit; font-weight: 400; }
.gl-certification-form textarea { resize: vertical; }.gl-certification-form input[type="file"] { min-height: auto; font-size: .7rem; }
.gl-certification-form label > small { color: var(--gl-ink-3); font-size: .66rem; font-weight: 400; }
.gl-certification-form .gl-field-error { color: #b42318; font-size: .68rem; }
.gl-certification-form__actions { display: flex; justify-content: flex-end; gap: .55rem; margin-top: .35rem; }
.gl-certification-document { display: flex; align-items: center; gap: .45rem; color: #2867b4; font-size: .73rem; }.gl-certification-document .gl-icon { width: 1rem; height: 1rem; }
.gl-certification-saved-list { display: grid; gap: .65rem; margin-top: 1rem; }
.gl-certification-saved-list article { display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; border-bottom: 1px solid var(--gl-line); padding-bottom: .65rem; }
.gl-certification-saved-list strong, .gl-certification-saved-list small { display: block; }.gl-certification-saved-list strong { color: #334155; font-size: .78rem; }.gl-certification-saved-list small { margin-top: .2rem; color: var(--gl-ink-3); font-size: .65rem; }
.gl-certification-saved-list span { display: inline-flex; margin-top: .25rem; border-radius: 1rem; padding: .15rem .4rem; color: #667085; background: #f1f3f5; font-size: .6rem; }.gl-certification-saved-list span.is-verified_by_issuer { color: #137a45; background: #eaf8ef; }
.gl-certification-saved-list button { border: 0; padding: .2rem; color: #2867b4; background: transparent; cursor: pointer; font-size: .66rem; }.gl-certification-saved-list button:last-child { color: #a33b3b; }
.gl-certifications-shell__footer { min-height: 5.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--gl-line); padding: 1rem clamp(1.5rem, 3vw, 2.8rem); color: var(--gl-ink-3); font-size: .75rem; }

@media (max-width: 68rem) { .gl-certification-workspace { grid-template-columns: 1fr; }.gl-certification-selected { position: static; min-height: 0; }.gl-certification-empty { min-height: 12rem; } }
@media (max-width: 54rem) { .gl-certification-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.gl-certification-grid > button:nth-child(3n) { border-right-color: var(--gl-line); }.gl-certification-grid > button:nth-child(2n) { border-right-color: transparent; }.gl-certifications-head { flex-direction: column; gap: 1rem; } }
@media (max-width: 35rem) { .gl-certification-grid { grid-template-columns: 1fr; }.gl-certification-grid > button { border-right-color: transparent !important; }.gl-certifications-page { padding-inline: .85rem; }.gl-certifications-intro { max-width: none; } }

.gl-issuer-requests { display: grid; gap: 1rem; margin-top: 1.5rem; }
.gl-issuer-requests > article { padding: 1.35rem; }
.gl-issuer-request__head { display: flex; align-items: center; gap: .85rem; }
.gl-issuer-request__head h2 { color: var(--gl-navy-2); font-size: 1rem; }.gl-issuer-request__head p { margin-top: .2rem; color: var(--gl-ink-3); font-size: .76rem; }.gl-issuer-request__head > .gl-badge { margin-left: auto; }
.gl-issuer-request__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1.2rem; border-block: 1px solid var(--gl-line); padding-block: 1rem; }
.gl-issuer-request__facts dt { color: var(--gl-ink-3); font-size: .68rem; }.gl-issuer-request__facts dd { margin-top: .25rem; color: #344054; font-size: .78rem; }.gl-issuer-request__facts a { color: #2867b4; }
.gl-issuer-request__actions { display: flex; align-items: flex-start; gap: .8rem; margin-top: 1rem; }
.gl-issuer-request__actions details { flex: 1; }.gl-issuer-request__actions summary { display: inline-flex; min-height: 2.7rem; align-items: center; border: 1px solid var(--gl-line); border-radius: .3rem; padding: .5rem 1rem; color: #a33b3b; cursor: pointer; font-size: .78rem; }.gl-issuer-request__actions details > div { display: grid; gap: .5rem; margin-top: .65rem; }.gl-issuer-request__actions textarea { width: 100%; border: 1px solid var(--gl-line); border-radius: .3rem; padding: .65rem; font: inherit; font-size: .78rem; }.gl-issuer-request__actions .gl-field-error { color: #b42318; font-size: .68rem; }
.gl-issuer-queue .gl-empty > .gl-icon { width: 3rem; height: 3rem; margin-bottom: .8rem; color: #72a287; }
@media(max-width: 60rem){.gl-issuer-request__facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width: 38rem){.gl-issuer-request__head,.gl-issuer-request__actions{align-items:flex-start;flex-direction:column}.gl-issuer-request__head>.gl-badge{margin-left:0}.gl-issuer-request__facts{grid-template-columns:1fr}}

/* F12: filters stay visible beside results on desktop and collapse cleanly on mobile. */
.gl-search-layout { display: grid; grid-template-columns: minmax(15rem, 19rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.gl-search-layout > aside { position: sticky; top: calc(var(--topbar-h) + 1rem); padding: 1.2rem; }
.gl-search-layout select[multiple] { min-height: 7rem; }
.gl-search-layout .gl-chip { border: 1px solid #b8c8dc; cursor: pointer; }
.gl-search-layout.is-loading, .is-loading .gl-company-list { opacity: .62; }
@media(max-width: 52rem){.gl-search-layout{grid-template-columns:1fr}.gl-search-layout>aside{position:static}}
