:root {
    --bg: #081019;
    --bg-elevated: #0d1723;
    --panel: rgba(18, 30, 44, 0.88);
    --panel-solid: #121e2c;
    --panel-soft: #172638;
    --line: rgba(147, 170, 196, 0.18);
    --line-strong: rgba(147, 170, 196, 0.32);
    --text: #eef6ff;
    --muted: #8ea1b8;
    --accent: #55a7ff;
    --accent-strong: #2588f6;
    --accent-soft: rgba(85, 167, 255, 0.14);
    --accent-secondary: #57d1be;
    --ambient-1: rgba(57, 137, 229, 0.20);
    --ambient-2: rgba(57, 203, 172, 0.10);
    --success: #45ca86;
    --warning: #f2bd4a;
    --danger: #ff6f73;
    --shadow: 0 18px 45px rgba(0, 0, 0, 0.26);
    --radius: 18px;
    --radius-sm: 11px;
}

html[data-theme="light"] {
    --bg: #edf3f9;
    --bg-elevated: #f7fbff;
    --panel: rgba(255, 255, 255, 0.92);
    --panel-solid: #ffffff;
    --panel-soft: #f1f6fb;
    --line: rgba(38, 61, 84, 0.14);
    --line-strong: rgba(38, 61, 84, 0.25);
    --text: #122033;
    --muted: #607389;
    --accent: #187ee5;
    --accent-strong: #0768ca;
    --accent-soft: rgba(24, 126, 229, 0.11);
    --accent-secondary: #27a88f;
    --ambient-1: rgba(24, 126, 229, 0.12);
    --ambient-2: rgba(39, 168, 143, 0.08);
    --shadow: 0 16px 38px rgba(32, 64, 96, 0.12);
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% -10%, var(--ambient-1), transparent 34rem),
        radial-gradient(circle at 95% 5%, var(--ambient-2), transparent 30rem),
        var(--bg);
    color: var(--text);
    font-family: Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 14px;
    line-height: 1.5;
}
button, input, select { font: inherit; }
button { color: inherit; }

.app-shell { width: min(1720px, 100%); margin: 0 auto; padding: 0 28px 42px; }
.topbar {
    min-height: 112px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid var(--line);
}
.brand-block { display: flex; align-items: center; gap: 16px; }
.brand-mark {
    width: 54px; height: 54px; flex: 0 0 auto; display: grid; place-items: center;
    border-radius: 16px; background: linear-gradient(145deg, var(--accent), var(--accent-secondary));
    box-shadow: 0 12px 26px rgba(37, 136, 246, 0.27);
}
.brand-mark svg { width: 30px; fill: white; }
.eyebrow, .section-kicker {
    display: block; color: var(--accent); font-size: 11px; font-weight: 800;
    letter-spacing: 0.12em; text-transform: uppercase;
}
.topbar h1 { margin: 2px 0 2px; font-size: clamp(21px, 2vw, 29px); line-height: 1.15; }
.topbar p { margin: 0; color: var(--muted); }
.top-actions { display: flex; gap: 8px; }
.icon-button {
    width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line);
    background: var(--panel); border-radius: 12px; cursor: pointer; transition: 160ms ease;
}
.icon-button:hover { border-color: var(--accent); transform: translateY(-1px); }

main { padding-top: 22px; }
.control-panel, .filter-card, .panel {
    border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel);
    backdrop-filter: blur(14px); box-shadow: var(--shadow);
}
.control-panel { padding: 18px; margin-bottom: 16px; }
.control-grid { display: grid; grid-template-columns: minmax(200px, 1.2fr) repeat(2, minmax(150px, .65fr)) minmax(350px, 1.7fr); gap: 14px; }
.field, .filter-group { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field > span, .filter-group > span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
input, select {
    width: 100%; min-height: 42px; border: 1px solid var(--line); border-radius: 10px;
    background: var(--panel-soft); color: var(--text); padding: 9px 11px; outline: none;
}
input:focus, select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.field-actions .button-row { min-height: 42px; display: flex; gap: 8px; align-items: stretch; }
.button {
    border: 1px solid var(--line); border-radius: 10px; background: var(--panel-soft); color: var(--text);
    min-height: 40px; padding: 8px 13px; cursor: pointer; font-weight: 700; transition: 150ms ease;
}
.button:hover { border-color: var(--accent); transform: translateY(-1px); }
.button.primary { background: linear-gradient(145deg, var(--accent), var(--accent-strong)); border-color: transparent; color: white; }
.button.ghost { background: transparent; box-shadow: none; }
.preset-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.preset-label { color: var(--muted); font-size: 12px; margin-right: 2px; }
.preset { border: 0; border-radius: 999px; background: var(--panel-soft); color: var(--muted); padding: 6px 11px; cursor: pointer; }
.preset:hover { color: var(--text); background: var(--accent-soft); }
.status-pill { margin-left: auto; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 999px; padding: 6px 11px; color: var(--muted); font-size: 12px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); box-shadow: 0 0 0 4px rgba(142, 161, 184, .1); }
.status-pill.ok .status-dot { background: var(--success); box-shadow: 0 0 0 4px rgba(69, 202, 134, .12); }
.status-pill.demo .status-dot { background: var(--warning); box-shadow: 0 0 0 4px rgba(242, 189, 74, .12); }
.status-pill.error .status-dot { background: var(--danger); box-shadow: 0 0 0 4px rgba(255, 111, 115, .12); }

.warnings { border: 1px solid rgba(242, 189, 74, .3); background: rgba(242, 189, 74, .10); color: var(--warning); border-radius: 12px; padding: 11px 14px; margin-bottom: 16px; }
.hidden { display: none !important; }

.kpi-grid { display: grid; grid-template-columns: repeat(8, minmax(145px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpi-card {
    position: relative; overflow: hidden; min-height: 130px; padding: 16px;
    background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow);
}
.kpi-card::after { content: ""; position: absolute; right: -26px; top: -30px; width: 90px; height: 90px; border-radius: 50%; background: var(--accent-soft); }
.kpi-label { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.kpi-value { margin-top: 7px; font-size: 30px; font-weight: 850; line-height: 1; letter-spacing: -.03em; }
.kpi-meta { margin-top: 10px; color: var(--muted); font-size: 11px; }
.delta { display: inline-flex; align-items: center; gap: 3px; font-weight: 800; }
.delta.up { color: var(--success); }
.delta.down { color: var(--danger); }
.delta.flat { color: var(--muted); }

.filter-card { padding: 17px; margin-bottom: 16px; }
.filter-grid { display: grid; grid-template-columns: repeat(5, minmax(170px, 1fr)); gap: 16px; align-items: start; }
.search-group { grid-column: span 1; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; max-height: 106px; overflow: auto; padding-right: 3px; }
.chip {
    border: 1px solid var(--line); background: var(--panel-soft); color: var(--muted); border-radius: 999px;
    padding: 5px 10px; font-size: 11px; cursor: pointer; transition: 120ms ease; user-select: none;
}
.chip:hover { border-color: var(--accent); color: var(--text); }
.chip.active { color: white; background: var(--accent-strong); border-color: var(--accent-strong); font-weight: 800; }
.search-box { position: relative; }
.search-box span { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.search-box input { padding-left: 31px; }

.analytics-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(340px, .75fr); gap: 16px; margin-bottom: 16px; }
.panel { padding: 18px; margin-bottom: 16px; }
.analytics-grid .panel, .two-column-grid .panel { margin-bottom: 0; }
.section-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 14px; }
.section-heading.compact { margin-bottom: 14px; }
.section-heading h2 { margin: 2px 0 0; font-size: 17px; }
.section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; max-width: 850px; }
.section-kicker.danger { color: var(--danger); }
.section-kicker.warning { color: var(--warning); }
.section-kicker.success { color: var(--success); }
.count-badge { white-space: nowrap; border-radius: 999px; background: var(--panel-soft); color: var(--muted); padding: 5px 10px; font-size: 11px; font-weight: 800; }
.count-badge.danger { color: var(--danger); background: rgba(255, 111, 115, .10); }
.count-badge.warning { color: var(--warning); background: rgba(242, 189, 74, .10); }

.trend-chart { min-height: 255px; display: flex; align-items: center; justify-content: center; color: var(--muted); }
.trend-svg { width: 100%; height: 255px; overflow: visible; }
.trend-grid { stroke: var(--line); stroke-width: 1; }
.trend-area { fill: var(--accent-soft); }
.trend-line { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.trend-dot { fill: var(--panel-solid); stroke: var(--accent); stroke-width: 2; }
.trend-label { fill: var(--muted); font-size: 10px; }
.trend-value { fill: var(--text); font-size: 10px; font-weight: 800; }

.ranking-list { display: flex; flex-direction: column; gap: 10px; }
.rank-item { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.rank-pos { color: var(--muted); font-size: 11px; font-weight: 800; }
.rank-main { min-width: 0; }
.rank-name { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 750; }
.rank-name span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank-bar { height: 7px; margin-top: 5px; border-radius: 999px; overflow: hidden; background: var(--panel-soft); }
.rank-bar > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent-strong), var(--accent-secondary)); }
.rank-total { font-size: 16px; font-weight: 850; }

.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: -2px 0 13px; }
.tab { border: 1px solid var(--line); border-radius: 9px; background: var(--panel-soft); color: var(--muted); padding: 7px 12px; cursor: pointer; font-size: 12px; }
.tab.active { color: white; border-color: var(--accent-strong); background: var(--accent-strong); font-weight: 800; }
.table-wrap { width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 12px; }
table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
th, td { padding: 9px 10px; white-space: nowrap; border-bottom: 1px solid var(--line); text-align: right; }
th { position: sticky; top: 0; z-index: 3; color: var(--muted); background: var(--panel-solid); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; cursor: default; }
th.sortable { cursor: pointer; }
th.sortable:hover { color: var(--text); }
th.left, td.left { text-align: left; }
tbody tr:hover td { background: var(--accent-soft); }
tbody tr:last-child td { border-bottom: 0; }
.group-row td { background: var(--panel-soft); color: var(--accent); font-weight: 850; text-align: left; text-transform: uppercase; letter-spacing: .05em; }
.total-row td { background: var(--panel-soft); font-weight: 850; border-top: 1px solid var(--line-strong); }
.name-cell { font-weight: 780; }
.muted { color: var(--muted); }
.zero { color: color-mix(in srgb, var(--muted) 45%, transparent); }
.bad-number { color: var(--danger); font-weight: 850; }
.mini-bar { width: 92px; height: 7px; overflow: hidden; border-radius: 999px; background: var(--panel-soft); }
.mini-bar span { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.tag { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 7px; padding: 2px 6px; font-size: 10px; font-weight: 850; background: var(--panel-soft); }
.tag.tag-planes { color: #f4bd64; background: rgba(244, 189, 100, .10); }
.tag.tag-tradicional { color: #72b6ff; background: rgba(114, 182, 255, .10); }
.tag.tag-ford { color: #6fb1ff; }
.tag.tag-vw { color: #51d4c0; }
.tag.tag-cjd, .tag.tag-chery, .tag.tag-jac { color: #d09bff; }
.tag.tag-sin-grupo, .tag.tag-sin-marca { color: var(--muted); }

.alert-panel { border-color: rgba(255, 111, 115, .26); background: linear-gradient(180deg, rgba(255, 111, 115, .07), var(--panel)); }
.warning-panel { border-color: rgba(242, 189, 74, .24); }
.success-panel { border-color: rgba(69, 202, 134, .24); }
.two-column-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.source-note { color: var(--muted); font-size: 12px; line-height: 1.65; padding: 5px 2px 20px; }
.source-note strong { color: var(--text); }
.source-note p { margin: 4px 0; }
code { color: var(--accent); background: var(--accent-soft); border-radius: 5px; padding: 1px 5px; }
.empty-state { color: var(--muted); padding: 34px; text-align: center; }

.loading-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: rgba(4, 9, 15, .66); backdrop-filter: blur(6px); }
.loader-card { min-width: 280px; display: flex; flex-direction: column; align-items: center; gap: 7px; background: var(--panel-solid); border: 1px solid var(--line); border-radius: 18px; padding: 25px; box-shadow: var(--shadow); }
.loader-card span { color: var(--muted); font-size: 12px; }
.spinner { width: 34px; height: 34px; border: 3px solid var(--line-strong); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; margin-bottom: 5px; }
@keyframes spin { to { transform: rotate(360deg); } }
.toast { position: fixed; right: 22px; bottom: 22px; z-index: 110; transform: translateY(18px); opacity: 0; pointer-events: none; background: var(--panel-solid); border: 1px solid var(--line); border-radius: 12px; padding: 11px 14px; box-shadow: var(--shadow); transition: 180ms ease; }
.toast.show { transform: translateY(0); opacity: 1; }
.toast.error { border-color: rgba(255,111,115,.45); color: var(--danger); }
.error-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.error-card { width: min(430px, 100%); text-align: center; background: var(--panel); border: 1px solid var(--line); border-radius: 22px; padding: 34px; box-shadow: var(--shadow); }
.error-code { width: 58px; height: 58px; margin: 0 auto 14px; display: grid; place-items: center; border-radius: 50%; color: var(--danger); background: rgba(255, 111, 115, .10); font-size: 28px; font-weight: 900; }
.error-card p { color: var(--muted); margin-bottom: 20px; }
.error-card a { display: inline-flex; align-items: center; text-decoration: none; }

@media (max-width: 1450px) {
    .kpi-grid { grid-template-columns: repeat(4, 1fr); }
    .filter-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1050px) {
    .control-grid { grid-template-columns: repeat(3, 1fr); }
    .field-actions { grid-column: 1 / -1; }
    .analytics-grid, .two-column-grid { grid-template-columns: 1fr; }
    .filter-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .app-shell { padding: 0 12px 28px; }
    .topbar { align-items: flex-start; padding: 18px 0; min-height: auto; }
    .brand-mark { width: 44px; height: 44px; border-radius: 13px; }
    .top-actions { flex-direction: column; }
    .control-grid, .filter-grid { grid-template-columns: 1fr; }
    .field-actions { grid-column: auto; }
    .field-actions .button-row { flex-wrap: wrap; }
    .kpi-grid { grid-template-columns: repeat(2, 1fr); }
    .status-pill { width: 100%; margin-left: 0; }
    .section-heading { flex-direction: column; }
}
@media (max-width: 420px) {
    .kpi-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   Portal multiusuario, catálogo de paneles y administración
   ========================================================= */
.portal-nav {
    position: sticky; top: 0; z-index: 80;
    min-height: 68px; padding: 0 28px;
    display: flex; align-items: center; gap: 26px;
    border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg-elevated) 90%, transparent);
    backdrop-filter: blur(18px);
}
.portal-brand { display: flex; align-items: center; gap: 11px; color: var(--text); text-decoration: none; }
.portal-brand-mark {
    width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px;
    color: #fff; font-weight: 950; font-size: 19px;
    background: linear-gradient(145deg, var(--accent-strong), #50c9aa);
    box-shadow: 0 8px 20px rgba(37, 136, 246, .24);
}
.portal-brand span:last-child, .portal-user > span { display: flex; flex-direction: column; line-height: 1.2; }
.portal-brand small, .portal-user small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.portal-nav-links { display: flex; gap: 4px; flex: 1; }
.portal-nav-links a { color: var(--muted); text-decoration: none; padding: 9px 12px; border-radius: 9px; font-weight: 700; }
.portal-nav-links a:hover { color: var(--text); background: var(--panel-soft); }
.portal-user { display: flex; align-items: center; justify-content: flex-end; gap: 13px; text-align: right; }
.portal-user form { margin: 0; }
.button.small { padding: 6px 10px; font-size: 11px; min-height: auto; }
.button.large { min-height: 48px; font-weight: 850; }

.flash-stack { position: fixed; top: 80px; right: 18px; z-index: 120; width: min(420px, calc(100vw - 36px)); display: grid; gap: 8px; }
.flash { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--panel-solid); box-shadow: var(--shadow); }
.flash.success { border-color: rgba(69,202,134,.45); color: var(--success); }
.flash.error { border-color: rgba(255,111,115,.45); color: var(--danger); }

.portal-page { width: min(1500px, calc(100% - 48px)); margin: 0 auto; padding: 34px 0 54px; }
.narrow-page { width: min(1120px, calc(100% - 48px)); }
.page-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; margin-bottom: 24px; }
.page-hero h1 { margin: 5px 0 5px; font-size: clamp(27px, 4vw, 42px); letter-spacing: -.035em; }
.page-hero p { color: var(--muted); max-width: 730px; margin: 0; }
.breadcrumbs { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; margin-bottom: 20px; }
.breadcrumbs a { color: var(--accent); text-decoration: none; }
.dashboard-breadcrumbs { width: min(1720px, calc(100% - 56px)); margin: 18px auto -12px; }

.panel-catalog { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.catalog-card {
    min-height: 156px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 16px;
    padding: 22px; color: var(--text); text-decoration: none;
    border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow);
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.catalog-card:hover { transform: translateY(-3px); border-color: var(--accent); background: color-mix(in srgb, var(--panel) 86%, var(--accent-soft)); }
.catalog-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 15px; background: var(--accent-soft); color: var(--accent); font-size: 25px; font-weight: 900; }
.catalog-main h2 { margin: 0 0 6px; font-size: 18px; }
.catalog-main p { margin: 0; color: var(--muted); font-size: 12px; }
.catalog-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; color: var(--muted); font-size: 11px; }
.catalog-meta div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.catalog-meta b { color: var(--accent); border: 1px solid var(--line); border-radius: 6px; padding: 2px 5px; font-size: 9px; }
.card-arrow { color: var(--accent); font-size: 24px; }
.empty-panel { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: var(--panel); padding: 35px; }
.empty-panel p { color: var(--muted); max-width: 620px; }
.report-coming { min-height: 460px; }
.error-page { min-height: 420px; }

.login-page { overflow-x: hidden; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(380px, .75fr); }
.login-visual { padding: clamp(38px, 8vw, 110px); display: flex; flex-direction: column; justify-content: center; background: radial-gradient(circle at 25% 15%, rgba(85,167,255,.24), transparent 34rem), linear-gradient(145deg, #07101a, #10263b); }
.login-logo { width: 70px; height: 70px; display: grid; place-items: center; border-radius: 22px; margin-bottom: 32px; color: #fff; font-size: 34px; font-weight: 950; background: linear-gradient(145deg, var(--accent-strong), #55ceb2); box-shadow: 0 20px 42px rgba(37,136,246,.28); }
.login-visual h1 { max-width: 760px; margin: 8px 0 14px; font-size: clamp(38px, 6vw, 72px); line-height: 1.02; letter-spacing: -.055em; }
.login-visual > p { max-width: 650px; color: #a9bbce; font-size: 16px; }
.login-features { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.login-features span { border: 1px solid rgba(255,255,255,.13); border-radius: 999px; padding: 8px 12px; color: #cce0f4; background: rgba(255,255,255,.04); font-size: 12px; }
.login-card { padding: clamp(34px, 7vw, 90px); display: flex; flex-direction: column; justify-content: center; background: var(--bg-elevated); }
.login-card h2 { margin: 5px 0; font-size: 30px; }
.login-card > div > p, .login-help { color: var(--muted); }
.stack-form { display: grid; gap: 17px; margin-top: 28px; }
.login-help { margin-top: 18px; font-size: 11px; text-align: center; }

.admin-page { display: flex; flex-direction: column; gap: 18px; }
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.admin-stats article { border: 1px solid var(--line); border-radius: 15px; padding: 16px; background: var(--panel); }
.admin-stats span { display: block; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.admin-stats strong { display: block; margin-top: 5px; font-size: 29px; }
.admin-tabs { position: sticky; top: 77px; z-index: 25; display: flex; gap: 5px; padding: 7px; border: 1px solid var(--line); border-radius: 13px; background: var(--panel-solid); }
.admin-tabs a { color: var(--muted); text-decoration: none; padding: 7px 12px; border-radius: 8px; font-weight: 750; }
.admin-tabs a:hover { color: #fff; background: var(--accent-strong); }
.admin-section { scroll-margin-top: 130px; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: var(--panel); box-shadow: var(--shadow); }
.admin-split { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .65fr); gap: 18px; align-items: start; }
.admin-form { display: grid; gap: 13px; border: 1px solid var(--line); border-radius: 14px; padding: 17px; background: var(--panel-soft); }
.admin-form h3 { margin: 0 0 2px; }
.admin-form textarea, .field textarea { resize: vertical; width: 100%; color: var(--text); border: 1px solid var(--line-strong); border-radius: 10px; padding: 10px 11px; background: var(--bg-elevated); }
.card-list { display: grid; gap: 9px; }
.mini-card { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--panel-soft); }
.mini-card p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.mini-card > div:last-child { display: flex; align-items: flex-end; flex-direction: column; color: var(--muted); font-size: 11px; }
.mini-card b { color: var(--danger); font-size: 9px; }
.form-row { display: flex; gap: 10px; }
.form-row .grow { flex: 1; }
.check-row { display: flex; align-items: center; gap: 9px; color: var(--muted); cursor: pointer; }
.check-row input, .permission-row input, .report-option input { accent-color: var(--accent-strong); width: 17px; height: 17px; }
.field small { color: var(--muted); font-size: 10px; }
.form-card { display: grid; gap: 18px; }
.form-grid { display: grid; gap: 14px; }
.form-grid.two-cols { grid-template-columns: 1fr 1fr; }
.edit-layout { display: grid; gap: 16px; }
.permission-table { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; }
.permission-head, .permission-row { display: grid; grid-template-columns: minmax(0,1fr) 130px 130px; align-items: center; gap: 12px; padding: 11px 14px; }
.permission-head { color: var(--muted); background: var(--panel-soft); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.permission-row { border-top: 1px solid var(--line); }
.permission-row > div { display: flex; flex-direction: column; }
.permission-row small { color: var(--muted); }
.permission-row label { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--muted); }
.info-box { border: 1px solid rgba(85,167,255,.25); border-radius: 11px; padding: 11px 13px; color: var(--muted); background: var(--accent-soft); font-size: 11px; }
.sticky-actions { position: sticky; bottom: 15px; z-index: 20; display: flex; justify-content: flex-end; gap: 9px; border: 1px solid var(--line); border-radius: 13px; padding: 10px; background: color-mix(in srgb, var(--panel-solid) 92%, transparent); backdrop-filter: blur(15px); box-shadow: var(--shadow); }
.report-picker { display: grid; gap: 9px; }
.report-option { display: flex; align-items: flex-start; gap: 11px; border: 1px solid var(--line); border-radius: 12px; padding: 13px; background: var(--panel-soft); cursor: pointer; }
.report-option span { display: flex; flex-direction: column; }
.report-option small { color: var(--muted); margin-top: 3px; }

@media (max-width: 980px) {
    .portal-nav { padding: 0 16px; }
    .portal-nav-links { display: none; }
    .portal-user { margin-left: auto; }
    .login-shell { grid-template-columns: 1fr; }
    .login-visual { min-height: 42vh; padding: 50px 28px; }
    .login-visual h1 { font-size: 44px; }
    .login-card { min-height: 58vh; padding: 42px 28px; }
    .admin-split { grid-template-columns: 1fr; }
    .admin-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
    .portal-page, .narrow-page { width: min(100% - 26px, 1500px); padding-top: 22px; }
    .page-hero { align-items: flex-start; flex-direction: column; }
    .portal-brand small, .portal-user > span { display: none; }
    .portal-user { gap: 5px; }
    .portal-nav { gap: 10px; }
    .panel-catalog { grid-template-columns: 1fr; }
    .catalog-card { grid-template-columns: auto minmax(0,1fr); }
    .catalog-meta, .card-arrow { grid-column: 2; align-items: flex-start; }
    .catalog-meta div { justify-content: flex-start; }
    .admin-stats { grid-template-columns: 1fr 1fr; }
    .admin-tabs { overflow-x: auto; }
    .form-grid.two-cols { grid-template-columns: 1fr; }
    .permission-head, .permission-row { grid-template-columns: minmax(0,1fr) 86px 86px; padding: 10px; gap: 6px; }
    .permission-row label span { display: none; }
    .dashboard-breadcrumbs { width: calc(100% - 28px); }
}

/* Jerarquía de usuarios */
.level-badge { display: inline-grid; place-items: center; min-width: 28px; height: 28px; border-radius: 999px; font-weight: 900; border: 1px solid var(--line); background: var(--panel-soft); }
.level-1 { color: var(--muted); }
.level-2 { color: var(--warning); background: color-mix(in srgb, var(--warning) 12%, transparent); }
.level-3 { color: var(--accent); background: var(--accent-soft); }
.permission-locked { opacity: .48; cursor: not-allowed; }
.permission-locked input { cursor: not-allowed; }
.empty-admin-state { padding: 18px; color: var(--muted); font-size: 12px; }
.muted-control:has(input:disabled) { opacity: .55; cursor: not-allowed; }
button:disabled, select:disabled, input:disabled { cursor: not-allowed; }

/* Catálogo de módulos de reportes */
.module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.module-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel-soft);
}
.module-card p, .module-card small { margin: 3px 0 0; color: var(--muted); }
.module-card small { display: block; }
.module-card.module-error { border-color: rgba(255, 111, 115, .35); background: rgba(255, 111, 115, .08); }
.module-status {
    align-self: start;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(255, 111, 115, .13);
    color: var(--danger);
    font-size: 9px;
    letter-spacing: .08em;
}
.module-status.ok { background: rgba(69, 202, 134, .13); color: var(--success); }
.form-help { margin: -2px 0 14px; color: var(--muted); font-size: 12px; }
.catalog-main small { color: var(--muted); }

/* ==========================================================
   Envío y programación de reportes por correo
   ========================================================== */
.report-email-launcher{position:fixed;right:24px;bottom:24px;z-index:80;border:1px solid rgba(255,255,255,.15);background:linear-gradient(135deg,#2563eb,#1647b8);color:#fff;border-radius:999px;padding:12px 18px;display:flex;align-items:center;gap:9px;box-shadow:0 16px 38px rgba(0,0,0,.34);cursor:pointer;font:inherit}.report-email-launcher:hover{transform:translateY(-1px)}
.report-email-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px}.report-email-modal.hidden{display:none}.report-email-backdrop{position:absolute;inset:0;background:rgba(3,8,18,.76);backdrop-filter:blur(6px)}
.report-email-dialog{position:relative;width:min(860px,100%);max-height:92vh;overflow:auto;background:var(--panel,#161b22);border:1px solid var(--line,#2a3444);border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.55)}
.report-email-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:22px 24px;border-bottom:1px solid var(--line,#2a3444)}.report-email-header h2{margin:2px 0 5px;font-size:20px}.report-email-header p{margin:0;color:var(--muted,var(--tx2,#8b97a8))}
.report-email-tabs{display:flex;gap:6px;padding:14px 24px 0;overflow:auto}.report-email-tabs button{border:1px solid var(--line,#2a3444);background:var(--panel2,#1c2430);color:var(--tx2,#8b97a8);border-radius:8px;padding:8px 13px;cursor:pointer;white-space:nowrap}.report-email-tabs button.active{background:#2563eb;border-color:#2563eb;color:#fff}
.report-email-body{padding:20px 24px 24px}.report-email-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-email-wide{grid-column:1/-1}.report-email-selector{margin-top:18px}.report-email-selector-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.report-email-checks{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px}.report-email-checks label{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--line,#2a3444);border-radius:9px;background:var(--panel2,#1c2430)}
.report-email-recipients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;padding-right:4px}.report-email-recipient{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--line,#2a3444);border-radius:10px;background:var(--panel2,#1c2430)}.report-email-recipient small{display:block;color:var(--tx2,#8b97a8)}.report-email-recipient em{font-style:normal;font-size:10px;color:var(--tx2,#8b97a8)}.report-email-recipient.disabled{opacity:.46}.report-email-recipient.disabled input{pointer-events:none}
.report-email-note,.report-email-config-warning,.report-email-status{margin-top:17px;padding:12px 14px;border-radius:9px;border:1px solid #5c5028;background:#2a2618;color:#d9c58b;font-size:13px;line-height:1.5}.report-email-config-warning{margin:16px 24px 0;border-color:#7a3430;background:#351d1d;color:#ffb7af}.report-email-status.success{border-color:#2a5236;background:#16261c;color:#8be0a3}.report-email-status.error{border-color:#7a3430;background:#351d1d;color:#ffb7af}
.report-email-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.report-email-schedules{display:grid;gap:10px}.report-email-schedule{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line,#2a3444);border-radius:11px;background:var(--panel2,#1c2430)}.report-email-schedule p{margin:3px 0 0;color:var(--tx2,#8b97a8);font-size:12px}.report-email-schedule-actions{display:flex;gap:7px;align-items:center}.report-email-schedule.failed{border-color:#7a3430}
@media(max-width:720px){.report-email-launcher{right:14px;bottom:14px}.report-email-grid,.report-email-recipients{grid-template-columns:1fr}.report-email-dialog{max-height:96vh}.report-email-body,.report-email-header{padding-left:16px;padding-right:16px}.report-email-tabs{padding-left:16px;padding-right:16px}.report-email-schedule{grid-template-columns:1fr}.report-email-schedule-actions{justify-content:flex-end}}

/* Microsoft Entra ID */
.microsoft-button {
    margin-top: 28px;
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    text-decoration: none;
    background: #ffffff;
    color: #1f1f1f;
    border-color: rgba(255,255,255,.75);
    box-shadow: 0 14px 30px rgba(0,0,0,.18);
}
.microsoft-button:hover { color: #111; border-color: #fff; }
.microsoft-mark { width: 22px; height: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.microsoft-mark i:nth-child(1) { background: #f25022; }
.microsoft-mark i:nth-child(2) { background: #7fba00; }
.microsoft-mark i:nth-child(3) { background: #00a4ef; }
.microsoft-mark i:nth-child(4) { background: #ffb900; }
.identity-message { margin-top: 20px; border: 1px solid var(--line); border-radius: 12px; padding: 14px; background: var(--panel-soft); }
.identity-message p { margin: 5px 0 0; color: var(--muted); }
.identity-message ul { margin: 10px 0 0; padding-left: 20px; color: var(--muted); }
.identity-message.error { border-color: rgba(255,111,115,.4); background: rgba(255,111,115,.08); }
.identity-message.success { border-color: rgba(69,202,134,.4); background: rgba(69,202,134,.08); color: var(--success); }
.identity-message.compact { margin: 0; align-self: stretch; }
.identity-status { display: inline-flex; border-radius: 999px; padding: 4px 8px; font-size: 10px; font-weight: 850; }
.identity-status.linked { color: var(--success); background: rgba(69,202,134,.11); }
.identity-status.pending { color: var(--warning); background: rgba(242,189,74,.11); }
.identity-status.blocked { color: var(--danger); background: rgba(255,111,115,.11); }
.identity-summary { display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-soft); padding: 13px; }
.identity-summary small { color: var(--muted); overflow-wrap: anywhere; }
.identity-error-card { width: min(560px, 100%); }

/* Cola de correo y worker independiente */
.worker-status-card {
    display: flex; align-items: center; justify-content: space-between; gap: 18px;
    padding: 17px 19px; border: 1px solid var(--line); border-radius: 16px;
    background: var(--panel); box-shadow: var(--shadow);
}
.worker-status-card > div { display: flex; align-items: center; gap: 12px; }
.worker-status-card strong { display: block; font-size: 16px; }
.worker-status-card p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.worker-status-card code { color: var(--muted); }
.worker-dot { width: 12px; height: 12px; border-radius: 999px; background: #ef4444; box-shadow: 0 0 0 5px rgba(239,68,68,.12); }
.worker-status-card.online .worker-dot { background: #22c55e; box-shadow: 0 0 0 5px rgba(34,197,94,.12); }
.email-queue-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.email-queue-stats a { text-decoration: none; color: var(--text); border: 1px solid var(--line); border-radius: 14px; padding: 13px; background: var(--panel); }
.email-queue-stats a.active, .email-queue-stats a:hover { border-color: var(--accent); background: var(--panel-soft); }
.email-queue-stats span { display: block; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.email-queue-stats strong { display: block; margin-top: 5px; font-size: 25px; }
.email-deliveries-table { width: 100%; min-width: 1180px; border-collapse: collapse; }
.email-deliveries-table th, .email-deliveries-table td { padding: 11px 10px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; font-size: 12px; }
.email-deliveries-table th { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }
.email-deliveries-table td small { display: block; margin-top: 4px; color: var(--muted); }
.delivery-status { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.delivery-status.pending { background: rgba(234,179,8,.15); color: #facc15; }
.delivery-status.processing { background: rgba(59,130,246,.15); color: #60a5fa; }
.delivery-status.sent { background: rgba(34,197,94,.15); color: #4ade80; }
.delivery-status.failed { background: rgba(239,68,68,.15); color: #f87171; }
.delivery-status.cancelled { background: rgba(148,163,184,.15); color: #cbd5e1; }
.delivery-detail { max-width: 320px; }
.delivery-detail span { display: block; overflow-wrap: anywhere; }
.error-text { color: #fca5a5; }
.inline-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.inline-actions form { margin: 0; }
@media (max-width: 980px) { .email-queue-stats { grid-template-columns: repeat(3, 1fr); } .worker-status-card { align-items: flex-start; flex-direction: column; } }

/* Contrato y diagnóstico avanzado de módulos */
.module-health-summary { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 10px; }
.module-health-summary article { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--panel); }
.module-health-summary span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }
.module-health-summary strong { display: block; margin-top: 5px; font-size: 25px; }
.module-health-summary .healthy strong { color: var(--success); }
.module-health-summary .warning strong { color: var(--warning); }
.module-health-summary .degraded strong, .module-health-summary .broken strong { color: var(--danger); }
.module-health-card { border-left: 4px solid var(--line); }
.module-health-card.status-healthy { border-left-color: var(--success); }
.module-health-card.status-warning, .module-health-card.status-placeholder { border-left-color: var(--warning); }
.module-health-card.status-degraded, .module-health-card.status-broken { border-left-color: var(--danger); }
.module-health-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.module-health-title { display: flex; gap: 14px; align-items: flex-start; }
.module-health-title h2 { margin: 3px 0 5px; }
.module-health-title p { margin: 0; color: var(--muted); }
.module-health-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; text-align: right; }
.module-health-meta small { color: var(--muted); }
.module-health-badge, .check-status { display: inline-flex; border-radius: 999px; padding: 5px 9px; font-size: 10px; font-weight: 850; letter-spacing: .05em; }
.module-health-badge.healthy, .check-status.ok { color: var(--success); background: rgba(69,202,134,.12); }
.module-health-badge.warning, .module-health-badge.placeholder, .check-status.warning { color: var(--warning); background: rgba(242,189,74,.12); }
.module-health-badge.degraded, .module-health-badge.broken, .check-status.error { color: var(--danger); background: rgba(255,111,115,.12); }
.module-health-badge.disabled { color: var(--muted); background: var(--panel-soft); }
.module-contract-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.module-contract-grid article { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: var(--panel-soft); }
.module-contract-grid article > span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px; }
.tag-row b, .tag-row code { border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px; font-size: 10px; }
.tag-row em { color: var(--muted); font-size: 11px; }
.module-checks-table-wrap { overflow-x: auto; margin-top: 16px; }
.module-checks-table { width: 100%; min-width: 880px; border-collapse: collapse; }
.module-checks-table th, .module-checks-table td { padding: 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; font-size: 11px; }
.module-checks-table th { color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: 9px; }
@media (max-width: 1100px) { .module-health-summary { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 760px) { .module-health-summary, .module-contract-grid { grid-template-columns: 1fr; } .module-health-header { flex-direction: column; } .module-health-meta { align-items: flex-start; text-align: left; } }

/* ==========================================================
   Permisos avanzados 5.5
   ========================================================== */
.permissions-page{max-width:1500px}.permissions-page .page-hero{align-items:flex-start}.hero-status-stack{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.advanced-permission-form{display:grid;gap:1.25rem}.permissions-workbench{overflow:visible}.permission-heading{align-items:flex-start;gap:1rem}.permission-legend{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:.35rem;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.permission-legend span{text-align:center}.advanced-permission-list{display:grid;gap:1rem}.permission-panel-card{border:1px solid var(--border);background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.01));border-radius:18px;overflow:hidden}.permission-panel-card>header{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.15rem;background:rgba(255,255,255,.025);border-bottom:1px solid var(--border)}.permission-panel-card>header>div{display:flex;align-items:center;gap:.8rem}.permission-panel-card h3{margin:0}.permission-panel-card p{margin:.2rem 0 0;color:var(--muted);font-size:.78rem}.panel-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(91,163,255,.12);font-size:1.25rem}.permission-report-card{padding:1rem 1.15rem;border-bottom:1px solid var(--border)}.permission-report-card:last-child{border-bottom:0}.permission-report-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.permission-report-title strong{display:block;font-size:1rem}.permission-report-title small{color:var(--muted)}.permission-profile-block{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.9rem;margin-top:.7rem;background:rgba(5,10,20,.22)}.permission-profile-head{display:grid;grid-template-columns:110px 1fr;gap:1rem;align-items:center}.profile-chip{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .7rem;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.08em}.profile-chip.nation{background:rgba(63,149,255,.16);color:#94c4ff}.profile-chip.escobar{background:rgba(80,205,153,.14);color:#89e9bc}.permission-actions-grid{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:.45rem}.permission-action{display:flex;gap:.45rem;align-items:center;justify-content:center;padding:.55rem .45rem;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.025);font-size:.8rem;cursor:pointer}.permission-action input{accent-color:var(--accent)}.permission-action.permission-locked{opacity:.48;cursor:not-allowed}.scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.8rem}.scope-field textarea{min-height:82px;resize:vertical;font-family:inherit}.scope-field small{min-height:2.4em}.permission-profile-block:has(input[name$="_view"]:not(:checked)) .scope-grid{opacity:.58}.advanced-permission-form .sticky-actions{z-index:20}.advanced-permission-form input[readonly]{opacity:.72;cursor:not-allowed}.permission-action input:disabled+span{color:var(--muted)}
@media(max-width:980px){.permission-profile-head{grid-template-columns:1fr}.permission-actions-grid{grid-template-columns:repeat(2,1fr)}.scope-grid{grid-template-columns:1fr}.permission-legend{display:none}}
@media(max-width:560px){.permission-actions-grid{grid-template-columns:1fr}.permission-panel-card>header{align-items:flex-start;flex-direction:column}}

/* Auditoría 5.6 */
.audit-page{max-width:1540px}.audit-hero{align-items:flex-start}.audit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.audit-summary-grid article{border:1px solid var(--line);border-radius:15px;padding:16px;background:var(--panel)}.audit-summary-grid span,.audit-detail-card>span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.audit-summary-grid strong{display:block;margin-top:5px;font-size:28px}.audit-summary-grid small,.audit-detail-card small{display:block;margin-top:4px;color:var(--muted)}.audit-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;align-items:end}.audit-filter-text{grid-column:span 2}.audit-filter-actions{display:flex;gap:8px;align-items:center;padding-bottom:1px}.audit-section-heading{align-items:end}.audit-table{min-width:1280px}.audit-table th,.audit-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.audit-table th{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.audit-table td strong{display:block}.audit-table td small{display:block;margin-top:4px;color:var(--muted);max-width:320px;overflow-wrap:anywhere}.audit-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:850;letter-spacing:.05em}.audit-status.success{color:var(--success);background:rgba(69,202,134,.12)}.audit-status.failed{color:var(--danger);background:rgba(255,111,115,.12)}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;color:var(--muted)}.audit-top-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.audit-top-actions>div{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel-soft)}.audit-top-actions span{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.audit-top-actions strong{font-size:18px}.audit-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.audit-detail-card{min-height:126px}.audit-detail-card strong{display:block;margin-top:8px;font-size:18px;overflow-wrap:anywhere}.audit-metadata dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.audit-metadata dl>div{padding:13px;border-bottom:1px solid var(--line)}.audit-metadata dl>div:nth-child(odd){border-right:1px solid var(--line)}.audit-metadata dt{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}.audit-metadata dd{margin:5px 0 0;overflow-wrap:anywhere}.audit-error-text{color:var(--danger)}.audit-json{margin:0;max-height:600px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:16px;background:#080d17;color:#c7d7ee;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1100px){.audit-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-summary-grid,.audit-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-top-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.audit-filter-grid,.audit-summary-grid,.audit-detail-grid,.audit-top-actions{grid-template-columns:1fr}.audit-filter-text{grid-column:auto}.audit-metadata dl{grid-template-columns:1fr}.audit-metadata dl>div:nth-child(odd){border-right:0}}

/* ==========================================================
   Observabilidad premium 5.7
   ========================================================== */
.system-status-page{max-width:1580px}.system-status-hero{align-items:flex-start}.system-status-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.system-overall-badge,.system-component-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.5rem .75rem;font-size:.7rem;font-weight:900;letter-spacing:.08em}.system-overall-badge.healthy,.system-component-badge.healthy{color:var(--success);background:rgba(69,202,134,.13);border:1px solid rgba(69,202,134,.25)}.system-overall-badge.degraded,.system-component-badge.degraded{color:var(--warning);background:rgba(242,189,74,.13);border:1px solid rgba(242,189,74,.25)}.system-overall-badge.critical,.system-component-badge.critical{color:var(--danger);background:rgba(255,111,115,.13);border:1px solid rgba(255,111,115,.25)}.system-overall-badge.disabled,.system-component-badge.disabled{color:var(--muted);background:var(--panel-soft);border:1px solid var(--line)}.system-status-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.system-status-summary article,.system-kpi-grid article{border:1px solid var(--line);border-radius:16px;padding:16px;background:linear-gradient(145deg,var(--panel),var(--panel-soft))}.system-status-summary article{border-top:3px solid var(--line)}.system-status-summary article.healthy{border-top-color:var(--success)}.system-status-summary article.degraded{border-top-color:var(--warning)}.system-status-summary article.critical{border-top-color:var(--danger)}.system-status-summary span,.system-kpi-grid span,.system-email-grid span,.system-instance-strip span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.system-status-summary strong,.system-kpi-grid strong{display:block;margin-top:5px;font-size:28px}.system-status-summary small,.system-kpi-grid small,.system-email-grid small{display:block;margin-top:4px;color:var(--muted)}.system-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.system-kpi-grid strong{font-size:23px}.system-component-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.system-component-card{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:15px;padding:16px;background:var(--panel-soft);min-width:0}.system-component-card.status-healthy{border-left-color:var(--success)}.system-component-card.status-degraded{border-left-color:var(--warning)}.system-component-card.status-critical{border-left-color:var(--danger)}.system-component-card.status-disabled{opacity:.76}.system-component-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.system-component-card h3{margin:4px 0 0;font-size:1rem}.system-component-type{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.system-component-card>p{min-height:2.8em;color:var(--muted);font-size:.82rem}.system-component-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.system-component-card dl>div{border:1px solid var(--line);border-radius:10px;padding:9px;min-width:0}.system-component-card dt{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em}.system-component-card dd{margin:4px 0 0;font-size:11px;overflow-wrap:anywhere}.system-component-card details{border-top:1px solid var(--line);padding-top:10px}.system-component-card summary{cursor:pointer;color:var(--muted);font-size:11px}.system-component-card pre{max-height:260px;overflow:auto;margin:10px 0 0;padding:10px;border-radius:10px;background:#080d17;color:#c7d7ee;font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.system-two-column{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-top:16px}.system-two-column .admin-section{margin:0}.system-endpoint-table{width:100%;min-width:700px;border-collapse:collapse}.system-endpoint-table th,.system-endpoint-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.system-endpoint-table th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em}.system-endpoint-table code{font-size:10px;overflow-wrap:anywhere}.system-email-grid{display:grid;gap:12px}.system-email-grid>div{border:1px solid var(--line);border-radius:13px;padding:14px;background:var(--panel-soft)}.system-email-grid strong{display:block;margin-top:7px;overflow-wrap:anywhere}.system-email-grid p{margin:8px 0 0;color:var(--danger);font-size:11px;overflow-wrap:anywhere}.system-instance-strip{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:1px;margin-top:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--line)}.system-instance-strip>div{padding:13px;background:var(--panel)}.system-instance-strip strong{display:block;margin-top:5px;font-size:11px;overflow-wrap:anywhere}
@media(max-width:1200px){.system-component-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-two-column{grid-template-columns:1fr}.system-instance-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.system-status-summary,.system-kpi-grid,.system-component-grid,.system-instance-strip{grid-template-columns:1fr}.system-status-actions{justify-content:flex-start}.system-component-card dl{grid-template-columns:1fr}}

/* 5.8 · artefactos protegidos */
.artifact-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.artifact-metadata-grid>div{background:var(--panel-soft,#111b2a);border:1px solid var(--line,#27364a);border-radius:10px;padding:12px}.artifact-metadata-grid .wide{grid-column:1/-1}.artifact-metadata-grid dt{font-size:11px;text-transform:uppercase;color:var(--muted,#8fa0b6);margin-bottom:5px}.artifact-metadata-grid dd{margin:0}.artifact-metadata-grid code,.artifact-hash{font-size:11px;word-break:break-all;white-space:normal}.email-deliveries-table td small{display:block;margin-top:4px}.delivery-status.prepared{background:#69530f;color:#ffe9a3}.delivery-status.pending{background:#233858;color:#cce1ff}@media(max-width:760px){.artifact-metadata-grid{grid-template-columns:1fr}}

/* ==========================================================
   Calidad de datos en tiempo real
   ========================================================== */
.data-quality-card {
    margin-bottom: 16px;
    padding: 17px 18px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--panel);
    box-shadow: var(--shadow);
}
.data-quality-card.excellent { border-color: rgba(69, 202, 134, .34); background: linear-gradient(135deg, rgba(69, 202, 134, .10), var(--panel)); }
.data-quality-card.good { border-color: rgba(85, 167, 255, .34); background: linear-gradient(135deg, rgba(85, 167, 255, .09), var(--panel)); }
.data-quality-card.warning { border-color: rgba(242, 189, 74, .40); background: linear-gradient(135deg, rgba(242, 189, 74, .11), var(--panel)); }
.data-quality-card.critical { border-color: rgba(255, 111, 115, .45); background: linear-gradient(135deg, rgba(255, 111, 115, .12), var(--panel)); }
.data-quality-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.data-quality-head h2 { margin: 2px 0 0; font-size: 17px; }
.data-quality-head p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.data-quality-score { width: 68px; height: 68px; display: grid; place-content: center; text-align: center; border-radius: 18px; background: var(--panel-solid); border: 1px solid var(--line); }
.data-quality-score strong { display: block; font-size: 25px; line-height: 1; }
.data-quality-score span { color: var(--muted); font-size: 10px; }
.data-quality-state { display: inline-flex; padding: 5px 9px; border-radius: 999px; font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.data-quality-state.excellent { color: var(--success); background: rgba(69, 202, 134, .13); }
.data-quality-state.good { color: var(--accent); background: var(--accent-soft); }
.data-quality-state.warning { color: var(--warning); background: rgba(242, 189, 74, .13); }
.data-quality-state.critical { color: var(--danger); background: rgba(255, 111, 115, .13); }
.data-quality-profiles { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.data-quality-profile { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--panel-soft); font-size: 10px; }
.data-quality-profile strong { color: var(--text); }
.data-quality-profile.warning { border-color: rgba(242, 189, 74, .35); }
.data-quality-profile.critical { border-color: rgba(255, 111, 115, .38); }
.data-quality-details { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.data-quality-details summary { cursor: pointer; color: var(--muted); font-size: 11px; font-weight: 800; }
.data-quality-issues { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 9px; margin-top: 11px; }
.data-quality-issue { padding: 11px 12px; border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: 11px; background: var(--panel-solid); }
.data-quality-issue.critical { border-left-color: var(--danger); }
.data-quality-issue.error { border-left-color: #ff916c; }
.data-quality-issue.warning { border-left-color: var(--warning); }
.data-quality-issue.info { border-left-color: var(--accent); }
.data-quality-issue > div { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.data-quality-issue strong { font-size: 12px; }
.data-quality-issue span { color: var(--muted); font-size: 9px; font-weight: 800; }
.data-quality-issue p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.data-quality-issue small { display: block; margin-top: 6px; color: var(--text); font-size: 10px; overflow-wrap: anywhere; }
.data-quality-clean { margin: 12px 0 0; color: var(--success); font-size: 11px; }
@media(max-width:720px){
    .data-quality-head { grid-template-columns: auto 1fr; }
    .data-quality-state { grid-column: 1 / -1; justify-self: start; }
    .data-quality-score { width: 58px; height: 58px; border-radius: 15px; }
    .data-quality-score strong { font-size: 22px; }
}

/* ==========================================================
   Experiencia gerencial 5.11 · espacio personal
   ========================================================== */
.portal-global-search{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);overflow:hidden;min-width:210px}.portal-global-search input{min-height:36px;border:0;background:transparent;padding:7px 10px;box-shadow:none}.portal-global-search button{width:38px;min-height:36px;border:0;border-left:1px solid var(--line);background:transparent;cursor:pointer;color:var(--muted)}.portal-global-search button:hover{color:var(--text);background:var(--accent-soft)}
.workspace-hero{align-items:center}.hero-actions{display:flex;gap:9px;flex-wrap:wrap}.workspace-search-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 26px;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--panel),var(--panel-soft));box-shadow:var(--shadow)}.workspace-search-hero>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:21px}.workspace-search-hero input{border:0;background:transparent;box-shadow:none;font-size:15px}.workspace-section{margin:0 0 26px}.workspace-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:13px}.workspace-section-head h2{margin:3px 0 0;font-size:21px}.workspace-section-head p{margin:4px 0 0;color:var(--muted)}.workspace-section-head>a,.workspace-section-head>span{color:var(--muted);text-decoration:none;font-size:12px}.workspace-section-head>a:hover{color:var(--accent)}.workspace-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.workspace-card-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-report-card,.workspace-view-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;min-width:0;padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--panel),var(--panel-soft));color:var(--text);text-decoration:none;transition:160ms ease;box-shadow:0 12px 28px rgba(0,0,0,.12)}.workspace-report-card:hover,.workspace-view-card:hover,.workspace-list a:hover,.search-nav-card:hover{transform:translateY(-2px);border-color:var(--accent)}.workspace-report-card.static:hover{transform:none}.workspace-card-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--accent-soft);color:var(--accent);font-size:20px}.workspace-report-card strong,.workspace-view-card strong{display:block}.workspace-report-card small,.workspace-view-card small{display:block;margin-top:3px;color:var(--muted)}.workspace-report-card p{margin:7px 0 0;color:var(--muted);font-size:11px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.favorite-star{color:var(--muted);font-size:20px}.favorite-star.active{color:var(--warning)}.workspace-card-arrow{align-self:center;color:var(--accent);font-size:18px}.workspace-view-card.default{border-color:rgba(85,167,255,.35)}.workspace-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.workspace-list{display:grid;border:1px solid var(--line);border-radius:16px;overflow:hidden}.workspace-list a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 14px;background:var(--panel);border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;transition:150ms ease}.workspace-list a:last-child{border-bottom:0}.workspace-list .workspace-card-icon{width:34px;height:34px;border-radius:10px;font-size:16px}.workspace-list strong,.workspace-list small{display:block}.workspace-list small{color:var(--muted);font-size:10px}
.saved-view-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.saved-view-table{width:100%;min-width:860px;border-collapse:collapse;background:var(--panel)}.saved-view-table th,.saved-view-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.saved-view-table th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.saved-view-table td small{display:block;margin-top:4px;color:var(--muted)}.saved-view-table tr:last-child td{border-bottom:0}.saved-view-actions{display:flex;gap:6px;flex-wrap:wrap}.button.danger{color:var(--danger);border-color:rgba(255,111,115,.28)}.button.danger:hover{background:rgba(255,111,115,.10)}.status-pill.healthy,.status-pill.neutral{display:inline-flex;margin:0}.status-pill.healthy{color:var(--success)}.status-pill.neutral{color:var(--muted)}
.search-navigation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.search-nav-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);text-decoration:none;transition:150ms ease}.search-nav-card>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:18px}.search-nav-card.saved>span{color:var(--success);background:rgba(69,202,134,.12)}.search-nav-card strong,.search-nav-card small{display:block}.search-nav-card small{color:var(--muted);margin-top:2px}.search-nav-card p{margin:6px 0 0;color:var(--muted);font-size:10px}.global-data-results{display:grid;gap:9px}.global-result-card{display:grid;grid-template-columns:105px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.global-result-kind{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center}.global-result-kind>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:900}.global-result-kind b,.global-result-kind small{display:block}.global-result-kind small{color:var(--muted);font-size:9px}.global-result-main{min-width:0}.global-result-main strong{margin-right:8px}.global-result-main code{font-size:10px}.global-result-main p{margin:4px 0;color:var(--muted)}.global-result-main small{color:var(--muted);overflow-wrap:anywhere}.search-errors{margin-top:14px;border:1px solid rgba(242,189,74,.30);border-radius:12px;padding:11px 13px;background:rgba(242,189,74,.08)}.search-errors summary{cursor:pointer;color:var(--warning)}.search-errors p{font-size:10px;color:var(--muted)}
.report-workspace-toolbar{position:fixed;right:18px;top:128px;z-index:60;display:grid;gap:5px;padding:7px;border:1px solid var(--line);border-radius:15px;background:rgba(13,23,35,.94);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.report-workspace-toolbar button,.report-workspace-toolbar a{display:grid;place-items:center;width:58px;min-height:50px;padding:5px;border:0;border-radius:10px;background:transparent;color:var(--muted);text-decoration:none;cursor:pointer}.report-workspace-toolbar button:hover,.report-workspace-toolbar a:hover,.report-workspace-toolbar button.active{background:var(--accent-soft);color:var(--text)}.report-workspace-toolbar span{font-size:19px;line-height:1}.report-workspace-toolbar small{margin-top:4px;font-size:8px;line-height:1.1;text-align:center}.report-workspace-toolbar button.active span{color:var(--warning)}
.workspace-modal{position:fixed;inset:0;z-index:100}.workspace-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,12,.72);backdrop-filter:blur(4px)}.workspace-modal-dialog{position:relative;width:min(560px,calc(100% - 28px));margin:9vh auto 0;border:1px solid var(--line);border-radius:18px;background:var(--panel-solid);box-shadow:0 28px 80px rgba(0,0,0,.45);overflow:hidden}.workspace-modal-dialog>header{display:flex;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line)}.workspace-modal-dialog h2{margin:3px 0}.workspace-modal-dialog p{margin:3px 0 0;color:var(--muted)}.workspace-modal-body{display:grid;gap:14px;padding:20px}.workspace-modal-body footer{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.workspace-checkbox{display:flex;align-items:center;gap:9px;color:var(--muted)}.workspace-checkbox input{width:auto;min-height:auto;accent-color:var(--accent)}.workspace-modal-status{padding:10px 12px;border-radius:10px;background:var(--accent-soft)}.workspace-modal-status.error{color:var(--danger);background:rgba(255,111,115,.10)}.workspace-related-panel{position:fixed;right:90px;top:128px;z-index:65;width:min(380px,calc(100% - 32px));border:1px solid var(--line);border-radius:15px;background:var(--panel-solid);box-shadow:var(--shadow);overflow:hidden}.workspace-related-panel>header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}#workspace-related-list{display:grid;max-height:420px;overflow:auto}#workspace-related-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}#workspace-related-list>a:hover{background:var(--accent-soft)}#workspace-related-list>a>span{font-size:18px}#workspace-related-list strong,#workspace-related-list small{display:block}#workspace-related-list small{color:var(--muted);font-size:9px}#workspace-related-list>p{padding:14px}.workspace-toast{position:fixed;left:50%;bottom:24px;z-index:150;transform:translate(-50%,20px);opacity:0;padding:11px 16px;border:1px solid rgba(69,202,134,.35);border-radius:12px;background:var(--panel-solid);box-shadow:var(--shadow);pointer-events:none;transition:180ms ease}.workspace-toast.visible{transform:translate(-50%,0);opacity:1}.workspace-toast[data-type="error"]{color:var(--danger);border-color:rgba(255,111,115,.35)}
.compare-view-form{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.compare-symbol{align-self:center;color:var(--accent);font-size:22px}.compare-view-heads{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}.compare-view-heads article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.compare-view-heads article>span{font-size:20px}.compare-view-heads strong,.compare-view-heads small{display:block}.compare-view-heads small{color:var(--muted)}.saved-view-table pre{max-width:420px;max-height:180px;overflow:auto;margin:0;padding:8px;border-radius:8px;background:#080d17;color:#d6e4f7;font:10px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1250px){.workspace-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-navigation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-global-search{display:none}.report-workspace-toolbar{right:8px}}
@media(max-width:820px){.workspace-two-columns,.workspace-card-grid,.workspace-card-grid.compact,.search-navigation-grid,.compare-view-heads{grid-template-columns:1fr}.global-result-card{grid-template-columns:1fr}.global-result-kind{grid-template-columns:auto minmax(0,1fr);width:max-content}.compare-view-form{grid-template-columns:1fr}.compare-symbol{display:none}.report-workspace-toolbar{position:sticky;top:0;right:auto;display:flex;justify-content:center;margin:0 auto 12px;width:max-content}.report-workspace-toolbar button,.report-workspace-toolbar a{width:62px}.workspace-related-panel{right:14px;top:90px}.workspace-search-hero{grid-template-columns:auto minmax(0,1fr)}.workspace-search-hero .button{grid-column:1/-1}.workspace-section-head{align-items:flex-start;flex-direction:column}}

/* =========================================================
   5.12 · Alertas y objetivos comerciales
   ========================================================= */
.alerts-main { width: min(1540px, calc(100% - 40px)); margin: 0 auto; padding-bottom: 60px; }
.page-hero.compact { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:28px; margin-bottom:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
.page-hero.compact h1 { margin:4px 0 6px; font-size:clamp(26px,3vw,40px); }
.page-hero.compact p { margin:0; color:var(--muted); max-width:820px; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
.alert-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(180px,1fr)); gap:12px; margin-bottom:18px; }
.summary-tile { padding:18px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); }
.summary-tile span,.summary-tile small { display:block; color:var(--muted); }
.summary-tile strong { display:block; margin:5px 0; font-size:24px; }
.alerts-tabs { position:sticky; top:72px; z-index:10; display:flex; gap:8px; padding:10px; margin:0 0 18px; border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,var(--panel-solid) 92%,transparent); backdrop-filter:blur(12px); }
.alerts-tabs a { display:flex; align-items:center; gap:7px; padding:8px 13px; border-radius:10px; color:var(--muted); text-decoration:none; font-weight:700; }
.alerts-tabs a:hover { color:var(--text); background:var(--accent-soft); }
.alerts-tabs b { min-width:20px; height:20px; display:grid; place-items:center; border-radius:999px; background:var(--danger); color:white; font-size:11px; }
.target-grid { display:grid; grid-template-columns:repeat(3,minmax(260px,1fr)); gap:14px; }
.target-card { position:relative; overflow:hidden; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); }
.target-card::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--muted); }
.target-card.status-achieved::before { background:var(--success); }
.target-card.status-on_track::before { background:var(--warning); }
.target-card.status-behind::before,.target-card.status-error::before { background:var(--danger); }
.target-card > header { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.target-card h3 { margin:2px 0 0; font-size:18px; }
.target-card header small,.target-card footer { color:var(--muted); }
.target-card .icon-button { width:32px; height:32px; }
.target-values { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0 12px; }
.target-values > div { padding:12px; border-radius:12px; background:var(--panel-soft); }
.target-values span,.target-values small { display:block; color:var(--muted); }
.target-values strong { font-size:25px; }
.target-progress { height:8px; overflow:hidden; border-radius:999px; background:var(--panel-soft); }
.target-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--accent),var(--success)); }
.target-foot { display:flex; justify-content:space-between; margin-top:8px; }
.target-card footer { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:16px; padding-top:12px; border-top:1px solid var(--line); }
.notification-list { display:grid; gap:10px; }
.notification-card { display:grid; grid-template-columns:5px 1fr auto; gap:16px; padding:15px; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.notification-card.unread { border-color:var(--line-strong); box-shadow:0 8px 26px rgba(0,0,0,.13); }
.notification-mark { border-radius:999px; background:var(--muted); }
.notification-card.severity-info .notification-mark { background:var(--accent); }
.notification-card.severity-warning .notification-mark { background:var(--warning); }
.notification-card.severity-critical .notification-mark { background:var(--danger); }
.notification-content header { display:flex; justify-content:space-between; gap:16px; }
.notification-content h3 { margin:2px 0; }
.notification-content span,.notification-content time,.notification-content small { color:var(--muted); font-size:12px; }
.notification-content p { margin:8px 0; }
.notification-actions { display:flex; align-items:center; gap:6px; }
.alerts-table td { vertical-align:top; }
.table-sub { display:block; margin-top:4px; color:var(--muted); font-size:11px; max-width:300px; }
.table-sub.error,.inline-error { color:var(--danger); }
.table-actions { display:flex; gap:5px; flex-wrap:wrap; }
.status-pill.status-triggered { color:var(--danger); border-color:color-mix(in srgb,var(--danger) 45%,transparent); }
.status-pill.status-ok { color:var(--success); }
.status-pill.status-error { color:var(--warning); }
.status-pill.status-never { color:var(--muted); }
.severity-text-critical { color:var(--danger); }
.severity-text-warning { color:var(--warning); }
.severity-text-info { color:var(--accent); }
.workspace-modal-dialog.wide { width:min(1040px,calc(100vw - 34px)); }
.form-grid.three { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:14px; }
.form-grid .wide { grid-column:span 2; }
.alert-channels { display:flex; gap:18px; flex-wrap:wrap; }
.alert-channels label { display:flex; gap:7px; align-items:center; }
.alert-channels input,.recipient-check input { width:auto; min-height:auto; }
.recipient-check-grid { display:grid; grid-template-columns:repeat(3,minmax(190px,1fr)); gap:8px; max-height:220px; overflow:auto; }
.recipient-check { display:flex; align-items:flex-start; gap:8px; padding:10px; border:1px solid var(--line); border-radius:10px; background:var(--panel-soft); }
.recipient-check span,.recipient-check small { display:block; }
.recipient-check small { color:var(--muted); }
.button.danger { border-color:color-mix(in srgb,var(--danger) 45%,transparent); color:var(--danger); background:color-mix(in srgb,var(--danger) 10%,transparent); }
.portal-nav-links a.alert-nav-link { position:relative; }
.portal-nav-links a.alert-nav-link b { min-width:18px; height:18px; display:inline-grid; place-items:center; margin-left:4px; border-radius:999px; background:var(--danger); color:#fff; font-size:10px; }
@media (max-width:1100px) { .alert-summary-grid,.target-grid { grid-template-columns:repeat(2,minmax(220px,1fr)); } .form-grid.three,.recipient-check-grid { grid-template-columns:repeat(2,minmax(180px,1fr)); } }
@media (max-width:720px) { .alerts-main { width:min(100% - 20px,1540px); } .page-hero.compact { align-items:flex-start; flex-direction:column; padding:20px; } .alert-summary-grid,.target-grid,.form-grid.three,.recipient-check-grid { grid-template-columns:1fr; } .form-grid .wide { grid-column:auto; } .notification-card { grid-template-columns:4px 1fr; } .notification-actions { grid-column:2; } .alerts-tabs { overflow:auto; top:62px; } }

/* =========================================================
   5.13.1 · Accesos personales integrados en el flujo
   ========================================================= */
.report-workspace-dock {
    width: min(1600px, calc(100% - 40px));
    margin: 14px auto 0;
    display: flex;
    justify-content: flex-end;
    position: relative;
    z-index: 20;
}
.report-workspace-toolbar {
    position: static;
    right: auto;
    top: auto;
    z-index: auto;
    display: flex;
    align-items: center;
    gap: 5px;
    width: auto;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--panel-solid);
    backdrop-filter: none;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
}
.report-workspace-toolbar button,
.report-workspace-toolbar a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: auto;
    min-width: 0;
    min-height: 38px;
    padding: 7px 10px;
    border-radius: 9px;
}
.report-workspace-toolbar span { font-size: 16px; }
.report-workspace-toolbar small {
    margin-top: 0;
    font-size: 9px;
    line-height: 1.2;
    white-space: nowrap;
}
@media (max-width: 820px) {
    .report-workspace-dock {
        width: calc(100% - 24px);
        margin-top: 10px;
        justify-content: flex-start;
        overflow-x: auto;
        scrollbar-width: thin;
    }
    .report-workspace-toolbar {
        position: static;
        top: auto;
        right: auto;
        justify-content: flex-start;
        width: max-content;
        margin: 0;
    }
    .report-workspace-toolbar button,
    .report-workspace-toolbar a { width: auto; }
}


/* =========================================================
   Portal 2.0 · navegación, herramientas y permisos compactos
   ========================================================= */
.portal-nav { padding: 0; min-height: 72px; }
.portal-nav-inner {
    width: min(1820px, calc(100% - 28px)); min-height: 72px; margin: 0 auto;
    display: grid; grid-template-columns: auto minmax(420px,1fr) minmax(210px,300px) auto auto;
    align-items: center; gap: 16px;
}
.portal-brand { flex: 0 0 auto; }
.portal-nav-links {
    min-width: 0; justify-content: center; align-items: center; overflow-x: auto;
    scrollbar-width: none; white-space: nowrap; padding: 4px 0;
}
.portal-nav-links::-webkit-scrollbar { display: none; }
.portal-nav-links a { padding: 8px 10px; font-size: 13px; }
.portal-nav-links a.active { color: var(--text); background: var(--accent-soft); box-shadow: inset 0 -2px 0 var(--accent); }
.portal-nav-separator { width: 1px; height: 24px; flex: 0 0 1px; margin: 0 3px; background: var(--line); }
.portal-global-search { min-width: 0; }
.portal-user { min-width: max-content; }

.report-workspace-dock {
    width: 100%; margin: 0; border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg-elevated) 95%, transparent);
    box-shadow: 0 8px 24px rgba(0,0,0,.08); position: relative; z-index: 30;
}
.report-workspace-inner {
    width: min(1820px, calc(100% - 28px)); min-height: 52px; margin: 0 auto;
    display: flex; justify-content: flex-end; align-items: center; gap: 16px;
}
.report-workspace-context { margin-right: auto; display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.report-workspace-context small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.report-workspace-context strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.report-workspace-toolbar { padding: 4px; border: 0; background: transparent; box-shadow: none; }
.report-workspace-toolbar button,.report-workspace-toolbar a { min-height: 34px; padding: 6px 9px; }
.report-workspace-toolbar button:hover,.report-workspace-toolbar a:hover,.report-workspace-toolbar button.active { background: var(--accent-soft); }

.permissions-page { width: min(1780px, calc(100% - 32px)); max-width: none; }
.permissions-page .page-hero { margin-bottom: 8px; }
.advanced-permission-form { gap: 12px; }
.permissions-workbench { padding: 14px; gap: 10px; }
.permission-heading { margin-bottom: 2px; }
.permission-heading h2 { margin-bottom: 2px; }
.permission-heading p { margin-top: 2px; }
.compact-permissions { gap: 8px; }
.permission-panel-card { border-radius: 13px; overflow: clip; }
.permission-panel-summary {
    list-style: none; display: grid; grid-template-columns: 34px minmax(0,1fr) 22px;
    align-items: center; gap: 10px; padding: 9px 12px; cursor: pointer;
    background: rgba(255,255,255,.025); user-select: none;
}
.permission-panel-summary::-webkit-details-marker { display: none; }
.permission-panel-summary:hover { background: var(--accent-soft); }
.permission-panel-card[open] > .permission-panel-summary { border-bottom: 1px solid var(--line); }
.permission-panel-card[open] .permission-disclosure { transform: rotate(180deg); }
.permission-disclosure { color: var(--muted); transition: transform .16s ease; text-align: center; }
.permission-panel-name { min-width: 0; display: flex; align-items: baseline; gap: 10px; }
.permission-panel-name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.permission-panel-name small { color: var(--muted); font-size: 10px; }
.compact-permissions .panel-icon { width: 32px; height: 32px; border-radius: 9px; font-size: 15px; }
.permission-panel-body { display: grid; }
.compact-permissions .permission-report-card { padding: 9px 12px; }
.compact-permissions .permission-report-title { margin: 0 0 6px; }
.compact-permissions .permission-report-title strong { font-size: 13px; }
.compact-permissions .permission-report-title small { font-size: 9px; }
.scope-capability,.permission-no-scope { color: var(--muted); font-size: 9px; }
.permission-profile-list { display: grid; gap: 6px; }
.compact-permissions .permission-profile-block { margin: 0; padding: 6px; border-radius: 10px; }
.compact-permissions .permission-profile-head {
    display: grid; grid-template-columns: 88px minmax(350px,1fr) minmax(110px,.32fr);
    gap: 8px; align-items: start;
}
.compact-permissions .profile-chip { padding: 7px 8px; font-size: 10px; }
.compact-permissions .permission-actions-grid { gap: 5px; }
.compact-permissions .permission-action { min-height: 34px; padding: 4px 6px; font-size: 11px; }
.compact-permissions .permission-action input { width: 16px; height: 16px; }
.permission-scope-details { border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.02); }
.permission-scope-details > summary {
    list-style: none; min-height: 34px; padding: 5px 8px; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 10px;
}
.permission-scope-details > summary::-webkit-details-marker { display: none; }
.permission-scope-details > summary small { color: var(--muted); }
.permission-scope-details[open] { grid-column: 1 / -1; }
.permission-scope-details[open] > summary { border-bottom: 1px solid var(--line); }
.compact-permissions .scope-grid { margin: 0; padding: 8px; gap: 8px; }
.compact-permissions .scope-field textarea { min-height: 54px; max-height: 120px; padding: 7px 8px; font-size: 11px; }
.compact-permissions .scope-field small { min-height: 0; }
.info-box.compact { padding: 8px 10px; }

@media (max-width: 1450px) {
    .portal-nav-inner { grid-template-columns: auto minmax(360px,1fr) auto auto; }
    .portal-global-search { display: none; }
}
@media (max-width: 1080px) {
    .portal-nav-inner { grid-template-columns: auto minmax(0,1fr) auto auto; gap: 10px; }
    .portal-nav-links { justify-content: flex-start; }
    .portal-user > span { display: none; }
    .compact-permissions .permission-profile-head { grid-template-columns: 82px minmax(300px,1fr); }
    .permission-scope-details,.permission-no-scope { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .portal-nav-inner { width: calc(100% - 16px); grid-template-columns: 1fr auto auto; padding: 7px 0; }
    .portal-brand small { display: none; }
    .portal-nav-links { grid-column: 1 / -1; order: 3; justify-content: flex-start; border-top: 1px solid var(--line); }
    .portal-nav-separator { display: none; }
    .report-workspace-inner { width: calc(100% - 16px); overflow-x: auto; }
    .report-workspace-context { display: none; }
    .report-workspace-toolbar { width: max-content; margin-left: auto; }
    .permissions-page { width: calc(100% - 18px); }
    .permission-legend { display: none; }
    .compact-permissions .permission-profile-head { grid-template-columns: 1fr; }
    .compact-permissions .permission-actions-grid { grid-template-columns: repeat(4,minmax(70px,1fr)); }
}
@media (max-width: 520px) {
    .compact-permissions .permission-actions-grid { grid-template-columns: repeat(2,1fr); }
    .permission-panel-name { display: block; }
    .permission-panel-name small { display: block; }
}


/* =========================================================
   Portal 2.1 · perfiles globales + identidad visual de grupo
   ========================================================= */
html[data-group-theme="nation"] {
    --bg: #17130d;
    --bg-elevated: #211b13;
    --panel: rgba(47, 39, 29, .91);
    --panel-solid: #2c241a;
    --panel-soft: #3a3024;
    --line: rgba(255, 191, 64, .19);
    --line-strong: rgba(255, 191, 64, .34);
    --text: #fff8e9;
    --muted: #c1b29a;
    --accent: #ffb52e;
    --accent-strong: #ef7427;
    --accent-soft: rgba(255, 181, 46, .15);
    --accent-secondary: #ffd85e;
    --ambient-1: rgba(244, 116, 33, .20);
    --ambient-2: rgba(255, 211, 82, .10);
    --success: #84cf78;
    --warning: #ffd25d;
    --danger: #ff786b;
    --shadow: 0 18px 45px rgba(15, 9, 3, .34);
}
html[data-group-theme="nation"][data-theme="light"] {
    --bg: #f5f0e5;
    --bg-elevated: #fffaf0;
    --panel: rgba(255, 252, 245, .94);
    --panel-solid: #fffdf8;
    --panel-soft: #f2eadc;
    --line: rgba(111, 83, 43, .18);
    --line-strong: rgba(111, 83, 43, .31);
    --text: #2d261d;
    --muted: #776854;
    --accent: #e98a26;
    --accent-strong: #d96820;
    --accent-soft: rgba(233, 138, 38, .12);
    --accent-secondary: #e8b72f;
    --ambient-1: rgba(239, 122, 39, .13);
    --ambient-2: rgba(245, 190, 57, .10);
    --success: #4c9b58;
    --warning: #c88b12;
    --danger: #c95448;
    --shadow: 0 16px 38px rgba(98, 73, 38, .13);
}
html[data-group-theme="escobar"] {
    --bg: #061522;
    --bg-elevated: #0a2133;
    --panel: rgba(13, 43, 64, .90);
    --panel-solid: #0e2b40;
    --panel-soft: #163b56;
    --line: rgba(133, 204, 241, .20);
    --line-strong: rgba(133, 204, 241, .35);
    --text: #f0faff;
    --muted: #9fc1d7;
    --accent: #62b7e6;
    --accent-strong: #2c83b7;
    --accent-soft: rgba(98, 183, 230, .15);
    --accent-secondary: #8ad9ef;
    --ambient-1: rgba(65, 151, 205, .23);
    --ambient-2: rgba(112, 207, 236, .11);
    --success: #50d1a4;
    --warning: #f1c761;
    --danger: #ff7379;
    --shadow: 0 18px 45px rgba(0, 10, 20, .34);
}
html[data-group-theme="escobar"][data-theme="light"] {
    --bg: #eaf5fc;
    --bg-elevated: #f6fbff;
    --panel: rgba(255, 255, 255, .94);
    --panel-solid: #ffffff;
    --panel-soft: #e5f2fa;
    --line: rgba(39, 105, 145, .17);
    --line-strong: rgba(39, 105, 145, .29);
    --text: #102b3d;
    --muted: #587a91;
    --accent: #398fbe;
    --accent-strong: #1d6e9d;
    --accent-soft: rgba(57, 143, 190, .12);
    --accent-secondary: #65bddb;
    --ambient-1: rgba(62, 155, 207, .14);
    --ambient-2: rgba(112, 203, 232, .10);
    --success: #309d78;
    --warning: #bb8a25;
    --danger: #c8525a;
    --shadow: 0 16px 38px rgba(49, 103, 135, .13);
}

.portal-theme-switch {
    width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center;
    border: 1px solid var(--line); border-radius: 11px; background: var(--panel-soft);
    color: var(--text); cursor: pointer; transition: 150ms ease;
}
.portal-theme-switch:hover { border-color: var(--accent); background: var(--accent-soft); transform: translateY(-1px); }
.portal-theme-switch span { font-size: 17px; line-height: 1; }

.group-brand-ribbon {
    width: min(1820px, calc(100% - 28px)); margin: 10px auto 0;
    border: 1px solid var(--line); border-radius: 15px; overflow: hidden;
    background: color-mix(in srgb, var(--panel-solid) 92%, transparent);
    box-shadow: 0 10px 30px rgba(0,0,0,.09);
}
.group-brand-ribbon-inner { display: flex; min-width: 0; }
.brand-ribbon-segment { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; padding: 7px 10px; flex: 1; }
.brand-ribbon-segment + .brand-ribbon-segment { border-left: 1px solid var(--line); }
.brand-ribbon-segment--nation { background: linear-gradient(90deg, rgba(245,151,41,.10), rgba(255,205,82,.035)); }
.brand-ribbon-segment--escobar { background: linear-gradient(90deg, rgba(73,157,207,.11), rgba(112,205,234,.035)); }
.brand-ribbon-heading { display: flex; align-items: center; gap: 7px; min-width: 105px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.brand-ribbon-heading strong { color: var(--text); font-size: 11px; }
.brand-ribbon-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.brand-ribbon-logos { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 6px; overflow-x: auto; scrollbar-width: thin; padding: 1px; }
.brand-logo-tile {
    flex: 0 0 68px; height: 43px; display: grid; grid-template-rows: 26px 10px; place-items: center;
    padding: 3px 5px 2px; border: 1px solid rgba(34,45,55,.10); border-radius: 9px;
    background: rgba(255,255,255,.94); color: #29323a;
}
.brand-logo-tile img { display: block; max-width: 54px; max-height: 23px; width: auto; height: auto; object-fit: contain; }
.brand-logo-tile small { max-width: 60px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 7px; line-height: 1; color: #58626c; }
.group-brand-ribbon--both .brand-logo-tile { flex-basis: 58px; }
.group-brand-ribbon--both .brand-logo-tile img { max-width: 47px; }
.snapshot-brand-ribbon { width: 100%; margin: 10px 0 16px; box-shadow: none; }

.user-group-chip { display:inline-flex; align-items:center; justify-content:center; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:850; letter-spacing:.045em; white-space:nowrap; border:1px solid var(--line); }
.user-group-chip.nation { color:#ffbd4c; background:rgba(239,116,39,.12); border-color:rgba(239,116,39,.25); }
.user-group-chip.escobar { color:#73c5ef; background:rgba(58,143,190,.12); border-color:rgba(58,143,190,.25); }
.user-group-chip.both { color:var(--accent); background:var(--accent-soft); }
.user-group-chip.large { padding:6px 10px; font-size:11px; }

.unified-permissions .permission-report-card { padding: 7px 10px; }
.permission-report-main { display:grid; grid-template-columns:minmax(190px,.8fr) minmax(340px,1.1fr) minmax(120px,.35fr); align-items:center; gap:8px; }
.permission-report-copy { min-width:0; display:flex; flex-direction:column; }
.permission-report-copy strong { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.permission-report-copy small { color:var(--muted); font-size:8px; }
.legacy-permission-warning { margin-top:3px; color:var(--warning); font-size:8px; line-height:1.2; }
.unified-actions { grid-template-columns:repeat(4,minmax(75px,1fr)); gap:4px; }
.unified-actions .permission-action { min-height:31px; padding:3px 5px; font-size:10px; }
.permission-mixed { border-style:dashed; border-color:color-mix(in srgb,var(--warning) 50%,var(--line)); }
.unified-scope-details { min-width:120px; }
.scope-profile-grid { display:grid; gap:7px; padding:7px; }
.scope-profile-card { border:1px solid var(--line); border-radius:9px; padding:7px; background:color-mix(in srgb,var(--panel-soft) 58%,transparent); }
.scope-profile-card > header { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px; }
.scope-profile-card > header small { color:var(--muted); font-size:9px; }
.scope-profile-card .scope-grid { padding:0; }
.group-access-field select { font-weight:800; }

html[data-group-theme="nation"] .portal-brand-mark { background:linear-gradient(145deg,#f47b29,#ffc43f); box-shadow:0 10px 25px rgba(239,116,39,.25); }
html[data-group-theme="escobar"] .portal-brand-mark { background:linear-gradient(145deg,#2e84b7,#78d0ec); box-shadow:0 10px 25px rgba(46,132,183,.25); }
html[data-group-theme="nation"] .page-hero,
html[data-group-theme="nation"] .control-panel { border-color:color-mix(in srgb,var(--accent) 22%,var(--line)); }
html[data-group-theme="escobar"] .page-hero,
html[data-group-theme="escobar"] .control-panel { border-color:color-mix(in srgb,var(--accent) 22%,var(--line)); }

@media (max-width: 1180px) {
    .group-brand-ribbon-inner { display:block; }
    .brand-ribbon-segment + .brand-ribbon-segment { border-left:0; border-top:1px solid var(--line); }
    .permission-report-main { grid-template-columns:minmax(180px,.7fr) minmax(330px,1.3fr); }
    .unified-scope-details,.permission-no-scope { grid-column:1/-1; }
}
@media (max-width: 760px) {
    .group-brand-ribbon { width:calc(100% - 16px); }
    .brand-ribbon-segment { grid-template-columns:1fr; }
    .brand-ribbon-heading { min-width:0; }
    .brand-ribbon-logos { justify-content:flex-start; }
    .permission-report-main { grid-template-columns:1fr; }
    .unified-actions { grid-template-columns:repeat(4,minmax(62px,1fr)); }
}
@media (max-width: 520px) {
    .unified-actions { grid-template-columns:repeat(2,1fr); }
}
