/* =============================================================================
   RED ALMENARA MANAGER — ERP / SGTR instrument UI
   Portada: hero SGTR (mensaje + métricas + imagen de apoyo discreta en columna derecha).
   ============================================================================= */

/* -----------------------------------------------------------------------------
   1. Design tokens
   ----------------------------------------------------------------------------- */

:root {
    /* Paleta luminosa: piedra cálida, crema, carbón; bosque solo en acentos (CTA, hovers) */
    --color-bg-page: #f4f1eb;
    --color-bg-subtle: #efebe3;
    --color-surface: #fdfcfa;
    --color-surface-raised: #f8f6f0;
    --color-cream: #faf6ee;
    --color-stone: #ddd5c9;
    --color-taupe-warm: #a89b8c;
    --color-hero-panel: #e3dbd1;
    --color-hero-panel-accent: #d8cfc4;
    --color-hero-diagonal: #f6f2ea;
    --color-text: #2c322e;
    --color-text-secondary: #3d4440;
    --color-text-muted: #5c645e;
    --color-text-faint: #7a827c;
    --color-border: #d4cdc2;
    --color-border-subtle: #e5e0d6;
    --color-border-strong: #c4bbb0;
    --color-primary: #2a4d40;
    --color-primary-hover: #1f3d33;
    --color-primary-muted: #3a5e50;
    --color-primary-soft: #e0ebe5;
    --color-primary-soft-strong: #c5d6cc;
    --color-shell: #2a2e2c;
    --color-header-bg: #eae6dc;
    --color-header-nav: #d8d2c6;
    --color-header-nav-edge: rgba(42, 77, 64, 0.11);
    --color-header-accent-line: rgba(42, 77, 64, 0.55);
    --color-header-masthead-rule: rgba(42, 46, 44, 0.09);
    --shell-line: rgba(42, 46, 44, 0.12);
    --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
    /* Flat / technical — panels use border, not float */
    --shadow-none: 0 0 0 1px rgba(22, 25, 23, 0.04);
    --shadow-xs: 0 1px 0 rgba(22, 25, 23, 0.06);
    --shadow-sm: 0 1px 2px rgba(22, 25, 23, 0.07);
    --shadow-card: 0 1px 0 rgba(22, 25, 23, 0.08);
    --shadow-card-hover: 0 1px 0 rgba(22, 25, 23, 0.1);
    --shadow-header: none;
    --shadow-nav: none;
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --radius-pill: 999px;
    --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial,
        sans-serif;
    --layout-max: 1240px;
    --layout-pad-x: clamp(24px, 5vw, 48px);
    /* Typography scale */
    --text-xs: 0.6875rem;
    --text-sm: 0.8125rem;
    --text-base: 0.9375rem;
    --text-md: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.35rem;
    --text-2xl: 1.5rem;
    --leading-tight: 1.25;
    --leading-snug: 1.4;
    --leading-body: 1.62;
    --tracking-label: 0.04em;
    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --duration-fast: 0.14s;
    --duration: 0.2s;
    /* Focus ring */
    --focus-ring: 0 0 0 2px var(--color-surface), 0 0 0 4px rgba(42, 77, 64, 0.35);
    --focus-ring-inset-offset: 2px;
}

/* -----------------------------------------------------------------------------
   2. Base
   ----------------------------------------------------------------------------- */

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-body);
    color: var(--color-text);
    background-color: var(--color-bg-page);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--duration-fast) var(--ease-out);
}

a:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
}

a:focus-visible {
    outline: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--focus-ring);
}

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

/* -----------------------------------------------------------------------------
   3. Page shell & vertical rhythm
   ----------------------------------------------------------------------------- */

.site-main {
    margin: 0;
    padding: 0;
}

.page-wrap {
    max-width: var(--layout-max);
    margin: 0 auto;
    padding: clamp(28px, 3.2vw, 44px) var(--layout-pad-x) clamp(44px, 5vw, 72px);
    position: relative;
}

.page-wrap--after-hero {
    padding-top: clamp(40px, 4.5vw, 64px);
}

/* Ritmo más amplio bajo el hero de portada */
.page-wrap--landing-editorial {
    padding-bottom: clamp(56px, 7vw, 96px);
}

.page-header-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-bottom: 0.35rem;
}

.page-header-row h2 {
    margin: 0 0 0.35rem;
    font-size: clamp(1.2rem, 2vw, 1.4rem);
    font-weight: 800;
    line-height: var(--leading-tight);
    color: var(--color-text);
    letter-spacing: -0.03em;
}

.section-intro {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.5;
    color: var(--color-text-muted);
    max-width: 52rem;
    font-weight: 500;
}

.actions-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    align-items: center;
}

.panel-placeholder {
    margin: 0;
}

.panel-placeholder__text {
    margin: 0;
}

/* -----------------------------------------------------------------------------
   4. Cabecera editorial (piedra / crema): identidad + usuario; sin foto aquí
   ----------------------------------------------------------------------------- */

.site-header--editorial {
    position: relative;
    color: var(--color-text);
    padding: 0;
    margin: 0;
    font-family: var(--font-sans);
    background: var(--color-header-bg);
    border-bottom: 1px solid var(--color-border-strong);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset, 0 3px 12px rgba(44, 50, 46, 0.055);
    z-index: 20;
}

/* Pulido final: cabecera con un poco más de peso e identidad, sin volverse pesada */
.site-header--calm {
    background: linear-gradient(180deg, #f3efe8 0%, #ebe6dc 52%, var(--color-header-bg) 100%);
    border-bottom-color: var(--color-border-strong);
    box-shadow: 0 1px 0 rgba(42, 77, 64, 0.07), 0 5px 18px rgba(44, 50, 46, 0.065);
}

.site-header--calm::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: linear-gradient(
        90deg,
        var(--color-header-accent-line) 0%,
        rgba(42, 77, 64, 0.22) 35%,
        rgba(42, 77, 64, 0.12) 100%
    );
    pointer-events: none;
}

.site-header__band {
    max-width: var(--layout-max);
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    box-sizing: border-box;
    padding-left: var(--layout-pad-x);
    padding-right: var(--layout-pad-x);
    position: relative;
    overflow: visible;
}

.site-header__band--top {
    border-bottom: 1px solid var(--color-header-masthead-rule);
}

.site-header__band--nav {
    background: linear-gradient(180deg, #ded8cc 0%, var(--color-header-nav) 48%, #d3cdc1 100%);
    border-top: 1px solid var(--color-header-nav-edge);
    border-bottom: 1px solid var(--color-border-strong);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}

.site-header--editorial .site-header__top {
    position: relative;
    z-index: 2;
    padding: 0.55rem 0 0.62rem;
}

.site-header--calm .site-header__top {
    padding: 0.72rem 0 0.78rem;
}

.site-header__shell {
    width: 100%;
    box-sizing: border-box;
}

.site-header__shell--top {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: clamp(1.65rem, 3.5vw, 2.6rem);
}

.header-brand {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: clamp(0.85rem, 2.1vw, 1.25rem);
    padding-right: 0.65rem;
}

/* Grupo logo + nombre: alineación sobria */
.header-brand--calm {
    align-items: center;
    gap: clamp(0.75rem, 1.85vw, 1.12rem);
}

.header-brand__link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    text-decoration: none;
    color: inherit;
    line-height: 0;
    border-radius: var(--radius-sm);
    transition: opacity var(--duration-fast) var(--ease-out);
    flex-shrink: 0;
}

.header-brand__link:hover {
    text-decoration: none;
    color: inherit;
    opacity: 0.88;
}

.header-brand__link:focus-visible {
    box-shadow: var(--focus-ring);
}

.header-brand__logo {
    display: block;
    height: auto;
    width: auto;
    max-width: min(200px, 42vw);
    max-height: 34px;
    object-fit: contain;
    object-position: left center;
}

.header-brand--calm .header-brand__logo {
    max-width: min(228px, 46vw);
    max-height: 40px;
}

/* Texto de producto junto al logo: jerarquía sobria */
.header-brand__text {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    min-width: 0;
    border-left: 1px solid var(--color-border-strong);
    padding-left: clamp(0.65rem, 1.5vw, 1rem);
}

.header-brand--calm .header-brand__text {
    border-left: 2px solid rgba(42, 77, 64, 0.28);
    padding-left: clamp(0.75rem, 1.75vw, 1.12rem);
    padding-bottom: 0.06rem;
}

.header-brand__name {
    font-size: clamp(0.68rem, 1.1vw, 0.78rem);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    line-height: 1.2;
}

/* Nombre en serif discreto, sin tono dramático */
.header-brand--calm .header-brand__name {
    font-family: var(--font-display);
    font-size: clamp(0.84rem, 1.28vw, 0.98rem);
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--color-shell);
    line-height: 1.18;
}

.header-brand__tag {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--color-text-muted);
    letter-spacing: 0.02em;
    line-height: 1.35;
}

.header-brand--calm .header-brand__tag {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    line-height: 1.32;
}

.header-right {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 0.4rem;
    min-width: 176px;
    text-align: right;
}

.header-right__controls {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-wrap: wrap;
    padding: 0.22rem 0.4rem;
    background: rgba(253, 252, 250, 0.72);
    border: 1px solid rgba(42, 77, 64, 0.14);
    border-radius: var(--radius-md);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;
}

.header-locale-form {
    margin: 0;
}

.header-locale-wrap {
    position: relative;
    display: inline-block;
}

.header-locale-wrap::after {
    content: "▾";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    font-size: 10px;
    line-height: 1;
    color: var(--color-text-muted);
    opacity: 0.9;
}

.header-locale-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    margin: 0;
    min-height: 1.85rem;
    padding: 0.32rem 1.65rem 0.32rem 0.6rem;
    font-family: var(--font-sans);
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--color-text);
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(42, 77, 64, 0.16);
    border-radius: var(--radius-sm);
    cursor: pointer;
    line-height: 1.25;
    transition: background var(--duration-fast) var(--ease-out), border-color var(--duration-fast)
        var(--ease-out), color var(--duration-fast) var(--ease-out);
}

.header-locale-select:hover {
    background: var(--color-surface);
    border-color: var(--color-primary-muted);
    color: var(--color-primary-hover);
}

.header-locale-select:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.header-locale-select option {
    color: #1a1a1a;
    background: #ffffff;
}

.header-logout-form--text {
    margin: 0;
}

.header-logout-btn {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    cursor: pointer;
    text-decoration: none;
    line-height: 1.25;
}

.header-logout-btn--outline {
    min-height: 1.85rem;
    padding: 0.32rem 0.72rem;
    border: 1px solid rgba(42, 77, 64, 0.2);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.92);
    font-weight: 600;
    font-size: 0.76rem;
    color: var(--color-text-secondary);
    transition: background var(--duration-fast) var(--ease-out), border-color var(--duration-fast)
        var(--ease-out), color var(--duration-fast) var(--ease-out);
}

.header-logout-btn--outline:hover {
    text-decoration: none;
    color: var(--color-primary-hover);
    background: var(--color-primary-soft);
    border-color: var(--color-primary-muted);
}

.header-logout-btn--outline:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.header-logout-btn:not(.header-logout-btn--outline):hover {
    text-decoration: underline;
    color: var(--color-primary);
}

.header-right__identity {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.125rem;
    width: 100%;
}

.header-right__username {
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-shell);
    line-height: 1.2;
    letter-spacing: -0.015em;
}

.header-right__email {
    font-family: var(--font-sans);
    font-size: 0.65rem;
    font-weight: 500;
    color: var(--color-text-muted);
    line-height: 1.28;
    word-break: break-all;
    max-width: 260px;
}

.header-right__guest {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
}

.header-guest-login {
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-surface);
    text-decoration: none;
    padding: 0.35rem 0.75rem;
    border-radius: var(--radius-sm);
    background: var(--color-primary);
    border: 1px solid var(--color-primary-hover);
    transition: background var(--duration-fast) var(--ease-out), border-color var(--duration-fast)
        var(--ease-out);
}

.header-guest-login:hover {
    color: var(--color-surface);
    text-decoration: none;
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.header-guest-login:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.header-guest-hint {
    margin: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted);
    max-width: 220px;
    line-height: var(--leading-snug);
}

.btn-compact {
    padding: 0.4rem 0.75rem;
    font-size: var(--text-sm);
    font-weight: 600;
}

@media (max-width: 1024px) {
    .site-header__shell--top {
        flex-wrap: wrap;
    }

    .header-brand {
        flex: 1 1 auto;
        min-width: min(100%, 280px);
    }

    .header-right {
        margin-left: auto;
    }
}

@media (max-width: 640px) {
    .site-header--editorial .site-header__top {
        padding: 0.58rem 0 0.68rem;
    }

    .site-header--calm .site-header__top {
        padding: 0.62rem 0 0.72rem;
    }

    .header-brand {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .header-brand__text {
        border-left: none;
        padding-left: 0;
        flex: 1 1 100%;
    }

    .header-brand__logo {
        max-height: 34px;
        max-width: min(180px, 55vw);
    }

    .header-right {
        align-items: flex-start;
        text-align: left;
        width: 100%;
    }

    .header-right__identity {
        align-items: flex-start;
    }

    .header-right__controls {
        justify-content: flex-start;
        width: 100%;
        box-sizing: border-box;
    }
}

/* -----------------------------------------------------------------------------
   5. Main navigation
   ----------------------------------------------------------------------------- */

.main-nav--editorial {
    background: transparent;
    padding: 0;
    border-bottom: none;
    margin-top: 0;
    box-shadow: none;
}

.main-nav--editorial .site-header__shell--nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.12rem 0.28rem;
    padding-top: 0.48rem;
    padding-bottom: 0.48rem;
    border-top: none;
}

.site-header--calm + .main-nav--editorial .site-header__shell--nav {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.nav-link--editorial {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-sans);
    font-size: 0.828125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-decoration: none;
    padding: 0.48rem 0.92rem;
    margin: 0;
    border: none;
    border-radius: var(--radius-sm);
    border-bottom: 2px solid transparent;
    box-sizing: border-box;
    letter-spacing: 0.028em;
    text-transform: none;
    transition: color var(--duration-fast) ease, background var(--duration-fast) ease,
        border-color var(--duration-fast) ease;
}

.nav-link--editorial:hover {
    text-decoration: none;
    color: var(--color-shell);
    background: rgba(42, 77, 64, 0.1);
    border-bottom-color: rgba(42, 77, 64, 0.28);
}

.nav-link--editorial:focus-visible {
    outline: none;
    color: var(--color-primary);
    box-shadow: inset 0 0 0 1px var(--color-primary-muted);
}

.nav-link--editorial.active {
    color: var(--color-primary);
    background: linear-gradient(180deg, rgba(224, 235, 229, 0.95) 0%, var(--color-primary-soft) 100%);
    border-bottom-color: var(--color-primary);
    font-weight: 700;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.55) inset;
}

@media (max-width: 640px) {
    .nav-link--editorial {
        padding: 0.4rem 0.62rem;
        font-size: 0.78rem;
    }

    .main-nav--editorial .site-header__shell--nav {
        gap: 0.1rem 0.2rem;
        padding-top: 0.4rem;
        padding-bottom: 0.4rem;
    }
}

/* -----------------------------------------------------------------------------
   6. Portada: hero ERP/SGTR — columna producto + mini panel de métricas
   ----------------------------------------------------------------------------- */

.landing-hero {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--color-border);
}

.landing-hero--erp {
    background: var(--color-surface);
    box-shadow: 0 1px 0 rgba(42, 77, 64, 0.04);
}

.landing-hero__shell {
    max-width: var(--layout-max);
    margin: 0 auto;
    padding: clamp(2.75rem, 6vw, 4.5rem) var(--layout-pad-x) clamp(2.5rem, 5vw, 3.75rem);
    box-sizing: border-box;
}

.landing-hero__grid-erp {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(260px, 0.78fr);
    gap: clamp(2rem, 4.5vw, 3.5rem);
    align-items: start;
}

.landing-hero__copy {
    max-width: 36rem;
}

.landing-hero__eyebrow {
    margin: 0 0 1rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--color-primary-muted);
}

.landing-hero--erp .landing-hero__title {
    margin: 0 0 1rem;
    font-family: var(--font-display);
    font-size: clamp(1.9rem, 3.2vw, 2.65rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-text);
}

.landing-hero--erp .landing-hero__subtitle {
    margin: 0 0 1rem;
    font-family: var(--font-sans);
    font-size: clamp(1.05rem, 1.4vw, 1.22rem);
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-text-secondary);
}

.landing-hero--erp .landing-hero__lede {
    margin: 0 0 2rem;
    font-family: var(--font-sans);
    font-size: clamp(0.94rem, 1.1vw, 1.02rem);
    line-height: 1.75;
    color: var(--color-text-muted);
    max-width: 34rem;
}

.landing-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.landing-hero__actions--erp {
    gap: 0.85rem;
}

.btn-landing {
    min-height: 2.5rem;
    padding: 0.48rem 1.2rem;
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: none;
    border-radius: 2px;
}

/* CTA del hero: más presencia sin parecer marketing chillón */
.btn-hero-erp.btn-primary {
    min-height: 2.75rem;
    padding: 0.55rem 1.45rem;
    font-weight: 700;
    font-size: 0.875rem;
    box-shadow: 0 1px 3px rgba(42, 77, 64, 0.18);
}

.btn-hero-erp.btn-secondary {
    min-height: 2.75rem;
    padding: 0.55rem 1.35rem;
    font-weight: 600;
    font-size: 0.875rem;
    text-transform: none;
    letter-spacing: 0.02em;
}

/* Columna derecha: panel tipo tablero operativo */
.landing-hero__dashboard {
    position: relative;
    padding-top: 0.15rem;
}

.landing-hero__dashboard-kicker {
    margin: 0 0 1rem;
    font-family: var(--font-sans);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-text-faint);
}

.hero-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.hero-stat-card {
    margin: 0;
    padding: 0.85rem 1rem;
    background: var(--color-surface-raised);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: 0 1px 3px rgba(44, 50, 46, 0.06);
}

.hero-stat-card--accent {
    background: linear-gradient(180deg, var(--color-primary-soft) 0%, var(--color-surface-raised) 100%);
    border-color: var(--color-primary-soft-strong);
}

.hero-stat-card__label {
    margin: 0 0 0.4rem;
    font-family: var(--font-sans);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-faint);
    line-height: 1.3;
}

.hero-stat-card__value {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 1.35rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    color: var(--color-text);
    line-height: 1.2;
}

.hero-stat-card__value--status {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-primary);
}

.hero-stat-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-top: 0.85rem;
    padding: 0.65rem 1rem;
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border-subtle);
    border-radius: 3px;
    font-family: var(--font-sans);
    font-size: 0.78rem;
}

.hero-stat-strip__label {
    font-weight: 600;
    color: var(--color-text-secondary);
    letter-spacing: 0.02em;
}

.hero-stat-strip__value {
    font-weight: 700;
    color: var(--color-primary-muted);
    font-variant-numeric: tabular-nums;
}

/* Galería de territorios bajo el hero (imagen + nombre + ha; datos vía contexto) */
.territory-gallery {
    background: var(--color-bg-subtle);
    border-bottom: 1px solid var(--color-border-subtle);
}

.territory-gallery__inner {
    max-width: var(--layout-max);
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 3rem) var(--layout-pad-x);
    box-sizing: border-box;
}

.territory-gallery__head {
    margin-bottom: clamp(1.25rem, 2.5vw, 1.65rem);
    max-width: 40rem;
}

.territory-gallery__title {
    margin: 0 0 0.5rem;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
}

.territory-gallery__intro {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.55;
    color: var(--color-text-muted);
    font-weight: 500;
}

.territory-gallery__empty {
    margin: 0;
    max-width: 36rem;
    font-size: var(--text-sm);
    line-height: 1.55;
    color: var(--color-text-muted);
    font-weight: 500;
}

.territory-gallery__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.85rem, 2vw, 1.15rem);
    align-items: stretch;
}

.territory-gallery-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border-subtle);
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    box-shadow: none;
    transition: border-color var(--duration-fast) var(--ease-out), background var(--duration-fast)
        var(--ease-out);
}

.territory-gallery-card:hover {
    text-decoration: none;
    color: inherit;
    border-color: var(--color-border);
    background: var(--color-surface-raised);
}

.territory-gallery-card:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.territory-gallery-card__media {
    position: relative;
    aspect-ratio: 16 / 10;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--color-stone);
}

.territory-gallery-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
}

/* Sin foto de perfil: bloque neutro (sin imagen decorativa genérica) */
.territory-gallery-card__filler {
    width: 100%;
    height: 100%;
    min-height: 100%;
    background: linear-gradient(
        160deg,
        var(--color-primary-soft) 0%,
        var(--color-surface-raised) 48%,
        var(--color-stone) 100%
    );
}

.territory-gallery-card__body {
    padding: 0.9rem 1rem 1.05rem;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 0;
}

.territory-gallery-card__name {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--text-md);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: var(--leading-snug);
    color: var(--color-text);
}

.territory-gallery-card__meta {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-primary-muted);
    font-variant-numeric: tabular-nums;
}

@media (max-width: 720px) {
    .territory-gallery__grid {
        grid-template-columns: 1fr;
    }
}

/* Bloques institucionales bajo el hero (sustituyen pilares genéricos) */
.landing-institutional {
    padding-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
    border-bottom: 1px solid var(--color-border-subtle);
}

.inst-block {
    margin-bottom: clamp(2rem, 4vw, 2.85rem);
}

.inst-block--last {
    margin-bottom: 0;
}

.inst-block__title {
    margin: 0 0 0.85rem;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
}

.inst-block__text {
    margin: 0 0 0.85rem;
    font-size: var(--text-base);
    line-height: 1.75;
    color: var(--color-text-muted);
    max-width: 46rem;
    font-weight: 500;
}

.inst-block__text:last-child {
    margin-bottom: 0;
}

.inst-block__list {
    margin: 0;
    padding: 0 0 0 1.15rem;
    max-width: 46rem;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: 1.68;
    font-weight: 500;
}

.inst-block__list li {
    margin-bottom: 0.45rem;
}

.inst-block__list li:last-child {
    margin-bottom: 0;
}

/* Secciones inferiores: aire, sin cajas fuertes */
.editorial-block {
    margin-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
    padding: clamp(0.25rem, 1vw, 0.5rem) 0;
    border-bottom: none;
}

.editorial-block:last-child {
    margin-bottom: 0;
}

.editorial-block__head {
    margin-bottom: clamp(1.15rem, 2.2vw, 1.5rem);
}

.editorial-block__kicker {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--color-text-faint);
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--color-border-subtle);
    display: inline-block;
    min-width: min(100%, 11rem);
}

.editorial-block__body {
    max-width: 100%;
}

.editorial-block__lead {
    margin: 0 0 1rem;
    font-size: var(--text-base);
    line-height: 1.72;
    color: var(--color-text-muted);
    font-weight: 500;
    max-width: 42rem;
}

.editorial-block__lead--wide {
    max-width: 50rem;
}

.editorial-block--air {
    padding-top: clamp(0.5rem, 1.5vw, 1rem);
}

.editorial-block--soft-end {
    padding-bottom: 0.25rem;
    margin-top: 0.5rem;
    padding-top: clamp(1.5rem, 3vw, 2rem);
    border-top: 1px solid var(--color-border-subtle);
}

.card--editorial {
    border-radius: 2px;
    box-shadow: none;
}

.status-grid--editorial {
    gap: clamp(1.15rem, 2.2vw, 1.5rem);
}

@media (max-width: 960px) {
    .landing-hero__grid-erp {
        grid-template-columns: 1fr;
        gap: clamp(1.75rem, 4vw, 2.5rem);
    }

    .landing-hero__copy {
        max-width: none;
    }
}

@media (max-width: 540px) {
    .landing-hero__actions--erp {
        flex-direction: column;
        align-items: stretch;
    }

    .btn-hero-erp {
        width: 100%;
        justify-content: center;
    }
}

/* -----------------------------------------------------------------------------
   7. Cards & panels
   ----------------------------------------------------------------------------- */

.card {
    position: relative;
    background: var(--color-surface);
    border: 1px solid var(--color-border-subtle);
    border-radius: 1px;
    padding: clamp(1rem, 1.6vw, 1.35rem);
    margin-bottom: clamp(0.75rem, 1.2vw, 0.95rem);
    box-shadow: none;
    transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease;
}

.card--section {
    margin-bottom: clamp(0.95rem, 1.5vw, 1.15rem);
}

.card--muted {
    background: var(--color-bg-subtle);
    border-color: var(--color-border);
}

.card h2:not(.card__title) {
    margin-top: 0;
    font-size: var(--text-md);
    font-weight: 800;
    line-height: var(--leading-tight);
    color: var(--color-text);
    letter-spacing: -0.025em;
}

.card__title {
    margin: 0 0 0.65rem;
    font-size: var(--text-sm);
    font-weight: 800;
    color: var(--color-text-secondary);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid var(--color-border);
}

.card__lead {
    margin: 0 0 0.75rem;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: 1.5;
    font-weight: 500;
}

.hero-actions {
    margin: 1rem 0 0;
}

/* -----------------------------------------------------------------------------
   8. Buttons — unified system
   ----------------------------------------------------------------------------- */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: 0.45rem 1.1rem;
    border: 1px solid transparent;
    border-radius: 1px;
    cursor: pointer;
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    letter-spacing: 0.02em;
    transition: background var(--duration-fast) ease, border-color var(--duration-fast) ease,
        color var(--duration-fast) ease;
}

.btn:disabled,
.btn[aria-disabled="true"] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.btn:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.btn-primary {
    background: var(--color-primary);
    color: #f8faf8;
    border-color: var(--color-primary-hover);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    letter-spacing: 0.055em;
    text-transform: uppercase;
    font-size: var(--text-sm);
}

.btn-primary:hover {
    background: var(--color-primary-hover);
    border-color: #0f241e;
    text-decoration: none;
    color: #fff;
}

.btn-secondary {
    background: var(--color-surface);
    color: var(--color-primary);
    border-color: var(--color-border-strong);
    box-shadow: none;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    font-size: var(--text-sm);
}

.btn-secondary:hover {
    background: var(--color-primary-soft);
    border-color: var(--color-primary-muted);
    text-decoration: none;
    color: var(--color-primary-hover);
}

.btn-secondary--on-dark {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.45);
    box-shadow: none;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: var(--text-sm);
}

.btn-secondary--on-dark:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.75);
}

/* CTA de portada: frase legible, sin forzar mayúsculas */
.btn-landing.btn-primary,
.btn-landing.btn-secondary {
    text-transform: none;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.btn-light {
    background: var(--color-bg-subtle);
    color: var(--color-primary-hover);
    border-color: var(--color-border-strong);
    box-shadow: none;
}

.btn-light:hover {
    background: var(--color-primary-soft);
    text-decoration: none;
    color: var(--color-primary);
    border-color: var(--color-border-strong);
}

/* Subtle / ghost — same surface as cards */
.btn-subtle,
.btn-ghost {
    background: transparent;
    color: var(--color-text-secondary);
    border-color: var(--color-border);
}

.btn-subtle:hover,
.btn-ghost:hover {
    background: var(--color-bg-subtle);
    color: var(--color-text);
    text-decoration: none;
    border-color: var(--color-border-strong);
}

.btn-danger {
    background: #8b1515;
    color: #ffffff;
    border-color: #6b1010;
    box-shadow: none;
}

.btn-danger:hover {
    background: #7f1d1d;
    border-color: #651515;
    color: #ffffff;
    text-decoration: none;
}

.btn-sm {
    min-height: 2.125rem;
    padding: 0.35rem 0.75rem;
    font-size: var(--text-xs);
}

/* -----------------------------------------------------------------------------
   9. Quick links & status grid
   ----------------------------------------------------------------------------- */

.quick-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.65rem;
    margin-top: 0.25rem;
}

.quick-links--editorial {
    gap: clamp(1rem, 2vw, 1.35rem);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.quick-link-card {
    display: block;
    background: transparent;
    border: none;
    border-left: 3px solid var(--color-primary);
    border-radius: 0;
    padding: 0.65rem 0 0.65rem 1.15rem;
    box-shadow: none;
    transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease,
        padding-left var(--duration-fast) var(--ease-out);
}

.quick-link-card:hover {
    text-decoration: none;
    border-left-color: var(--color-primary-muted);
    background: rgba(42, 77, 64, 0.05);
    padding-left: 1.35rem;
}

.quick-link-card:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.quick-link-card h3 {
    margin: 0 0 0.5rem;
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.015em;
}

.quick-link-card p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: var(--leading-body);
}

.status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 0.65rem;
    margin-top: 0.25rem;
}

.status-item {
    background: var(--color-surface-raised);
    border: none;
    border-bottom: 1px solid var(--color-border-subtle);
    border-radius: 0;
    padding: 0.75rem 0.25rem 0.85rem 0;
    box-shadow: none;
}

.status-item h3 {
    margin: 0 0 0.5rem;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--color-text-faint);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.status-item p {
    margin: 0;
    color: var(--color-primary);
    font-weight: 700;
    font-size: var(--text-base);
    letter-spacing: -0.02em;
}

/* -----------------------------------------------------------------------------
   10. Tables
   ----------------------------------------------------------------------------- */

.table-wrap {
    overflow-x: auto;
    margin: 0 -2px;
    padding: 2px;
    border-radius: var(--radius-md);
}

.styled-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--color-surface);
    font-variant-numeric: tabular-nums;
}

.styled-table th,
.styled-table td {
    text-align: left;
    padding: 0.62rem 0.75rem;
    border-bottom: 1px solid var(--color-border-subtle);
    vertical-align: middle;
    font-size: var(--text-sm);
}

.styled-table tbody tr {
    transition: background var(--duration) var(--ease-out);
}

.styled-table tbody tr:hover {
    background: rgba(42, 77, 64, 0.045);
}

.styled-table thead th {
    background: var(--color-primary-soft);
    color: var(--color-text-secondary);
    font-size: 0.625rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid var(--color-border);
}

.styled-table thead th:first-child {
    border-radius: 0;
}

.table-link {
    color: var(--color-primary);
    font-weight: 600;
}

.table-link:hover {
    color: var(--color-primary-hover);
}

.styled-table-pro {
    border: 1px solid var(--color-border-subtle);
    border-radius: 1px;
    overflow: hidden;
    box-shadow: none;
}

.styled-table-pro thead th {
    background: #d2ddd6;
    color: var(--color-text);
    font-weight: 800;
    white-space: nowrap;
    font-size: 0.625rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--color-border);
}

.styled-table-pro tbody tr:hover {
    background: rgba(42, 77, 64, 0.05);
}

.main-cell {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.main-cell strong {
    font-size: var(--text-sm);
    font-weight: 800;
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.muted-cell {
    color: var(--color-text-muted);
    white-space: nowrap;
    font-size: var(--text-xs);
    font-weight: 500;
}

.actions-col {
    white-space: nowrap;
    width: 1%;
}

.table-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.btn-table {
    padding: 0.28rem 0.55rem;
    min-height: 1.75rem;
    border-radius: var(--radius-sm);
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    transition: background var(--duration-fast) ease, border-color var(--duration-fast) ease;
}

.btn-table:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

.btn-table:hover {
    text-decoration: none;
}

.btn-table-view {
    background: var(--color-primary-soft);
    color: var(--color-primary-hover);
    border-color: var(--color-primary-soft-strong);
}

.btn-table-view:hover {
    background: var(--color-primary-soft-strong);
    color: var(--color-primary);
}

.btn-table-edit {
    background: var(--color-primary);
    color: #ffffff;
    border-color: #142e27;
    box-shadow: none;
}

.btn-table-edit:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
    color: #ffffff;
}

.btn-table-danger {
    background: #991b1b;
    color: #ffffff;
    border-color: #7f1d1d;
    cursor: pointer;
    font-family: inherit;
}

.btn-table-danger:hover {
    background: #7f1d1d;
    color: #ffffff;
    border-color: #651515;
}

.inline-delete-form {
    margin: 0;
    display: inline-flex;
    align-items: center;
}

/* -----------------------------------------------------------------------------
   11. Status pills, badges, empty states
   ----------------------------------------------------------------------------- */

.status-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius-sm);
    background: var(--color-primary-soft);
    color: var(--color-primary-hover);
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--color-border-strong);
    line-height: 1.2;
}

.status-prospecto {
    background: #f5f0e4;
    color: #7a5f14;
    border-color: #e5d9bc;
}

.status-negociacion {
    background: #e8eef8;
    color: #2a5588;
    border-color: #cdd9ec;
}

.status-activo {
    background: #dfece5;
    color: var(--color-primary-hover);
    border-color: #c5d9cc;
}

.empty-state {
    text-align: center;
    padding: 1.75rem 1.25rem;
    background: var(--color-bg-subtle);
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-md);
    box-shadow: none;
}

.empty-state h3 {
    margin-top: 0;
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.empty-state p {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    line-height: var(--leading-body);
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
}

/* -----------------------------------------------------------------------------
   12. Forms
   ----------------------------------------------------------------------------- */

.styled-form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.85rem 1rem;
}

.form-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.form-field label {
    font-weight: 700;
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    min-height: 2.35rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--color-border);
    border-radius: 1px;
    font-size: var(--text-sm);
    font-family: inherit;
    background: var(--color-surface);
    color: var(--color-text);
    line-height: 1.35;
    transition: border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast)
            var(--ease-out),
        background var(--duration-fast) var(--ease-out);
}

.form-field textarea {
    resize: vertical;
    min-height: 6rem;
    padding-top: 0.65rem;
}

.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover {
    border-color: var(--color-text-faint);
}

.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible {
    outline: none;
    border-color: var(--color-primary-muted);
    box-shadow: 0 0 0 3px rgba(42, 77, 64, 0.14);
}

.form-field input:disabled,
.form-field select:disabled,
.form-field textarea:disabled {
    background: var(--color-bg-subtle);
    color: var(--color-text-muted);
    cursor: not-allowed;
    opacity: 0.85;
}

.form-actions {
    display: flex;
    gap: 0.625rem;
    flex-wrap: wrap;
    align-items: center;
    padding-top: 0.25rem;
    margin-top: 0.25rem;
}

/* -----------------------------------------------------------------------------
   13. Footer
   ----------------------------------------------------------------------------- */

.site-footer {
    text-align: center;
    padding: clamp(1.25rem, 2vw, 1.75rem) var(--layout-pad-x) clamp(1.5rem, 2.5vw, 2rem);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 600;
    border-top: 1px solid var(--color-border-subtle);
    margin-top: 0;
    background: var(--color-bg-subtle);
    letter-spacing: 0.03em;
}

.site-footer p {
    margin: 0;
    letter-spacing: 0.02em;
}

/* -----------------------------------------------------------------------------
   14. Login — product-grade composition
   ----------------------------------------------------------------------------- */

.login-card {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--color-border-strong);
    box-shadow: var(--shadow-card);
}

.login-card > .login-layout {
    padding: clamp(0.95rem, 2vw, 1.25rem);
}

.login-layout {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(240px, 0.95fr);
    gap: clamp(0.85rem, 2vw, 1.25rem);
    align-items: stretch;
}

.login-form-pro {
    max-width: none;
}

.login-panel {
    padding: clamp(0.85rem, 1.5vw, 1.1rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    box-shadow: none;
}

.login-error-box {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
    background: #fbecec;
    border: 1px solid #e8bcbc;
    color: #8b1e1e;
    font-weight: 600;
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
}

.login-help-box {
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    border-left: 3px solid var(--color-primary);
    padding: 0.85rem 1rem;
    color: var(--color-text-muted);
    line-height: 1.5;
    font-size: var(--text-sm);
    font-weight: 500;
    box-shadow: none;
}

.login-help-box h3 {
    margin-top: 0;
    margin-bottom: 0.65rem;
    color: var(--color-primary);
    font-size: var(--text-md);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.login-help-box strong {
    color: var(--color-text-secondary);
    font-weight: 700;
}

@media (max-width: 768px) {
    .login-layout {
        grid-template-columns: 1fr;
    }
}

/* -----------------------------------------------------------------------------
   15. List toolbar
   ----------------------------------------------------------------------------- */

.list-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.65rem;
    padding: 0.65rem 0.85rem;
    background: var(--color-surface-raised);
    border: 1px solid var(--color-border-subtle);
    border-radius: 1px;
    box-shadow: none;
}

.toolbar-count {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-text);
}

.toolbar-note {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    font-weight: 500;
}

.toolbar-left .styled-form {
    gap: 0.5rem;
}

/* -----------------------------------------------------------------------------
   16. Territory detail & sidebars
   ----------------------------------------------------------------------------- */

.detail-title-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.detail-title-row h2 {
    margin: 0;
    font-size: clamp(1.2rem, 2vw, 1.45rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: var(--leading-tight);
    color: var(--color-text);
}

.detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 0.95fr);
    gap: 0.85rem;
    align-items: start;
}

.detail-main,
.detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.detail-grid-pro {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.55rem;
}

.detail-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border-subtle);
    border-radius: 1px;
    padding: 0.65rem 0.75rem;
    box-shadow: none;
}

.detail-card:hover {
    border-color: var(--color-border-strong);
}

.detail-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: var(--text-xs);
    color: var(--color-text-faint);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.detail-value {
    display: block;
    font-size: var(--text-sm);
    color: var(--color-text);
    font-weight: 700;
    line-height: var(--leading-snug);
}

.notes-box-pro {
    min-height: 100px;
    font-style: normal;
    color: var(--color-text);
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 0.65rem 0.75rem;
    line-height: 1.5;
    font-size: var(--text-sm);
    box-shadow: none;
}

.sidebar-info-list {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.sidebar-info-item {
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-border-subtle);
}

.sidebar-info-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.sidebar-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: var(--text-xs);
    color: var(--color-text-faint);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.sidebar-value {
    color: var(--color-text);
    font-weight: 600;
    font-size: var(--text-sm);
}

.sidebar-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sidebar-actions .btn {
    justify-content: center;
}

.btn-full {
    width: 100%;
    text-align: center;
}

.detail-sidebar .card {
    box-shadow: var(--shadow-card);
}

@media (max-width: 900px) {
    .detail-layout {
        grid-template-columns: 1fr;
    }
}

/* -----------------------------------------------------------------------------
   17. Audit log
   ----------------------------------------------------------------------------- */

.audit-user-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius-sm);
    background: var(--color-primary-soft);
    color: var(--color-primary-hover);
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid var(--color-border-strong);
}

.audit-user-system {
    background: #eef0ee;
    color: var(--color-text-muted);
    border-color: var(--color-border);
}

.audit-action-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius-sm);
    background: #e2e8f0;
    color: #1e3a5f;
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border: 1px solid #b8c5d9;
}

.audit-details-cell {
    min-width: 260px;
    color: var(--color-text);
    line-height: var(--leading-body);
    font-size: var(--text-sm);
}

/* -----------------------------------------------------------------------------
   18. Responsive
   ----------------------------------------------------------------------------- */

@media (max-width: 768px) {
    .site-logo {
        max-width: 150px;
    }

    .card h2:not(.card__title),
    .card__title {
        font-size: var(--text-md);
    }

    .page-header-row h2 {
        font-size: var(--text-lg);
    }
}

