:root {
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    color-scheme: light;
    --page: #f3f6fa;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --surface-2: var(--surface-soft);
    --input-bg: var(--surface);
    --text: #18212f;
    --muted: #667587;
    --border: #dbe3ec;
    --primary: #0d74b8;
    --primary-strong: #075d94;
    --accent: var(--primary);
    --topbar: #3193e1;
    --chart-grid: #dfe7ef;
    --chart-axis: #7c8998;
    --chart-crosshair: #34495e;
    --combined-chart-bg: #ffffff;
    --pr-line: #b85f00;
    --error-bg: #ffe5e5;
    --error-text: #8a1717;
    --shadow: 0 8px 24px rgba(31, 54, 78, .08);
}

:root[data-theme="dark"] {
    color-scheme: dark;
    --page: #0b1220;
    --surface: #111827;
    --surface-soft: #172033;
    --text: #e7edf5;
    --muted: #9fb0c4;
    --border: #2b3a50;
    --primary: #1c9be0;
    --primary-strong: #46b4ee;
    --topbar: #050b13;
    --chart-grid: #2d3b50;
    --chart-axis: #73839a;
    --chart-crosshair: #d6e4f0;
    --combined-chart-bg: #111315;
    --pr-line: #fbbf24;
    --error-bg: #421d24;
    --error-text: #ffb9c1;
    --shadow: 0 8px 28px rgba(0, 0, 0, .28);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--page); color: var(--text); }
body { transition: background .2s ease, color .2s ease; }
button, input, select { font: inherit; }
.shell { width: min(1500px, 100%); margin: 0 auto; padding: 18px 24px; }

.topbar { position: sticky; top: 0; z-index: 20; background: var(--topbar); color: white; box-shadow: 0 2px 14px rgba(0,0,0,.18); }
:root:not([data-theme="dark"]) .topbar { box-shadow: 0 2px 14px rgba(19, 89, 143, .24); }
:root:not([data-theme="dark"]) .brand-logo {
    filter: brightness(0) invert(1) drop-shadow(0 1px 1px rgba(12, 77, 128, .16));
}
:root:not([data-theme="dark"]) .topbar .session-user small,
:root:not([data-theme="dark"]) .topbar .account-chevron {
    color: rgba(255,255,255,.78) !important;
}
:root:not([data-theme="dark"]) .portfolio-scope-trigger {
    background: rgba(255,255,255,.16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
:root:not([data-theme="dark"]) .portfolio-scope-trigger:hover:not(:disabled),
:root:not([data-theme="dark"]) .portfolio-scope-trigger[aria-expanded="true"] {
    background: rgba(255,255,255,.24);
}
.topbar.account-open{z-index:1002}
.topbar.portfolio-open{z-index:1002}
.topbar-content { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand-block { display: flex; align-items: center; gap: 16px; min-width: 0; }
.brand-logo { display: block; width: 210px; height: 64px; object-fit: contain; object-position: left center; flex: 0 0 auto; }
.brand-context-shell { display: grid; gap: 7px; min-width: 0; }
.brand-context { display: flex; align-items: center; gap: 8px; min-width: 0; }
.app-version,
.header-project {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 6px 11px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 9px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.92);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
    white-space: nowrap;
}
.context-label {
    color: rgba(255,255,255,.58);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.app-version strong,
.header-project strong {
    color: #fff;
    font-size: .79rem;
    font-weight: 800;
    line-height: 1;
}
.header-project { max-width: 360px; min-width: 0; }
.header-project strong { overflow: hidden; text-overflow: ellipsis; }
.portfolio-scope-selector {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 220px;
    height: 32px;
    padding: 3px 7px 3px 10px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 9px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.92);
}
.portfolio-scope-trigger {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 7px;
    min-width: 0;
    width: 100%;
    height: 24px;
    padding: 0 4px 0 3px;
    border: 0;
    border-radius: 6px;
    outline: 0;
    background: rgba(5,18,34,.72);
    color: #fff;
    font-size: .74rem;
    font-weight: 700;
    cursor: pointer;
    text-align: left;
}
.portfolio-scope-trigger strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .74rem; }
.portfolio-scope-trigger>span { color: rgba(255,255,255,.68); font-size: .8rem; }
.portfolio-scope-trigger:focus-visible {
    box-shadow: 0 0 0 2px rgba(77,173,255,.7);
}
.portfolio-scope-backdrop,
.portfolio-scope-backdrop:hover,
.portfolio-scope-backdrop:focus,
.portfolio-scope-backdrop:focus-visible,
.portfolio-scope-backdrop:active {
    position: fixed;
    inset: 0;
    z-index: 59;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    cursor: default;
}
.portfolio-scope-menu {
    position: absolute;
    z-index: 60;
    top: calc(100% + 7px);
    right: 0;
    width: max(100%, 250px);
    max-height: min(55vh, 360px);
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: var(--surface);
    color: var(--text);
    box-shadow: 0 18px 46px rgba(0,0,0,.42);
    scrollbar-width: thin;
    scrollbar-color: rgba(110,174,224,.72) transparent;
    scrollbar-gutter: stable;
}
.portfolio-scope-menu::-webkit-scrollbar,
.portfolio-scope-menu.scrolling::-webkit-scrollbar { width: 4px; }
.portfolio-scope-menu::-webkit-scrollbar-track { background: transparent; }
.portfolio-scope-menu::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(110,174,224,.72); }
.portfolio-scope-menu>button { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; min-height:34px; padding:7px 9px; border:0; border-radius:7px; background:transparent; color:var(--text); text-align:left; }
.portfolio-scope-menu>button:hover:not(.selected) {
    background: color-mix(in srgb,var(--accent) 7%,var(--surface)) !important;
    color: var(--text) !important;
    transform: none !important;
}
.portfolio-scope-menu>button.selected,
.portfolio-scope-menu>button.selected:hover {
    background: color-mix(in srgb,var(--accent) 11%,var(--surface)) !important;
    color: var(--text) !important;
    transform: none !important;
}
.portfolio-scope-menu>button span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.73rem; font-weight:700; }
.portfolio-scope-menu>button small { min-width:25px; padding:2px 6px; border-radius:999px; background:var(--surface-2); color:var(--muted); font-size:.62rem; text-align:center; }
.global-catalog-search { position: relative; width: min(480px, 100%); z-index: 31; }
.global-catalog-search>label { display: grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; height:34px; padding:0 9px; border:1px solid rgba(255,255,255,.22); border-radius:9px; background:rgba(255,255,255,.08); color:rgba(255,255,255,.65); transition:border-color .15s ease,background .15s ease; }
.global-catalog-search.open>label,.global-catalog-search>label:focus-within { border-color:rgba(77,173,255,.8); background:rgba(7,24,43,.94); box-shadow:0 0 0 2px rgba(77,173,255,.16); }
.global-catalog-search input { width:100%; min-width:0; padding:0; border:0; outline:0; background:transparent; color:#fff; font-size:.78rem; }
.global-catalog-search input::placeholder { color:rgba(255,255,255,.48); }
.global-search-clear { display:grid; width:22px; height:22px; min-width:22px; padding:0; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.1); color:rgba(255,255,255,.72); line-height:1; }
.global-search-spinner { width:14px; height:14px; border:2px solid rgba(255,255,255,.25); border-top-color:#4dadef; border-radius:50%; animation:overview-spin .7s linear infinite; }
.global-search-results { position:absolute; top:calc(100% + 7px); left:0; width:min(720px,calc(100vw - 32px)); max-height:min(68vh,620px); overflow:auto; padding:7px; border:1px solid var(--border); border-radius:13px; background:var(--surface); color:var(--text); box-shadow:0 22px 60px rgba(0,0,0,.42); scrollbar-width:thin; }
.global-search-results>header { display:flex; justify-content:space-between; gap:12px; padding:7px 9px 9px; border-bottom:1px solid var(--border); color:var(--muted); font-size:.7rem; }
.global-search-results>header small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.global-search-results>button { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:9px; width:100%; padding:9px; border:0; border-radius:9px; background:transparent; color:var(--text); text-align:left; }
.global-search-results>button:hover,.global-search-results>button.selected { background:color-mix(in srgb,var(--primary) 12%,var(--surface)); }
.global-search-results>button>b { display:grid; width:28px; height:28px; place-items:center; border-radius:8px; background:color-mix(in srgb,var(--primary) 13%,var(--surface)); color:var(--primary); }
.global-search-results>button>span { display:grid; gap:2px; min-width:0; }
.global-search-results>button strong,.global-search-results>button small,.global-search-results>button em { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.global-search-results>button strong { font-size:.8rem; }
.global-search-results>button small { color:var(--muted); font-size:.68rem; }
.global-search-results>button em { color:var(--muted); font-size:.69rem; font-style:normal; }
.global-search-results>button>i { padding:4px 7px; border:1px solid var(--border); border-radius:999px; color:var(--muted); font-size:.62rem; font-style:normal; text-transform:uppercase; }
.global-search-results>footer { padding:9px; border-top:1px solid var(--border); color:var(--muted); font-size:.7rem; text-align:center; }
.global-search-state { display:grid; gap:4px; padding:18px 14px; color:var(--muted); font-size:.78rem; text-align:center; }
.global-search-state.error { color:var(--error-text); }
.global-search-backdrop { position:fixed; inset:0; z-index:19; padding:0; border:0; background:transparent; }
.topbar-right { display: flex; align-items: center; gap: 18px; }
.live-clock { display: grid; text-align: right; font-variant-numeric: tabular-nums; line-height: 1.25; }
.live-clock strong { font-size: .92rem; }
.live-clock span { font-size: 1.25rem; letter-spacing: .04em; }
.theme-button { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); }
.topbar-icon-button {
    display: inline-grid;
    width: 42px;
    min-width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
    place-items: center;
    color: #fff;
    font-size: 0;
}
.topbar-icon-button > span { font-size: 1.08rem; line-height: 1; }
.topbar-icon-button::after { content: none !important; }

.page-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin: 12px 0 4px; }
h1 { margin: 0 0 4px; font-size: clamp(1.55rem, 3vw, 2.15rem); }
h2 { margin: 0; font-size: 1.18rem; }
.intro, .chart-header p, .table-header p { margin: 0; color: var(--muted); }
.storage-badge { display: grid; gap: 3px; text-align: right; color: var(--muted); }
.storage-badge strong { color: var(--text); font-size: 1.05rem; }

.query-card, .summary, details, .chart-card, .table-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--shadow);
}
.query-card, .chart-card, .table-card { padding: 18px; margin: 18px 0; }
.container-row { display: flex; align-items: end; gap: 12px; }
.grow { flex: 1; }
.container-select-field { flex: 0 1 320px; min-width: 240px; }
.container-list-status { margin-top: 10px; color: var(--muted); font-size: .9rem; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 14px; margin: 18px 0; }
label { font-weight: 650; display: grid; gap: 6px; color: var(--text); }
input, select {
    width: 100%;
    padding: 10px 11px;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 7px;
    outline: none;
}
input:focus, select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent); }
button {
    padding: 10px 17px;
    border: 0;
    border-radius: 7px;
    background: var(--primary);
    color: white;
    font-weight: 750;
    cursor: pointer;
    white-space: nowrap;
}
button:hover:not(:disabled) { background: var(--primary-strong); }
button:disabled { opacity: .55; cursor: default; }
.secondary-button { background: var(--surface-soft); color: var(--text); border: 1px solid var(--border); }
.active-incidents-link{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:40px;padding:8px 12px;border-radius:8px;text-decoration:none;white-space:nowrap;font-size:.8rem;font-weight:650}
.alarm-active-incidents-panel{display:grid;gap:14px;margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.embedded-incidents-title{margin:0}.embedded-incidents-title .eyebrow{display:block;margin-bottom:4px}.alarm-active-incidents-panel .incident-toolbar{margin:0}.alarm-active-incidents-panel .incident-kpis{margin-top:0}@media(max-width:700px){.alarm-active-incidents-panel{padding:12px;border-radius:11px}}
.secondary-button:hover:not(:disabled) { background: color-mix(in srgb, var(--primary) 12%, var(--surface)); }
.link-button { padding: 4px 7px; background: transparent; color: var(--primary); }
.link-button:hover:not(:disabled) { background: color-mix(in srgb, var(--primary) 10%, transparent); }

.metadata-summary { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 16px; padding: 11px 13px; border-radius: 8px; background: var(--surface-soft); color: var(--muted); }
.metadata-summary strong { color: var(--text); }
.global-project-report{display:grid;grid-template-columns:minmax(220px,1fr) minmax(280px,1.3fr) auto;align-items:end;gap:12px;margin-top:12px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.global-project-report>div{display:grid;gap:3px}.global-project-report small{color:var(--muted);line-height:1.35}.global-project-report label{min-width:0}.global-project-report input{width:100%}.global-project-report button{white-space:nowrap}.global-report-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;padding:10px 12px;border-radius:8px;border:1px solid var(--border)}.global-report-status.success{color:#15803d;background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.25)}.global-report-status.failed{color:#b91c1c;background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.22)}.global-report-status button{display:grid;place-items:center;width:25px;height:25px;padding:0;border-radius:999px;background:transparent;color:currentColor;border:1px solid currentColor}
.channel-selector { border-top: 1px solid var(--border); padding-top: 16px; }
.channel-selector-title { display: flex; justify-content: space-between; gap: 15px; align-items: center; margin-bottom: 10px; }
.channel-selector-title > div:first-child { display: grid; gap: 3px; }
.icon-button{display:inline-grid;place-items:center;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);cursor:pointer}.icon-button:hover{border-color:var(--accent);color:var(--accent)}
.channel-selector-heading strong{display:flex;align-items:center;gap:8px;min-width:0}.channel-device-explorer-button{width:28px;height:28px;min-width:28px;padding:0;border-radius:7px;font-size:.9rem;line-height:1}
.channel-selector-title span { color: var(--muted); font-size: .9rem; }
.channel-selector-title-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.channel-selector-title-actions small{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}.channel-selector-title-actions button{padding:7px 11px;font-size:.8rem}
.compact-actions { display: flex; gap: 4px; }
.channel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); gap: 8px; max-height: 230px; overflow: auto; }
.channel-option { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--surface-soft); border: 1px solid var(--border); border-radius: 7px; font-weight: 550; }
.channel-option input { width: auto; }
.query-actions { display: flex; align-items: center; gap: 15px; margin-top: 17px; }
.historical-extreme-control{display:inline-flex;align-items:end;gap:7px;padding:7px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.historical-extreme-control label{display:grid;gap:3px;color:var(--muted);font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.historical-extreme-control select{min-width:105px;padding:7px 28px 7px 9px}.historical-extreme-control button{min-height:34px;padding:7px 10px;white-space:nowrap}
.communication-pattern-button{max-width:310px;white-space:normal;line-height:1.25}.communication-pattern-progress{display:grid;grid-template-columns:minmax(160px,320px) minmax(0,1fr);align-items:center;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 5%,var(--surface-2));color:var(--muted);font-size:.76rem}.communication-pattern-progress progress{width:100%;height:6px}.communication-pattern-progress span{min-width:0;line-height:1.4}
progress { width: min(440px, 100%); }

.error { margin: 16px 0; padding: 14px; border-radius: 9px; background: var(--error-bg); color: var(--error-text); white-space: pre-wrap; }
.summary { display: flex; gap: 24px; flex-wrap: wrap; align-items: center; padding: 16px 18px; margin: 18px 0; }
details { padding: 14px 18px; margin: 18px 0; }

.chart-header, .table-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 13px; }
.chart-toolbar { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
.chart-toolbar label { min-width: 185px; }
.series-controls-header { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:8px 0 6px; color:var(--muted); font-size:.88rem; }
.series-controls-header > div { display:flex; gap:6px; }
.series-controls { display: flex; gap: 9px; flex-wrap: wrap; margin: 6px 0 14px; max-height: 220px; overflow-y:auto; padding-right:4px; }
.series-control { display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-soft); }
.series-control input[type="checkbox"] { width: auto; }
.series-control input[type="color"] { width: 30px; height: 26px; padding: 1px; border-radius: 5px; }
.series-control small { color: var(--muted); }

.chart-display-options{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:4px 0 7px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:9px 9px 5px 5px;background:color-mix(in srgb,var(--accent) 6%,var(--surface-soft))}.chart-display-options-copy{display:grid;gap:2px;min-width:0}.chart-display-options-copy strong{font-size:.86rem}.chart-display-options-copy small{color:var(--muted);font-size:.76rem;line-height:1.35}.chart-interpolation-toggle{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap}.chart-interpolation-toggle input{width:17px;height:17px;margin:0;accent-color:var(--accent)}.chart-interpolation-toggle b{padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.035em}.chart-interpolation-toggle:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent)}.chart-interpolation-toggle:has(input:checked) b{background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent)}
.chart-wrapper { position: relative; width: 100%; min-height: 360px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); overflow: hidden; }
.history-chart { display: block; width: 100%; height: 420px; touch-action: none; }
.chart-overlay { pointer-events: all; cursor: crosshair; }
.chart-tooltip {
    position: absolute;
    z-index: 4;
    min-width: 220px;
    max-width: 310px;
    padding: 10px 12px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    pointer-events: auto;
    height: calc(100% - 24px);
    max-height: calc(100% - 24px);
    overflow: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    font-size: .88rem;
    backdrop-filter: blur(8px);
}

.chart-tooltip.tooltip-dock-left { left: 12px; right: auto; }
.chart-tooltip.tooltip-dock-right { right: 12px; left: auto; }
.tooltip-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.tooltip-heading strong { display:block; margin:0; }
.tooltip-heading small { color:var(--muted); white-space:nowrap; }
.tooltip-values { height: calc(100% - 44px); max-height: calc(100% - 44px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding-right:4px; }
.tooltip-row { display:grid; grid-template-columns:12px minmax(0,1fr) auto; gap:7px; align-items:center; margin-top:5px; }
.tooltip-row > span:nth-child(2) { overflow-wrap:anywhere; }
.tooltip-dot { width: 9px; height: 9px; border-radius: 50%; }
.chart-note { margin: 10px 0 0; color: var(--muted); font-size: .9rem; }

.table-wrap { height: 62vh; overflow: auto; border: 1px solid var(--border); border-radius: 8px; }
table { border-collapse: collapse; width: 100%; min-width: 620px; }
th, td { padding: 8px 12px; border-bottom: 1px solid var(--border); text-align: left; font-variant-numeric: tabular-nums; white-space: nowrap; }
thead { position: sticky; top: 0; z-index: 2; background: color-mix(in srgb, var(--primary) 10%, var(--surface)); }
tbody tr:nth-child(even) { background: var(--surface-soft); }

#blazor-error-ui { display: none; position: fixed; bottom: 0; width: 100%; padding: 12px; background: #ffd9d9; color: #222; z-index: 100; }

.recoverable-app-error {
  margin: 24px;
  padding: 20px;
  border: 1px solid color-mix(in srgb, #ef9b33 55%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, #ef9b33 10%, var(--panel, #fff));
  display: grid;
  gap: 8px;
}
.recoverable-app-error strong { font-size: 1.05rem; }
.recoverable-app-error span { color: var(--muted, #667085); }
.recoverable-app-error div { display: flex; gap: 10px; margin-top: 6px; }
.loading { padding: 40px; text-align: center; }

@media (max-width: 760px) {
    .shell { padding: 14px 16px; }
    .topbar-content { min-height: 72px; }
    .brand-logo { width: 145px; height: 50px; }
    .app-version { margin-bottom: 5px; font-size: .66rem; padding: 2px 6px; }
    .topbar-right { gap: 9px; }
    .live-clock strong { font-size: .76rem; }
    .live-clock span { font-size: 1rem; }
    .theme-button { padding: 8px 10px; font-size: .8rem; }
    .page-title { display: grid; align-items: start; }
    .storage-badge { text-align: left; }
    .container-row { display: grid; }
    .container-select-field { min-width: 0; }
    .query-actions { display: grid; }.historical-extreme-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.historical-extreme-control select{width:100%}.communication-pattern-button{max-width:none}.communication-pattern-progress{grid-template-columns:1fr}
    .chart-toolbar { width: 100%; display: grid; grid-template-columns: 1fr; }
    .chart-toolbar label { min-width: 0; }
    .chart-display-options { align-items:stretch; flex-direction:column; gap:8px; }
    .chart-interpolation-toggle { justify-content:center; width:100%; }
    .chart-wrapper { min-height: 300px; }
    .history-chart { height: 310px; }
    .chart-tooltip { min-width: 190px; max-width: 250px; font-size: .78rem; }
    .channel-selector-title { align-items: flex-start; }
}

@media (max-width: 430px) {
    .brand-logo { width: 120px; }
    .brand-block { gap: 6px; }
    .app-version { margin-bottom: 4px; font-size: .62rem; }
    .theme-button { font-size: 0; width: 42px; height: 38px; }
    .theme-button::after { content: "◐"; font-size: 1.15rem; }
    .summary { gap: 12px 18px; }
    .series-control { width: 100%; }
    .series-control span { flex: 1; overflow: hidden; text-overflow: ellipsis; }
}

.selected-series-list { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding-top:16px; border-top:1px solid var(--border); margin-top:16px; }
.saved-channel-views{display:grid;gap:11px;margin:14px 0;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--panel-2) 82%,var(--accent) 3%)}
.saved-channel-views-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.saved-channel-views-heading>div{display:grid;gap:3px}.saved-channel-views-heading strong{font-size:.88rem}.saved-channel-views-heading span,.saved-channel-views-heading small{color:var(--muted);font-size:.72rem}
.saved-channel-views-heading>small{flex:none;padding:4px 8px;border:1px solid var(--border);border-radius:999px}
.saved-channel-views-controls{display:grid;grid-template-columns:minmax(190px,1.25fr) auto auto minmax(210px,1fr) auto;align-items:end;gap:8px}
.saved-channel-views-controls label{display:grid;gap:5px;min-width:0;color:var(--muted);font-size:.7rem;font-weight:700}
.saved-channel-views-controls select,.saved-channel-views-controls input{width:100%;min-width:0}
.saved-channel-views-controls button{white-space:nowrap}
.saved-view-delete{border-color:color-mix(in srgb,#d65b63 45%,var(--border));background:color-mix(in srgb,#d65b63 8%,var(--panel));color:color-mix(in srgb,#e56a72 80%,var(--text))}
.saved-view-delete:hover:not(:disabled){border-color:#d65b63;background:color-mix(in srgb,#d65b63 15%,var(--panel))}
.saved-channel-view-status{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--muted);font-size:.74rem}
.selected-series-chip { display:inline-flex; align-items:center; gap:8px; padding:7px 9px; border:1px solid var(--border); background:var(--surface-soft); border-radius:999px; font-size:.88rem; }
.selected-series-chip button { padding:0; width:22px; height:22px; border-radius:50%; line-height:1; background:transparent; color:var(--muted); font-size:1.2rem; }
.selected-series-chip button:hover { color:var(--text); background:color-mix(in srgb,var(--primary) 12%,transparent); }
.chart-wrapper:fullscreen { background:var(--surface); padding:16px; width:100vw; height:100vh; }
.chart-wrapper:fullscreen .history-chart { height:calc(100vh - 32px); }
.chart-wrapper:fullscreen .chart-tooltip { z-index:9999; }
.chart-toolbar button { padding:10px 12px; }
/* Responsive chart: the SVG always fills the complete available card width. */
.history-chart {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: clamp(340px, 34vw, 560px);
}
.chart-wrapper {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
@media (max-width:760px) {
  .selected-series-list { align-items:flex-start; }
  .selected-series-chip { max-width:100%; }
  .chart-wrapper { min-height: 320px; overflow:hidden; }
  .history-chart { width:100%; min-width:0; max-width:100%; height:320px; }
}
@media (max-width:430px) {
  .history-chart { height:300px; }
}

/* O&M dashboard */
.om-shell{margin:28px 0 34px;display:grid;gap:18px}.om-heading{display:flex;justify-content:space-between;gap:24px;align-items:end}.om-heading h2{margin:3px 0 4px;font-size:1.65rem}.om-heading p{margin:0;color:var(--muted)}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.16em;color:var(--primary)}.om-actions{display:flex;align-items:end;gap:10px}.om-actions label{min-width:170px}.om-empty,.panel-card,.kpi-card,.om-status{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px rgba(15,23,42,.05)}.om-empty{padding:28px;display:grid;gap:6px;color:var(--muted)}.om-empty strong{color:var(--text);font-size:1.05rem}.om-status{padding:16px 18px;display:flex;align-items:center;gap:12px}.om-status div:nth-child(2){display:grid;gap:2px;flex:1}.om-status span{color:var(--muted)}.om-status small{color:var(--muted)}.status-dot{width:13px;height:13px;border-radius:50%}.om-status-ok .status-dot{background:#16a34a;box-shadow:0 0 0 6px rgba(22,163,74,.12)}.om-status-warning .status-dot{background:#d97706;box-shadow:0 0 0 6px rgba(217,119,6,.12)}.om-status-critical .status-dot{background:#dc2626;box-shadow:0 0 0 6px rgba(220,38,38,.12)}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.kpi-card{padding:17px;display:grid;gap:5px;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#94a3b8}.kpi-ok:before{background:#16a34a}.kpi-warning:before{background:#d97706}.kpi-critical:before{background:#dc2626}.kpi-card span{font-size:.78rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.kpi-card strong{font-size:1.55rem}.kpi-card small{color:var(--muted)}.om-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel-card{padding:18px;min-width:0}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:14px}.panel-title h3{margin:0 0 3px;font-size:1.05rem}.panel-title p{margin:0;color:var(--muted);font-size:.86rem}.panel-title>span{font-size:.78rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 9px;white-space:nowrap}.mini-chart{width:100%;height:220px;background:linear-gradient(180deg,rgba(22,119,200,.05),transparent);border-radius:10px}.detailed-chart{width:100%;height:240px;background:linear-gradient(180deg,rgba(22,119,200,.05),transparent);border-radius:10px}.chart-wrap{display:grid;gap:10px}.chart-legend{display:flex;flex-wrap:wrap;gap:8px}.chart-legend-item{display:inline-flex;align-items:center;gap:7px;font-size:.79rem;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 10px}.legend-swatch{display:inline-block;width:10px;height:10px;border-radius:999px;flex:none}.chart-note{margin:6px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}.axis-line{stroke:var(--border);stroke-width:1}.axis-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4;opacity:.7}.trend-power,.trend-irradiance{stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.trend-power{stroke:#1677c8}.trend-irradiance{stroke:#d4a017}.chart-placeholder{height:220px;display:grid;place-items:center;color:var(--muted);background:var(--surface-2);border-radius:10px}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.device-tile{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface-2);display:grid;gap:8px;min-width:0;overflow:hidden}.device-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0}.device-top strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.device-top span{font-size:.68rem;font-weight:800;text-transform:uppercase;white-space:nowrap;flex:none;padding-top:2px;text-align:right}.device-ok .device-top span{color:#15803d}.device-warning .device-top span{color:#b45309}.device-critical .device-top span{color:#b91c1c}.availability-bar{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.availability-bar i{display:block;height:100%;background:#16a34a}.device-warning .availability-bar i{background:#d97706}.device-critical .availability-bar i{background:#dc2626}.device-metrics{display:flex;justify-content:space-between;gap:10px;font-size:.78rem;color:var(--muted);min-width:0}.device-metrics span{min-width:0;white-space:nowrap}.device-tile small{color:var(--muted)}.anomaly-list{display:grid;gap:9px;max-height:520px;overflow:auto}.anomaly-item{border-left:4px solid #64748b;background:var(--surface-2);padding:11px 12px;border-radius:8px}.anomaly-warning{border-left-color:#d97706}.anomaly-critical{border-left-color:#dc2626}.anomaly-head{display:flex;justify-content:space-between;gap:12px}.anomaly-head span{font-size:.78rem;color:var(--muted)}.anomaly-item p{margin:6px 0;color:var(--muted);font-size:.88rem}.anomaly-item small{display:block}.success-message{padding:20px;background:rgba(22,163,74,.08);border-radius:10px;color:#15803d}.ai-panel textarea{width:100%;resize:vertical;margin-bottom:10px}.ai-button{width:100%;background:linear-gradient(135deg,#5b21b6,#1677c8)}.ai-error{margin-top:10px;padding:11px;border-radius:9px;background:rgba(220,38,38,.08);color:#b91c1c}.ai-answer{margin-top:12px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.ai-answer-title{padding:9px 11px;background:var(--surface-2);font-weight:700}.ai-answer pre{margin:0;padding:14px;white-space:pre-wrap;font:inherit;line-height:1.55;max-height:480px;overflow:auto}.om-notes{display:flex;flex-wrap:wrap;gap:8px}.om-notes span{font-size:.78rem;color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 10px}@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.om-heading,.om-status{align-items:stretch;flex-direction:column}.om-actions{align-items:stretch;flex-direction:column}.om-grid-two{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.kpi-grid{grid-template-columns:1fr}}

/* O&M adaptive intelligence additions */
.project-context{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,rgba(22,119,200,.10),var(--surface));border:1px solid var(--border,#dbe3ef);border-radius:16px;padding:16px 20px;margin:14px 0}.project-context>div:first-child{display:flex;flex-direction:column;gap:3px}.project-context span{font-size:.78rem;color:var(--muted,#667085);text-transform:uppercase;letter-spacing:.05em}.project-context strong{font-size:1.05rem}.project-context small{color:var(--muted,#667085)}.cache-state{min-width:170px;padding:10px 14px;border-radius:12px;text-align:right;display:flex;flex-direction:column}.cache-local{background:#fff7df;border:1px solid #ecd28a}.cache-fresh{background:#eaf8ef;border:1px solid #a8d8b6}.sync-button{background:#176cab!important}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.group-card{border:1px solid var(--border,#dbe3ef);border-left:4px solid #9aa8b8;border-radius:12px;padding:13px;background:var(--surface-2,var(--surface))}.group-card>div{display:flex;justify-content:space-between;gap:10px}.group-card>div span{font-weight:800;font-size:1.15rem}.group-card p{margin:6px 0 0;color:var(--muted,#667085);font-size:.82rem}.group-ok{border-left-color:#2ea45f}.group-warning{border-left-color:#d69b1d}.group-critical{border-left-color:#cf4551}.scope-card{display:flex;flex-direction:column;justify-content:center;min-height:280px}.scope-card p{font-size:1rem;line-height:1.65;color:var(--muted,#667085)}.device-category{display:block;margin:3px 0 7px;color:var(--muted,#667085)}@media(max-width:900px){.project-context{align-items:flex-start;flex-direction:column}.cache-state{text-align:left}.om-actions{flex-wrap:wrap}}
.group-anomaly-summary{display:block;margin-top:5px;color:var(--accent);font-size:.72rem;font-weight:700}.group-expand-button{width:100%;margin-top:10px;padding:6px 9px;background:transparent!important;color:var(--accent)!important;border:1px solid var(--border)!important;border-radius:7px;font-size:.76rem;font-weight:650}.family-device-list{list-style:none;margin:9px 0 0;padding:8px 0 0;border-top:1px solid var(--border);display:grid;gap:6px;max-height:260px;overflow:auto}.family-device-list li{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:.75rem}.family-device-list li strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.family-device-list li small{color:var(--muted);font-size:.68rem;white-space:nowrap}.family-device-status{width:7px;height:7px;border-radius:50%;background:#9aa8b8}.family-device-status.status-ok{background:#2ea45f}.family-device-status.status-warning{background:#d69b1d}.family-device-status.status-critical{background:#cf4551}

:root[data-theme="dark"] .group-card{background:var(--surface-soft);color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] .group-card strong,:root[data-theme="dark"] .group-card span{color:var(--text)}
:root[data-theme="dark"] .project-context{background:linear-gradient(135deg,rgba(28,155,224,.14),var(--surface));color:var(--text)}
:root[data-theme="dark"] .cache-local{background:#332b14;border-color:#6f5c20;color:#f4d77a}
:root[data-theme="dark"] .cache-fresh{background:#123222;border-color:#285f40;color:#a7e8bf}
:root[data-theme="dark"] input,:root[data-theme="dark"] textarea,:root[data-theme="dark"] select{background:var(--surface-soft);color:var(--text);border-color:var(--border)}

.device-key { display:block; margin-top:4px; color:var(--muted); font-weight:700; }
.ops-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ops-kpi-item{display:grid;gap:4px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.ops-kpi-item span{font-size:.72rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ops-kpi-item strong{font-size:1.35rem;font-variant-numeric:tabular-nums}
.ops-kpi-item small{color:var(--muted);line-height:1.35}
@media(max-width:900px){.ops-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ops-kpi-grid{grid-template-columns:1fr}}

/* Selección masiva del mismo canal en todos los dispositivos que lo contienen */
.channel-option-with-bulk { justify-content: space-between; gap: 12px; }
.channel-local-selection { display:flex; align-items:center; gap:8px; min-width:0; flex:1; cursor:pointer; }
.channel-local-selection span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.channel-bulk-button { flex:0 0 auto; width:auto; min-height:30px; padding:5px 9px; border-radius:6px; background:transparent; color:var(--primary); border:1px solid color-mix(in srgb,var(--primary) 45%,var(--border)); font-size:.78rem; font-weight:700; }
.channel-bulk-button:hover { background:color-mix(in srgb,var(--primary) 12%,transparent); }
.channel-bulk-button.selected { background:color-mix(in srgb,var(--primary) 18%,var(--surface-soft)); }
.selected-series-group { background:color-mix(in srgb,var(--primary) 8%,var(--surface-soft)); }
@media (max-width: 720px) {
  .channel-option-with-bulk { align-items:stretch; flex-direction:column; }
  .channel-bulk-button { width:100%; }
}

/* v9 — historical selector layout */
.history-filter-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
}
.history-filter-grid .filter-device-type { grid-column: span 2; }
.history-filter-grid .filter-device-group { grid-column: span 2; }
.history-filter-grid .filter-device { grid-column: span 2; }
.history-filter-grid .filter-range { grid-column: span 2; }
.history-filter-grid .filter-date { grid-column: span 2; }
.history-filter-grid .filter-overlay { grid-column: span 2; }
.history-filter-grid .filter-parallel { grid-column: span 1; }
.history-filter-grid .filter-field { min-width: 0; }
.history-filter-grid select,
.history-filter-grid input { min-width: 0; }
.history-day-search-status{display:flex;align-items:flex-start;gap:6px;margin-top:5px;color:var(--muted);font-size:.66rem;line-height:1.3}.history-day-search-status i{width:11px;height:11px;flex:0 0 auto;margin-top:1px;border:2px solid color-mix(in srgb,var(--primary) 28%,var(--border));border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.history-day-search-status span{min-width:0}
.filter-overlay>span{display:block;margin-bottom:6px}.daily-overlay-toggle{width:100%;min-height:40px;padding:6px 9px;display:flex;align-items:center;gap:9px;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}.daily-overlay-toggle:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.daily-overlay-toggle>i{position:relative;width:34px;height:19px;flex:0 0 auto;border-radius:999px;background:var(--border);transition:.18s ease}.daily-overlay-toggle>i b{position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.18s ease}.daily-overlay-toggle>span{display:grid;min-width:0;line-height:1.1}.daily-overlay-toggle strong{font-size:.78rem}.daily-overlay-toggle small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.daily-overlay-toggle.active{border-color:color-mix(in srgb,var(--primary) 65%,var(--border));background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.daily-overlay-toggle.active>i{background:var(--primary)}.daily-overlay-toggle.active>i b{transform:translateX(15px)}
.date-calendar-field{position:relative}.date-calendar-field>span{display:block;margin-bottom:6px}.date-calendar-trigger{width:100%;min-height:40px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:600}.date-calendar-trigger:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.date-calendar-trigger b{color:var(--primary);font-size:1rem}.availability-calendar{position:absolute;z-index:80;top:calc(100% + 7px);left:0;width:min(300px,calc(100vw - 32px));max-width:100vw;padding:12px;box-sizing:border-box;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 16px 42px rgba(15,23,42,.22);overflow:hidden}.date-calendar-field-end .availability-calendar{right:0;left:auto}.availability-calendar *{box-sizing:border-box}.availability-calendar-head{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:7px;margin-bottom:9px}.availability-calendar-head strong{min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.availability-calendar-head button{width:34px;min-width:0;height:32px;padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface-soft);color:var(--text);font-size:1.25rem}.availability-calendar-weekdays,.availability-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;min-width:0}.availability-calendar-weekdays span{min-width:0;overflow:hidden;text-align:center;color:var(--muted);font-size:.69rem;font-weight:750;text-transform:uppercase}.availability-calendar-days button{display:grid;place-items:center;width:100%;min-width:0;max-width:100%;aspect-ratio:1/1;padding:0;line-height:1;overflow:hidden;border:1px solid transparent;border-radius:7px;background:var(--surface-soft);color:var(--muted);font-size:.78rem}.availability-calendar-days button.has-data{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:color-mix(in srgb,var(--primary) 16%,var(--surface));color:var(--text);font-weight:750}.availability-calendar-days button.has-data:hover{background:color-mix(in srgb,var(--primary) 28%,var(--surface))}.availability-calendar-days button.selected{border-color:var(--primary);background:var(--primary);color:white}.availability-calendar-days button.outside-month{opacity:.45}.availability-calendar-days button.no-data{opacity:.32;cursor:not-allowed}.availability-calendar-legend{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid var(--border);font-size:.69rem;color:var(--muted)}.availability-calendar-legend span{display:flex;align-items:center;gap:5px;min-width:0}.availability-calendar-legend i{width:10px;height:10px;flex:0 0 auto;border-radius:3px;border:1px solid var(--border);background:var(--surface-soft)}.availability-calendar-legend span:first-child i{border-color:color-mix(in srgb,var(--primary) 50%,var(--border));background:color-mix(in srgb,var(--primary) 18%,var(--surface))}

.channel-grid {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    max-height: 360px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 2px 6px 2px 2px;
    align-items: stretch;
}
.channel-option-with-bulk {
    min-width: 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    overflow: hidden;
    gap: 0;
    background: var(--surface-soft);
}
.channel-option-with-bulk.channel-selected {
    border-color: color-mix(in srgb, var(--primary) 55%, var(--border));
    background: color-mix(in srgb, var(--primary) 7%, var(--surface-soft));
}
.channel-local-selection {
    min-width: 0;
    padding: 11px 12px;
    gap: 9px;
}
.channel-local-selection span {
    min-width: 0;
    font-size: .88rem;
    line-height: 1.2;
}
.channel-bulk-button {
    align-self: stretch;
    min-width: 74px;
    max-width: 102px;
    min-height: 100%;
    border: 0;
    border-left: 1px solid var(--border);
    border-radius: 0;
    padding: 6px 9px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    background: color-mix(in srgb, var(--primary) 8%, var(--surface-soft));
    color: var(--primary);
    white-space: normal;
    line-height: 1.05;
}
.channel-bulk-button:hover:not(:disabled) {
    background: color-mix(in srgb, var(--primary) 17%, var(--surface-soft));
}
.channel-bulk-button.selected {
    background: var(--primary);
    color: white;
}
.bulk-label { font-size: .70rem; font-weight: 800; }
.bulk-count { font-size: .70rem; opacity: .86; font-variant-numeric: tabular-nums; }

@media (max-width: 1180px) {
    .history-filter-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .history-filter-grid .filter-device-type,
    .history-filter-grid .filter-device-group,
    .history-filter-grid .filter-device,
    .history-filter-grid .filter-range,
    .history-filter-grid .filter-date,
    .history-filter-grid .filter-overlay { grid-column: span 2; }
    .history-filter-grid .filter-parallel { grid-column: span 1; }
}
@media (max-width: 760px) {
    .container-row { align-items: stretch; flex-direction: column; }
    .history-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .history-filter-grid .filter-device-type,
    .history-filter-grid .filter-device-group,
    .history-filter-grid .filter-device,
    .history-filter-grid .filter-range,
    .history-filter-grid .filter-date,
    .history-filter-grid .filter-overlay { grid-column: span 2; }
    .history-filter-grid .filter-parallel { grid-column: span 1; }
    .channel-grid { grid-template-columns: 1fr; max-height: 420px; }
}

/* AI structured diagnosis */
.ai-question-label{display:block;margin:0 0 6px;font-size:.82rem;font-weight:700;color:var(--text)}
.ai-diagnosis{margin-top:12px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface)}
.ai-summary{margin:12px;padding:12px 14px;border-left:4px solid #64748b;border-radius:8px;background:var(--surface-2)}
.ai-summary>span{display:inline-block;font-size:.74rem;font-weight:800;text-transform:uppercase;margin-bottom:5px}
.ai-summary p{margin:0;line-height:1.5;color:var(--text)}
.ai-status-ok{border-left-color:#16a34a}.ai-status-ok>span{color:#15803d}
.ai-status-warning{border-left-color:#d97706}.ai-status-warning>span{color:#b45309}
.ai-status-critical{border-left-color:#dc2626}.ai-status-critical>span{color:#b91c1c}
.ai-section{padding:0 14px 14px}.ai-section h4{margin:8px 0 7px;font-size:.92rem}.ai-section ul{margin:0;padding-left:20px;display:grid;gap:6px}.ai-section li{line-height:1.45;color:var(--text)}
.ai-actions-list{display:grid;gap:8px}.ai-action{display:grid;grid-template-columns:68px 1fr;gap:10px;align-items:start;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.ai-action>span{font-size:.72rem;font-weight:800;text-align:center;border-radius:999px;padding:4px 7px;background:rgba(100,116,139,.12)}
.ai-action div{display:grid;gap:3px;min-width:0}.ai-action strong{font-size:.88rem;line-height:1.4}.ai-action small{color:var(--muted);overflow-wrap:anywhere}
.ai-priority-high>span{color:#b91c1c;background:rgba(220,38,38,.1)}.ai-priority-medium>span{color:#b45309;background:rgba(217,119,6,.1)}.ai-priority-low>span{color:#15803d;background:rgba(22,163,74,.1)}
.ai-limitations{margin:0 12px 12px;padding:10px 12px;background:rgba(100,116,139,.08);border-radius:8px}.ai-limitations h4{margin-top:0}

.chart-performance-notice {
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: .9rem;
}

.chart-performance-notice strong {
    color: var(--text);
}

/* v14: gráfica al final y bloque plegable */
.chart-card-collapsible {
    overflow: hidden;
}

.chart-collapse-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .25rem;
}

.chart-collapse-header h2,
.chart-collapse-header p {
    margin: 0;
}

.chart-collapse-header p {
    margin-top: .3rem;
    color: var(--muted);
}

.chart-collapse-button {
    flex: 0 0 auto;
    min-width: 138px;
}

.chart-collapsible-content {
    margin-top: 1rem;
    border-top: 1px solid var(--border);
    padding-top: 1rem;
}

.chart-inner-header {
    justify-content: flex-end;
}

@media (max-width: 760px) {
    .chart-collapse-header {
        align-items: stretch;
        flex-direction: column;
    }

    .chart-collapse-button {
        width: 100%;
    }
}

.table-actions {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
}

.table-granularity {
    display: grid;
    gap: .3rem;
    min-width: 150px;
    color: var(--text);
    font-weight: 700;
}

.table-granularity select {
    min-height: 40px;
}

@media (max-width: 700px) {
    .table-actions,
    .table-granularity {
        width: 100%;
    }
}

.anomaly-example{margin:8px 0;padding:8px 10px;border-radius:8px;background:rgba(22,119,200,.08);border:1px solid rgba(22,119,200,.18);font-size:.84rem;line-height:1.45;color:var(--text)}.anomaly-example b{color:var(--primary)}
.anomaly-channel-description{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 9px;align-items:baseline;margin:8px 0;padding:9px 10px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--primary) 7%,var(--surface))}.anomaly-channel-description>span{font-size:.68rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase;color:var(--primary)}.anomaly-channel-description>strong{font-size:.84rem;font-weight:650;min-width:0;overflow-wrap:anywhere}.anomaly-channel-description>.anomaly-channel-name{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--text)}.anomaly-channel-description>small{grid-column:2;color:var(--muted);font-size:.7rem}@media(max-width:620px){.anomaly-channel-description{grid-template-columns:1fr}.anomaly-channel-description>small{grid-column:1}}


@media(max-width:1500px){.device-grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}}
@media(max-width:900px){.device-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}

/* v1.22: la confianza de clasificación se muestra solo bajo demanda. */
.confidence-tooltip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:5px;border:1px solid currentColor;border-radius:50%;font-size:.68rem;font-weight:800;line-height:1;cursor:help;vertical-align:middle;opacity:.85;outline:none}
.confidence-tooltip::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 9px);z-index:50;min-width:230px;max-width:290px;padding:8px 10px;border:1px solid var(--border,#dbe3ef);border-radius:8px;background:var(--surface,#fff);color:var(--text,#172033);box-shadow:0 8px 24px rgba(15,23,42,.20);font-size:.76rem;font-weight:500;line-height:1.35;text-align:left;white-space:normal;pointer-events:none;opacity:0;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease}
.confidence-tooltip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);z-index:51;width:8px;height:8px;border-right:1px solid var(--border,#dbe3ef);border-bottom:1px solid var(--border,#dbe3ef);background:var(--surface,#fff);opacity:0;transform:translateX(-50%) rotate(45deg);transition:opacity .14s ease}
.confidence-tooltip:hover::after,.confidence-tooltip:focus::after,.confidence-tooltip:hover::before,.confidence-tooltip:focus::before{opacity:1}
.confidence-tooltip:hover::after,.confidence-tooltip:focus::after{transform:translate(-50%,0)}

.language-selector{display:flex;align-items:center;gap:.45rem;min-width:0;flex:0 0 auto}
.language-selector .language-icon{font-size:1rem;opacity:.9}
.language-selector select{height:42px;width:190px;max-width:190px;padding:.45rem 2rem .45rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-soft);color:var(--text);font-weight:700;cursor:pointer}
.language-selector select:focus{outline:2px solid rgba(43,135,218,.35);outline-offset:1px}
@media(max-width:980px){
    .topbar-content{gap:14px}
    .topbar-right{gap:8px;flex:0 0 auto}
    .app-version{display:none}
    .global-catalog-search{width:min(320px,100%)}
    .language-selector .language-icon{display:none}
    .language-selector select{width:116px;max-width:116px;padding-left:.55rem;padding-right:1.65rem}
    .settings-button,.theme-toggle-button{width:42px;height:42px;padding:0;font-size:0;display:inline-flex;align-items:center;justify-content:center}
    .settings-button::after{content:"⚙";font-size:1.05rem}
    .theme-toggle-button::after{content:"◐";font-size:1.05rem}
}
@media(max-width:760px){
    .topbar-content{flex-wrap:wrap}
    .brand-block{flex:1 1 100%;width:100%}
    .brand-context-shell{flex:1;min-width:0}
    .global-catalog-search{width:100%}
    .topbar-right{width:100%;justify-content:flex-end}
    .topbar-right{gap:.45rem}
    .language-selector select{width:96px;max-width:96px}
    .header-project{display:none}
    .portfolio-scope-selector{min-width:170px;max-width:210px}
}

/* v1.25: identificación clara de versión y proyecto en cabecera. */
@media (max-width: 1050px) {
    .brand-logo { width: 175px; }
    .brand-context { gap: 6px; }
    .app-version, .header-project { padding: 6px 8px; }
}
@media (max-width: 850px) {
    .header-project { display: none; }
}
@media (max-width: 640px) {
    .app-version { display: none; }
    .brand-logo { width: 155px; }
    .portfolio-scope-selector{min-width:150px;max-width:180px}
    .portfolio-scope-selector .context-label{display:none}
}

/* v27: área completa de históricos al final y plegable */
.container-query-card { margin-bottom: 18px; }
.history-workbench {
    margin: 26px 0 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.history-workbench-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
}
.history-workbench-header h2 { margin: 2px 0 4px; }
.history-workbench-header p { margin: 0; color: var(--muted); }
.history-workbench-header .eyebrow {
    color: var(--accent);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .13em;
}
.history-workbench-toggle { min-width: 165px; flex: 0 0 auto; }
.history-workbench-content {
    padding: 20px 22px 22px;
    border-top: 1px solid var(--border);
    background: color-mix(in srgb, var(--surface) 96%, var(--accent) 4%);
}
.history-workbench-content > .metadata-summary { margin-top: 0; }
.history-workbench-content .table-card,
.history-workbench-content .chart-card { margin-left: 0; margin-right: 0; }
.history-page-title{align-items:flex-end}.history-project-selector{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(300px,1.15fr);align-items:end;gap:12px}.history-project-selector>label{display:grid;gap:6px}.history-project-selector>label select{width:100%}.history-project-selector>.operation-progress,.history-project-selector>.container-list-status,.history-project-selector>.history-inventory-status{grid-column:1/-1}.history-refresh-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.history-refresh-actions button{min-height:36px;white-space:nowrap}.history-dates-refresh{display:inline-flex;align-items:center;justify-content:center;gap:7px}.history-dates-refresh i{width:12px;height:12px;border:2px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}.history-source-refresh-note{display:grid;gap:3px;align-self:stretch;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.history-source-refresh-note strong{color:var(--accent);font-size:.72rem}.history-source-refresh-note span{color:var(--muted);font-size:.68rem;line-height:1.4}
.history-inventory-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.76rem}.history-inventory-status.success{border-color:color-mix(in srgb,#16a34a 52%,var(--border));background:color-mix(in srgb,#16a34a 9%,var(--surface));color:color-mix(in srgb,#16a34a 76%,var(--text))}.history-inventory-status.failed{border-color:color-mix(in srgb,#dc2626 48%,var(--border));background:color-mix(in srgb,#dc2626 8%,var(--surface));color:var(--danger)}.history-inventory-status button{display:grid;place-items:center;width:26px;height:26px;min-height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;font-size:1rem}
.history-inventory-status.warning{border-color:color-mix(in srgb,#d97706 55%,var(--border));background:color-mix(in srgb,#d97706 10%,var(--surface));color:color-mix(in srgb,#d97706 78%,var(--text))}
@media (max-width: 760px) {
    .history-workbench-header { align-items: stretch; flex-direction: column; }
    .history-workbench-toggle { width: 100%; }
    .history-workbench-content { padding: 14px; }
    .history-project-selector{grid-template-columns:1fr}.history-refresh-actions,.history-source-refresh-note{grid-column:auto;width:100%}.history-refresh-actions button{flex:1 1 180px}.history-page-title{align-items:flex-start;flex-direction:column}
}

/* v1.28: extremos por canal y análisis de la gráfica con Qwen */
.ai-chart-button{border:0;border-radius:9px;padding:.62rem .9rem;background:linear-gradient(90deg,#6521c9,#2f83d8);color:#fff;font-weight:800;cursor:pointer;white-space:nowrap}.ai-chart-button:disabled{opacity:.62;cursor:wait}
.chart-extrema{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(255px,320px);gap:10px;overflow-x:auto;padding:4px 1px 12px;margin:4px 0 10px;scrollbar-width:thin}.chart-extrema-item{position:relative;display:grid;gap:4px;padding:10px 12px 10px 15px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);min-width:0}.chart-extrema-item:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:10px 0 0 10px;background:var(--series-color)}.chart-extrema-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-extrema-item span{display:flex;justify-content:space-between;gap:9px;font-size:.82rem}.chart-extrema-item small{color:var(--muted);white-space:nowrap}
.chart-ai-panel{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:13px;background:var(--surface-soft)}.chart-ai-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.chart-ai-header h3{margin:1px 0}.chart-ai-header>span{color:var(--muted);font-size:.82rem}.chart-ai-panel textarea{width:100%;resize:vertical;min-height:58px;margin-bottom:10px}.chart-ai-diagnosis{margin-top:12px;padding:14px;border-left:4px solid var(--muted);border-radius:10px;background:var(--surface)}.chart-ai-diagnosis.status-ok{border-left-color:#2da44e}.chart-ai-diagnosis.status-warning{border-left-color:#d97706}.chart-ai-diagnosis.status-critical{border-left-color:#dc2626}.chart-ai-diagnosis h4{margin:0 0 10px}.chart-ai-diagnosis h5{margin:13px 0 6px}.chart-ai-diagnosis ul{margin:0;padding-left:21px}.chart-ai-actions{display:grid;gap:8px}.chart-ai-action{display:grid;grid-template-columns:64px 1fr;gap:6px 10px;padding:10px;border:1px solid var(--border);border-radius:9px}.chart-ai-action b{font-size:.72rem}.chart-ai-action small{grid-column:2;color:var(--muted)}.chart-ai-action.priority-high b{color:#dc2626}.chart-ai-action.priority-medium b{color:#d97706}.chart-ai-action.priority-low b{color:#2da44e}
@media(max-width:700px){.chart-ai-header{align-items:flex-start;flex-direction:column}.chart-ai-action{grid-template-columns:1fr}.chart-ai-action small{grid-column:1}}

/* Mantiene ambas tarjetas de diagnóstico con la misma altura dinámica. */
.om-grid-two { align-items: stretch; }
.om-grid-two > .panel-card { height: 100%; }
.anomaly-ai-layout.ai-panel-collapsed{grid-template-columns:minmax(0,1fr)}
.ai-panel-heading-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.ai-panel-heading-actions>span{font-size:.78rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 9px;white-space:nowrap}.ai-panel-heading-actions>button{padding:5px 9px;font-size:.72rem}.ai-panel-restore{white-space:nowrap}
.anomaly-panel, .ai-panel { display: flex; flex-direction: column; min-height: 0; }
.anomaly-panel { scroll-margin-top: 110px; }

.security-audit-actions{display:grid;gap:8px;min-width:min(100%,680px)}.security-audit-export{display:grid;grid-template-columns:auto minmax(230px,1fr) auto;gap:7px}.security-audit-export input{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.security-audit-export-status{margin:10px 14px 0;padding:9px 11px;border-left:3px solid var(--accent);border-radius:0 7px 7px 0;background:var(--surface-2);font-size:.75rem}@media(max-width:760px){.security-audit-export{grid-template-columns:1fr}.security-audit-actions{width:100%;min-width:0}}
.anomaly-panel,
.anomaly-panel .anomaly-list,
.anomaly-panel .anomaly-item { min-width: 0; max-width: 100%; }
.anomaly-panel .anomaly-list {
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1fr);
  max-height: none;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
}
.anomaly-panel .anomaly-item { overflow: hidden; }
.anomaly-panel .anomaly-head,
.anomaly-panel .anomaly-actions,
.anomaly-panel .anomaly-feedback-actions { min-width: 0; }
.anomaly-panel .anomaly-item p,
.anomaly-panel .anomaly-item small,
.anomaly-panel .anomaly-item strong,
.anomaly-panel .anomaly-since-result { overflow-wrap: anywhere; }
.anomaly-panel .anomaly-actions button,
.anomaly-panel .anomaly-feedback-actions button {
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.ai-panel .ai-diagnosis { flex: 0 0 auto; }

/* O&M operations workbench */
.ops-workbench{margin-top:18px}.ops-title{align-items:flex-start}.ops-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.ops-tabs button{background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:9px 14px;border-radius:10px}.ops-tabs button:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 10%,var(--surface));border-color:color-mix(in srgb,var(--primary) 45%,var(--border));color:var(--primary-strong)}.ops-tabs button.active,.ops-tabs button.active:hover,.ops-tabs button.active:focus-visible{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 24%,transparent)}.ops-tabs button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 25%,transparent);outline-offset:2px}.ops-toolbar,.ops-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.ops-form input,.ops-form select,.knowledge-form input,.knowledge-form textarea,.incident-controls input,.incident-controls select,.comment-box input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px}.incident-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}.incident-card{background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:12px;padding:14px}.incident-card.priority-high{border-left-color:#dc3545}.incident-card.priority-medium{border-left-color:#d98213}.incident-card.priority-low{border-left-color:#2d9d78}.incident-head{display:flex;justify-content:space-between;gap:12px}.incident-head div{min-width:0}.incident-head strong,.incident-head small{display:block}.incident-head small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.incident-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.incident-comments{margin:10px 0;display:grid;gap:6px}.incident-comments>div{background:var(--surface);padding:8px;border-radius:8px;font-size:.9rem}.comment-box{display:flex;gap:6px}.comment-box input{flex:1}.baseline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.baseline-card{border:1px solid var(--border);border-left:4px solid #2d9d78;border-radius:10px;padding:12px;background:var(--surface-2);display:grid;gap:5px}.baseline-card.status-warning{border-left-color:#d98213}.baseline-card.status-critical{border-left-color:#dc3545}.timeline-list{position:relative;padding-left:18px}.timeline-list:before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--border)}.timeline-entry{position:relative;display:grid;grid-template-columns:140px 220px 1fr;gap:10px;padding:10px 0}.timeline-entry:before{content:"";position:absolute;left:-16px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.timeline-entry time{color:var(--muted)}.knowledge-form{display:grid;gap:10px}.knowledge-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:14px}.knowledge-list>div,.cache-projects>div{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:12px}.knowledge-list span,.cache-projects span,.cache-projects small{display:block;color:var(--muted)}.cache-summary{display:grid;gap:4px;padding:14px;background:var(--surface-2);border-radius:10px}.cache-summary strong{font-size:1.7rem}.cache-projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:12px}.danger-button{background:#7d2331!important}.ops-workbench table{width:100%}
@media(max-width:760px){.timeline-entry{grid-template-columns:1fr}.incident-board{grid-template-columns:1fr}}
.chart-annotation-panel{display:grid;grid-template-columns:minmax(220px,1fr) minmax(210px,260px) minmax(220px,1fr) auto;gap:10px;align-items:center;padding:12px 14px;margin-top:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.chart-annotation-panel div{display:grid}.chart-annotation-panel small{color:var(--muted)}.chart-annotation-panel input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:9px;border-radius:8px}@media(max-width:850px){.chart-annotation-panel{grid-template-columns:1fr}}
.signal-profile-table{max-height:520px}.signal-profile-table input[type=text],.signal-profile-table input[type=number],.signal-profile-table select{min-width:110px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px}.signal-profile-table td{white-space:nowrap}
.view-configured-range-button{border:1px solid color-mix(in srgb,#7c3aed 55%,var(--border));background:color-mix(in srgb,#7c3aed 10%,var(--surface));color:color-mix(in srgb,#7c3aed 78%,var(--text))}.view-configured-range-button:hover{background:color-mix(in srgb,#7c3aed 18%,var(--surface))}.focused-signal-range-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:11px 13px;border:1px solid color-mix(in srgb,#7c3aed 38%,var(--border));border-radius:10px;background:color-mix(in srgb,#7c3aed 8%,var(--surface))}.focused-signal-range-banner>div{display:grid;gap:3px}.focused-signal-range-banner span{color:var(--muted);font-size:.8rem}.signal-profile-table tr.signal-row-focused td{background:color-mix(in srgb,#7c3aed 14%,var(--surface));border-top:2px solid #7c3aed;border-bottom:2px solid #7c3aed}.signal-profile-table tr.signal-row-focused td:first-child{border-left:2px solid #7c3aed}.signal-profile-table tr.signal-row-focused td:last-child{border-right:2px solid #7c3aed}@media(max-width:650px){.focused-signal-range-banner{align-items:stretch;flex-direction:column}}
.deadband-help{display:flex;align-items:flex-start;gap:12px;margin:8px 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))}.deadband-help strong{white-space:nowrap;font-size:.84rem}.deadband-help span{color:var(--muted);font-size:.8rem;line-height:1.45}

.chart-ai-compose-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.chart-ai-compose-actions .ai-chart-button{flex:1 1 260px}.chart-ai-conversation{display:grid;gap:12px;margin:0 0 14px;max-height:680px;overflow:auto;padding-right:4px}.chart-chat-message{display:grid;gap:6px}.chart-chat-user{justify-self:end;max-width:min(82%,900px);padding:10px 13px;border-radius:12px 12px 3px 12px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border))}.chart-chat-user strong{font-size:.76rem;color:var(--accent)}.chart-chat-user span{white-space:pre-wrap}.chart-chat-assistant{width:100%}.chart-chat-assistant .chart-ai-diagnosis{margin-top:0}.chart-ai-conversation::-webkit-scrollbar{width:9px}.chart-ai-conversation::-webkit-scrollbar-thumb{background:var(--border);border-radius:9px}@media(max-width:700px){.chart-chat-user{max-width:96%}}

/* O&M panel visibility controls */
.om-panels-toggle{white-space:nowrap}
.om-panels-collapsed{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px rgba(15,23,42,.05)}
.om-panels-collapsed strong{font-size:1rem}
.om-panels-collapsed span{color:var(--muted);flex:1;min-width:240px}
.om-panels-collapsed button{margin-left:auto}
@media(max-width:800px){.om-panels-collapsed{align-items:stretch;flex-direction:column}.om-panels-collapsed button{margin-left:0;width:100%}}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:12px}.settings-card{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:14px;display:grid;gap:10px}.settings-card h4{margin:0}.settings-card p,.settings-card small{margin:0;color:var(--muted);line-height:1.45}.settings-card label{display:grid;gap:5px;font-size:.84rem;color:var(--muted);font-weight:700}.settings-card input{width:100%}.settings-card .check-row{display:flex;align-items:center;gap:8px}.settings-card .check-row input{width:auto}
.annotation-status{display:inline-flex;align-items:center;color:var(--muted);font-size:.82rem;padding-left:8px}.om-ai-conversation{max-height:420px;overflow:auto;margin-bottom:12px}.chart-ai-header small{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}.chart-ai-compose-actions .ai-button{flex:1}
.settings-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.55);backdrop-filter:blur(4px);z-index:80}
.settings-drawer{position:fixed;right:18px;top:18px;bottom:18px;width:min(760px,calc(100vw - 36px));z-index:81;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.35);padding:22px;display:flex;flex-direction:column;gap:18px;overflow:auto}
.settings-drawer-header,.settings-drawer-footer{display:flex;justify-content:space-between;gap:16px;align-items:center}
.settings-drawer-header h2{margin:.15rem 0;font-size:1.6rem}.settings-drawer-header p{margin:0;color:var(--muted)}
.settings-close{width:40px;height:40px;padding:0;border-radius:12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);font-size:1.5rem;font-family:Arial,sans-serif;font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.win-settings-list{display:grid;gap:14px}
.win-settings-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;align-items:start;padding:18px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,var(--surface-2),var(--surface));box-shadow:0 8px 24px rgba(15,23,42,.08)}
.win-settings-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(22,119,200,.14);font-size:1.45rem}
.win-settings-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.win-settings-title h3{margin:0 0 4px}.win-settings-title p{margin:0;color:var(--muted)}.win-settings-title span{border:1px solid var(--border);border-radius:999px;padding:5px 10px;color:var(--muted);white-space:nowrap;background:var(--surface)}
.about-settings-card .win-settings-icon{background:linear-gradient(145deg,#0879bc,#1ba5dc);color:#fff;font-size:.88rem;font-weight:900;letter-spacing:.02em}.about-company-details{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(230px,1.15fr);gap:16px}.about-company-identity,.about-company-details address{display:grid;align-content:start;gap:5px}.about-company-identity span,.about-company-details address span{color:var(--muted);font-size:.78rem;line-height:1.45}.about-company-details address{margin:0;font-style:normal}.about-company-details address a{width:max-content;color:var(--accent);font-size:.8rem;font-weight:700;text-decoration:none}.about-company-details address a:hover{text-decoration:underline}.about-build-details{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.about-build-details>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.about-build-details dt{color:var(--muted);font-size:.7rem;font-weight:700}.about-build-details dd{margin:0;font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums}
.settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-form-grid label{display:grid;gap:5px;color:var(--muted);font-weight:700}.settings-form-grid input{width:100%}.settings-wide{grid-column:1/-1}.settings-message{padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}
.collapsible-title button{align-self:start}.operations-shell{padding:0}.operations-shell>.panel-title{padding:18px 18px 0}.operations-shell>.ops-workbench{border:0;box-shadow:none;margin:0}.values-table-collapsible .table-header{align-items:center}.om-chart-interactive{position:relative}.om-chart-tooltip{position:absolute;right:12px;top:12px;z-index:2;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px;box-shadow:0 18px 40px rgba(0,0,0,.25);display:grid;gap:6px}.om-chart-tooltip div{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;font-size:.78rem}.hover-line{stroke:var(--text);stroke-width:1.5;stroke-dasharray:4 3;opacity:.75}
@media(max-width:720px){.settings-form-grid{grid-template-columns:1fr}.win-settings-card{grid-template-columns:1fr}.win-settings-title{flex-direction:column}.settings-drawer{right:8px;left:8px;width:auto}}
@media(max-width:720px){.about-company-details,.about-build-details{grid-template-columns:1fr}.about-build-details{grid-column:auto}}

@media (orientation:landscape) and (max-height:500px) and (min-width:601px) and (max-width:1000px){
  .topbar-content{min-height:58px;padding-top:6px;padding-bottom:6px;gap:8px}
  .brand-block{flex:1 1 auto;gap:8px;overflow:hidden}
  .brand-logo{width:108px;height:44px}
  .brand-context{flex:1 1 auto;gap:5px;overflow:hidden}
  .brand-context-shell{display:flex;align-items:center;gap:5px;flex:1 1 auto;overflow:visible}
  .global-catalog-search{width:190px;flex:0 1 190px}
  .global-catalog-search>label{height:32px}
  .header-project{display:inline-flex;flex:1 1 105px;max-width:145px;min-width:78px;padding:5px 7px}
  .header-project .context-label{display:none}
  .portfolio-scope-selector{flex:1 1 130px;min-width:125px;max-width:175px;height:32px;padding-left:7px}
  .portfolio-scope-selector .context-label{display:none}
  .topbar-right{flex:0 0 auto;gap:5px}
  .language-selector{gap:0}
  .language-selector .language-icon{display:none}
  .language-selector select{width:72px;max-width:72px;height:34px;padding:4px 18px 4px 6px;font-size:.69rem}
  .live-clock strong{display:none}.live-clock span{font-size:.78rem}
  .topbar-icon-button,.settings-button,.theme-toggle-button{width:34px;min-width:34px;height:34px;min-height:34px}
  .session-user{width:36px;height:36px;min-height:36px;padding:3px}
  .session-user>div,.account-chevron{display:none}
  .session-avatar{width:28px!important;height:28px!important}
}
.settings-help{display:block;color:var(--muted);font-size:.8rem;margin-top:10px}.chart-ai-last-question{margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-size:.85rem}.chart-ai-last-question b{color:var(--text);margin-right:6px}
.storage-current-location{display:grid;gap:4px;margin-bottom:12px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);min-width:0}.storage-current-location small,.storage-current-location span{color:var(--muted);font-size:.78rem}.storage-current-location strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.storage-actions{flex-wrap:wrap}.storage-migration-status{display:grid;gap:7px;margin-top:12px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.storage-migration-status>div{display:flex;justify-content:space-between;gap:12px}.storage-migration-status progress{width:100%;height:9px;accent-color:var(--accent)}.storage-migration-status small{color:var(--muted)}.storage-migration-status.has-error{border-color:#ef4444}.storage-error{color:#ef4444;font-size:.82rem}.storage-restart{color:var(--text);font-size:.82rem;line-height:1.45}
.data-source-settings-card{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.data-source-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.data-source-option{display:grid;grid-template-columns:auto 1fr;gap:4px 9px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}.data-source-option.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.data-source-option input{grid-row:1/3}.data-source-option small{color:var(--muted)}.mysql-settings-grid{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.mysql-discovery-result{display:grid;gap:7px;margin-top:12px;padding:12px;border:1px solid color-mix(in srgb,#16845b 45%,var(--border));border-radius:12px;background:color-mix(in srgb,#16845b 7%,var(--surface))}.mysql-discovery-result>small{color:var(--muted)}.mysql-discovery-result>div{display:flex;justify-content:space-between;gap:12px;padding-top:7px;border-top:1px solid var(--border)}.mysql-discovery-result>div span{color:var(--muted);font-size:.82rem}@media(max-width:620px){.data-source-options{grid-template-columns:1fr}.mysql-discovery-result>div{flex-direction:column}}
.incident-preview-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:10px 0 8px;color:var(--muted);font-size:.9rem}
.incident-preview-summary strong{color:var(--text)}
.incident-board{max-height:min(72vh,820px);overflow-y:auto;overflow-x:hidden;padding-right:8px;scrollbar-gutter:stable}
.incident-board::-webkit-scrollbar{width:10px}
.incident-board::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}

.incident-preview-summary .secondary-button{padding:6px 10px;font-size:.85rem}

.incident-head-actions{display:flex;align-items:center;gap:8px}
.delete-incident-button{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-weight:900;line-height:1}
.delete-incident-button:hover{background:#7f1d1d;color:#fff;border-color:#dc2626}

.incident-head{align-items:flex-start}
.incident-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none;max-width:45%}
.dismissible-message{display:flex;align-items:center;justify-content:space-between;gap:12px}.success-message{margin:12px 0;padding:11px 13px;border:1px solid color-mix(in srgb,#16845b 48%,var(--border));border-radius:10px;background:color-mix(in srgb,#16845b 10%,var(--surface));color:color-mix(in srgb,#16845b 78%,var(--text))}.dismissible-message span{flex:1}.dismissible-message button{width:28px;height:28px;padding:0;display:grid;place-items:center;border:1px solid currentColor;border-radius:7px;background:transparent;color:inherit;font-size:1.15rem;line-height:1}
.recalibrate-range-button{background:color-mix(in srgb,#8b5cf6 82%,#111827)!important;color:#fff!important;border:1px solid color-mix(in srgb,#a78bfa 70%,transparent)!important}.recalibrate-range-button:hover{background:#7c3aed!important}.recalibrate-range-button:disabled{opacity:.65}
.equivalent-anomaly-backdrop{position:fixed;inset:0;z-index:1740;background:rgba(2,6,23,.68);backdrop-filter:blur(3px)}.equivalent-anomaly-dialog{position:fixed;z-index:1741;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 28px));display:grid;gap:14px;padding:20px;border:1px solid var(--border);border-radius:15px;background:var(--surface);box-shadow:0 28px 90px rgba(0,0,0,.48)}.equivalent-anomaly-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.equivalent-anomaly-dialog>header>div{display:grid;gap:4px;min-width:0}.equivalent-anomaly-dialog>header span{color:var(--accent);font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.equivalent-anomaly-dialog h2,.equivalent-anomaly-dialog p{margin:0}.equivalent-anomaly-dialog h2{font-size:1.2rem}.equivalent-anomaly-dialog>header button{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;font-size:1.15rem}.equivalent-anomaly-dialog>p{color:var(--muted);font-size:.82rem;line-height:1.5}.equivalent-anomaly-dialog dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.equivalent-anomaly-dialog dl>div{display:grid;gap:4px;min-width:0;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.equivalent-anomaly-dialog dt{color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.equivalent-anomaly-dialog dd{margin:0;overflow-wrap:anywhere;font-size:.8rem;font-weight:750}.equivalent-anomaly-note{padding:10px 12px;border-left:3px solid #8b5cf6;border-radius:0 8px 8px 0;background:color-mix(in srgb,#8b5cf6 8%,var(--surface-2));color:var(--muted);font-size:.78rem;line-height:1.45}.equivalent-anomaly-dialog>footer{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.equivalent-anomaly-dialog>footer button{min-height:38px}@media(max-width:620px){.equivalent-anomaly-dialog{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:90dvh;overflow:auto;border-radius:18px 18px 0 0;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.equivalent-anomaly-dialog dl{grid-template-columns:1fr}.equivalent-anomaly-dialog>footer{display:grid;grid-template-columns:1fr}.equivalent-anomaly-dialog>footer button{width:100%}}
.tracker-history-scope-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0 14px;padding:11px 13px;border:1px solid color-mix(in srgb,#0ea5e9 38%,var(--border));border-radius:10px;background:color-mix(in srgb,#0ea5e9 8%,var(--surface));color:var(--text)}.tracker-history-scope-note div{display:grid;gap:3px}.tracker-history-scope-note strong{font-size:.82rem}.tracker-history-scope-note span,.tracker-history-scope-note small{font-size:.74rem;color:var(--muted)}.tracker-history-scope-note small{max-width:360px;text-align:right}@media(max-width:720px){.tracker-history-scope-note{align-items:flex-start;flex-direction:column}.tracker-history-scope-note small{text-align:left}}
.anomaly-resolution-history{margin:12px 0 16px;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.anomaly-resolution-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.anomaly-resolution-history-head>div:first-child{display:grid;gap:2px}.anomaly-resolution-history-head small{color:var(--muted);font-weight:400}.anomaly-resolution-history-controls{display:flex;align-items:center;gap:7px}.anomaly-resolution-history-controls>span{padding:4px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.74rem;white-space:nowrap}.anomaly-resolution-history-controls .secondary-button{min-height:30px;padding:5px 9px;font-size:.74rem}.anomaly-resolution-export{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:8px;align-items:center;margin-bottom:10px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.anomaly-resolution-export input{min-width:0;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--input-bg);color:var(--text)}.anomaly-resolution-export-status{margin:0 0 10px;padding:8px 10px;border-left:3px solid var(--accent);border-radius:0 7px 7px 0;background:var(--surface-2);font-size:.78rem}.anomaly-resolution-list{display:grid;gap:9px;max-height:520px;overflow:auto;padding-right:3px}.anomaly-resolution-item{display:grid;gap:6px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.anomaly-resolution-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.anomaly-resolution-title time{color:var(--muted);font-size:.72rem}.resolution-kind{display:inline-flex;width:max-content;padding:3px 7px;border-radius:999px;font-size:.69rem;font-weight:700;letter-spacing:.01em}.resolution-kind-range{color:#6d28d9;background:color-mix(in srgb,#8b5cf6 13%,var(--surface));border:1px solid color-mix(in srgb,#8b5cf6 35%,var(--border))}.resolution-kind-normality{color:#047857;background:color-mix(in srgb,#10b981 12%,var(--surface));border:1px solid color-mix(in srgb,#10b981 34%,var(--border))}.resolution-kind-suppressed{color:#9a5b08;background:color-mix(in srgb,#f59e0b 13%,var(--surface));border:1px solid color-mix(in srgb,#f59e0b 36%,var(--border))}.resolution-kind-resolved{color:#2563eb;background:color-mix(in srgb,#3b82f6 12%,var(--surface));border:1px solid color-mix(in srgb,#3b82f6 34%,var(--border))}.anomaly-resolution-item>small{color:var(--muted)}.anomaly-resolution-item>p{margin:1px 0;color:var(--text);font-size:.8rem}.anomaly-resolution-result{padding:7px 9px;border-left:3px solid color-mix(in srgb,var(--accent) 65%,transparent);border-radius:0 7px 7px 0;background:var(--surface-2);font-size:.78rem}.anomaly-resolution-range{color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}@media(max-width:700px){.anomaly-resolution-history-head,.anomaly-resolution-title{align-items:stretch;flex-direction:column}.anomaly-resolution-history-controls{justify-content:space-between}.anomaly-resolution-export{grid-template-columns:1fr}.anomaly-resolution-title time{order:-1}.anomaly-resolution-list{max-height:440px}}
.anomaly-type-filter{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.78rem;font-weight:700}.anomaly-type-filter select{min-width:190px;max-width:280px;padding:7px 30px 7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font-weight:500}@media(max-width:700px){.anomaly-type-filter{width:100%;align-items:stretch;flex-direction:column}.anomaly-type-filter select{min-width:0;max-width:none;width:100%}}
.generation-source-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.generation-source-badges span{padding:4px 8px;border:1px solid var(--border);border-radius:999px;font-size:.72rem;font-weight:800}.generation-source-badges .source-stored{color:#08785a;border-color:color-mix(in srgb,#08785a 45%,var(--border));background:color-mix(in srgb,#08785a 9%,var(--surface))}.generation-source-badges .source-calculated{color:#8a5a08;border-color:color-mix(in srgb,#b7791f 45%,var(--border));background:color-mix(in srgb,#b7791f 9%,var(--surface))}
.data-report-builder{margin-bottom:16px}.report-presets{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.report-presets button{font-size:.86rem}.report-clear-button{background:var(--surface);color:var(--muted);border:1px solid var(--border)}.data-report-filters{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;margin:12px 0}.data-report-filters label{display:grid;gap:5px;color:var(--muted);font-size:.8rem;font-weight:700}.data-report-filters select,.data-report-filters input{width:100%;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px}.report-channel-list{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:12px 0;max-height:420px;overflow-y:auto}.report-channel-head{display:flex;justify-content:space-between;gap:15px;padding:11px 13px;background:var(--surface-2);position:sticky;top:0;z-index:1}.report-channel-head span{color:var(--muted);font-size:.8rem}.report-channel-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 13px;border-top:1px solid var(--border)}.report-channel-row>label{display:flex;align-items:center;gap:9px;min-width:0}.report-channel-row label span{display:grid;min-width:0}.report-channel-row small{color:var(--muted)}.report-channel-row button{white-space:nowrap;font-size:.78rem;padding:6px 9px}.selected-report-signals{display:flex;gap:6px;flex-wrap:wrap;max-height:160px;overflow:auto;margin:10px 0}.selected-report-signals>span{display:inline-flex;align-items:center;gap:6px;max-width:310px;padding:6px 8px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:999px;font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-report-signals button{padding:0;border:0;background:transparent;color:var(--muted);font-size:1rem}.report-send-form input{min-width:220px;flex:1}.report-send-form button{white-space:nowrap}
@media(max-width:900px){.data-report-filters{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:600px){.data-report-filters{grid-template-columns:1fr}.report-channel-row,.report-channel-head{align-items:stretch;flex-direction:column}.report-channel-row button{white-space:normal}.report-send-form{align-items:stretch;flex-direction:column}.report-send-form input,.report-send-form button{width:100%}}
.incident-head-actions>span{white-space:nowrap}
.delete-incident-button{width:auto!important;height:auto!important;min-width:0;border-radius:999px!important;border:1px solid var(--border)!important;background:var(--surface)!important;color:var(--muted)!important;font-size:.78rem!important;font-weight:800!important;line-height:1.1!important;padding:6px 10px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap}
.delete-incident-button:hover{background:#7f1d1d!important;color:#fff!important;border-color:#dc2626!important}
@media(max-width:720px){.incident-head{flex-direction:column}.incident-head-actions{max-width:none;width:100%;justify-content:space-between}}

/* v1.34.85: operations command center */
.ops-command-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 4px}
.ops-command-kpi{display:grid;gap:4px;min-width:0;padding:12px 13px;border:1px solid var(--border);border-left:4px solid #64748b;border-radius:10px;background:var(--surface-2)}
.ops-command-kpi span{font-size:.72rem;font-weight:850;text-transform:uppercase;color:var(--muted);letter-spacing:.035em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-command-kpi strong{font-size:1.45rem;line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ops-command-kpi small{color:var(--muted);line-height:1.3}
.ops-command-kpi.status-ok{border-left-color:#16a34a}.ops-command-kpi.status-warning{border-left-color:#d97706}.ops-command-kpi.status-critical{border-left-color:#dc2626}
.ops-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.8fr);gap:12px;align-items:start}
.ops-priority-panel,.ops-mini-panel{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);min-width:0}
.ops-priority-panel{grid-row:span 2}
.ops-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ops-section-title h4{margin:0 0 4px;font-size:1rem}.ops-section-title p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.35}
.ops-action-list{display:grid;gap:8px}
.ops-action-card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-left:4px solid #64748b;border-radius:10px;background:var(--surface)}
.ops-action-card.status-warning{border-left-color:#d97706}.ops-action-card.status-critical{border-left-color:#dc2626}.ops-action-card.status-ok{border-left-color:#16a34a}
.ops-action-card>b{font-size:.72rem;text-transform:uppercase;color:var(--muted);text-align:center;border:1px solid var(--border);border-radius:999px;padding:5px 7px;background:var(--surface-2)}
.ops-action-card strong,.ops-action-card span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-action-card span{color:var(--muted);font-size:.82rem;margin-top:2px}
.ops-health-bars{display:grid;gap:10px}.ops-health-bars div{display:grid;gap:5px}.ops-health-bars span{color:var(--muted);font-size:.8rem}.ops-health-bars b{font-variant-numeric:tabular-nums}.ops-health-bars i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,var(--accent) var(--ops-percent),var(--border) var(--ops-percent))}
.ops-signal-audit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ops-signal-audit span,.ops-mini-kpis span{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.83rem}.ops-signal-audit b,.ops-mini-kpis b{color:var(--text);font-variant-numeric:tabular-nums}
.compact-toolbar{margin:0}.ops-filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.ops-filter-row input,.ops-filter-row select{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px}.ops-filter-row input{min-width:min(420px,100%);flex:1}.ops-filter-row span{color:var(--muted);font-weight:800}
.ops-mini-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.ops-check{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-weight:750;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--surface-2)}
.signal-profile-toggle{min-width:0;cursor:pointer}.signal-profile-toggle input[type=checkbox]{appearance:auto;flex:0 0 18px;width:18px!important;height:18px!important;min-width:18px;margin:0;padding:0;accent-color:var(--accent)}.signal-profile-toggle span{min-width:0;line-height:1.3;overflow-wrap:anywhere}
.signal-row-incomplete{background:rgba(217,119,6,.10)}.signal-row-incomplete td:first-child{border-left:4px solid #d97706}
.cache-current-project{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent)}
@media(max-width:1050px){.ops-command-strip,.ops-mini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-overview-grid{grid-template-columns:1fr}.ops-priority-panel{grid-row:auto}}
@media(max-width:680px){.ops-command-strip,.ops-mini-kpis,.ops-signal-audit{grid-template-columns:1fr}.ops-section-title,.ops-action-card{grid-template-columns:1fr;align-items:stretch}.ops-action-card strong,.ops-action-card span{white-space:normal}.ops-action-card>button{width:100%}}

.chart-annotation-list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;color:var(--muted)}
.chart-annotation-list>strong{width:100%;color:var(--text);font-size:.9rem}
.annotation-chip{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:999px;padding:6px 10px;max-width:360px}
.annotation-chip span{color:var(--muted);font-size:.8rem}
.annotation-chip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.annotation-chip:hover{border-color:var(--warning);color:var(--warning)}
.muted-annotation-list{opacity:.88}

.anomaly-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}
.anomaly-actions .secondary-button{font-size:.78rem;padding:6px 10px}
.graph-anomaly-button{padding:7px 10px!important;border:1px solid color-mix(in srgb,var(--primary) 55%,var(--border))!important;background:color-mix(in srgb,var(--primary) 14%,var(--surface))!important;color:var(--primary-strong)!important;font-size:.78rem!important}.graph-anomaly-button:hover{background:color-mix(in srgb,var(--primary) 24%,var(--surface))!important}
.anomaly-since-result{margin-top:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.82rem;line-height:1.4}
.anomaly-feedback-box{display:grid;gap:9px;margin-bottom:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.anomaly-feedback-box label{font-size:.86rem;color:var(--text)}
.anomaly-feedback-box textarea{width:100%;resize:vertical;min-height:72px;background:var(--input-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 11px}
.anomaly-feedback-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.anomaly-feedback-actions small{color:var(--muted);line-height:1.35}
.anomaly-feedback-actions button{flex:0 0 auto}
.danger-lite-button{border-color:rgba(220,38,38,.45)!important;color:#dc2626!important}
@media(max-width:720px){.anomaly-feedback-actions{align-items:stretch;flex-direction:column}.anomaly-feedback-actions button{width:100%}}

.panel-title-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.panel-title-actions>span{border:1px solid var(--border);border-radius:999px;padding:5px 10px;color:var(--muted);background:var(--surface-2);font-size:.85rem}
.anomaly-load-more{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:12px;border-top:1px solid var(--border);margin-top:12px}.anomaly-load-more button{min-width:180px}.anomaly-load-more small{color:var(--muted);font-size:.8rem}

.project-map-panel{display:grid;gap:12px}
.project-map-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);gap:14px;align-items:stretch}
.project-map-frame{min-height:260px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.project-map-frame iframe{width:100%;height:100%;min-height:260px;border:0;display:block}
.project-map-canvas{position:relative;height:300px;cursor:grab;user-select:none;background:#dbeafe;touch-action:none}
.project-map-canvas:active{cursor:grabbing}
.project-map-canvas img{position:absolute;width:256px;height:256px;max-width:none;image-rendering:auto}
.project-map-canvas small{position:absolute;left:10px;bottom:10px;z-index:3;color:#0f172a;background:rgba(255,255,255,.86);border:1px solid rgba(15,23,42,.16);border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800}
.project-map-crosshair{position:absolute;left:50%;top:50%;width:18px;height:18px;z-index:3;transform:translate(-50%,-50%);background:#16a34a;border:3px solid #fff;border-radius:999px;box-shadow:0 0 0 2px rgba(15,23,42,.72),0 4px 12px rgba(15,23,42,.5)}
.project-map-crosshair:after{content:"";position:absolute;inset:3px;border-radius:999px;background:#22c55e}
.project-map-controls,.project-map-pan{position:absolute;z-index:4;display:grid;gap:5px}
.project-map-controls{right:10px;top:10px}
.project-map-pan{right:10px;bottom:10px;grid-template-columns:repeat(3,32px);grid-template-areas:". up ." "left . right" ". down ."}
.project-map-pan button:nth-child(1){grid-area:up}.project-map-pan button:nth-child(2){grid-area:left}.project-map-pan button:nth-child(3){grid-area:right}.project-map-pan button:nth-child(4){grid-area:down}
.project-map-controls button,.project-map-pan button{width:32px;height:32px;border-radius:8px;padding:0;background:rgba(15,23,42,.88);color:#fff;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 18px rgba(15,23,42,.22)}
.project-map-controls button:hover,.project-map-pan button:hover{background:#1677c8}
.project-location-editor{display:grid;gap:10px;align-content:start;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.project-location-editor label{display:grid;gap:6px;font-size:.78rem;font-weight:800;text-transform:uppercase;color:var(--muted)}
.project-location-editor small{color:var(--muted);line-height:1.35}
.project-location-editor .project-timezone-auto{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));color:var(--text);font-size:.75rem;font-weight:650;line-height:1.35;text-transform:none;cursor:pointer}.project-timezone-auto input{width:auto;margin-top:2px;accent-color:var(--primary)}.project-location-editor select:disabled{opacity:.72;cursor:not-allowed;background:var(--surface-soft)}
@media(max-width:800px){.project-map-grid{grid-template-columns:1fr}}

.device-chart-tile{display:grid;gap:8px}
.device-preview-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.78rem;min-height:18px}
.device-preview-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.device-preview-meta b{color:var(--text);font-weight:800;white-space:nowrap}
.device-mini-chart{width:100%;height:72px;border-radius:10px;background:linear-gradient(180deg,rgba(22,119,200,.06),rgba(22,119,200,.01));border:1px solid var(--border)}
.device-mini-chart.empty{display:grid;place-items:center;color:var(--muted);font-size:.82rem}
.device-mini-axis{stroke:var(--border);stroke-width:1}
.device-mini-line{stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.device-mini-line.status-ok{stroke:var(--success)}
.device-mini-line.status-warning{stroke:var(--warning)}
.device-mini-line.status-critical{stroke:var(--danger)}
.device-mini-line.status-unknown{stroke:var(--accent)}

.device-mini-line{stroke-width:3.2!important;stroke-linejoin:round;stroke-linecap:round;opacity:.95}
.device-mini-dot{stroke:var(--surface);stroke-width:1;opacity:.95}
.device-mini-dot.status-ok{fill:var(--success)}
.device-mini-dot.status-warning{fill:var(--warning)}
.device-mini-dot.status-critical{fill:var(--danger)}
.device-mini-dot.status-unknown{fill:var(--accent)}

.latest-board-panel{overflow:visible}
.latest-device-type-filter{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.78rem;font-weight:700}.latest-device-type-filter select{min-width:175px;padding:7px 30px 7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font-weight:500}@media(max-width:700px){.latest-device-type-filter{width:100%;align-items:stretch;flex-direction:column}.latest-device-type-filter select{width:100%;min-width:0}}
.sticky-panel-title{position:sticky;top:92px;z-index:15;margin:-18px -18px 14px;padding:18px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--border);border-radius:16px 16px 0 0;backdrop-filter:blur(10px);box-shadow:0 12px 24px rgba(15,23,42,.08)}
.latest-device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.latest-hidden-strip{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.84rem}
.latest-hidden-strip button{padding:7px 10px;font-size:.8rem}
.latest-device-card{display:grid;gap:12px;min-width:0;padding:14px;border:1px solid var(--border);border-left:4px solid #64748b;border-radius:12px;background:var(--surface-2)}
.latest-device-ok{border-left-color:#16a34a}.latest-device-warning{border-left-color:#d97706}.latest-device-critical{border-left-color:#dc2626}
.latest-device-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
.latest-device-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.latest-device-head small{display:block;min-height:16px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.latest-device-head>span{font-size:.7rem;font-weight:850;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.latest-device-head-actions{display:grid;gap:7px;justify-items:end}
.latest-device-head-actions span{font-size:.7rem;font-weight:850;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.latest-device-head-actions button{padding:5px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--muted);font-size:.7rem;font-weight:800}
.latest-device-head-actions button:hover{border-color:var(--accent);color:var(--accent)}
.xml-inventory-banner{border-left:4px solid #2687c8}.xml-inventory-facts{display:flex;flex-wrap:wrap;gap:10px 24px;color:var(--muted);font-size:.82rem}.xml-inventory-facts span{display:flex;gap:6px}.device-tech-toggle{justify-self:start;padding:5px 9px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--accent);font-size:.72rem;font-weight:650}.device-technical-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px;padding:11px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.device-technical-sheet span{display:grid;gap:2px;color:var(--text);font-size:.78rem}.device-technical-sheet span b{color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.04em}.device-technical-sheet p,.device-technical-sheet small{grid-column:1/-1;margin:0;color:var(--muted);font-size:.74rem}.device-technical-sheet small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:620px){.device-technical-sheet{grid-template-columns:1fr}.xml-inventory-facts{display:grid}}
.technical-inventory-editor{display:grid;gap:12px;margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.technical-inventory-editor>label{display:grid;gap:5px;font-size:.76rem;color:var(--muted)}.technical-inventory-editor select,.technical-inventory-editor input,.technical-inventory-editor textarea{width:100%;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);padding:8px}.inventory-identity{display:grid;gap:3px}.inventory-identity span,.inventory-identity small{color:var(--muted)}.inventory-asset-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.inventory-asset-fields label{display:grid;gap:4px;font-size:.72rem;color:var(--muted)}.inventory-asset-fields .asset-notes,.inventory-asset-fields .asset-event{grid-column:1/-1}.inventory-asset-fields textarea{min-height:65px;resize:vertical}.inventory-status{color:var(--accent)}.device-history{display:grid;gap:7px;margin:0;padding:0;list-style:none}.device-history li{display:grid;grid-template-columns:auto auto 1fr;gap:9px;padding:8px;border-top:1px solid var(--border);font-size:.76rem}.device-history p{margin:0;color:var(--muted)}@media(max-width:760px){.inventory-asset-fields{grid-template-columns:1fr}.inventory-asset-fields .asset-notes,.inventory-asset-fields .asset-event{grid-column:auto}}
.latest-device-diagnostic{display:grid;gap:3px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--warning) 38%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--warning) 8%,var(--surface));line-height:1.35}
.latest-device-diagnostic strong{font-size:.8rem;color:color-mix(in srgb,var(--warning) 78%,var(--text));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.latest-device-diagnostic span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--muted);font-size:.76rem}
.latest-device-diagnostic-critical{border-color:color-mix(in srgb,var(--danger) 42%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--surface))}
.latest-device-diagnostic-critical strong{color:color-mix(in srgb,var(--danger) 80%,var(--text))}
.latest-primary{display:grid;gap:3px;min-height:98px;padding:13px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,var(--surface),var(--surface-2))}
.latest-primary span{color:var(--muted);font-size:.78rem;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.latest-primary strong{font-size:clamp(1.65rem,2.5vw,2.35rem);line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.latest-primary small{color:var(--muted);font-size:.78rem}
.latest-empty strong{color:var(--muted)}
.latest-channel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:250px;overflow:auto;padding-right:3px;scrollbar-gutter:stable}
.latest-channel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:32px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:.78rem}
.latest-channel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.latest-channel b{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}
.latest-channel-missing b{color:var(--muted)}
.latest-device-trend{display:grid;gap:8px;padding-top:2px}
.latest-device-trend .device-mini-chart{height:78px}
.latest-device-trend .device-metrics{margin-top:0}
@media(max-width:720px){.latest-device-grid{grid-template-columns:1fr}.latest-channel-list{grid-template-columns:1fr}.latest-primary strong{font-size:1.65rem}}
@media(max-width:760px){.sticky-panel-title{top:82px;align-items:stretch;flex-direction:column}.sticky-panel-title .panel-title-actions{justify-content:flex-start}}

.om-progress-panel{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,420px) auto;gap:14px;align-items:center;padding:13px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 10px 30px rgba(15,23,42,.05)}
.om-progress-panel div{display:grid;gap:2px}.om-progress-panel span,.om-progress-panel small{color:var(--muted);font-size:.84rem}.om-progress-panel progress{width:100%;height:12px}
.panel-load-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.panel-load-button i{width:13px;height:13px;border:2px solid color-mix(in srgb,#fff 35%,transparent);border-top-color:#fff;border-radius:50%;animation:spin .72s linear infinite}.panel-loading-progress{accent-color:var(--accent)}
.device-pending,.latest-device-pending{opacity:.76;border-left-color:#64748b!important}
.device-pending .device-mini-chart.empty,.latest-device-pending .latest-primary{background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 9px,var(--surface-2) 9px,var(--surface-2) 18px)}
@media(max-width:800px){.om-progress-panel{grid-template-columns:1fr}}

/* v1.34.50 clean device preview sparkline */
.device-mini-chart{width:100%;height:72px;border-radius:10px;background:linear-gradient(180deg,rgba(30,64,175,.12),rgba(15,23,42,.02));border:1px solid var(--border)}
.device-mini-chart.empty{display:grid;place-items:center;color:var(--muted);font-size:.82rem}
.device-mini-axis{stroke:rgba(148,163,184,.25);stroke-width:1}
.device-mini-line{stroke-width:3!important;stroke-linejoin:round;stroke-linecap:round;opacity:1}
.device-mini-line.status-ok{stroke:#38bdf8!important}
.device-mini-line.status-warning{stroke:#f59e0b!important}
.device-mini-line.status-critical{stroke:#ef4444!important}
.device-mini-line.status-unknown{stroke:#60a5fa!important}
.device-mini-dot{display:none!important}
.device-mini-last-dot{stroke:var(--surface);stroke-width:1.4;opacity:1}
.device-mini-last-dot.status-ok{fill:#38bdf8}
.device-mini-last-dot.status-warning{fill:#f59e0b}
.device-mini-last-dot.status-critical{fill:#ef4444}
.device-mini-last-dot.status-unknown{fill:#60a5fa}

.monthly-generation-panel{display:grid;gap:14px}
.monthly-panel-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.monthly-panel-actions label{display:grid;gap:4px;font-size:.72rem;color:var(--muted);font-weight:800;text-transform:uppercase;min-width:150px}
.monthly-panel-actions input{min-height:36px}
.monthly-summary-grid{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:10px}
.monthly-summary-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px;min-width:0;display:grid;gap:4px}
.monthly-summary-card span{font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}
.monthly-summary-card strong{font-size:1.35rem;line-height:1.15}
.monthly-summary-card small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.monthly-main strong{font-size:1.8rem}
.monthly-chart{height:170px;display:grid;grid-template-columns:repeat(31,minmax(0,1fr));align-items:end;gap:0;padding:12px 10px 6px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;position:relative;overflow:hidden}
.monthly-day{height:100%;display:grid;grid-template-rows:1fr auto;gap:5px;align-items:end;min-width:0;position:relative;z-index:1;padding:0 2px}
.monthly-bar{display:block;width:100%;min-height:3px;border-radius:4px 4px 0 0;background:#1677c8}
.monthly-pr-overlay{position:absolute;left:10px;right:10px;top:12px;bottom:42px;width:calc(100% - 20px);height:calc(100% - 54px);z-index:2;pointer-events:none;overflow:hidden}
.monthly-pr-overlay polyline{fill:none;stroke:var(--pr-line);stroke-width:2.25;opacity:.96;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.monthly-pr-overlay circle{fill:var(--pr-line);stroke:var(--surface);stroke-width:.7;opacity:1;vector-effect:non-scaling-stroke}
.monthly-day-low .monthly-bar{background:#d97706}
.monthly-day-missing .monthly-bar{background:var(--border);opacity:.55}
.monthly-day small{font-size:.68rem;color:var(--muted);text-align:center}
.monthly-pr-strip{display:flex;flex-wrap:wrap;gap:6px}
.monthly-pr-strip span{font-size:.72rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;background:var(--surface-2);padding:4px 8px}
.monthly-status-ok{border-color:rgba(22,163,74,.45)}
.monthly-status-warning{border-color:rgba(217,119,6,.45)}
.monthly-status-critical{border-color:rgba(220,38,38,.45)}
@media(max-width:900px){.monthly-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-main{grid-column:1/-1}}
@media(max-width:560px){.monthly-summary-grid{grid-template-columns:1fr}.monthly-chart{gap:0}.monthly-day{padding:0 1px}.monthly-summary-card small{white-space:normal}}

/* v1.34.86: side navigation and alarm node editor */
.app-body{display:grid;grid-template-columns:176px minmax(0,1fr);gap:18px;align-items:start}
.app-side-menu{position:sticky;top:102px;display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.app-side-menu a{display:grid;gap:2px;padding:11px 12px;border:1px solid transparent;border-radius:10px;color:var(--text);text-decoration:none;background:transparent}
.app-side-menu a span{font-size:.86rem;font-weight:520;letter-spacing:.015em}.app-side-menu a small{color:var(--muted);font-size:.68rem;font-weight:400;letter-spacing:.01em}
.app-side-menu a.active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.app-main-content{min-width:0}
.alarm-page-title{align-items:flex-start}.alarm-editor-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.graph-management-actions{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:7px}.graph-management-actions button{min-width:0;padding-inline:8px;white-space:normal}.graph-delete-button{width:100%}
.alarm-editor-shell{display:grid;grid-template-columns:280px minmax(0,1fr) 310px;gap:12px;align-items:stretch;margin-bottom:24px}
.alarm-editor-shell.properties-collapsed{grid-template-columns:280px minmax(0,1fr)}
.alarm-editor-sidebar,.alarm-properties{display:grid;gap:12px;align-content:start}
.alarm-properties-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.alarm-properties-heading button{display:grid;place-items:center;width:30px;height:28px;padding:0;font-size:1rem;font-weight:500}.properties-toggle-button{white-space:nowrap}
.alarm-side-section{display:grid;gap:9px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px rgba(15,23,42,.05)}
.alarm-side-section label{display:grid;gap:5px;color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase}
.alarm-side-section input,.alarm-side-section select,.alarm-side-section textarea{width:100%;min-width:0;background:var(--input-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 10px;text-transform:none;font-weight:600}
.alarm-side-section strong{font-size:.95rem}.alarm-side-section p,.alarm-side-section small{margin:0;color:var(--muted);line-height:1.4}.alarm-check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;text-transform:none!important;color:var(--text)!important}.alarm-check input{width:auto}
.node-palette-button{min-height:40px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);font-weight:850;text-align:left;padding:9px 11px}
.node-palette-button.channel{border-left:4px solid #38bdf8}.node-palette-button.condition{border-left:4px solid #f59e0b}.node-palette-button.email{border-left:4px solid #22c55e}
.alarm-editor-main{min-width:0;display:grid;grid-template-rows:auto minmax(620px,72vh);gap:10px}
.alarm-canvas-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.alarm-canvas-toolbar span{color:var(--muted);font-size:.84rem}
.alarm-canvas{position:relative;min-height:620px;overflow:auto;border:1px solid var(--border);border-radius:14px;background-color:var(--surface-2);background-image:linear-gradient(color-mix(in srgb,var(--border) 45%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border) 45%,transparent) 1px,transparent 1px);background-size:28px 28px;cursor:default}
.alarm-canvas{cursor:crosshair}.alarm-canvas.pan-tool-active{cursor:grab}.alarm-canvas.is-panning{cursor:grabbing}.alarm-canvas.is-panning .alarm-canvas-content{pointer-events:none}
.alarm-connections{position:absolute;left:0;top:0;z-index:1;pointer-events:none}.alarm-link{fill:none;stroke:#60a5fa;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;cursor:pointer}.alarm-link.selected{stroke:#f59e0b;stroke-width:4}.alarm-link.preview{stroke:#94a3b8;stroke-dasharray:7 5}
.node-selection-marquee{position:absolute;z-index:4;border:1px solid #38a8f8;background:rgba(56,168,248,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);pointer-events:none}
.alarm-node{position:absolute;z-index:2;width:240px;min-height:118px;display:grid;grid-template-rows:auto 1fr;border:1px solid var(--border);border-left:5px solid #64748b;border-radius:12px;background:var(--surface);box-shadow:0 14px 32px rgba(15,23,42,.18);user-select:none}
.alarm-node.selected{outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);box-shadow:0 18px 40px rgba(22,119,200,.25)}
.alarm-node header{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--border);cursor:grab}.alarm-node header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-node header button{width:26px;height:26px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--muted);font-weight:900}
.alarm-node-body{display:grid;gap:4px;padding:11px 12px;min-width:0;cursor:pointer}.alarm-node-body span,.alarm-node-body b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-node-body span{color:var(--muted);font-size:.78rem}.alarm-node-body b{font-size:.88rem}
.node-channel{border-left-color:#38bdf8}.node-condition{border-left-color:#f59e0b}.node-email{border-left-color:#22c55e}
.node-pin{position:absolute;top:53px;width:17px;height:17px;border:2px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--border);background:#60a5fa;z-index:3}.node-pin.input{left:-10px;background:#f59e0b}.node-pin.output{right:-10px;background:#38bdf8}.node-pin:hover{transform:scale(1.14)}
@media(max-width:1180px){.app-body{grid-template-columns:1fr}.app-side-menu{position:static;display:flex;overflow:auto}.app-side-menu a{min-width:150px}.alarm-editor-shell,.alarm-editor-shell.properties-collapsed{grid-template-columns:1fr}.alarm-editor-main{grid-row:2}.alarm-editor-sidebar,.alarm-properties{grid-template-columns:repeat(2,minmax(0,1fr))}.alarm-editor-main{grid-template-rows:auto minmax(560px,70vh)}}
@media(max-width:720px){.alarm-editor-sidebar,.alarm-properties{grid-template-columns:1fr}.alarm-canvas-toolbar{align-items:stretch;flex-direction:column}.alarm-editor-actions{justify-content:flex-start}.alarm-node{width:220px}}

/* v1.34.87: compact navigation and node editor workspace controls */
.app-body{grid-template-columns:auto minmax(0,1fr)}
.app-side-menu.collapsed{width:64px}
.app-side-menu.expanded{width:220px}
.side-menu-toggle{display:grid;place-items:center;width:40px;height:34px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font-size:1.15rem;font-weight:900;line-height:1}
.app-side-menu.expanded .side-menu-toggle{justify-self:start}.app-side-menu.collapsed .side-menu-toggle{justify-self:center}
.app-side-menu a{grid-template-columns:24px minmax(0,1fr);gap:2px 8px;align-items:center}
.app-side-menu a b{grid-row:1/3;text-align:center;font-size:.96rem;font-weight:500;color:color-mix(in srgb,var(--text) 78%,var(--muted))}
.app-side-menu a span,.app-side-menu a small{min-width:0;overflow-wrap:anywhere}
.app-side-menu.collapsed a{grid-template-columns:1fr;justify-items:center;padding:10px 8px}
.app-side-menu.collapsed a span,.app-side-menu.collapsed a small{display:none}
.side-menu-items{display:contents}
@media(min-width:1181px){
  .app-side-menu.expanded{grid-template-rows:auto minmax(0,1fr);max-height:calc(100dvh - 118px);overflow:hidden}
  .app-side-menu.expanded .side-menu-items{display:grid;gap:8px;align-content:start;min-height:0;overflow-x:hidden;overflow-y:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:transparent transparent;overscroll-behavior:contain}
  .app-side-menu.expanded .side-menu-items:hover,
  .app-side-menu.expanded .side-menu-items:focus-within{scrollbar-color:color-mix(in srgb,var(--muted) 55%,transparent) transparent}
  .app-side-menu.expanded .side-menu-items::-webkit-scrollbar{width:5px}
  .app-side-menu.expanded .side-menu-items::-webkit-scrollbar-track{background:transparent}
  .app-side-menu.expanded .side-menu-items::-webkit-scrollbar-thumb{border-radius:999px;background:transparent}
  .app-side-menu.expanded .side-menu-items:hover::-webkit-scrollbar-thumb,
  .app-side-menu.expanded .side-menu-items:focus-within::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 55%,transparent)}
}
.alarm-editor-main.workspace-expanded{position:fixed;inset:0;z-index:1200;padding:12px;background:var(--bg);grid-template-rows:auto minmax(0,1fr);gap:10px}
.alarm-editor-main.workspace-expanded .alarm-canvas-toolbar{box-shadow:0 10px 30px rgba(15,23,42,.18)}
.alarm-editor-main.workspace-expanded .alarm-canvas{min-height:0;height:100%;border-radius:12px}
.alarm-input-summary{display:grid;gap:6px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.alarm-input-summary-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.alarm-input-summary-header small{flex:0 0 auto;font-size:.66rem}
.alarm-input-summary-row{display:grid;gap:1px;min-width:0;padding:6px 8px;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:6px;background:color-mix(in srgb,var(--surface) 62%,transparent);cursor:help}
.alarm-input-summary-row:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.alarm-input-summary-row span,.alarm-input-summary-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-input-summary-row span{font-size:.76rem;color:var(--text);font-weight:650}.alarm-input-summary-row small{font-size:.66rem;color:var(--muted)}
.alarm-input-summary-toggle{width:100%;margin-top:2px;padding:6px 8px!important;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border))!important;border-radius:6px!important;background:color-mix(in srgb,var(--accent) 7%,var(--surface))!important;color:var(--accent)!important;font-size:.7rem!important;font-weight:650!important;text-transform:none!important}.alarm-input-summary-toggle:hover{background:color-mix(in srgb,var(--accent) 13%,var(--surface))!important}
.channel-condition-editor,.channel-timeout-editor{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.channel-timeout-editor{border-color:color-mix(in srgb,#2f8bc0 35%,var(--border))}.channel-condition-toggle{display:flex!important;align-items:center;gap:8px}.channel-condition-toggle input{width:auto!important}.channel-condition-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:8px}.channel-condition-editor small,.channel-condition-summary,.channel-timeout-editor small,.channel-timeout-summary{font-size:.72rem;color:var(--muted);line-height:1.35}.channel-condition-summary,.channel-timeout-summary{display:block;color:#7dd3fc!important}
.alarm-timing-field{display:grid;gap:6px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.alarm-timing-field>label{margin:0}.alarm-timing-field>small{color:var(--muted);font-size:.7rem;line-height:1.45}.alarm-timing-recommendation{display:grid;gap:4px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-left:3px solid var(--accent);border-radius:9px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));font-style:normal}.alarm-timing-recommendation strong{font-size:.72rem;color:var(--accent)}.alarm-timing-recommendation span{color:var(--muted);font-size:.68rem;line-height:1.45}

/* Blueprint-inspired alarm graph */
.alarm-editor-main{align-self:start;--bp-bg:#15181d;--bp-grid-major:#343941;--bp-grid-minor:#23272e;--bp-panel:#20242a;--bp-border:#0b0d10;--bp-text:#e8eaed;--bp-muted:#a8adb5}
.alarm-editor-main.workspace-expanded{align-self:stretch}
.alarm-editor-main .alarm-canvas-toolbar{display:grid;grid-template-columns:minmax(190px,1fr) auto;border-color:#090b0d;border-radius:4px;background:linear-gradient(#292d33,#1d2025);box-shadow:inset 0 1px rgba(255,255,255,.05);color:var(--bp-text)}
.alarm-editor-main .alarm-canvas-toolbar>span{grid-column:1/-1}.alarm-editor-main .alarm-zoom-controls{justify-content:flex-end}
@media(max-width:1450px){.alarm-editor-main .alarm-canvas-toolbar{grid-template-columns:1fr}.alarm-editor-main .alarm-zoom-controls{justify-content:flex-start}.alarm-editor-main .alarm-canvas-toolbar>span{display:none}}
.blueprint-graph-identity{display:flex;align-items:center;gap:9px;min-width:220px}.blueprint-graph-identity>i{display:grid;place-items:center;width:34px;height:34px;border:1px solid #0a0b0d;border-radius:4px;background:linear-gradient(135deg,#2f6590,#16344e);color:#d7edff;font-style:normal;font-size:.72rem;font-weight:950;box-shadow:inset 0 1px rgba(255,255,255,.18)}
.blueprint-graph-identity>div{display:grid}.blueprint-graph-identity strong{font-size:.83rem;color:var(--bp-text)}.blueprint-graph-identity span{font-size:.7rem!important;color:var(--bp-muted)!important}
.blueprint-compile{padding:7px 10px!important;border:1px solid #090b0d!important;border-radius:4px!important;font-size:.72rem!important;font-weight:850!important}.blueprint-compile.ok{background:#244d35!important;color:#a9f2c2!important}.blueprint-compile.warning{background:#5b3e19!important;color:#ffd68f!important}
.alarm-editor-main .alarm-canvas{border:2px solid #08090b;border-radius:3px;background-color:var(--bp-bg);background-image:linear-gradient(var(--bp-grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--bp-grid-major) 1px,transparent 1px),linear-gradient(var(--bp-grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--bp-grid-minor) 1px,transparent 1px);background-size:128px 128px,128px 128px,16px 16px,16px 16px;box-shadow:inset 0 0 50px rgba(0,0,0,.24);outline:none}
.alarm-editor-main .alarm-canvas:focus{border-color:#315d7d}.alarm-editor-main .alarm-canvas-content{filter:none}
.alarm-editor-main .alarm-node{width:250px;min-height:130px;grid-template-rows:auto 1fr;border:1px solid var(--bp-border);border-left:1px solid var(--bp-border);border-radius:5px;background:linear-gradient(100deg,#24282e,#1b1e23);box-shadow:0 5px 13px rgba(0,0,0,.75),inset 0 0 0 1px rgba(255,255,255,.04);color:var(--bp-text);overflow:visible}
.alarm-editor-main .alarm-node.node-condition,.alarm-editor-main .alarm-node.node-email{width:320px}
.alarm-editor-main .alarm-node.selected{outline:2px solid #f29d38;box-shadow:0 0 0 1px #ffe0a3,0 6px 18px rgba(0,0,0,.8)}
.alarm-editor-main .alarm-node header{min-height:34px;padding:5px 7px;border-bottom:1px solid rgba(0,0,0,.8);border-radius:4px 4px 0 0;background:linear-gradient(90deg,#555,#333);cursor:grab}.alarm-editor-main .node-channel header{background:linear-gradient(90deg,#175b82,#12364d)}.alarm-editor-main .node-condition header{background:linear-gradient(90deg,#8d5a12,#4e3210)}.alarm-editor-main .node-email header{background:linear-gradient(90deg,#286a3e,#173b25)}
.blueprint-node-title{display:flex;align-items:center;gap:7px;min-width:0;flex:1}.blueprint-node-title i{display:grid;place-items:center;flex:0 0 21px;width:21px;height:21px;border:1px solid rgba(0,0,0,.55);border-radius:50%;background:rgba(255,255,255,.13);font-style:normal;font-weight:950}.blueprint-node-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;text-shadow:0 1px #000}
.alarm-editor-main .alarm-node header button{width:20px;height:20px;border-color:rgba(0,0,0,.65);border-radius:3px;background:rgba(0,0,0,.25);color:#ddd}
.alarm-editor-main .alarm-node-body{min-height:68px;padding:11px 13px 25px;color:var(--bp-text)}.alarm-editor-main .alarm-node-body span{color:var(--bp-muted)}
.condition-run-dot{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.6)}.condition-run-dot.running{background:#62e387;box-shadow:0 0 7px #62e387}.condition-run-dot.stopped{background:#ef5b5b}
@keyframes condition-running-pulse{0%,100%{opacity:1;box-shadow:0 0 3px #62e387}50%{opacity:.28;box-shadow:0 0 12px 4px #62e387}}.condition-run-dot.running{animation:condition-running-pulse 1.15s ease-in-out infinite}
.condition-schedule-summary{display:block;color:#b9bec6;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.condition-execution-button{width:100%;border:1px solid #0c0e10;border-radius:4px;padding:9px 10px;font-weight:900}.condition-execution-button.running{background:#5a2626;color:#ffd1d1}.condition-execution-button.stopped{background:#235238;color:#c8f9d6}
.condition-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.condition-time-grid label{min-width:0}
.recipient-add-row,.inline-recipient-add{display:grid;grid-template-columns:minmax(100px,1fr) minmax(160px,1.4fr) auto;gap:7px;margin-top:9px}.recipient-directory-list{display:grid;gap:5px;margin:9px 0}.recipient-directory-list>div,.recipient-group-editor>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--border);border-radius:7px}.recipient-directory-list span{display:grid}.recipient-directory-list small{color:var(--muted)}.recipient-group-editor{display:grid;gap:7px;margin-top:10px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.recipient-member-grid,.recipient-check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px}.recipient-member-grid label,.recipient-check-list label{display:flex!important;align-items:center;gap:7px;text-transform:none!important}.recipient-member-grid input,.recipient-check-list input{width:auto!important}.email-recipient-picker{display:grid;gap:8px;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.recipient-chip-list{display:flex;gap:6px;flex-wrap:wrap}.recipient-chip-list button{padding:6px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:.75rem}.recipient-check-list{grid-template-columns:1fr}.recipient-check-list span{display:grid}.recipient-check-list small{color:var(--muted)}.email-recipient-picker .inline-recipient-add{grid-template-columns:1fr}.email-recipient-picker input{width:100%}
@media(max-width:700px){.recipient-add-row{grid-template-columns:1fr}.condition-time-grid,.channel-condition-grid{grid-template-columns:1fr}}
.blueprint-context-menu{position:absolute;z-index:20;width:248px;padding:4px;border:1px solid #08090b;border-radius:3px;background:#25292f;box-shadow:0 14px 34px rgba(0,0,0,.75);color:#e8eaed;font-family:"Segoe UI",Inter,Arial,sans-serif;font-size:.76rem;font-weight:400;letter-spacing:.005em}.blueprint-context-menu header{display:flex;justify-content:space-between;align-items:center;padding:5px 7px;border-bottom:1px solid #111}.blueprint-context-menu header strong{font-size:.74rem;font-weight:600}.blueprint-context-menu header button{width:22px;height:22px;padding:0;background:transparent;color:#aaa}.blueprint-context-menu>button{width:100%;display:flex;align-items:center;gap:8px;padding:6px 7px;border:0;border-radius:2px;background:transparent;color:#e8eaed;text-align:left;font-size:.75rem;font-weight:400}.blueprint-context-menu>button:hover{background:#35536c}.blueprint-context-menu button>i{width:10px;height:10px;border-radius:50%}.blueprint-context-menu i.channel{background:#55c9ff}.blueprint-context-menu i.condition{background:#f0b04b}.blueprint-context-menu i.email{background:#61d77e}.blueprint-context-menu button>span{display:grid}.blueprint-context-menu button>span strong{font-weight:500}.blueprint-context-menu small{color:#adb3bc;font-size:.67rem;font-weight:400}.blueprint-context-menu hr{border:0;border-top:1px solid #111}.blueprint-context-menu .delete{color:#ff9c9c}.blueprint-context-menu kbd{margin-left:auto;padding:1px 4px;border:1px solid #555;border-radius:2px;font-size:.65rem;font-weight:400}
.operation-progress{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,420px) auto;gap:14px;align-items:center;margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.operation-progress>div{display:grid;gap:3px}.operation-progress span,.operation-progress small{color:var(--muted);font-size:.8rem}.operation-progress progress{width:100%;height:11px}@media(max-width:800px){.operation-progress{grid-template-columns:1fr}}
.operation-progress .stop-sync-button,.om-progress-panel .stop-sync-button{justify-self:start;min-height:34px;padding:7px 12px;border:1px solid color-mix(in srgb,#ef4444 48%,var(--border));border-radius:8px;background:color-mix(in srgb,#ef4444 9%,var(--surface));color:color-mix(in srgb,#ef4444 76%,var(--text));font-size:.78rem;font-weight:600;line-height:1.15;box-shadow:none}.operation-progress .stop-sync-button:hover:not(:disabled),.om-progress-panel .stop-sync-button:hover:not(:disabled){border-color:#ef4444;background:color-mix(in srgb,#ef4444 16%,var(--surface));color:color-mix(in srgb,#ef4444 88%,var(--text))}.operation-progress .stop-sync-button:disabled,.om-progress-panel .stop-sync-button:disabled{opacity:.65;cursor:wait}.operation-cancelled-status{margin-top:12px;padding:10px 13px;border:1px solid color-mix(in srgb,#f59e0b 42%,var(--border));border-radius:10px;background:color-mix(in srgb,#f59e0b 9%,var(--surface));color:var(--text);font-size:.84rem}
.anomaly-episode-state{display:inline-flex;align-items:center;gap:8px;margin-top:7px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;font-size:.72rem}.anomaly-episode-state strong{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.anomaly-episode-state span{color:var(--muted)}.anomaly-episode-state.episode-active{border-color:color-mix(in srgb,#ef4444 45%,var(--border));background:color-mix(in srgb,#ef4444 9%,var(--surface));color:#dc2626}.anomaly-episode-state.episode-recovered{border-color:color-mix(in srgb,#16a34a 42%,var(--border));background:color-mix(in srgb,#16a34a 9%,var(--surface));color:#15803d}
.m365-settings-card .win-settings-icon{font-size:.65rem;font-weight:950;background:#146fbb;color:#fff}.m365-connected{color:#39a862!important}.m365-help,.m365-device-code{display:grid;gap:5px;margin-top:10px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.m365-help span,.m365-device-code span,.m365-device-code small{color:var(--muted)}.m365-device-code strong{font-size:1.6rem;letter-spacing:.16em;color:var(--accent)}.settings-inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.graph-execution-button{width:100%;padding:10px;border:1px solid var(--border);border-radius:7px;font-weight:900}.graph-execution-button.running{background:#642828;color:#ffd2d2}.graph-execution-button.stopped{background:#24563a;color:#d1f8dc}
@keyframes alarm-node-fired{0%,100%{box-shadow:0 0 0 2px #ff3131,0 0 12px rgba(255,30,30,.55),0 6px 18px rgba(0,0,0,.8)}50%{box-shadow:0 0 0 4px #fff,0 0 34px #ff2020,0 6px 18px rgba(0,0,0,.8)}}
.alarm-editor-main .alarm-node.node-condition.alarm-fired{animation:alarm-node-fired .8s ease-in-out infinite!important;outline:2px solid #ff3131!important}.alarm-editor-main .alarm-node.node-condition.alarm-fired header{background:linear-gradient(90deg,#b31515,#5b0c0c)}
.alarm-history-panel{display:grid;gap:12px;margin:18px 0 28px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.alarm-history-panel h2{margin:0}.alarm-history-panel table{min-width:980px}.alarm-history-active td:first-child{color:#e12626;font-weight:950}.alarm-history-active{background:color-mix(in srgb,#ef4444 8%,transparent)}
.alarm-resend-button{white-space:nowrap;padding:7px 10px;font-size:.82rem}.alarm-history-feedback{padding:9px 12px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 8%,var(--surface));font-size:.88rem}
.pan-mode-button.active{background:#285b7d!important;color:#fff!important;border-color:#4ca6df!important}.alarm-history-actions,.alarm-row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.alarm-row-actions{flex-wrap:nowrap}
.alarm-history-panel .danger-lite-button{background:#fff5f5!important;border:1px solid #dca3a3!important;color:#9f2f2f!important;box-shadow:none}.alarm-history-panel .danger-lite-button:hover:not(:disabled){background:#f8dddd!important;border-color:#c87878!important;color:#7f2020!important}:root[data-theme="dark"] .alarm-history-panel .danger-lite-button{background:#3a2428!important;border-color:#75434b!important;color:#f2b3bb!important}:root[data-theme="dark"] .alarm-history-panel .danger-lite-button:hover:not(:disabled){background:#513038!important;border-color:#a85b67!important;color:#ffd7dc!important}
.alarm-duration-cell strong,.alarm-duration-cell small,.alarm-affected-list strong,.alarm-affected-list small{display:block;white-space:nowrap}.alarm-duration-cell small,.alarm-affected-list small{margin-top:2px;color:var(--muted);font-size:.75rem}.alarm-affected-list{display:grid;gap:7px;min-width:190px}.alarm-affected-list>div+div{padding-top:7px;border-top:1px solid var(--border)}
.alarm-history-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:4}.alarm-history-project-picker{position:relative;min-width:220px}.alarm-history-project-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px;padding:7px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);cursor:pointer;list-style:none}.alarm-history-project-picker>summary::-webkit-details-marker{display:none}.alarm-history-project-picker>summary span{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.alarm-history-project-picker>summary strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.alarm-history-project-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:min(370px,calc(100vw - 44px));padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface);box-shadow:0 16px 42px rgb(0 0 0/.28)}.alarm-history-project-shortcuts{display:flex;gap:7px;margin-bottom:8px}.alarm-history-project-list-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 8px 6px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.alarm-history-project-list-header small{font-size:inherit;font-variant-numeric:tabular-nums}.alarm-history-project-list{display:grid;gap:4px;max-height:260px;margin-bottom:10px;padding:2px 4px 2px 0;overflow:auto}.alarm-history-project-option{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;min-height:38px;margin:0;padding:7px 9px;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.alarm-history-project-option:hover{background:var(--surface-2)}.alarm-history-project-option.selected{border-color:color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))}.alarm-history-project-option input[type=checkbox]{position:absolute;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.alarm-history-project-check{display:grid;place-items:center;width:18px;height:18px;border:1px solid color-mix(in srgb,var(--muted) 70%,var(--border));border-radius:5px;background:var(--input-bg);box-shadow:inset 0 0 0 1px rgb(255 255 255/.025)}.alarm-history-project-option input:checked+.alarm-history-project-check{border-color:var(--accent);background:var(--accent)}.alarm-history-project-option input:checked+.alarm-history-project-check::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg)}.alarm-history-project-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.alarm-history-project-name{min-width:0;color:var(--text);font-size:.8rem;font-weight:650;line-height:1.25;overflow-wrap:anywhere}.alarm-history-project-popover>button:last-child{width:100%}.alarm-history-export-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.alarm-history-export-actions input{width:min(230px,100%);min-height:38px}.alarm-history-progress{width:100%;height:3px}.alarm-history-feedback{padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:.82rem}.alarm-history-count{color:var(--muted);font-size:.78rem}.alarm-history-compact-table td{vertical-align:top;padding-top:10px;padding-bottom:10px}.alarm-history-compact-table td>strong,.alarm-history-compact-table td>small{display:block}.alarm-history-compact-table td>small{margin-top:3px;color:var(--muted);font-size:.73rem}.alarm-history-state{display:inline-flex;margin-top:6px;padding:2px 7px;border:1px solid var(--border);border-radius:999px;font-size:.66rem;font-weight:800;letter-spacing:.04em}.alarm-history-state.active{border-color:#df5d66;background:color-mix(in srgb,#ef4444 13%,transparent);color:#d33c49}.alarm-history-state.closed{border-color:#4f9a72;background:color-mix(in srgb,#22c55e 10%,transparent);color:#2d8a57}.alarm-affected-summary{display:grid;gap:3px;max-width:260px}.alarm-affected-summary>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.75rem}.alarm-affected-summary details,.alarm-history-row-details{margin-top:4px}.alarm-affected-summary summary,.alarm-history-row-details summary{width:max-content;color:var(--accent);font-size:.74rem;font-weight:700;cursor:pointer}.alarm-affected-summary details[open]{max-height:230px;overflow:auto;padding-right:5px}.alarm-history-row-details dl{display:grid;grid-template-columns:max-content minmax(140px,1fr);gap:4px 8px;max-width:380px;margin:7px 0 0;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:.73rem}.alarm-history-row-details dt{color:var(--muted)}.alarm-history-row-details dd{margin:0;overflow-wrap:anywhere}
.configured-alarms-panel{display:grid;gap:12px;margin:14px 0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.configured-email-actions{display:flex;gap:8px;flex-wrap:wrap}.configured-email-actions input{min-width:250px}.configured-alarm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}.configured-alarm-grid article{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.configured-alarm-grid header{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.configured-alarm-grid header span{font-size:.68rem;font-weight:800}.configured-alarm-grid header .running{color:#198754}.configured-alarm-grid header .stopped{color:#d14343}.configured-alarm-grid article>div{display:grid;grid-template-columns:12px 1fr;gap:4px 8px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}.configured-alarm-grid .configured-condition-detail p{grid-column:2;margin:0;color:var(--text);font-size:.8rem;line-height:1.45}.configured-alarm-grid small{grid-column:2;color:var(--muted);overflow-wrap:anywhere}.preset-dialog-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(4,9,16,.62)}.preset-target-dialog{position:fixed;z-index:1401;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 28px));display:grid;gap:12px;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 24px 70px rgba(0,0,0,.4)}.preset-target-dialog h2,.preset-target-dialog p{margin:0}.preset-new-graph{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.preset-new-graph label{display:grid;gap:5px;color:var(--muted);font-size:.8rem;font-weight:700}@media(max-width:600px){.preset-new-graph{grid-template-columns:1fr}.configured-email-actions input{min-width:0;width:100%}}
.automation-toggle{min-width:88px;white-space:nowrap}

/* Theme-aware alarm presets and Blueprint workspace */
:root:not([data-theme="dark"]) .alarm-editor-main .alarm-canvas-toolbar{border-color:#cbd5e1;background:linear-gradient(#f8fafc,#e9eef4);box-shadow:inset 0 1px #fff;color:#1f2937}
:root:not([data-theme="dark"]) .alarm-editor-main .alarm-canvas-toolbar>span{color:#64748b}
:root:not([data-theme="dark"]) .blueprint-graph-identity strong{color:#1f2937}
:root:not([data-theme="dark"]) .blueprint-graph-identity span{color:#64748b!important}
:root:not([data-theme="dark"]) .alarm-editor-main .alarm-canvas{border-color:#b8c4d1;background-color:#f4f7fa;background-image:linear-gradient(#b9c7d5 1px,transparent 1px),linear-gradient(90deg,#b9c7d5 1px,transparent 1px),linear-gradient(#dfe6ed 1px,transparent 1px),linear-gradient(90deg,#dfe6ed 1px,transparent 1px);box-shadow:inset 0 0 40px rgba(39,64,89,.08)}
:root:not([data-theme="dark"]) .alarm-editor-main .alarm-canvas:focus{border-color:#4d8fbd}
:root[data-theme="dark"] .alarm-preset-grid>button:hover:not(:disabled){border-color:#53657b;background:#202b3a;color:var(--text);box-shadow:0 5px 14px rgba(0,0,0,.22)}
:root[data-theme="dark"] .alarm-preset-grid>button:hover:not(:disabled) small{color:#b9c6d6}
.alarm-automation-library{display:grid;gap:13px;margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.alarm-automation-library h2{margin:2px 0}.alarm-preset-parameters{display:flex;gap:12px;flex-wrap:wrap}.alarm-preset-parameters label{min-width:250px;display:grid;grid-template-columns:1fr auto;gap:5px;color:var(--muted);font-size:.78rem;font-weight:800}.alarm-preset-parameters input{grid-column:1/-1}.alarm-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}.alarm-preset-grid>button{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:88px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);text-align:left;white-space:normal;overflow:hidden}.alarm-preset-grid>button:hover{border-color:var(--accent);transform:translateY(-1px)}.alarm-preset-grid i{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;margin-top:1px;border-radius:9px;background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--accent);font-style:normal;font-size:1.15rem}.alarm-preset-grid span{display:grid;gap:4px;min-width:0;width:100%}.alarm-preset-grid strong,.alarm-preset-grid small{display:block;white-space:normal;overflow-wrap:anywhere}.alarm-preset-grid strong{line-height:1.25}.alarm-preset-grid small{color:var(--muted);line-height:1.35;font-weight:600}.alarm-natural-builder{display:grid;gap:9px;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 5%,var(--surface-2))}.alarm-natural-builder>div:first-child{display:grid}.alarm-natural-builder>div:first-child small{color:var(--muted)}.alarm-natural-builder>div:nth-child(2){display:grid;grid-template-columns:1fr auto;gap:8px}.alarm-natural-builder input{min-width:0}.alarm-natural-builder>small{color:var(--muted)}
@media(max-width:700px){.alarm-natural-builder>div:nth-child(2){grid-template-columns:1fr}}
.blueprint-pin-row{position:absolute;bottom:5px;display:flex;align-items:center;gap:6px;color:#d5d8dc;font-size:.69rem;font-weight:700;pointer-events:none}.blueprint-pin-row.input-row{left:-7px}.blueprint-pin-row.output-row{right:-7px}.blueprint-pin-row .node-pin{position:static;display:block;width:14px;height:14px;padding:0;border:2px solid #111;box-shadow:0 0 0 1px #b6bac0;background:#15181d;pointer-events:auto}.blueprint-pin-row .node-pin.input,.blueprint-pin-row .node-pin.output{background:#15181d}.node-channel .blueprint-pin-row .node-pin{box-shadow:0 0 0 1px #55c9ff}.node-condition .blueprint-pin-row .node-pin{box-shadow:0 0 0 1px #f0b04b}.node-email .blueprint-pin-row .node-pin{box-shadow:0 0 0 1px #61d77e}.blueprint-pin-row .node-pin:hover{background:#fff;transform:scale(1.18)}
.alarm-editor-main .alarm-link{stroke:#e8eaed;stroke-width:3;filter:drop-shadow(0 1px 1px #000)}.alarm-editor-main .alarm-link.link-channel{stroke:#55c9ff}.alarm-editor-main .alarm-link.link-condition{stroke:#f0b04b}.alarm-editor-main .alarm-link.selected{stroke:#fff;stroke-width:5}.alarm-editor-main .alarm-link.preview{stroke:#e8eaed;stroke-dasharray:7 4}.wire-arrow.channel{fill:#55c9ff}.wire-arrow.condition{fill:#f0b04b}
.alarm-zoom-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.alarm-zoom-controls strong{min-width:48px;text-align:center;color:var(--muted)}
.alarm-canvas-content{position:relative;transform-origin:0 0}
.alarm-node header button{display:grid!important;place-items:center!important;line-height:1!important;padding:0!important}

.preset-comparison-grid{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.report-generator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.report-form{align-items:stretch}.report-form input,.report-form select{min-width:180px}.report-schedule-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:12px}
.generation-loading{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--muted)}.generation-loading progress{width:100%;height:12px}
.monthly-chart{height:198px;align-items:stretch}.monthly-day{grid-template-rows:1fr auto auto}.monthly-day em{font-style:normal;font-size:.66rem;color:#f59e0b;text-align:center;white-space:nowrap;line-height:1}
.monthly-pr-caption{align-items:center}.monthly-pr-caption strong{color:#f59e0b}.monthly-pr-caption span{color:var(--muted)}
.yearly-chart{height:210px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:8px;padding:14px 12px 8px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.yearly-month{height:100%;display:grid;grid-template-rows:1fr auto auto;gap:5px;align-items:end;min-width:0}.yearly-bar{display:block;width:100%;min-height:4px;border-radius:5px 5px 0 0;background:#1677c8}.yearly-month b,.yearly-month small{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yearly-month b{font-size:.75rem}.yearly-month small{font-size:.68rem;color:#f59e0b}
@media(max-width:760px){.report-generator-grid{grid-template-columns:1fr}.yearly-chart{grid-template-columns:repeat(6,minmax(0,1fr));height:260px}.generation-loading{grid-template-columns:1fr}}

/* Responsive workbench: side browser and tablet widths */
@media(max-width:1180px){
  .app-body{grid-template-columns:minmax(0,1fr);gap:12px}
  .app-side-menu,.app-side-menu.collapsed,.app-side-menu.expanded{position:static;width:100%;display:grid;grid-template-columns:40px repeat(2,minmax(0,1fr));align-items:stretch;overflow:visible;padding:7px}
  .app-side-menu .side-menu-toggle,.app-side-menu.collapsed .side-menu-toggle,.app-side-menu.expanded .side-menu-toggle{justify-self:stretch;width:40px;height:auto;min-height:44px}
  .app-side-menu a,.app-side-menu.collapsed a{min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr);justify-items:start;align-items:center;padding:8px 10px}
  .app-side-menu.collapsed a span{display:block}.app-side-menu a small,.app-side-menu.collapsed a small{display:none}.app-side-menu a b{grid-row:auto}
  .app-main-content{width:100%;min-width:0}
}
@media(max-width:900px){
  .container-row{display:grid;grid-template-columns:minmax(130px,.75fr) minmax(210px,1.4fr);align-items:end}
  .container-row>button{width:100%}
  .om-heading{align-items:stretch;flex-direction:column;gap:14px}.om-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;width:100%}.om-actions label{min-width:0}.om-actions button{width:100%}
  .panel-title{min-width:0}.panel-title>div{min-width:0}.panel-title p{overflow-wrap:anywhere}
  .configured-email-actions{width:100%}.configured-email-actions input{min-width:0;flex:1 1 220px}
  .alarm-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .shell{padding-left:12px;padding-right:12px}.app-side-menu,.app-side-menu.collapsed,.app-side-menu.expanded{grid-template-columns:repeat(2,minmax(0,1fr))}.app-side-menu .side-menu-toggle{display:none}
  .container-row,.om-actions{grid-template-columns:1fr}.container-query-card{padding:14px}.page-title{align-items:flex-start;flex-direction:column}.storage-badge{text-align:left}
  .panel-title{align-items:stretch;flex-direction:column}.panel-title-actions,.alarm-editor-actions{justify-content:flex-start}.panel-title-actions>button,.alarm-editor-actions>button{flex:1 1 auto}
  .metadata-summary{align-items:flex-start;flex-direction:column;gap:7px}.metadata-summary span+span{border-left:0;padding-left:0}
  .alarm-editor-sidebar,.alarm-properties{grid-template-columns:1fr}.alarm-editor-main{grid-template-rows:auto minmax(500px,68vh)}
  .configured-alarm-grid{grid-template-columns:1fr}.configured-email-actions{display:grid;grid-template-columns:1fr}.configured-email-actions input,.configured-email-actions button{width:100%}
  .alarm-preset-grid{grid-template-columns:1fr}
  .table-wrap{max-width:100%;overflow-x:auto}
}
@media(max-width:520px){
  .topbar-content{min-height:68px}.brand-logo{width:125px}.language-selector select{width:82px;max-width:82px}.live-clock{display:none}.topbar-right{gap:5px}.settings-button,.theme-toggle-button{width:36px;height:36px}
  .app-side-menu a,.app-side-menu.collapsed a{grid-template-columns:22px 1fr;padding:8px}.app-side-menu a span{font-size:.82rem}
}

.competitor-scada-panel{display:grid;gap:14px}
.scada-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.scada-module{display:grid;gap:11px;min-width:0;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);border-left-width:4px}
.scada-module-ok{border-left-color:#16a34a}
.scada-module-warning{border-left-color:#d97706}
.scada-module-critical{border-left-color:#dc2626}
.scada-module-neutral{border-left-color:#64748b}
.scada-module-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}
.scada-module-head strong{display:block;font-size:.96rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scada-module-head small{display:block;color:var(--muted);font-size:.76rem;line-height:1.35;margin-top:3px}
.scada-module-head>span{font-size:.66rem;font-weight:850;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.scada-status-button{border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:.66rem;font-weight:850;text-transform:uppercase;white-space:nowrap;background:var(--surface);color:var(--text);min-height:28px}
.scada-status-warning{border-color:rgba(217,119,6,.5);color:#d97706}
.scada-status-critical{border-color:rgba(220,38,38,.5);color:#dc2626}
.scada-attention{display:grid;gap:3px;padding:9px;border:1px solid rgba(217,119,6,.35);border-radius:8px;background:rgba(217,119,6,.08)}
.scada-attention strong{font-size:.76rem;text-transform:uppercase;color:#d97706}
.scada-attention span{font-size:.78rem;line-height:1.35;color:var(--text)}
.scada-module-primary{display:grid;gap:2px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}
.scada-module-primary strong{font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.scada-module-primary span{color:var(--muted);font-size:.76rem;font-weight:750}
.scada-module p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.42;min-height:34px}
.scada-metric-list{display:grid;gap:7px}
.scada-metric{display:grid;gap:4px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);min-width:0}
.scada-metric div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:baseline}
.scada-metric span{font-size:.73rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scada-metric strong{font-size:.86rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.scada-metric small{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scada-metric i{display:block;height:5px;border-radius:99px;background:linear-gradient(90deg,#1677c8 var(--metric-percent),var(--border) var(--metric-percent))}
.scada-metric-ok{border-color:rgba(22,163,74,.32)}
.scada-metric-warning{border-color:rgba(217,119,6,.35)}
.scada-metric-critical{border-color:rgba(220,38,38,.35)}
@media(max-width:1300px){.scada-module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.scada-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.scada-module-grid{grid-template-columns:1fr}.scada-module-head strong{white-space:normal}.scada-metric small{white-space:normal}}

.focus-flash{animation:focusFlash 1.8s ease}
@keyframes focusFlash{0%,100%{box-shadow:none}20%,70%{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 35%,transparent);border-color:color-mix(in srgb,var(--primary) 65%,var(--border))}}
@media(max-width:1180px){
  .app-side-menu,.app-side-menu.collapsed,.app-side-menu.expanded{grid-template-columns:40px repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){.app-side-menu,.app-side-menu.collapsed,.app-side-menu.expanded{grid-template-columns:repeat(3,minmax(0,1fr))}}
.global-query-shell{display:grid;gap:16px;margin:24px 0 34px}
.global-query-ask{display:grid;gap:14px}
.global-query-ask textarea{width:100%;resize:vertical;min-height:120px}
.global-query-composer{position:relative}
.global-query-composer textarea{padding-right:58px}
.global-query-microphone{position:absolute;right:10px;bottom:10px;width:38px;height:38px;padding:0;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%);color:var(--muted);box-shadow:none}
.global-query-microphone:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--surface) 82%,var(--accent) 18%)}
.global-query-microphone svg{width:19px;height:19px;fill:currentColor}
.global-query-microphone.listening{color:#fff;border-color:#ef4444;background:#dc2626}
.voice-pulse{width:12px;height:12px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 rgba(255,255,255,.65);animation:voice-listening-pulse 1.25s infinite}
@keyframes voice-listening-pulse{70%{box-shadow:0 0 0 9px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.global-query-composer-help{display:flex;justify-content:space-between;gap:12px;margin-top:-8px;color:var(--muted);font-size:.7rem}
.global-query-composer-help .voice-status{color:var(--accent);text-align:right}
.global-query-composer-help .voice-status.error-text{color:var(--danger)}
.global-query-conversation{display:grid;gap:9px;padding:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 86%,var(--accent) 14%);max-height:520px;overflow:auto}
.global-query-conversation-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.global-query-conversation-title>strong{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.global-query-conversation-title button{padding:7px 10px;font-size:.72rem}
.global-query-message{display:grid;gap:4px;max-width:min(88%,850px);padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}
.global-query-message.role-user{justify-self:end;border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.global-query-message.role-assistant{justify-self:start}
.global-query-message>span{font-size:.66rem;font-weight:800;text-transform:uppercase;color:var(--muted)}
.global-query-message>p{margin:0;line-height:1.45;white-space:pre-wrap}
.global-query-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.global-query-actions label{min-width:190px}
.global-query-actions .ops-check{min-width:260px;align-self:center}
.global-answer{display:grid;gap:14px}
.global-answer>strong{font-size:1.1rem;line-height:1.45}
.global-query-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.global-query-kpis div{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px;display:grid;gap:4px}
.global-query-kpis span{font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--muted)}
.global-query-kpis b{font-size:1.25rem}
.global-result-table{display:grid;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.global-result-head,.global-result-row{display:grid;grid-template-columns:1.15fr 1.25fr 1fr .7fr 1fr;gap:10px;align-items:center;padding:10px 12px}
.global-result-head{background:var(--surface-2);font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--muted)}
.global-result-row{border-top:1px solid var(--border);font-size:.88rem}
.global-result-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-result-row strong{font-size:1rem}
.global-result-row.status-error{background:rgba(220,38,38,.08)}
.global-result-row.status-warning{background:rgba(245,158,11,.08)}
.global-query-muted .panel-title{margin-bottom:10px}
.global-project-chips{display:flex;flex-wrap:wrap;gap:6px}
.global-project-chips span{font-size:.78rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 9px;background:var(--surface-2)}
@media(max-width:900px){.global-project-report{grid-template-columns:1fr}.global-project-report button{width:100%}.global-query-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.global-result-head{display:none}.global-result-row{grid-template-columns:1fr;gap:4px}.global-result-row span{white-space:normal}}
@media(max-width:520px){.global-query-kpis{grid-template-columns:1fr}.global-query-actions{display:grid}.global-query-actions label{min-width:0}.global-query-actions>button{width:100%}.global-query-message{max-width:96%}.global-query-conversation-title{align-items:flex-start;flex-direction:column}.global-query-conversation-title button{width:100%}.global-query-composer-help{align-items:flex-start;flex-direction:column}.global-query-composer-help .voice-status{text-align:left}}
.freshness-shell{margin:24px 0 34px;display:grid;gap:16px}.freshness-controls .global-query-actions{align-items:end}.freshness-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.freshness-bulk-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.segmented-control{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.segmented-control button{padding:8px 12px;border:0;border-radius:7px;background:transparent;color:var(--muted)}.segmented-control button.active{background:var(--accent);color:#fff}.freshness-sort{display:grid;gap:4px;color:var(--muted);font-size:.78rem;font-weight:800}.freshness-sort select{min-width:220px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px}.freshness-email-form{display:flex;gap:8px;align-items:center;flex:1;justify-content:flex-end}.freshness-email-form input{min-width:240px;max-width:360px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px}.freshness-email-status{margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--muted)}.freshness-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.freshness-card{border:1px solid var(--border);border-left:5px solid #94a3b8;border-radius:12px;background:var(--surface-2);padding:14px;display:grid;gap:10px}.freshness-card.status-critical{border-left-color:#dc2626}.freshness-card.status-warning{border-left-color:#d97706}.freshness-card.status-ok{border-left-color:#16a34a}.freshness-card>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:start}.freshness-card strong{font-size:1.02rem}.freshness-select-card{display:flex;align-items:flex-start;gap:9px;min-width:0}.freshness-select-card input,.freshness-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.freshness-card span{font-size:.72rem;font-weight:850;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:var(--surface)}.freshness-card.status-critical span{color:#dc2626;border-color:rgba(220,38,38,.35)}.freshness-card.status-warning span{color:#d97706;border-color:rgba(217,119,6,.35)}.freshness-card.status-ok span{color:#16a34a;border-color:rgba(22,163,74,.35)}.freshness-card p{margin:0;color:var(--muted)}.freshness-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.freshness-card dl div{border:1px solid var(--border);border-radius:9px;padding:8px;background:var(--surface)}.freshness-card dt{font-size:.68rem;color:var(--muted);text-transform:uppercase;font-weight:800}.freshness-card dd{margin:3px 0 0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.freshness-card>.danger-button{justify-self:start}.freshness-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}.freshness-table{width:100%;min-width:1160px;border-collapse:collapse;background:var(--surface-2)}.freshness-table th,.freshness-table td{padding:10px 11px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.freshness-table th{position:sticky;top:0;background:var(--surface);z-index:1;color:var(--muted);font-size:.74rem;text-transform:uppercase}.freshness-table td{font-size:.86rem}.freshness-table th:first-child,.freshness-table td:first-child{width:38px}.freshness-table td:nth-child(5),.freshness-table td:nth-child(9){max-width:280px}.freshness-table span{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:850;text-transform:uppercase}.freshness-table tr.status-critical span{color:#dc2626;border-color:rgba(220,38,38,.35)}.freshness-table tr.status-warning span{color:#d97706;border-color:rgba(217,119,6,.35)}.danger-button.compact{padding:7px 10px;font-size:.78rem}.delete-auth-dialog{position:fixed;z-index:1601;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 28px));display:grid;gap:14px;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 28px 80px rgba(0,0,0,.45)}.delete-auth-dialog header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.delete-auth-dialog h2,.delete-auth-dialog p{margin:0}.delete-auth-dialog header span{color:#dc2626;font-size:.75rem;font-weight:900;text-transform:uppercase}.delete-auth-dialog header button{width:32px;height:32px;padding:0}.delete-code-box{display:grid;gap:6px;padding:14px;border:1px solid rgba(220,38,38,.35);border-radius:10px;background:color-mix(in srgb,#dc2626 8%,var(--surface-2))}.delete-code-box span{color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase}.delete-code-box strong{font-size:2rem;letter-spacing:.12em}.delete-code-box a{color:var(--accent);overflow-wrap:anywhere}.delete-auth-status{padding:11px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--muted)}.delete-auth-dialog footer{display:flex;justify-content:flex-end}@media(max-width:700px){.freshness-list{grid-template-columns:1fr}.freshness-card dl{grid-template-columns:1fr}.freshness-toolbar,.freshness-email-form,.freshness-bulk-actions{align-items:stretch;flex-direction:column}.freshness-email-form{width:100%}.freshness-email-form input,.freshness-email-form button,.freshness-sort select,.freshness-bulk-actions button{width:100%;max-width:none}.segmented-control{display:grid;grid-template-columns:1fr 1fr;width:100%}}
.normality-button{background:#ecfdf3;border:1px solid #86d6a5;color:#166534;box-shadow:0 1px 2px rgba(22,101,52,.08)}
.normality-button:hover:not(:disabled){background:#dcfce7;color:#14532d;border-color:#4fb978}
.anomaly-reset-button{background:#fff1f2;border:1px solid #e7a2aa;color:#991b2b;box-shadow:0 1px 2px rgba(153,27,43,.08)}
.anomaly-reset-button:hover:not(:disabled){background:#ffe4e6;color:#7f1d2d;border-color:#d76d79}
:root[data-theme="dark"] .normality-button{background:rgba(22,163,74,.14);border-color:rgba(74,222,128,.45);color:#86efac;box-shadow:none}
:root[data-theme="dark"] .normality-button:hover:not(:disabled){background:#16a34a;color:#fff;border-color:#22c55e}
:root[data-theme="dark"] .anomaly-reset-button{background:#7d2331;border-color:#a84b5a;color:#fff;box-shadow:none}
:root[data-theme="dark"] .anomaly-reset-button:hover:not(:disabled){background:#962d3d;border-color:#c76070;color:#fff}
.anomaly-silence-button{background:color-mix(in srgb,#d97706 12%,var(--surface))!important;border:1px solid color-mix(in srgb,#d97706 42%,var(--border))!important;color:#b45309!important}.anomaly-silence-button:hover{background:color-mix(in srgb,#d97706 22%,var(--surface))!important;color:#92400e!important}.anomaly-silence-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:end;margin-top:11px;padding:12px;border:1px solid color-mix(in srgb,#d97706 38%,var(--border));border-radius:10px;background:color-mix(in srgb,#d97706 6%,var(--surface))}.anomaly-silence-editor>div{display:grid;grid-column:1/-1;gap:2px;align-self:center}.anomaly-silence-editor>div small{color:var(--muted);line-height:1.3}.anomaly-silence-editor label{display:grid;gap:4px;color:var(--muted);font-size:.7rem}.anomaly-silence-editor input,.anomaly-silence-editor select{width:100%;min-width:0;padding:8px 9px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:.78rem}.anomaly-silence-editor button{grid-column:1/-1;justify-self:end;min-width:210px;padding:9px 13px;white-space:normal}.resolution-kind-silenced{color:#b45309;background:color-mix(in srgb,#d97706 12%,var(--surface));border:1px solid color-mix(in srgb,#d97706 35%,var(--border))}.anomaly-silence-windows{border-color:color-mix(in srgb,#d97706 38%,var(--border));background:color-mix(in srgb,#d97706 5%,var(--surface))}@media(max-width:700px){.ai-panel-heading-actions{align-items:stretch;flex-direction:column}.anomaly-silence-editor{grid-template-columns:1fr}.anomaly-silence-editor>div,.anomaly-silence-editor button{grid-column:1}.anomaly-silence-editor button{justify-self:stretch;width:100%}}
.family-device-status.status-maintenance{background:#64748b}.maintenance-windows,.maintenance-clusters{display:grid;gap:9px;margin:0 0 13px;padding:12px;border:1px solid color-mix(in srgb,#64748b 38%,var(--border));border-radius:11px;background:color-mix(in srgb,#64748b 5%,var(--surface))}.maintenance-windows-title,.maintenance-clusters-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.maintenance-windows-title>div,.maintenance-clusters-intro{display:flex;flex-direction:column}.maintenance-windows-title small,.maintenance-clusters-intro small,.maintenance-window-item small{color:var(--muted);font-size:.75rem}.maintenance-windows-title>span{font-size:.72rem;color:var(--muted);padding:4px 8px;border-radius:999px;background:var(--surface-2);white-space:nowrap}.maintenance-window-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.maintenance-window-item>div{display:grid;gap:2px}.maintenance-cluster-item{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(220px,1.5fr) auto auto;align-items:end;gap:9px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.maintenance-cluster-summary{display:grid;gap:2px}.maintenance-cluster-summary span{color:var(--muted);font-size:.74rem}.maintenance-cluster-item input,.maintenance-cluster-item select{border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);padding:7px 9px;font-size:.78rem}.maintenance-cluster-item label{display:grid;gap:3px;color:var(--muted);font-size:.69rem}.maintenance-snooze-button{white-space:nowrap}.device-maintenance .device-top span{color:#64748b}.device-maintenance .availability-bar i{background:#64748b}@media(max-width:900px){.maintenance-cluster-item{grid-template-columns:1fr 1fr}.maintenance-cluster-summary,.maintenance-cluster-item input{grid-column:1/-1}}@media(max-width:600px){.maintenance-windows-title,.maintenance-window-item{align-items:stretch;flex-direction:column}.maintenance-cluster-item{grid-template-columns:1fr}.maintenance-cluster-summary,.maintenance-cluster-item input{grid-column:1}.maintenance-cluster-item button{width:100%}}
.maintenance-cluster-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.maintenance-cluster-summary,.maintenance-cluster-detail,.maintenance-snooze-button{grid-column:1/-1}.maintenance-snooze-button{white-space:normal;width:100%}@media(max-width:600px){.maintenance-cluster-item{grid-template-columns:1fr}.maintenance-cluster-summary,.maintenance-cluster-detail,.maintenance-snooze-button,.maintenance-cluster-item input{grid-column:1}}
.preset-device-family-picker{display:grid;gap:11px;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:11px;background:var(--surface-2)}.preset-device-family-picker>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.preset-device-family-picker>header>div{display:grid;gap:2px}.preset-device-family-picker>header small,.preset-family-empty{color:var(--muted)}.preset-device-family-picker>header>span{padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.72rem}.preset-family-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.preset-family-actions button{padding:6px 9px;font-size:.74rem}.preset-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:280px;overflow:auto;padding-right:3px}.preset-family-grid>label{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer}.preset-family-grid>label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.preset-family-grid input{width:16px;height:16px;accent-color:var(--accent)}.preset-family-grid span{display:grid}.preset-family-grid span strong{font-size:.8rem}.preset-family-grid span small{color:var(--muted);font-size:.69rem}.preset-family-grid em{font-style:normal;font-size:.6rem;font-weight:850;letter-spacing:.04em;color:#b45309;padding:3px 5px;border-radius:999px;background:color-mix(in srgb,#f59e0b 12%,var(--surface));border:1px solid color-mix(in srgb,#f59e0b 35%,var(--border))}.preset-family-grid>label.massive-family:not(:has(input:checked)){opacity:.72}@media(max-width:620px){.preset-family-grid{grid-template-columns:1fr}.preset-device-family-picker>header{align-items:stretch;flex-direction:column}.preset-family-actions{display:grid;grid-template-columns:1fr}.preset-family-actions button{width:100%}}
.preset-target-dialog.with-projects{width:min(780px,calc(100vw - 28px));max-height:min(90dvh,920px);overflow:auto}.preset-portfolio-toggle{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 6%,var(--surface-2));cursor:pointer}.preset-portfolio-toggle input{width:17px;height:17px;margin:2px 0 0;accent-color:var(--accent)}.preset-portfolio-toggle span{display:grid;gap:2px}.preset-portfolio-toggle strong{font-size:.8rem}.preset-portfolio-toggle small{color:var(--muted);font-size:.69rem;line-height:1.35}.preset-project-picker{display:grid;gap:9px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.preset-project-picker>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.preset-project-picker>header>div{display:grid;gap:2px}.preset-project-picker>header strong{font-size:.82rem}.preset-project-picker>header small,.preset-project-note{color:var(--muted);font-size:.68rem}.preset-project-picker>header>span{display:grid;place-items:center;min-width:28px;height:24px;padding:0 7px;border-radius:999px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:800}.preset-project-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px}.preset-project-toolbar input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.preset-project-toolbar button{padding:7px 9px;font-size:.7rem}.preset-project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;max-height:190px;overflow:auto;padding:6px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.preset-project-grid>label{display:grid;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:8px;min-height:38px;padding:7px 9px;border:1px solid transparent;border-radius:8px;background:var(--surface-2);cursor:pointer}.preset-project-grid>label.selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.preset-project-grid input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.preset-project-grid span{min-width:0;overflow-wrap:anywhere;font-size:.74rem;font-weight:600;line-height:1.25}.preset-project-grid b{display:grid;place-items:center;color:#19a466;font-size:.72rem}.preset-portfolio-status{padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--muted);font-size:.72rem}@media(max-width:620px){.preset-target-dialog.with-projects{width:100%;max-height:92dvh}.preset-project-toolbar{grid-template-columns:1fr 1fr}.preset-project-toolbar input{grid-column:1/-1}.preset-project-grid{grid-template-columns:1fr;max-height:230px}}

/* Compact, readable overview of configured alarm graphs. */
.configured-alarm-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:12px}
.configured-alarm-grid .configured-graph-card{padding:0;overflow:hidden;background:var(--surface-2)}
.configured-alarm-grid .configured-graph-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0;padding:13px 14px;border-bottom:1px solid var(--border)}
.configured-alarm-grid .configured-graph-card>header>div{display:grid;gap:2px;min-width:0}
.configured-alarm-grid .configured-graph-card>header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.configured-alarm-grid .configured-graph-card>header small{grid-column:auto;color:var(--muted);font-size:.7rem;font-weight:500}
.configured-alarm-grid .configured-graph-card>.configured-condition-list{display:grid;grid-template-columns:1fr;gap:10px;padding:10px;border:0}
.configured-alarm-grid .configured-condition-card{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.configured-alarm-grid .configured-condition-heading{display:grid;grid-template-columns:12px minmax(0,1fr);gap:8px;align-items:center;padding:0;border:0}
.configured-condition-heading>div{display:grid;gap:1px;min-width:0}
.configured-condition-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.configured-alarm-grid .configured-condition-heading small{grid-column:auto;color:var(--muted);font-size:.7rem;font-weight:500}
.configured-condition-tags{display:flex;flex-wrap:wrap;gap:5px}
.configured-condition-tags span,.configured-recipient-list span{padding:3px 7px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.66rem;font-weight:650;line-height:1.25}
.configured-condition-tags .severity-critical{border-color:color-mix(in srgb,#e74c3c 45%,var(--border));color:#e05b50}
.configured-condition-tags .severity-warning{border-color:color-mix(in srgb,#e0a229 45%,var(--border));color:#c98a13}
.configured-condition-tags .severity-info{border-color:color-mix(in srgb,#2f8bc0 45%,var(--border));color:#2f8bc0}
.configured-condition-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0}
.configured-condition-facts>div{min-width:0;padding:7px 8px;border-radius:7px;background:var(--surface-2)}
.configured-condition-facts dt{margin:0;color:var(--muted);font-size:.64rem;font-weight:600}
.configured-condition-facts dd{margin:2px 0 0;color:var(--text);font-size:.77rem;font-weight:650;overflow-wrap:anywhere}
.configured-input-list{display:grid;gap:5px}
.configured-input-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:7px 9px;border-left:2px solid #2f8bc0;border-radius:5px;background:var(--surface-2)}
.configured-input-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.68rem}
.configured-input-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.76rem}
.configured-input-list em{grid-column:2;grid-row:1/3;align-self:center;color:#2f8bc0;font-size:.68rem;font-style:normal;font-weight:650}
.configured-condition-expand{justify-self:start;padding:3px 0;border:0;background:transparent;color:#2f8bc0;font-size:.7rem;font-weight:650;box-shadow:none}
.configured-condition-expand:hover{border:0;background:transparent;color:#61b7e8;transform:none}
.configured-recipient-list{display:flex;flex-wrap:wrap;gap:5px;padding-top:8px;border-top:1px solid var(--border)}
.configured-recipient-list .recipient-missing{border-color:color-mix(in srgb,#e0a229 35%,var(--border));color:#b77e14}
@media(max-width:600px){.configured-condition-facts{grid-template-columns:1fr}.configured-input-list>div{grid-template-columns:1fr}.configured-input-list em{grid-column:1;grid-row:auto}}

/* v2 security, login and audit */
.login-layout{min-height:100vh}
.login-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:28px;background:#08101b url("../images/login-solar-background.jpg") center/cover no-repeat}
.login-shade{position:absolute;inset:0;background:linear-gradient(100deg,rgba(4,10,18,.88),rgba(4,10,18,.52) 48%,rgba(4,10,18,.7));backdrop-filter:blur(1px)}
.login-card{position:relative;width:min(430px,100%);display:grid;gap:24px;padding:34px;border:1px solid rgba(255,255,255,.16);border-radius:17px;background:rgba(8,17,29,.9);box-shadow:0 30px 90px rgba(0,0,0,.5);color:#f4f8fc}
.login-card>img{width:min(235px,70%);height:auto}.login-heading{display:grid;gap:7px}.login-heading span,.security-title>div>span{font-size:.67rem;font-weight:750;letter-spacing:.17em;color:#65b9ea}.login-heading h1{margin:0;font-size:1.65rem;font-weight:650;letter-spacing:-.02em}.login-heading p{margin:0;color:#aab8c8;line-height:1.5;font-size:.88rem}.login-card form{display:grid;gap:14px}.login-card form>label:not(.login-remember){display:grid;gap:6px}.login-card label>span{font-size:.74rem;color:#bdc9d5;font-weight:600}.login-card input[type=text],.login-card input[type=password]{width:100%;padding:12px 13px;border:1px solid #34455a;border-radius:8px;background:#0c1827;color:#fff;outline:none}.login-card input:focus{border-color:#43a5dd;box-shadow:0 0 0 3px rgba(67,165,221,.15)}.login-remember{display:flex;align-items:center;gap:8px}.login-remember input{accent-color:#2f95ce}.login-card form>button{padding:12px;border:1px solid #45a8df;border-radius:8px;background:#2588c0;color:#fff;font-weight:700}.login-card form>button:hover{background:#2f9bd5}.login-card footer{padding-top:17px;border-top:1px solid rgba(255,255,255,.1);color:#7f91a4;font-size:.7rem;text-align:center}.login-error{padding:10px 12px;border:1px solid rgba(239,68,68,.45);border-radius:8px;background:rgba(239,68,68,.12);color:#fecaca;font-size:.8rem}.auth-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;background:#09131f;color:#b9c7d5}.auth-loading span{width:32px;height:32px;border:2px solid #294158;border-top-color:#4db2e9;border-radius:50%;animation:securitySpin .8s linear infinite}@keyframes securitySpin{to{transform:rotate(360deg)}}
.session-user{display:flex;align-items:center;gap:8px;padding:4px 8px;border-left:1px solid var(--border)}.session-user>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));color:var(--accent);font-size:.7rem;font-weight:800}.session-user>div{display:grid}.session-user strong{font-size:.73rem;font-weight:650}.session-user small{color:var(--muted);font-size:.62rem}.logout-button{padding-inline:9px}
.security-page{display:grid;gap:18px;padding-block:24px 40px}.security-title{display:flex;justify-content:space-between;align-items:end;gap:18px}.security-title h1{margin:4px 0 5px;font-size:1.65rem}.security-title p{margin:0;color:var(--muted)}.security-message{padding:11px 13px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text)}.security-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(430px,1.28fr);gap:16px;align-items:start}.security-users,.security-editor,.security-audit{padding:0;overflow:hidden}.security-users>header,.security-editor>header,.security-audit>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border)}.security-users h2,.security-editor h2,.security-audit h2{margin:0;font-size:1rem}.security-users>header span,.security-editor header small,.security-audit header small{color:var(--muted);font-size:.7rem}.security-user-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 14px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);text-align:left}.security-user-row:hover,.security-user-row.selected{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.security-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-2);color:var(--accent);font-size:.7rem;font-weight:800}.security-user-row>span:nth-child(2){display:grid;min-width:0}.security-user-row strong,.security-user-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.security-user-row small{color:var(--muted);font-size:.68rem}.security-user-row em{padding:3px 6px;border-radius:999px;font-size:.62rem;font-style:normal}.security-user-row em.active{background:rgba(22,163,74,.12);color:#16a34a}.security-user-row em.inactive{background:rgba(220,38,38,.12);color:#dc2626}.security-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.security-form>label{display:grid;gap:5px}.security-form label>span,.security-form legend{color:var(--muted);font-size:.7rem;font-weight:650}.security-form input,.security-form select,.security-audit-filters input{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.security-check{display:flex!important;align-items:center;gap:8px}.security-check input{width:16px;height:16px;accent-color:var(--accent)}.security-form fieldset{grid-column:1/-1;margin:0;padding:10px;border:1px solid var(--border);border-radius:9px}.security-project-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.security-project-filter>small{flex:0 0 auto;color:var(--muted);font-size:.65rem}.security-project-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;flex:1;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--muted)}.security-project-search>span{padding-left:9px}.security-project-search input{width:100%;padding:8px 7px;border:0;background:transparent;outline:0}.security-project-search button{width:28px;height:28px;margin-right:3px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:1rem}.security-project-search button:hover{background:var(--surface-2);color:var(--text)}.security-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:210px;overflow:auto}.security-projects label{display:flex;align-items:center;gap:7px;min-width:0;padding:6px;border-radius:6px;background:var(--surface-2)}.security-projects label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.73rem}.security-projects input{width:14px;height:14px;accent-color:var(--accent)}.security-project-empty{grid-column:1/-1;margin:10px;text-align:center;color:var(--muted);font-size:.72rem}.security-form>footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px}.security-audit>header>div:first-child{display:grid}.security-audit-filters{display:flex;gap:7px}.security-audit-table{overflow:auto}.security-audit table{width:100%;min-width:980px;border-collapse:collapse}.security-audit th,.security-audit td{padding:9px 11px;border-bottom:1px solid var(--border);text-align:left;font-size:.72rem}.security-audit th{color:var(--muted);font-size:.64rem;text-transform:uppercase}.security-audit td:nth-child(4){max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-status{padding:3px 6px;border-radius:999px}.audit-status.ok{background:rgba(22,163,74,.1);color:#16a34a}.audit-status.bad{background:rgba(220,38,38,.1);color:#dc2626}.security-audit>footer{padding:10px 14px;color:var(--muted);font-size:.7rem}
.password-guidance{margin:0;color:#738097;font-size:.72rem;line-height:1.45}
.account-menu-wrap{position:relative;z-index:1002}.session-user{border:0;background:transparent;color:inherit;cursor:pointer;border-radius:9px}.session-user:hover,.session-user[aria-expanded="true"]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.session-avatar{overflow:hidden}.session-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.account-chevron{width:auto!important;height:auto!important;background:transparent!important;color:var(--muted)!important;font-size:.8rem!important;transition:transform .16s ease}.session-user[aria-expanded="true"] .account-chevron{transform:rotate(180deg)}.account-dropdown{position:absolute;top:calc(100% + 9px);right:0;width:260px;padding:7px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 18px 45px rgba(10,20,38,.22);z-index:1003}.account-dropdown header{display:grid;gap:2px;padding:9px 10px 11px;border-bottom:1px solid var(--border);margin-bottom:5px}.account-dropdown header strong{font-size:.78rem}.account-dropdown header span{overflow:hidden;color:var(--muted);font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.account-dropdown>button{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left}.account-dropdown>button:hover{background:var(--surface-2)}.account-dropdown>button>span{font-size:.9rem;text-align:center}.account-dropdown>button>div{display:grid;gap:1px}.account-dropdown>button strong{font-size:.73rem}.account-dropdown>button small{color:var(--muted);font-size:.63rem}.account-dropdown .account-logout{margin-top:5px;border-top:1px solid var(--border);border-radius:0 0 8px 8px}.account-dropdown .account-logout strong,.account-dropdown .account-logout>span{color:#dc2626}.account-menu-backdrop{position:fixed;inset:0;z-index:1001;border:0;background:transparent;cursor:default}
.security-credential{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid rgba(22,163,74,.35);border-radius:10px;background:rgba(22,163,74,.07)}.security-credential>div{display:grid;gap:3px}.security-credential strong{font-size:.84rem}.security-credential div span{color:var(--muted);font-size:.7rem}.security-credential code{padding:8px 11px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:.84rem;user-select:all}.security-credential>span{font-size:.69rem}.security-credential .sent{color:#16a34a}.security-credential .pending{max-width:280px;color:#b45309}.security-password-note{align-self:center;padding:9px 10px;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:.72rem;line-height:1.4}
.security-title-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.security-sync{padding:6px 9px;border-radius:999px;font-size:.66rem}.security-sync.ready{background:rgba(22,163,74,.1);color:#16a34a}.security-sync.local{background:var(--surface-2);color:var(--muted)}.security-groups{padding:0;overflow:hidden}.security-groups>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.security-groups h2{margin:0;font-size:1rem}.security-groups header small{color:var(--muted);font-size:.7rem}.security-groups-body{display:grid;grid-template-columns:minmax(230px,.65fr) minmax(420px,1.35fr)}.security-group-list{border-right:1px solid var(--border)}.security-group-list button{width:100%;display:grid;gap:3px;padding:11px 14px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);text-align:left}.security-group-list button.selected,.security-group-list button:hover{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.security-group-list small{color:var(--muted);font-size:.68rem}.security-group-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.security-group-form>label{display:grid;gap:5px}.security-group-form label span,.security-group-form legend{color:var(--muted);font-size:.7rem}.security-group-form input,.security-group-form select{padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.security-group-form fieldset,.security-group-form footer{grid-column:1/-1}.security-group-form fieldset{padding:10px;border:1px solid var(--border);border-radius:9px}.security-group-form footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.security-group-form footer span{color:var(--muted);font-size:.72rem}
.security-field-help{margin:0 0 9px;color:var(--muted);font-size:.68rem}.security-project-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.security-project-groups label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:7px;background:var(--surface-2)}.security-project-groups label>span{display:grid;min-width:0}.security-project-groups strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.73rem}.security-project-groups small{color:var(--muted);font-size:.64rem}.security-project-groups input{width:15px;height:15px;accent-color:var(--accent)}.security-project-group-admin .security-group-list{max-height:390px;overflow:auto}.security-project-group-projects{max-height:260px}
.security-bulk-selection{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.security-bulk-selection>small{color:var(--muted);font-size:.66rem}.security-bulk-selection>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.security-bulk-selection button{padding:5px 8px;font-size:.64rem}
.security-project-selection-summary{display:grid;gap:8px;margin-bottom:10px;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 5%,var(--surface-2))}.security-project-selection-summary>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.security-project-selection-summary strong{font-size:.74rem}.security-project-selection-summary>div:first-child button{padding:5px 8px;font-size:.65rem}.security-project-selection-summary>p{margin:0;color:var(--muted);font-size:.68rem}.security-selected-projects{display:flex;flex-wrap:wrap;gap:5px;max-height:116px;overflow:auto}.security-selected-projects>span{display:flex;align-items:center;max-width:100%;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text)}.security-selected-projects>span>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 2px 4px 8px;font-size:.67rem}.security-selected-projects button{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;padding:0;border:0;background:transparent;color:var(--muted);font-size:.85rem}.security-selected-projects button:hover{color:var(--danger)}.security-project-group-admin .security-group-form>footer>div{display:flex;flex-wrap:wrap;gap:7px}
@media(max-width:900px){.security-groups-body{grid-template-columns:1fr}.security-group-list{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:760px){.security-credential{grid-template-columns:1fr}.security-credential .pending{max-width:none}}
.profile-page{display:grid;gap:18px;padding-block:24px 40px}.profile-title h1{margin:4px 0 5px;font-size:1.65rem}.profile-title p{margin:0;color:var(--muted)}.profile-grid{display:grid;grid-template-columns:minmax(480px,1.3fr) minmax(340px,.7fr);gap:16px;align-items:start}.profile-identity,.profile-password{padding:0;overflow:hidden}.profile-identity>header,.profile-password>header{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.profile-identity h2,.profile-password h2{margin:0;font-size:1rem}.profile-identity header small,.profile-password header small{color:var(--muted);font-size:.7rem}.profile-avatar-editor{display:flex;align-items:center;gap:18px;padding:18px 18px 10px}.profile-avatar-preview{display:grid;place-items:center;width:104px;height:104px;overflow:hidden;border:3px solid color-mix(in srgb,var(--accent) 55%,var(--border));border-radius:50%;background:var(--surface-2);font-size:2rem;font-weight:800}.profile-avatar-preview img{width:100%;height:100%;object-fit:cover}.profile-avatar-actions{display:flex;flex-wrap:wrap;gap:8px}.profile-file-button{position:relative;overflow:hidden;padding:9px 12px;border-radius:8px;background:var(--accent);color:#fff;font-size:.75rem;font-weight:700;cursor:pointer}.profile-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.profile-camera{display:grid;justify-items:center;gap:10px;padding:12px 18px}.profile-camera video{width:min(100%,380px);aspect-ratio:1;border-radius:12px;background:#07111f;object-fit:cover}.profile-icons{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 18px 14px}.profile-icons>span{width:100%;color:var(--muted);font-size:.7rem}.profile-icons button{width:38px;height:38px;padding:0;border:1px solid var(--border);background:var(--surface-2);font-size:1.15rem}.profile-icons button.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.profile-form{display:grid;gap:12px;padding:16px 18px 18px}.profile-form label{display:grid;gap:5px}.profile-form label span{color:var(--muted);font-size:.7rem;font-weight:650}.profile-form input{padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.profile-form footer{display:flex;justify-content:flex-end}@media(max-width:900px){.profile-grid{grid-template-columns:1fr}}@media(max-width:560px){.profile-avatar-editor{align-items:flex-start;flex-direction:column}.profile-avatar-actions{width:100%}.profile-avatar-actions>*{flex:1}}
.profile-camera-notice{margin:0 18px 8px;padding:9px 10px;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:.7rem}
@media(max-width:960px){.security-grid{grid-template-columns:1fr}.security-audit>header{align-items:stretch;flex-direction:column}.security-audit-filters{width:100%}.security-audit-filters input{flex:1}.session-user>div{display:none}}@media(max-width:600px){.login-page{padding:12px}.login-card{padding:25px 20px}.security-title{align-items:stretch;flex-direction:column}.security-title>button{width:100%}.security-form{grid-template-columns:1fr}.security-form fieldset,.security-form>footer{grid-column:1}.security-projects,.security-project-groups{grid-template-columns:1fr}.security-bulk-selection{align-items:flex-start;flex-direction:column}.security-bulk-selection>div{justify-content:flex-start}.security-audit-filters{display:grid}.session-user>div{display:none}.account-dropdown{position:fixed;top:62px;right:10px;left:10px;width:auto}}
.deployment-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid var(--border);border-radius:999px;font-size:.68rem;font-weight:750;white-space:nowrap}.deployment-badge.airgapped{border-color:rgba(217,119,6,.45);background:rgba(217,119,6,.1);color:#d97706}.deployment-mode-card.airgapped{border-color:color-mix(in srgb,#d97706 45%,var(--border))}.data-source-option.disabled{opacity:.48;cursor:not-allowed}.airgapped-notice{display:grid;gap:3px;margin:10px 0;padding:11px 12px;border:1px solid color-mix(in srgb,#d97706 40%,var(--border));border-radius:9px;background:color-mix(in srgb,#d97706 8%,var(--surface));font-size:.78rem}.airgapped-notice span{color:var(--muted);line-height:1.45}.offline-map-note{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);max-width:72%;padding:10px 13px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--muted);font-size:.72rem;text-align:center;box-shadow:0 8px 28px rgba(0,0,0,.18)}@media(max-width:700px){.deployment-badge{display:none}}
/* Portfolio operativo */
.project-overview-page{max-width:1540px;margin:0 auto;padding:clamp(18px,2.5vw,38px)}
.project-overview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.project-overview-heading .eyebrow{color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.18em}
.project-overview-heading h1{margin:5px 0 7px;font-size:clamp(1.55rem,3vw,2.45rem);letter-spacing:-.035em}
.project-overview-heading p{margin:0;color:var(--muted);max-width:720px}
.overview-live-status{display:flex;align-items:center;gap:6px;margin-top:9px;color:var(--muted);font-size:.76rem}
.live-dot{width:7px;height:7px;border-radius:50%;background:#2fcf82;box-shadow:0 0 0 3px color-mix(in srgb,#2fcf82 18%,transparent);flex:0 0 auto}
.live-dot.refreshing{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);animation:overview-live-pulse 1s ease-in-out infinite}
@keyframes overview-live-pulse{50%{opacity:.35;transform:scale(.8)}}
.project-overview-heading-actions{display:flex;align-items:stretch;gap:12px}
.portfolio-power-kpi{display:grid;min-width:210px;padding:10px 15px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 92%,var(--accent) 8%),var(--panel));box-shadow:0 8px 24px #0002}
.portfolio-power-kpi span{color:var(--muted);font-size:.66rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase}
.portfolio-power-kpi strong{align-self:end;margin-top:2px;color:var(--text);font-size:1.45rem;line-height:1.1;letter-spacing:-.035em}
.portfolio-power-kpi small{margin-top:3px;color:var(--muted);font-size:.64rem}
.overview-reload{display:flex;align-items:center;gap:8px;white-space:nowrap}
.overview-reload-icon{display:inline-block;font-size:1.2rem}
.spinning{display:inline-block;animation:overview-spin .8s linear infinite}
@keyframes overview-spin{to{transform:rotate(360deg)}}
.overview-legend{display:flex;flex-wrap:wrap;gap:9px 18px;margin-bottom:22px;color:var(--muted);font-size:.78rem}
.overview-legend span{display:flex;align-items:center;gap:7px}
.overview-legend i{width:8px;height:8px;border-radius:50%;background:#77808f}
.overview-legend i.ok{background:#32cf79;box-shadow:0 0 8px #32cf7988}.overview-legend i.warning{background:#f2b94b}.overview-legend i.critical{background:#ff6268}.overview-legend i.offline{background:#8b94a5}
.overview-project-search{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:5px;max-width:520px;margin:0 0 22px;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.overview-project-search>span{color:var(--accent);font-size:1.1rem}.overview-project-search input{min-width:0;border:0;background:transparent;color:var(--text);font:inherit;outline:none}.overview-project-search small{color:var(--muted)}
.overview-controls{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 0 22px}.overview-controls .overview-project-search{flex:1;margin:0}.overview-project-sort{display:grid;gap:5px;min-width:min(100%,320px)}.overview-project-sort>span{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.overview-project-sort select{width:100%;min-height:42px;padding:8px 34px 8px 11px;border:1px solid var(--border);border-radius:11px;background:var(--panel);color:var(--text);font:inherit;font-size:.8rem}
.overview-view-options{display:flex;align-items:center;gap:7px;min-height:42px;padding:4px;border:1px solid var(--border);border-radius:11px;background:var(--panel)}
.overview-icon-toggle{display:flex;align-items:center;gap:3px}.overview-icon-toggle+.overview-icon-toggle{padding-left:7px;border-left:1px solid var(--border)}
.overview-icon-toggle button{display:grid;place-items:center;width:34px;height:32px;min-height:32px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.overview-icon-toggle button:hover{background:var(--panel-2);color:var(--text)}.overview-icon-toggle button.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
.view-list-icon{display:grid;gap:3px;width:17px}.view-list-icon i{display:block;height:2px;border-radius:2px;background:currentColor}
.view-grid-icon{display:grid;grid-template-columns:repeat(2,6px);gap:3px}.view-grid-icon i{width:6px;height:6px;border-radius:1px;background:currentColor}
.column-count-icon{display:flex;align-items:stretch;justify-content:center;gap:2px;width:21px;height:13px}.column-count-icon i{display:block;flex:1;border:1px solid currentColor;border-radius:1px;background:color-mix(in srgb,currentColor 18%,transparent)}
.project-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:clamp(16px,2vw,26px);align-items:start}
.project-overview-grid.view-cards.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-overview-grid.view-cards.columns-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.project-overview-grid.view-cards.columns-5{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.project-summary-card{--status:#7d8797;position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--status) 34%,var(--border));border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,var(--panel) 96%,white 4%),var(--panel));box-shadow:0 15px 38px #0002;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.project-summary-card.status-ok{--status:#29c874}.project-summary-card.status-warning{--status:#e8ac37}.project-summary-card.status-critical{--status:#f25c64}.project-summary-card.status-offline{--status:#ee5961}
.project-summary-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--status) 70%,var(--border));box-shadow:0 20px 44px #0003}
.project-cover{position:relative;height:190px;overflow:hidden;background:#17201e}
.project-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.project-summary-card:hover .project-cover img{transform:scale(1.025)}
.project-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,#08100fbd)}
.project-state-pill{--pill-status:var(--status);position:absolute;left:14px;bottom:13px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--pill-status) 76%,transparent);border-radius:999px;background:#07100dcc;color:#fff;font:inherit;font-size:.7rem;font-weight:650;letter-spacing:.03em;backdrop-filter:blur(7px)}
.project-limit-pill{position:absolute;left:14px;bottom:49px;padding:5px 9px;border:1px solid #ffffff3d;border-radius:999px;background:#07100dcc;color:#dce4e8;font-size:.66rem;font-weight:650;letter-spacing:.02em;backdrop-filter:blur(7px)}
.project-limit-pill.limit-limited{border-color:#f0b43c;color:#ffd77b;background:#251a08e8}.project-limit-pill.limit-unlimited{border-color:#35ca80;color:#8bf0bb}.project-limit-pill.limit-unknown{color:#bdc7ce}
.project-technology-pills{position:absolute;right:14px;bottom:13px;display:flex;max-width:56%;max-height:145px;align-items:flex-end;flex-direction:column;gap:5px;overflow:auto;scrollbar-width:thin}
.project-technology-pills span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 9px;border:1px solid #ffffff42;border-radius:999px;background:#07100dcc;color:#f0f5f7;font-size:.66rem;font-weight:650;letter-spacing:.02em;backdrop-filter:blur(7px)}
.project-technology-pills .mounting-tracker{border-color:#4bb3ef;color:#9ddcff}.project-technology-pills .mounting-fixed{border-color:#9ca9b5;color:#d9e1e6}.project-technology-pills .mounting-unknown{color:#bdc7ce}
.inline-project-edit,.inline-value-edit{display:inline-grid;place-items:center;flex:none;padding:0;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--muted);font:inherit;font-size:.66rem;line-height:1;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.inline-project-edit{width:24px;height:24px;min-height:24px;border-color:#ffffff42;background:#07100dcc;color:#dbe7eb;backdrop-filter:blur(7px)}
.inline-value-edit{width:21px;height:21px;min-height:21px}
.inline-project-edit:hover,.inline-value-edit:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
.project-state-pill.anomaly-critical{--pill-status:#f25c64;cursor:pointer}.project-state-pill.anomaly-warning{--pill-status:#e8ac37;cursor:pointer}
.project-state-pill.status-warning{--pill-status:#e8ac37}.project-state-pill.status-critical,.project-state-pill.status-offline{--pill-status:#f25c64}
.project-state-pill:is(.anomaly-critical,.anomaly-warning):hover{background:color-mix(in srgb,var(--pill-status) 34%,#07100d);box-shadow:0 0 0 3px color-mix(in srgb,var(--pill-status) 18%,transparent)}
.project-cover-edit{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #ffffff42;border-radius:9px;background:#080b0ccc;color:#fff;font-size:.7rem;cursor:pointer;backdrop-filter:blur(8px)}
.project-cover-edit:hover{background:#111719ed}.project-cover-edit input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.project-card-main{padding:18px 20px 13px;cursor:pointer;outline:none}
.project-card-main:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.project-card-main>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.project-name-heading{display:flex;align-items:center;gap:6px;min-width:0}.project-name-heading h2{min-width:0}
.project-card-main h2{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.28rem;letter-spacing:-.02em}
.project-card-actions{display:flex;align-items:center;gap:6px;flex:none}.card-refresh-button,.card-source-button{display:grid;place-items:center;width:31px;height:31px;min-height:31px;flex:none;padding:0;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);color:var(--muted);line-height:1;cursor:pointer}
.card-refresh-button span{display:block;width:1em;height:1em;line-height:1;transform-origin:50% 50%;font-size:1rem}
.card-refresh-button:hover,.card-source-button:hover{border-color:var(--accent);color:var(--accent)}.card-source-button{font-size:.86rem}
.current-production{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);align-items:center;gap:12px;padding:15px 0 13px;text-align:center}
.current-production>div{min-width:0}.current-production strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:clamp(1.45rem,3vw,2.15rem);font-weight:680;line-height:1;letter-spacing:-.045em}
.current-production span{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:6px;color:var(--muted);font-size:.64rem;text-transform:uppercase;letter-spacing:.075em}
.current-production .inline-value-edit{display:inline-grid}
.current-production>i{width:1px;height:43px;background:var(--border)}
.project-nominal-power{display:flex;align-items:center;justify-content:center;gap:7px;margin:-3px auto 13px;color:var(--muted);font-size:.67rem}
.project-nominal-power span{text-transform:uppercase;letter-spacing:.065em}.project-nominal-power strong{padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--text);font-size:.72rem;font-weight:700}
.energy-flow{display:grid;grid-template-columns:minmax(82px,1fr) minmax(100px,1.4fr) minmax(82px,1fr);align-items:center;gap:8px}
.flow-metric{text-align:center;min-width:0}.flow-icon{display:block;color:var(--muted);font-size:1.45rem;height:27px}.sun-icon{color:#efb83f}
.flow-metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}.flow-metric small{display:block;color:var(--muted);font-size:.65rem}
.flow-line{display:flex;align-items:center}.flow-line i{height:2px;flex:1;background:linear-gradient(90deg,var(--border),var(--status))}
.flow-line i:last-child{background:linear-gradient(90deg,var(--status),var(--border))}
.central-health{display:grid;place-items:center;width:35px;height:35px;flex:none;border:3px solid var(--status);border-radius:50%;color:var(--status);font-size:1.25rem;font-weight:850;box-shadow:0 0 16px color-mix(in srgb,var(--status) 38%,transparent)}
.project-status-message{min-height:32px;margin:11px 0 12px;text-align:center;color:var(--muted);font-size:.73rem;line-height:1.4}
.inverter-section{padding-top:13px;border-top:1px solid var(--border)}
.inverter-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;text-align:left}
.inverter-heading strong{font-size:.76rem;font-weight:650}.inverter-heading span{color:var(--muted);font-size:.68rem;white-space:nowrap}
.inverter-bars{display:flex;gap:7px;align-items:flex-end;min-height:130px;padding:5px 2px 0;overflow-x:auto;scrollbar-width:thin}
.inverter-bars.fit-all{display:grid;grid-template-columns:repeat(var(--inverter-count),minmax(2px,1fr));gap:clamp(1px,.75vw,5px);overflow:hidden}
.inverter-bars.fit-all .inverter-bar-item{min-width:0;width:100%}
.inverter-bars.fit-all .bar-track{width:min(25px,78%);min-width:3px}
.inverter-bars.fit-all .bar-value,.inverter-bars.fit-all .inverter-bar-item small{width:100%;max-width:100%;text-align:center}
.inverter-bar-item{display:grid;grid-template-rows:18px 83px 22px;align-items:end;justify-items:center;min-width:38px;flex:1}
.bar-value{font-size:.61rem;color:var(--muted)}
.bar-track{position:relative;width:25px;height:80px;overflow:hidden;border-radius:4px 4px 2px 2px;background:color-mix(in srgb,var(--panel-2) 78%,white 2%);border:1px solid var(--border)}
.bar-track i{position:absolute;left:0;right:0;bottom:0;min-height:2px;background:linear-gradient(180deg,color-mix(in srgb,var(--status) 70%,#49a8ff),color-mix(in srgb,var(--status) 85%,#1675c3));box-shadow:0 -3px 10px color-mix(in srgb,var(--status) 32%,transparent);transition:height .5s ease}
.inverter-bar-item.no-data .bar-track{border-color:color-mix(in srgb,#e15b64 65%,var(--border));background:repeating-linear-gradient(135deg,color-mix(in srgb,#e15b64 14%,var(--panel-2)) 0 5px,var(--panel-2) 5px 10px)}
.inverter-bar-item.no-data .bar-track i{display:none}.inverter-bar-item.no-data .bar-value{color:#e15b64;font-weight:750}.inverter-bar-item.no-data small{color:#e15b64}
.inverter-bar-item small{align-self:center;max-width:48px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.58rem}
.normalization-note{margin:7px 0 0;color:var(--muted);font-size:.61rem;line-height:1.35;text-align:left}
.no-inverters{padding:22px 8px;color:var(--muted);font-size:.75rem;text-align:center}
.project-summary-card>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 20px 13px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel-2) 55%,transparent)}
.project-summary-card>footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.64rem}
.project-summary-card>footer button{padding:0;border:0;background:none;color:var(--accent);font-size:.7rem;font-weight:650;cursor:pointer;white-space:nowrap}
.project-overview-grid.view-cards.columns-4 .project-cover{height:158px}.project-overview-grid.view-cards.columns-5 .project-cover{height:132px}
.project-overview-grid.view-cards:is(.columns-4,.columns-5) .project-card-main{padding:14px 14px 11px}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .project-card-main h2{font-size:1.05rem}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .current-production{gap:8px}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .current-production strong{font-size:clamp(1.15rem,2vw,1.65rem)}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .energy-flow{grid-template-columns:minmax(62px,1fr) minmax(74px,1fr) minmax(62px,1fr)}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .project-status-message{min-height:38px}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .inverter-heading{align-items:flex-start;flex-direction:column;gap:2px}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .inverter-bars{gap:3px}.project-overview-grid.view-cards:is(.columns-4,.columns-5) .project-summary-card>footer{padding-inline:14px}
.project-overview-grid.view-cards.columns-5 .project-technology-pills{max-width:66%;gap:3px}.project-overview-grid.view-cards.columns-5 .project-technology-pills span{padding:4px 7px;font-size:.58rem}.project-overview-grid.view-cards.columns-5 .project-limit-pill,.project-overview-grid.view-cards.columns-5 .project-state-pill{left:9px;padding:4px 7px;font-size:.58rem}.project-overview-grid.view-cards.columns-5 .project-limit-pill{bottom:39px}.project-overview-grid.view-cards.columns-5 .project-cover-edit{right:8px;top:8px;padding:5px 7px}.project-overview-grid.view-cards.columns-5 .flow-metric small{font-size:.57rem}
.project-overview-grid.view-list{grid-template-columns:1fr;gap:8px}
.project-overview-grid.view-list .project-summary-card{display:grid;grid-template-columns:96px minmax(0,1fr) 138px;min-height:112px;border-radius:11px;box-shadow:0 5px 15px #0001}
.project-overview-grid.view-list .project-summary-card:hover{transform:translateY(-1px)}
.project-overview-grid.view-list .project-cover{height:112px}.project-overview-grid.view-list .project-cover-edit,.project-overview-grid.view-list .project-technology-pills{display:none}.project-overview-grid.view-list .project-cover img{height:112px}.project-overview-grid.view-list .project-cover-shade{background:linear-gradient(180deg,transparent 25%,#08100fc7)}
.project-overview-grid.view-list .project-limit-pill{left:6px;top:6px;bottom:auto;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;font-size:.53rem}.project-overview-grid.view-list .project-state-pill{left:6px;bottom:6px;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;font-size:.53rem}
.project-overview-grid.view-list .project-card-main{display:grid;grid-template-columns:minmax(155px,.7fr) minmax(175px,.68fr) minmax(300px,1.8fr);grid-template-rows:1fr 1fr;align-items:center;gap:0 13px;min-width:0;padding:8px 12px}
.project-overview-grid.view-list .project-card-main>header{grid-column:1;grid-row:1;align-self:end}.project-overview-grid.view-list .project-card-main h2{font-size:.92rem}.project-overview-grid.view-list .project-card-actions{gap:3px}.project-overview-grid.view-list .card-refresh-button,.project-overview-grid.view-list .card-source-button{width:26px;height:26px;min-height:26px;border-radius:7px}
.project-overview-grid.view-list .current-production{grid-column:2;grid-row:1/3;gap:7px;padding:0}.project-overview-grid.view-list .current-production strong{font-size:1.05rem}.project-overview-grid.view-list .current-production span{margin-top:3px;font-size:.52rem;letter-spacing:.035em}.project-overview-grid.view-list .current-production .inline-value-edit{display:none}.project-overview-grid.view-list .current-production>i{height:32px}
.project-overview-grid.view-list .project-nominal-power{grid-column:1;grid-row:2;align-self:start;justify-content:flex-start;margin:5px 0 0;font-size:.55rem}.project-overview-grid.view-list .project-nominal-power strong{padding:2px 6px;font-size:.6rem}.project-overview-grid.view-list .project-nominal-power .inline-value-edit{display:none}
.project-overview-grid.view-list .energy-flow,.project-overview-grid.view-list .project-status-message{display:none}
.project-overview-grid.view-list .inverter-section{grid-column:3;grid-row:1/3;min-width:0;padding:0 0 0 13px;border-top:0;border-left:1px solid var(--border)}.project-overview-grid.view-list .inverter-heading{gap:7px;margin:0 0 2px}.project-overview-grid.view-list .inverter-heading strong{font-size:.6rem}.project-overview-grid.view-list .inverter-heading span{font-size:.55rem}
.project-overview-grid.view-list .inverter-bars,.project-overview-grid.view-list .inverter-bars.fit-all{display:grid;grid-template-columns:repeat(var(--inverter-count),minmax(3px,1fr));gap:clamp(1px,.4vw,4px);min-height:70px;padding:0;overflow:hidden}.project-overview-grid.view-list .inverter-bar-item{grid-template-rows:12px 45px 13px;min-width:0;width:100%}.project-overview-grid.view-list .bar-track,.project-overview-grid.view-list .inverter-bars.fit-all .bar-track{width:min(14px,72%);min-width:3px;height:43px}.project-overview-grid.view-list .bar-value{width:100%;font-size:.48rem;text-align:center}.project-overview-grid.view-list .inverter-bar-item small{width:100%;max-width:100%;font-size:.46rem;text-align:center}.project-overview-grid.view-list .normalization-note{display:none}.project-overview-grid.view-list .no-inverters{padding:16px 5px}
.project-overview-grid.view-list .project-summary-card>footer{grid-column:3;grid-row:1;align-items:flex-start;justify-content:center;flex-direction:column;padding:8px 10px;border-top:0;border-left:1px solid var(--border)}.project-overview-grid.view-list .project-summary-card>footer span{white-space:normal;font-size:.57rem;line-height:1.35}.project-overview-grid.view-list .project-summary-card>footer button{min-height:28px;font-size:.62rem}
.overview-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:24px}
.overview-skeleton-card{height:590px;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--panel)}
.overview-skeleton-card span,.overview-skeleton-card b,.overview-skeleton-card i{display:block;background:linear-gradient(90deg,var(--panel-2),color-mix(in srgb,var(--panel-2) 65%,white),var(--panel-2));background-size:200% 100%;animation:overview-shimmer 1.4s infinite}
.overview-skeleton-card span{height:190px}.overview-skeleton-card b{height:28px;margin:24px 22px 10px}.overview-skeleton-card i{height:190px;margin:28px 22px}
.overview-load-more{display:flex;justify-content:center;padding:24px 0 4px}.overview-load-more button{display:flex;gap:10px;align-items:center}.overview-load-more span{color:var(--muted);font-size:.72rem}
.measurement-settings-backdrop{position:fixed;z-index:1700;inset:0;background:#020712aa;backdrop-filter:blur(3px)}
.measurement-settings-dialog{position:fixed;z-index:1701;left:50%;top:50%;transform:translate(-50%,-50%);width:min(820px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 28px 90px #0008}
.measurement-settings-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:19px 21px 16px;border-bottom:1px solid var(--border)}.measurement-settings-dialog h2{margin:3px 0 5px;font-size:1.28rem}.measurement-settings-dialog header p{max-width:640px;margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.measurement-settings-dialog .eyebrow{color:var(--accent);font-size:.64rem;font-weight:750;letter-spacing:.12em}
.project-profile-settings{margin:16px 20px 0;border:1px solid var(--border);border-radius:11px;background:var(--panel-2)}
.project-profile-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;cursor:pointer;list-style-position:inside}
.project-profile-settings>summary span{font-size:.82rem;font-weight:700}.project-profile-settings>summary small{color:var(--muted);font-size:.67rem;font-weight:500}
.project-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;padding:4px 14px 14px;border-top:1px solid var(--border)}
.project-profile-grid label{display:grid;align-content:start;gap:5px;min-width:0;padding-top:10px}.project-profile-grid label.wide{grid-column:span 2}
.project-profile-grid label>span{color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase}
.project-profile-grid input,.project-profile-grid select,.project-profile-grid textarea{min-width:0;width:100%;box-sizing:border-box;padding:8px 9px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.76rem}
.project-profile-grid input,.project-profile-grid select{min-height:38px}.project-profile-grid input[readonly]{color:var(--muted);background:color-mix(in srgb,var(--input-bg) 78%,var(--panel))}
.project-profile-grid textarea{resize:vertical;line-height:1.4}
.measurement-source-list{display:grid;gap:10px;padding:16px 20px}.measurement-source-card{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.9fr) minmax(170px,.8fr) minmax(100px,.42fr);align-items:end;gap:12px;padding:13px;border:1px solid var(--border);border-radius:11px;background:var(--panel-2)}.measurement-source-card>div{align-self:center;display:grid;gap:4px}.measurement-source-card>div strong{font-size:.83rem}.measurement-source-card>div small{color:var(--muted);font-size:.67rem;line-height:1.4}.measurement-source-card label{display:grid;gap:5px}.measurement-source-card label>span{color:var(--muted);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.measurement-source-card select{min-width:0;width:100%;min-height:38px;padding:7px 30px 7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.74rem}
.measurement-settings-message{margin:0 20px 12px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--muted);font-size:.73rem}.measurement-settings-dialog>footer{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;padding:13px 20px 17px;border-top:1px solid var(--border)}
.project-settings-page{width:min(1180px,100%);margin:0 auto;padding:24px 22px 52px}
.project-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.project-settings-heading .eyebrow{color:var(--accent);font-size:.68rem;font-weight:760;letter-spacing:.12em}.project-settings-heading h1{margin:5px 0 7px;font-size:clamp(1.55rem,3vw,2.2rem)}.project-settings-heading p{max-width:760px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}
.project-settings-selector{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.project-settings-selector label{display:grid;gap:6px;width:min(100%,620px)}.project-settings-selector label>span{color:var(--muted);font-size:.66rem;font-weight:720;letter-spacing:.06em;text-transform:uppercase}.project-settings-selector select{width:100%;min-height:42px;padding:8px 36px 8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.8rem}.project-settings-loading{color:var(--muted);font-size:.72rem}
.project-settings-message{margin-bottom:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel);font-size:.76rem}.project-settings-message.success{border-color:color-mix(in srgb,#32cf79 48%,var(--border));color:#39ba73}.project-settings-message.error{border-color:color-mix(in srgb,#f25c64 48%,var(--border));color:#e6646b}
.project-settings-fieldset{display:grid;gap:15px;margin:0;padding:0;border:0}.project-settings-fieldset:disabled{opacity:.8}.project-settings-loaded-cards{display:grid;gap:12px}
.project-settings-page .project-profile-settings{margin:0;background:var(--panel)}
.project-measurement-settings{border:1px solid var(--border);border-radius:11px;background:var(--panel)}.project-measurement-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;cursor:pointer;list-style-position:inside}.project-measurement-settings>summary span{font-size:.82rem;font-weight:700}.project-measurement-settings>summary small{color:var(--muted);font-size:.67rem;font-weight:500}.project-measurement-settings .measurement-source-list{padding-top:4px;border-top:1px solid var(--border)}
.project-settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:16px;padding:14px 0}.project-settings-actions>span{margin-right:auto;color:var(--muted);font-size:.74rem}.project-settings-actions button{min-height:40px}
@media(max-width:1350px){
  .project-overview-grid.view-cards.columns-5{grid-template-columns:repeat(4,minmax(0,1fr))}
  .project-overview-grid.view-cards.columns-4{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1080px){
  .project-overview-grid.view-cards:is(.columns-3,.columns-4,.columns-5){grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-overview-grid.view-list .project-summary-card{grid-template-columns:80px minmax(0,1fr)}
  .project-overview-grid.view-list .project-cover,.project-overview-grid.view-list .project-cover img{height:112px}
  .project-overview-grid.view-list .project-card-main{grid-template-columns:minmax(145px,.7fr) minmax(145px,.65fr) minmax(240px,1.4fr);padding-inline:10px}
  .project-overview-grid.view-list .project-summary-card>footer{display:none}
}
@keyframes overview-shimmer{to{background-position:-200% 0}}
@media(max-width:700px){
  .project-overview-page{padding:14px 10px 28px}.project-overview-heading{align-items:flex-start;flex-direction:column}.project-overview-heading-actions{display:grid;grid-template-columns:1fr;width:100%}.portfolio-power-kpi{min-width:0}.overview-reload{width:100%;justify-content:center}
  .project-overview-grid{grid-template-columns:1fr}.project-cover{height:160px}.project-card-main{padding-inline:15px}.project-summary-card>footer{padding-inline:15px}
  .energy-flow{grid-template-columns:82px 1fr 82px}.project-cover-edit span:last-of-type{display:none}.project-technology-pills{right:10px;max-width:58%}
  .project-profile-settings{margin-inline:12px}.project-profile-settings>summary{align-items:flex-start;flex-direction:column;gap:3px}.project-profile-grid{grid-template-columns:1fr}.project-profile-grid label.wide{grid-column:auto}
  .measurement-source-card{grid-template-columns:1fr}.measurement-settings-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.measurement-settings-dialog>footer{grid-template-columns:1fr}.measurement-settings-dialog>footer span{display:none}.measurement-settings-dialog>footer button{width:100%}
  .project-settings-page{padding:15px 10px 34px}.project-settings-selector{align-items:stretch;flex-direction:column}.project-settings-page .project-profile-settings{margin-inline:0}.project-measurement-settings>summary{align-items:flex-start;flex-direction:column;gap:3px}.project-settings-actions{align-items:stretch;flex-direction:column}.project-settings-actions button{width:100%}
  .project-overview-grid.view-cards:is(.columns-3,.columns-4,.columns-5){grid-template-columns:1fr}
  .project-overview-grid.view-list .project-summary-card{display:block;min-height:0}.project-overview-grid.view-list .project-cover{display:none}
  .project-overview-grid.view-list .project-card-main{grid-template-columns:minmax(0,1fr) minmax(150px,.8fr);grid-template-rows:auto auto auto;gap:7px 10px;padding:9px 10px}
  .project-overview-grid.view-list .project-card-main>header{grid-column:1;grid-row:1}.project-overview-grid.view-list .current-production{grid-column:2;grid-row:1/3}.project-overview-grid.view-list .project-nominal-power{grid-column:1;grid-row:2}.project-overview-grid.view-list .inverter-section{grid-column:1/3;grid-row:3;padding:7px 0 0;border-top:1px solid var(--border);border-left:0}
  .overview-view-options{align-self:stretch;justify-content:space-between}
}
@media(max-width:1000px){.saved-channel-views-controls{grid-template-columns:1fr 1fr}.saved-view-name{grid-column:1/-1}.saved-channel-views-controls button{width:100%}}
@media(max-width:560px){.saved-channel-views-heading{display:grid}.saved-channel-views-heading>small{justify-self:start}.saved-channel-views-controls{grid-template-columns:1fr}.saved-view-name{grid-column:auto}}

/* Mobile application shell and touch-first layouts */
@media(max-width:600px){
  html,body{max-width:100%;overflow-x:hidden}
  body{padding-bottom:env(safe-area-inset-bottom)}
  input,select,textarea{font-size:16px}
  button{min-height:42px}
  .shell{width:100%;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}

  .topbar{padding-top:env(safe-area-inset-top)}
  .topbar-content{min-height:56px;padding-top:6px;padding-bottom:6px;gap:7px}
  .brand-block{display:grid;grid-template-columns:96px minmax(0,1fr);flex:1 1 100%;gap:6px 8px;width:100%;overflow:visible}
  .brand-logo{width:96px;height:39px}
  .brand-context-shell{display:grid;min-width:0;gap:6px}
  .brand-context{display:flex;min-width:0;width:100%}
  .brand-context>.app-version,.brand-context>.header-project{display:none}
  .brand-context .portfolio-scope-selector{display:inline-flex;width:100%;min-width:0;max-width:none;height:36px}
  .brand-context .portfolio-scope-trigger{height:28px}
  .brand-context .portfolio-scope-menu{right:0;left:auto;width:max(100%,250px);max-width:calc(100vw - 20px)}
  .topbar-right{flex:0 0 auto;gap:5px}
  .language-selector{gap:0}
  .language-icon{display:none}
  .language-selector select{width:55px;max-width:55px;height:36px;padding:5px 18px 5px 6px;border-color:rgba(255,255,255,.28);background-color:rgba(255,255,255,.1);color:#fff;font-size:.72rem}
  .live-clock,.settings-button{display:none!important}
  .theme-toggle-button{width:36px;height:36px;min-height:36px;padding:0!important;font-size:0!important}
  .theme-toggle-button::after{content:"◐";font-size:1rem}
  .session-user{width:38px;height:38px;min-height:38px;padding:3px!important;border-radius:50%!important}
  .session-user>div,.account-chevron{display:none!important}
  .session-avatar{width:30px!important;height:30px!important}
  .account-dropdown{position:fixed;top:calc(56px + env(safe-area-inset-top));right:9px;left:9px;width:auto;max-height:calc(100dvh - 72px - env(safe-area-inset-top));overflow:auto}

  .app-body{display:block;padding-top:8px}
  .app-side-menu,.app-side-menu.collapsed,.app-side-menu.expanded{
    position:sticky;top:calc(56px + env(safe-area-inset-top));z-index:18;
    display:flex;gap:5px;width:100%;margin:0 0 10px;padding:6px;
    overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;
    border-radius:11px;scrollbar-width:none
  }
  .app-side-menu::-webkit-scrollbar{display:none}
  .app-side-menu .side-menu-toggle{display:none!important}
  .app-side-menu a,.app-side-menu.collapsed a,.app-side-menu.expanded a{
    display:flex;flex:0 0 auto;min-width:auto;min-height:42px;align-items:center;gap:6px;
    padding:7px 10px;scroll-snap-align:start
  }
  .app-side-menu a b{grid-row:auto;font-size:.85rem}
  .app-side-menu a span,.app-side-menu.collapsed a span{display:block!important;font-size:.72rem;white-space:nowrap}
  .app-side-menu a small,.app-side-menu.collapsed a small{display:none!important}
  .app-main-content{width:100%;min-width:0}

  .page-title{margin-top:8px;gap:11px}.page-title h1{font-size:1.45rem;line-height:1.15}.intro{font-size:.84rem;line-height:1.4}
  .query-card,.chart-card,.table-card,.panel-card,.alarm-automation-library,.configured-alarms-panel,.alarm-history-panel{padding:12px;margin:12px 0;border-radius:12px}
  .container-query-card{padding:12px}.container-row{display:grid;grid-template-columns:1fr;gap:9px}.container-row>button{width:100%}
  .global-project-report{grid-template-columns:1fr;padding:10px}.global-project-report button{width:100%;white-space:normal}
  .global-report-status{align-items:flex-start}.global-report-status button{flex:0 0 30px;min-height:30px}
  .metadata-summary{padding:10px;margin:11px 0}.form-grid{grid-template-columns:1fr;gap:10px}
  .query-actions,.channel-selector-title,.series-controls-header{align-items:stretch;flex-direction:column}
  .channel-selector-title-actions,.compact-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .channel-selector-title-actions button,.compact-actions button{width:100%;white-space:normal}
  .channel-grid{grid-template-columns:1fr;max-height:260px}

  .om-shell{margin:12px 0 24px;gap:12px}.om-heading{gap:10px}.om-heading h2{font-size:1.4rem}
  .om-actions{grid-template-columns:1fr}.om-actions button{white-space:normal}
  .om-status{padding:12px}.om-status>button{width:100%}
  .kpi-grid{
    display:grid;grid-auto-flow:column;grid-auto-columns:minmax(78%,1fr);grid-template-columns:none;
    gap:9px;overflow-x:auto;padding:1px 1px 9px;scroll-snap-type:x mandatory;scrollbar-width:thin
  }
  .kpi-card{scroll-snap-align:start;padding:14px}
  .om-grid-two{grid-template-columns:1fr}
  .panel-title{gap:8px}.panel-title p{font-size:.79rem}.panel-title-actions{display:grid;grid-template-columns:1fr;width:100%}
  .panel-title-actions>*{width:100%;min-width:0}
  .group-grid,.device-grid,.latest-device-grid,.incident-board,.knowledge-list,.cache-projects{grid-template-columns:1fr!important}
  .family-device-list li{grid-template-columns:8px minmax(0,1fr)}.family-device-list li small{grid-column:2;white-space:normal}
  .project-context{padding:12px}.cache-state{width:100%;min-width:0}
  .mini-chart,.detailed-chart{height:190px}.chart-placeholder{height:180px}

  .history-workbench-header{align-items:stretch;flex-direction:column}
  .history-workbench-toggle{width:100%;min-width:0}
  .history-filter-grid{grid-template-columns:1fr!important}
  .availability-calendar{position:fixed;z-index:1500;top:50%;left:50%!important;right:auto!important;width:min(330px,calc(100vw - 20px));transform:translate(-50%,-50%);padding:11px}
  .chart-toolbar,.table-actions,.table-granularity{width:100%}.chart-toolbar button,.table-actions button{width:100%}
  .chart-card,.table-card{overflow:hidden}.chart-wrapper{min-height:260px}.history-chart{height:280px}
  .chart-tooltip{left:7px!important;right:7px!important;top:auto!important;bottom:7px;width:auto;min-width:0;max-width:none;height:auto;max-height:52%;font-size:.72rem}
  .tooltip-values{max-height:110px}
  .table-wrap{height:56vh;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:620px}

  .ops-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding-bottom:7px;scrollbar-width:thin}
  .ops-tabs button{flex:0 0 auto;scroll-snap-align:start}
  .ops-toolbar,.ops-form,.incident-controls,.comment-box{align-items:stretch;flex-direction:column}
  .ops-toolbar>*,.ops-form>*,.incident-controls>*,.comment-box>*{width:100%;max-width:none}
  .timeline-entry{grid-template-columns:1fr;gap:4px;padding:11px 0}.timeline-entry time{font-size:.72rem}

  .alarm-page-title{align-items:stretch}.alarm-editor-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .alarm-editor-actions button{width:100%;padding:8px;white-space:normal}
  .alarm-automation-library>.panel-title,.configured-alarms-panel>.panel-title{align-items:stretch;flex-direction:column}
  .automation-toggle{width:100%}
  .alarm-preset-parameters{display:grid;grid-template-columns:1fr}.alarm-preset-parameters label{min-width:0}
  .alarm-natural-builder>div:nth-child(2),.configured-email-actions{grid-template-columns:1fr}
  .configured-email-actions>*{width:100%}
  .alarm-editor-shell,.alarm-editor-shell.properties-collapsed{display:flex;flex-direction:column;gap:10px}
  .alarm-editor-sidebar{order:1}.alarm-editor-main{order:2;grid-template-rows:auto minmax(430px,64vh)}.alarm-properties{order:3}
  .alarm-canvas-toolbar{padding:8px}.alarm-zoom-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .alarm-zoom-controls>*{width:100%;min-width:0;padding:7px;white-space:normal}.alarm-zoom-controls strong{grid-column:1/-1}
  .alarm-canvas{min-height:430px;touch-action:none;-webkit-user-select:none;user-select:none}
  .alarm-node{width:210px!important}.alarm-node.node-condition,.alarm-node.node-email{width:280px!important}.node-pin{min-height:0}
  .blueprint-context-menu{position:fixed!important;left:10px!important;right:10px!important;top:auto!important;bottom:max(10px,env(safe-area-inset-bottom));width:auto!important;max-height:65dvh;overflow:auto}
  .anomaly-head{align-items:flex-start;flex-direction:column;gap:4px}.anomaly-head span{overflow-wrap:anywhere}
  .anomaly-actions{display:grid;grid-template-columns:1fr}.anomaly-actions button{width:100%;white-space:normal}
  .ai-panel-heading-actions{width:100%}.ai-panel-heading-actions button{width:100%}
  .alarm-history-actions,.alarm-row-actions{display:grid;grid-template-columns:1fr;width:100%}.alarm-history-actions button,.alarm-row-actions button{width:100%}
  .alarm-history-toolbar{display:grid;grid-template-columns:minmax(0,1fr)}.alarm-history-project-picker{width:100%}.alarm-history-project-popover{position:static;width:100%;margin-top:6px;box-shadow:none}.alarm-history-export-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.alarm-history-export-actions input{grid-column:1/-1;width:100%}.alarm-history-export-actions button{width:100%}.alarm-history-row-details dl{grid-template-columns:1fr}.alarm-history-compact-table{min-width:860px!important}
  .preset-target-dialog{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:88dvh;overflow:auto;border-radius:18px 18px 0 0;padding:15px;padding-bottom:max(15px,env(safe-area-inset-bottom))}

  .yearly-chart{min-width:560px}.monthly-generation-panel{overflow-x:auto}
  .scada-module-grid{grid-template-columns:1fr!important}

  .settings-drawer{inset:0!important;width:100%!important;border:0;border-radius:0;padding:14px;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .settings-drawer-header{align-items:flex-start}.settings-drawer-header h2{font-size:1.3rem}.settings-drawer-header button{flex:0 0 42px}
  .settings-drawer-footer{position:sticky;bottom:0;padding-top:9px;background:var(--surface)}.settings-drawer-footer button{flex:1;white-space:normal}
  .security-page,.profile-page{padding-block:10px 26px}.security-form{padding:12px}.security-form>footer{display:grid;grid-template-columns:1fr}.security-form>footer button{width:100%}
  .security-project-filter{align-items:stretch;flex-direction:column}.security-projects{grid-template-columns:1fr}
  .security-audit{overflow:hidden}.security-audit-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .profile-avatar-preview{width:88px;height:88px}.profile-form footer button{width:100%}

  .project-overview-page{padding:8px 0 24px}.project-overview-heading{gap:12px}.project-overview-heading h1{font-size:1.55rem}
  .overview-legend{gap:7px 12px;margin-bottom:14px}.overview-controls{align-items:stretch;flex-direction:column;margin-bottom:14px}.overview-project-search{max-width:none;margin-bottom:0}.overview-project-sort{min-width:0;width:100%}
  .project-summary-card{border-radius:14px}.project-cover{height:148px}.current-power strong{font-size:2.2rem}
  .inverter-bars{min-height:116px}.project-summary-card>footer{align-items:flex-start;flex-direction:column}.project-summary-card>footer button{min-height:34px}

  /* Configuración de proyectos: todos los editores deben caber en una sola
     columna y conservar 16 px para evitar el zoom automático de Safari/iOS. */
  .project-settings-page{width:100%;min-width:0;padding:8px 0 28px;overflow-x:clip}
  .project-settings-page *{box-sizing:border-box}
  .project-settings-heading,.project-settings-selector,.project-settings-fieldset,
  .project-settings-location,.project-profile-settings,.project-measurement-settings,
  .project-settings-tools,.project-settings-actions{width:100%;min-width:0;max-width:100%}
  .project-settings-heading{margin-bottom:13px}
  .project-settings-heading h1{font-size:1.45rem;line-height:1.12;overflow-wrap:anywhere}
  .project-settings-heading p{font-size:.8rem;overflow-wrap:anywhere}
  .project-settings-selector{padding:11px;margin-bottom:11px}
  .project-settings-selector label{width:100%;min-width:0}
  .project-settings-selector select{width:100%;max-width:100%;min-width:0;font-size:16px;text-overflow:ellipsis}
  .project-settings-message{overflow-wrap:anywhere}

  .project-settings-location{padding:11px;overflow:hidden}
  .project-settings-location>.panel-title{align-items:flex-start;flex-direction:column}
  .project-settings-location>.panel-title>span{align-self:flex-start}
  .project-settings-location .project-map-grid{width:100%;min-width:0;gap:10px}
  .project-settings-location .project-map-frame{width:100%;min-width:0;min-height:210px}
  .project-settings-location .project-map-canvas{height:230px}
  .project-location-editor{width:100%;min-width:0;padding:10px}
  .project-location-editor label{min-width:0;overflow-wrap:anywhere}
  .project-location-editor input:not([type=checkbox]),.project-location-editor select,
  .project-location-editor textarea{display:block;width:100%;max-width:100%;min-width:0;font-size:16px}
  .project-location-editor select{padding-right:30px;text-overflow:ellipsis}
  .project-location-editor .project-timezone-auto{width:100%;min-width:0}
  .project-location-editor .project-timezone-auto input{flex:0 0 auto;width:18px;height:18px}
  .project-location-editor .project-timezone-auto span{min-width:0;overflow-wrap:anywhere}
  .project-location-editor>button{width:100%;white-space:normal}
  .project-map-canvas small{right:8px;max-width:calc(100% - 76px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  .project-profile-settings>summary,.project-measurement-settings>summary{padding:11px;overflow-wrap:anywhere}
  .project-profile-grid{width:100%;min-width:0;gap:9px;padding:3px 10px 11px}
  .project-profile-grid label,.project-profile-grid label.wide{width:100%;min-width:0;grid-column:auto}
  .project-profile-grid label>span{line-height:1.35;overflow-wrap:anywhere}
  .project-profile-grid input,.project-profile-grid textarea{width:100%;max-width:100%;min-width:0;font-size:16px}

  .measurement-source-list,.project-measurement-settings .measurement-source-list{width:100%;min-width:0;padding:10px}
  .measurement-source-card{width:100%;min-width:0;gap:10px;padding:10px}
  .measurement-source-card>div,.measurement-source-card label{width:100%;min-width:0}
  .measurement-source-card>div small,.measurement-source-card label>span{overflow-wrap:anywhere}
  .measurement-source-card select{width:100%;max-width:100%;min-width:0;font-size:16px;text-overflow:ellipsis}
  .project-settings-actions{gap:8px;margin-top:9px;padding:9px 0}
  .project-settings-actions>span{width:100%;margin:0;overflow-wrap:anywhere}

  .project-settings-tools{margin-top:11px;overflow:hidden}
  .project-settings-tools .ops-workbench{width:100%;min-width:0;padding:11px;overflow:hidden}
  .project-settings-tools .ops-title{align-items:stretch;flex-direction:column}
  .project-settings-tools .ops-tabs{width:100%;max-width:100%}
  .project-settings-tools .ops-mini-kpis{max-width:100%;overflow-x:auto}
  .project-settings-tools .signal-profile-toggle{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;width:100%;max-width:100%;min-height:42px;padding:10px 12px;text-align:left}
  .project-settings-tools .signal-profile-toggle input[type=checkbox]{justify-self:start}
  .project-settings-tools .signal-profile-toggle span{display:block;width:auto;max-width:100%;white-space:normal}
  .project-settings-tools .signal-profile-table{width:100%;max-width:100%;overflow:auto}
  .project-settings-tools .signal-profile-table input[type=text],
  .project-settings-tools .signal-profile-table input[type=number],
  .project-settings-tools .signal-profile-table select{font-size:16px}
  .project-settings-tools .knowledge-form{width:100%;min-width:0}
  .project-settings-tools .knowledge-form input,
  .project-settings-tools .knowledge-form textarea,
  .project-settings-tools .knowledge-form button{width:100%;max-width:100%;min-width:0;font-size:16px}
}

@media(max-width:380px){
  .brand-logo{width:86px}.language-selector select{width:48px;max-width:48px}.topbar-right{gap:3px}
  .app-side-menu a,.app-side-menu.collapsed a,.app-side-menu.expanded a{padding-inline:8px}
  .energy-flow{grid-template-columns:72px minmax(72px,1fr) 72px}.flow-metric strong{font-size:.78rem}
  .alarm-editor-actions{grid-template-columns:1fr}
  .project-settings-location,.project-settings-tools .ops-workbench{padding:9px}
  .project-profile-grid,.measurement-source-list,.project-measurement-settings .measurement-source-list{padding-left:8px;padding-right:8px}
}

.global-query-history{margin-top:18px}
.global-query-history .panel-title>button{width:34px;height:34px;padding:0;border-radius:8px;font-size:1rem}
.global-query-history-list{display:grid;gap:8px;max-height:520px;overflow:auto;padding-right:4px}
.global-query-history-item{display:grid;grid-template-columns:minmax(130px,.22fr) minmax(220px,.78fr);gap:4px 14px;width:100%;padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:9px;background:var(--surface);color:var(--text);text-align:left}
.global-query-history-item:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.global-query-history-item.status-error{border-left-color:var(--danger)}
.global-query-history-item .global-query-history-date{grid-row:1/4;color:var(--muted);font-size:.72rem}
.global-query-history-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}
.global-query-history-item>span:not(.global-query-history-date){display:-webkit-box;overflow:hidden;color:var(--muted);font-size:.75rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.global-query-history-item small{color:var(--accent);font-size:.7rem}
.global-query-plan{margin-top:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%)}
.global-query-plan summary{cursor:pointer;color:var(--accent);font-size:.78rem;font-weight:650}
.global-query-plan>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:10px}
.global-query-plan span{display:grid;gap:2px;color:var(--text);font-size:.75rem}.global-query-plan span b{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em}
.global-agent-trace{padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--surface) 94%,var(--accent) 6%)}
.global-agent-trace summary{cursor:pointer;color:var(--accent);font-size:.78rem;font-weight:650;display:flex;align-items:center;justify-content:space-between;gap:10px}
.global-agent-trace summary span{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);display:grid;place-items:center;font-size:.68rem}
.global-agent-trace ol{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.global-agent-trace li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;align-items:start;padding:8px;border-left:2px solid var(--accent);background:var(--surface-2);border-radius:6px}
.global-agent-trace li>span{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:.65rem;font-weight:800}
.global-agent-trace li div{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;min-width:0}
.global-agent-trace li strong{font-size:.74rem}.global-agent-trace li small{color:var(--muted);font-size:.66rem}.global-agent-trace li p{grid-column:1/-1;margin:2px 0 0;color:var(--text);font-size:.73rem;line-height:1.4}
.global-agent-trace li.agent-step-waiting_for_user{border-left-color:var(--warning)}.global-agent-trace li.agent-step-fallback{border-left-color:var(--muted)}
.global-analysis-results{display:grid;gap:14px}
.global-analysis-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:11px}
.global-analysis-table{width:100%;min-width:980px;border-collapse:collapse;background:var(--surface)}
.global-analysis-table th,.global-analysis-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.global-analysis-table th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--muted);font-size:.67rem;text-transform:uppercase;letter-spacing:.035em}
.global-analysis-table td{font-size:.78rem}
.global-analysis-table td:first-child,.global-analysis-table td:last-child{display:grid;gap:2px}
.global-analysis-table td small{display:block;color:var(--muted);font-size:.66rem}
.analysis-status-pill{display:inline-flex;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:.68rem;font-weight:750;white-space:nowrap}
.analysis-status-unlimited .analysis-status-pill{color:#15803d;border-color:color-mix(in srgb,#16a34a 45%,var(--border));background:color-mix(in srgb,#16a34a 9%,var(--surface))}
.analysis-status-limited_intermittently .analysis-status-pill{color:#b45309;border-color:color-mix(in srgb,#f59e0b 45%,var(--border));background:color-mix(in srgb,#f59e0b 9%,var(--surface))}
.analysis-status-limited_all_day .analysis-status-pill{color:#dc2626;border-color:color-mix(in srgb,#ef4444 45%,var(--border));background:color-mix(in srgb,#ef4444 9%,var(--surface))}
.analysis-status-insufficient_coverage .analysis-status-pill,.analysis-status-channel_not_found .analysis-status-pill,.analysis-status-unsupported_unit .analysis-status-pill,.analysis-status-no_data .analysis-status-pill{color:var(--muted)}
.global-comparison-results{display:grid;gap:14px}
.global-comparison-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:11px}
.global-comparison-table{width:100%;min-width:660px;border-collapse:collapse;background:var(--surface)}
.global-comparison-table th,.global-comparison-table td{padding:11px 13px;border-bottom:1px solid var(--border);text-align:right}
.global-comparison-table th{background:var(--surface-2);color:var(--muted);font-size:.69rem;text-transform:uppercase;letter-spacing:.035em}
.global-comparison-table th:first-child,.global-comparison-table td:first-child{text-align:left}
.global-comparison-table td{font-size:.82rem;font-variant-numeric:tabular-nums}
.global-comparison-table .difference-positive{color:#dc2626;font-weight:750}
.global-comparison-table .difference-negative{color:#15803d;font-weight:750}
.global-comparison-table .difference-neutral{color:var(--muted)}
@media(max-width:700px){.global-query-history-item{grid-template-columns:1fr}.global-query-history-item .global-query-history-date{grid-row:auto}.global-query-history-list{max-height:420px}}
@media(max-width:700px){.global-query-plan>div{grid-template-columns:1fr}}

.alarm-project-context{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:13px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 94%,var(--accent) 6%),var(--surface))}
.alarm-project-context>div{display:grid;grid-template-columns:auto minmax(240px,440px);align-items:center;gap:3px 14px;min-width:0}.alarm-project-context .eyebrow{grid-column:1/-1}.alarm-project-context label{display:contents}.alarm-project-context label strong{font-size:.76rem}.alarm-project-context select{min-width:240px;padding:8px 34px 8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.alarm-project-context small{grid-column:1/-1;max-width:820px;color:var(--muted);font-size:.72rem}.portfolio-primary-action{white-space:nowrap}
.alarm-portfolio-panel{margin:0 0 18px;padding:18px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:14px;background:var(--panel);box-shadow:0 14px 32px #0002}.portfolio-source-badge{align-self:flex-start;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);font-size:.72rem;font-weight:700}.portfolio-definition-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(260px,1.15fr);gap:10px;margin:14px 0}.portfolio-definition-grid>label:not(.portfolio-switch){display:grid;gap:5px;color:var(--muted);font-size:.72rem}.portfolio-definition-grid input[type=text],.portfolio-definition-grid input:not([type]){width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.portfolio-switch{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.portfolio-switch input{width:18px;height:18px}.portfolio-switch span{display:grid}.portfolio-switch strong{font-size:.75rem}.portfolio-switch small{color:var(--muted);font-size:.66rem}.portfolio-project-toolbar{display:flex;align-items:center;gap:8px;margin:10px 0}.portfolio-project-toolbar strong{margin-right:auto;font-size:.78rem}.portfolio-project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:7px;max-height:235px;overflow:auto;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.portfolio-project-option{display:flex;align-items:center;gap:7px;min-width:0;padding:8px;border:1px solid transparent;border-radius:8px;background:var(--surface);cursor:pointer}.portfolio-project-option.selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.portfolio-project-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem}.portfolio-project-option small{margin-left:auto;color:var(--accent);font-size:.62rem}.portfolio-actions{display:flex;gap:9px;margin-top:12px}.portfolio-deploy-button{background:#17865b}.portfolio-compatibility-summary{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0 8px}.portfolio-compatibility-summary span,.portfolio-status{padding:4px 8px;border-radius:999px;font-size:.67rem;font-weight:750}.portfolio-compatibility-summary .compatible,.portfolio-status.compatible{background:#19a46622;color:#20b875}.portfolio-compatibility-summary .partial,.portfolio-status.partial{background:#e8a72d22;color:#d69a27}.portfolio-compatibility-summary .incompatible,.portfolio-status.incompatible{background:#df4c5b22;color:#e45b67}.portfolio-compatibility-table td small{display:block;margin-top:4px;color:var(--muted);font-size:.66rem}.portfolio-template-library{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.portfolio-template-library h3{margin:0 0 9px;font-size:.88rem}.portfolio-template-library>div{display:grid;gap:7px}.portfolio-template-library article{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.portfolio-template-library article>div{display:grid;min-width:0;margin-right:auto}.portfolio-template-library article strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.portfolio-template-library article small{color:var(--muted);font-size:.66rem}
@media(max-width:900px){.alarm-project-context{align-items:stretch;flex-direction:column}.alarm-project-context>div{grid-template-columns:1fr}.alarm-project-context label{display:grid;gap:5px}.alarm-project-context select{min-width:0;width:100%}.portfolio-primary-action{width:100%}.portfolio-definition-grid{grid-template-columns:1fr}.portfolio-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-actions{display:grid;grid-template-columns:1fr}.portfolio-template-library article{align-items:stretch;flex-wrap:wrap}.portfolio-template-library article>div{flex:1 0 100%}}
@media(max-width:520px){.alarm-portfolio-panel{padding:12px}.portfolio-project-grid{grid-template-columns:1fr;max-height:260px}.portfolio-project-toolbar{align-items:stretch;display:grid;grid-template-columns:1fr 1fr}.portfolio-project-toolbar strong{grid-column:1/-1}.portfolio-compatibility-table{overflow-x:auto}.portfolio-compatibility-table table{min-width:720px}}

/* Portfolio alarm deployment wizard */
.alarm-portfolio-panel{display:grid;gap:16px;padding:0;overflow:hidden;border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--panel)}
.portfolio-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 17px;border-bottom:1px solid var(--border);background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 10%,var(--panel)),var(--panel) 55%)}
.portfolio-header h2{margin:3px 0 4px;font-size:1.18rem}.portfolio-header p{margin:0;color:var(--muted);font-size:.78rem}.portfolio-close{flex:0 0 34px;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--muted);font-size:1.3rem;font-weight:400;line-height:1}
.portfolio-close:hover{border-color:var(--accent);color:var(--text)}
.portfolio-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0 22px;padding:5px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}
.portfolio-steps span{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;padding:8px 10px;border-radius:8px;color:var(--muted);font-size:.7rem;font-weight:650}
.portfolio-steps span i{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--border);border-radius:50%;background:var(--surface);font-style:normal;font-size:.65rem}
.portfolio-steps span.active{background:var(--surface);color:var(--text);box-shadow:0 3px 10px #0001}.portfolio-steps span.active i{border-color:var(--accent);color:var(--accent)}
.portfolio-steps span.complete{color:color-mix(in srgb,#19a466 84%,var(--text))}.portfolio-steps span.complete i{border-color:#19a466;background:#19a466;color:#fff}
.portfolio-source-card{display:flex;align-items:center;gap:12px;margin:0 22px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.portfolio-source-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:9px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent);font-size:1.15rem}.portfolio-source-card>div:nth-child(2){display:grid;min-width:0}.portfolio-source-card small{color:var(--muted);font-size:.6rem;font-weight:750;letter-spacing:.05em}.portfolio-source-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.portfolio-source-card span:not(.portfolio-source-state){color:var(--muted);font-size:.7rem}.portfolio-source-state{margin-left:auto;padding:5px 8px;border-radius:999px;font-size:.62rem;font-weight:800}.portfolio-source-state.running{background:#19a4661c;color:#19a466}.portfolio-source-state.stopped{background:#df4c5b1c;color:#df4c5b}
.portfolio-settings-row{display:grid;grid-template-columns:minmax(250px,1fr) minmax(300px,1fr);gap:10px;margin:0 22px}.portfolio-settings-row>label:first-child{display:grid;gap:5px;padding:0;color:var(--muted);font-size:.7rem}.portfolio-settings-row input:not([type=checkbox]){width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}
.portfolio-target-section,.portfolio-review-section,.portfolio-deployment-result{display:grid;gap:10px;margin:0 22px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.portfolio-target-heading,.portfolio-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.portfolio-target-heading>div,.portfolio-review-heading>div:first-child{display:grid;gap:2px}.portfolio-target-heading strong,.portfolio-review-heading strong{font-size:.82rem}.portfolio-target-heading small,.portfolio-review-heading small{color:var(--muted);font-size:.68rem}.portfolio-target-heading>span{display:grid;place-items:center;min-width:30px;height:25px;padding:0 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:800}
.portfolio-project-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px;margin:2px 0}.portfolio-project-toolbar input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.portfolio-project-toolbar button{padding:7px 10px;font-size:.7rem}
.portfolio-project-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-height:210px;padding:7px;background:var(--surface)}.portfolio-project-option{display:grid;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:9px;min-height:40px;padding:8px 10px;background:var(--surface-2)}.portfolio-project-option input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent)}.portfolio-project-option span{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;color:var(--text);font-size:.74rem;font-weight:600;line-height:1.25}.portfolio-project-option b{display:grid;place-items:center;width:16px;height:16px;color:#19a466;font-size:.72rem}
.portfolio-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.portfolio-review-grid article{display:grid;gap:5px;padding:11px;border:1px solid var(--border);border-left:3px solid var(--border);border-radius:9px;background:var(--surface)}.portfolio-review-grid article.status-compatible{border-left-color:#19a466}.portfolio-review-grid article.status-partial{border-left-color:#d69a27}.portfolio-review-grid article.status-incompatible{border-left-color:#df4c5b}.portfolio-review-grid header{display:flex;align-items:center;justify-content:space-between;gap:8px}.portfolio-review-grid p,.portfolio-review-grid small{margin:0;color:var(--muted);font-size:.68rem;line-height:1.4}
.portfolio-compatibility-summary{margin:0}.portfolio-action-bar{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px);box-shadow:0 -8px 20px #0001}.portfolio-action-bar>div{display:grid;gap:2px}.portfolio-action-bar strong{font-size:.78rem}.portfolio-action-bar small{color:var(--muted);font-size:.67rem}.portfolio-action-bar>button{min-width:210px}.portfolio-deploy-button{background:#16865b;border-color:#16865b}.portfolio-deploy-button:hover{background:#11714c}
.portfolio-inline-status{margin:0 22px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--muted);font-size:.72rem}
.portfolio-result-banner{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.portfolio-result-banner>span{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;font-weight:900}.portfolio-result-banner.success{border-color:#19a46666}.portfolio-result-banner.success>span{background:#19a466;color:#fff}.portfolio-result-banner.error{border-color:#df4c5b66}.portfolio-result-banner.error>span{background:#df4c5b;color:#fff}.portfolio-result-banner>div{display:grid;gap:2px}.portfolio-result-banner strong{font-size:.82rem}.portfolio-result-banner small{color:var(--muted);font-size:.67rem}
.portfolio-result-list{display:grid;gap:7px}.portfolio-result-list article{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.portfolio-result-list article.success{border-left:3px solid #19a466}.portfolio-result-list article.error{border-left:3px solid #df4c5b}.portfolio-result-list article>div{display:grid;gap:2px;min-width:0;margin-right:auto}.portfolio-result-list article small{color:var(--muted);font-size:.67rem}.portfolio-result-list article span{color:#19a466;font-size:.66rem;font-weight:700}.portfolio-result-list article button{white-space:nowrap;padding:7px 10px;font-size:.7rem}
.portfolio-template-library{margin:0 22px 18px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.portfolio-template-library>summary{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;color:var(--muted);font-size:.72rem;font-weight:650}.portfolio-template-library>summary span{margin-left:auto;padding:2px 7px;border-radius:999px;background:var(--surface);color:var(--text)}.portfolio-template-library>div{padding:0 9px 9px}.portfolio-template-library article{background:var(--surface)}
@media(max-width:900px){.portfolio-steps{grid-template-columns:repeat(2,1fr)}.portfolio-settings-row{grid-template-columns:1fr}.portfolio-action-bar{align-items:stretch;flex-direction:column}.portfolio-action-bar>button{width:100%}.portfolio-review-grid{grid-template-columns:1fr}}
@media(max-width:560px){.portfolio-header{padding:16px}.portfolio-steps,.portfolio-source-card,.portfolio-settings-row,.portfolio-target-section,.portfolio-review-section,.portfolio-deployment-result,.portfolio-template-library,.portfolio-inline-status{margin-left:12px;margin-right:12px}.portfolio-steps{grid-template-columns:1fr 1fr}.portfolio-steps span{justify-content:flex-start;padding:7px;font-size:.64rem}.portfolio-source-card{align-items:flex-start}.portfolio-source-state{display:none}.portfolio-project-toolbar{grid-template-columns:1fr 1fr}.portfolio-project-toolbar input{grid-column:1/-1}.portfolio-project-grid{grid-template-columns:1fr;max-height:260px}.portfolio-action-bar{padding:12px}.portfolio-result-list article{align-items:stretch;flex-direction:column}.portfolio-result-list article button{width:100%}}

/* Platform maintenance and account-menu overlay */
.account-menu-backdrop,.account-menu-backdrop:hover,.account-menu-backdrop:focus,.account-menu-backdrop:active{position:fixed;inset:0;z-index:1001;width:100vw;height:100vh;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;transform:none!important;cursor:default}
.platform-maintenance-page{display:grid;gap:18px;padding:28px 0 40px}.platform-maintenance-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.platform-maintenance-title>div{min-width:0}.platform-maintenance-title span,.platform-maintenance-panel>header span{color:var(--accent);font-size:.7rem;font-weight:800;letter-spacing:.14em}.platform-maintenance-title h1{margin:5px 0 4px;font-size:2rem}.platform-maintenance-title p,.platform-maintenance-panel>header p{margin:0;color:var(--muted)}.platform-maintenance-message{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.platform-maintenance-message>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:800}.platform-maintenance-message p{margin:0}.platform-maintenance-message>button{width:28px;height:28px;padding:0;background:transparent;color:var(--muted);border:0}.platform-maintenance-message.success{border-color:color-mix(in srgb,#16a34a 40%,var(--border))}.platform-maintenance-message.success>span{background:#16a34a20;color:#16a34a}.platform-maintenance-message.error{border-color:color-mix(in srgb,#dc2626 40%,var(--border))}.platform-maintenance-message.error>span{background:#dc262620;color:#dc2626}.platform-maintenance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.platform-maintenance-kpis article{display:grid;gap:5px;padding:17px;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:13px;background:var(--surface);box-shadow:0 10px 25px #0000000d}.platform-maintenance-kpis article.sent{border-left-color:#16a34a}.platform-maintenance-kpis article.online{border-left-color:#0ea5e9}.platform-maintenance-kpis span{color:var(--muted);font-size:.72rem;font-weight:750;text-transform:uppercase}.platform-maintenance-kpis strong{font-size:1.7rem}.platform-maintenance-kpis small{color:var(--muted);line-height:1.4}.platform-maintenance-panel{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 14px 34px #00000012}.platform-maintenance-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid var(--border);background:var(--surface-2)}.platform-maintenance-panel>header h2{margin:4px 0;font-size:1.2rem}.platform-maintenance-panel.collapsed>header{align-items:center;border-bottom:0}.platform-maintenance-panel.collapsed>header p{display:none}.maintenance-panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.maintenance-collapse-button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:116px;background:var(--surface);color:var(--text);border-color:var(--border)}.maintenance-collapse-button>span{display:grid!important;place-items:center;width:19px;height:19px;border-radius:6px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent)!important;font-size:1rem!important;line-height:1;letter-spacing:0!important}.maintenance-collapse-button:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.platform-maintenance-empty{display:grid;place-items:center;gap:5px;min-height:180px;padding:24px;color:var(--muted);text-align:center}.platform-maintenance-empty.success strong{color:#16a34a;font-size:1.05rem}.pending-email-list{display:grid;gap:10px;padding:14px}.pending-email-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:14px;border:1px solid var(--border);border-left:4px solid #d97706;border-radius:12px;background:var(--surface-2)}.pending-email-card.severity-critical{border-left-color:#dc2626}.pending-email-main{min-width:0}.pending-email-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.pending-email-heading>span{color:var(--accent);font-size:.72rem;font-weight:850;text-transform:uppercase}.pending-email-heading time{color:var(--muted);font-size:.7rem}.pending-email-card h3{margin:5px 0 3px;font-size:1rem}.pending-email-card p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.45}.pending-email-recipients{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.pending-email-recipients span{padding:4px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.68rem}.pending-email-card details{margin-top:9px}.pending-email-card summary{color:var(--accent);font-size:.72rem;cursor:pointer}.pending-email-card details p{max-height:140px;margin-top:7px;padding:9px;overflow:auto;border-radius:8px;background:var(--surface);overflow-wrap:anywhere}.pending-email-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px}.pending-email-actions>span{color:#d97706;font-size:.68rem;font-weight:850;text-transform:uppercase}.pending-email-actions button{white-space:nowrap}.maintenance-panel-count{display:grid;place-items:center;min-width:42px;height:42px;padding:0 11px;border-radius:12px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));font-size:1rem!important;letter-spacing:0!important}.sent-email-list{display:grid;gap:8px;padding:14px}.sent-email-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.sent-email-status{display:grid;place-items:center;width:28px;height:28px;margin-top:2px;border-radius:50%;background:#16a34a1f;color:#16a34a;font-weight:900}.sent-email-main{min-width:0}.sent-email-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.sent-email-heading>span{color:#16a34a;font-size:.68rem;font-weight:800;text-transform:uppercase}.sent-email-heading time{color:var(--muted);font-size:.68rem}.sent-email-card h3{margin:4px 0 5px;overflow:hidden;font-size:.9rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.sent-email-meta{display:flex;flex-wrap:wrap;gap:5px 14px;color:var(--muted);font-size:.72rem}.sent-email-meta strong{color:var(--text);font-weight:650}.sent-email-card details{margin-top:8px}.sent-email-card summary{color:var(--accent);font-size:.72rem;cursor:pointer}.sent-email-card details p{margin:6px 0 0;padding:7px 9px;border-radius:7px;background:var(--surface);color:var(--muted);font-size:.74rem}.platform-maintenance-footer{padding:0 16px 14px;color:var(--muted);font-size:.72rem}.live-indicator{display:flex!important;align-items:center;gap:7px;padding:7px 10px;border:1px solid #16a34a40;border-radius:999px;background:#16a34a12;color:#16a34a!important;letter-spacing:0!important;white-space:nowrap}.live-indicator i,.connected-user-identity span i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #22c55e1f}.connected-user-list{display:grid;gap:8px;padding:14px}.connected-user-card{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(130px,.45fr) minmax(180px,.65fr);align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.connected-user-avatar{display:grid;place-items:center;width:38px;height:38px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:.78rem;font-weight:850}.connected-user-identity{min-width:0}.connected-user-identity>div{display:flex;align-items:center;gap:9px}.connected-user-identity>div>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connected-user-identity span{display:flex;align-items:center;gap:5px;color:#16a34a;font-size:.64rem}.connected-user-identity p{margin:2px 0;color:var(--muted);font-size:.72rem}.connected-user-identity small{color:var(--muted);font-size:.66rem}.connected-user-network,.connected-user-times{display:grid;gap:3px}.connected-user-network span,.connected-user-times span{color:var(--muted);font-size:.66rem}.connected-user-network strong,.connected-user-times strong{color:var(--text);font-size:.72rem}.connected-user-network strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1050px){.platform-maintenance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.connected-user-card{grid-template-columns:auto minmax(0,1fr) minmax(150px,.5fr)}.connected-user-times{grid-column:2/-1;display:flex;gap:14px}}@media(max-width:800px){.platform-maintenance-title,.platform-maintenance-panel>header{align-items:stretch;flex-direction:column}.platform-maintenance-kpis{grid-template-columns:1fr}.pending-email-card{grid-template-columns:1fr}.pending-email-actions{align-items:stretch}.pending-email-actions button{width:100%}.maintenance-panel-actions{justify-content:flex-start}.connected-user-card{grid-template-columns:auto minmax(0,1fr)}.connected-user-network,.connected-user-times{grid-column:2;display:grid;gap:3px}.live-indicator,.maintenance-panel-count{align-self:flex-start}}@media(max-width:520px){.platform-maintenance-page{padding-top:16px}.platform-maintenance-title h1{font-size:1.55rem}.pending-email-heading,.sent-email-heading{align-items:flex-start;flex-direction:column}.pending-email-list,.sent-email-list,.connected-user-list{padding:9px}.sent-email-card h3{white-space:normal}.connected-user-card{align-items:start}.connected-user-identity>div{align-items:flex-start;flex-direction:column;gap:4px}.maintenance-panel-actions{display:grid;grid-template-columns:auto minmax(0,1fr)}.maintenance-collapse-button{width:100%}}
.sent-email-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:10px 12px}.sent-email-status{margin-top:0}.sent-email-detail-button{padding:7px 11px;white-space:nowrap;font-size:.72rem}.platform-maintenance-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.email-detail-backdrop{position:fixed;inset:0;z-index:1200;background:#020617b8;backdrop-filter:blur(3px)}.email-detail-dialog{position:fixed;z-index:1201;top:4vh;right:4vw;bottom:4vh;width:min(820px,92vw);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 28px 80px #0008}.email-detail-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--surface-2)}.email-detail-dialog>header>div{min-width:0}.email-detail-dialog>header span{color:var(--accent);font-size:.68rem;font-weight:850;text-transform:uppercase}.email-detail-dialog>header h2{margin:5px 0 4px;overflow:hidden;font-size:1.15rem;text-overflow:ellipsis;white-space:nowrap}.email-detail-dialog>header p{margin:0;color:var(--muted);font-size:.75rem}.email-detail-dialog>header button{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;padding:0;border-radius:9px;background:var(--surface);color:var(--muted);font-size:1.2rem}.email-detail-body{display:grid;align-content:start;gap:16px;padding:18px 20px;overflow:auto}.email-detail-body section{display:grid;gap:8px}.email-detail-body section h3{margin:0;color:var(--muted);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.email-detail-body section ul{display:grid;gap:5px;margin:0;padding-left:20px;color:var(--text);font-size:.78rem}.email-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.email-detail-facts>div{display:grid;gap:3px;min-width:0;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.email-detail-facts dt{color:var(--muted);font-size:.65rem;text-transform:uppercase}.email-detail-facts dd{margin:0;overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.email-delivered-badge{color:#16a34a;font-weight:750}.email-detail-chips{display:flex;flex-wrap:wrap;gap:6px}.email-detail-chips span{padding:5px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:.7rem}.email-content-preview{width:100%;min-height:420px;border:1px solid var(--border);border-radius:10px;background:#fff}.email-content-unavailable{padding:20px;border:1px dashed var(--border);border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.8rem;text-align:center}
@media(max-width:800px){.email-detail-dialog{inset:2vh 2vw;width:auto}.email-detail-facts{grid-template-columns:1fr}}@media(max-width:520px){.sent-email-card{grid-template-columns:auto minmax(0,1fr)}.sent-email-detail-button{grid-column:2;width:100%}.platform-maintenance-footer{align-items:stretch;flex-direction:column}.email-detail-dialog{inset:0;border-radius:0}.email-content-preview{min-height:360px}}

/* Superadministración del registro de certificados del broker Azure. */
.broker-registry-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) minmax(220px,.55fr);align-items:end;gap:14px;padding:15px 17px;border-bottom:1px solid var(--border);background:var(--surface)}
.broker-registry-import{display:grid;gap:5px}.broker-file-picker{display:flex;align-items:center;gap:9px;width:max-content;max-width:100%;padding:9px 12px;border:1px solid var(--accent);border-radius:9px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent);cursor:pointer}.broker-file-picker:hover{background:color-mix(in srgb,var(--accent) 15%,var(--surface))}.broker-file-picker>span{font-size:1.05rem;font-weight:900}.broker-file-picker>strong{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.broker-file-picker input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.broker-registry-import>small{color:var(--muted);font-size:.68rem}
.broker-registry-search{display:grid;gap:5px}.broker-registry-search>span{color:var(--muted);font-size:.68rem;font-weight:700}.broker-registry-search input{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);outline:none}.broker-registry-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.broker-registration-preview{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-left:4px solid var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}.broker-registration-preview>div:first-child{display:grid;min-width:0;gap:3px}.broker-registration-preview>div:first-child>span{color:var(--accent);font-size:.64rem;font-weight:850;letter-spacing:.1em}.broker-registration-preview>div:first-child>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.broker-registration-preview p,.broker-registration-preview>div:first-child>small{margin:0;color:var(--muted);font-size:.72rem}.broker-registration-preview-actions{display:flex;gap:8px;flex:0 0 auto}.broker-registration-context{display:grid;gap:3px;margin-top:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:.68rem}.broker-registration-context strong{white-space:normal}.broker-registration-context span{color:var(--muted);font-size:.66rem;font-weight:600;letter-spacing:0;line-height:1.4}.broker-registration-context.add{border-color:color-mix(in srgb,var(--success) 45%,var(--border));background:color-mix(in srgb,var(--success) 7%,var(--surface))}.broker-registration-context.update{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.broker-registration-context.conflict{border-color:color-mix(in srgb,var(--danger) 62%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.broker-registration-context.conflict strong{color:var(--danger)}
.broker-installation-name-field{display:grid;gap:5px;margin-top:9px;max-width:520px}.broker-installation-name-field>span{color:var(--text)!important;font-size:.7rem!important;font-weight:750;letter-spacing:0!important}.broker-installation-name-field input,.broker-device-name-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}.broker-installation-name-field small{color:var(--muted);font-size:.65rem}.broker-device-identity>label{color:var(--muted);font-size:.65rem}.broker-device-name-actions{display:flex;gap:5px}.broker-device-name-actions button{padding:5px 7px;font-size:.65rem}
.broker-registry-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:9px 16px;border-bottom:1px solid var(--border);color:var(--muted);font-size:.7rem}.broker-registry-summary span{display:flex;align-items:center;gap:6px}.broker-registry-summary i{width:8px;height:8px;border-radius:50%}.broker-registry-summary i.enabled{background:#16a34a}.broker-registry-summary i.disabled{background:#dc2626}.broker-device-list{display:grid;gap:8px;padding:14px}
.broker-device-card{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(210px,1fr) minmax(180px,.85fr) minmax(175px,.7fr) auto;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--border);border-left:4px solid #16a34a;border-radius:12px;background:var(--surface-2)}.broker-device-card.status-disabled,.broker-device-card.status-expired{border-left-color:#dc2626}.broker-device-card.status-not-yet-valid{border-left-color:#d97706}.broker-device-state{display:flex;align-items:center;gap:7px;color:#16a34a;font-size:.68rem;font-weight:850;text-transform:uppercase}.broker-device-state i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 13%,transparent)}.status-disabled .broker-device-state,.status-expired .broker-device-state{color:#dc2626}.status-not-yet-valid .broker-device-state{color:#d97706}.broker-device-identity,.broker-device-certificate,.broker-device-validity{display:grid;min-width:0;gap:3px}.broker-device-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.broker-device-identity span,.broker-device-certificate span,.broker-device-validity span{color:var(--muted);font-size:.65rem}.broker-device-certificate code{overflow:hidden;color:var(--text);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.broker-device-validity strong{font-size:.72rem;font-weight:650}.broker-device-actions{display:flex;justify-content:flex-end;gap:7px}.broker-device-actions button{padding:7px 9px;white-space:nowrap;font-size:.7rem}.broker-error-empty{gap:9px}.broker-error-empty strong{color:#dc2626}.broker-error-empty span{max-width:760px}
@media(max-width:1200px){.broker-device-card{grid-template-columns:minmax(120px,.35fr) minmax(210px,1fr) minmax(180px,.8fr) auto}.broker-device-validity{grid-column:2/4}.broker-device-actions{grid-column:4;grid-row:1/3}}
@media(max-width:820px){.broker-registry-toolbar{grid-template-columns:1fr}.broker-registration-preview{align-items:stretch;flex-direction:column}.broker-registration-preview-actions{justify-content:flex-end}.broker-device-card{grid-template-columns:1fr 1fr}.broker-device-state,.broker-device-identity,.broker-device-certificate,.broker-device-validity,.broker-device-actions{grid-column:auto;grid-row:auto}.broker-device-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:520px){.broker-registry-toolbar{padding:11px}.broker-file-picker{width:100%}.broker-registration-preview{margin:9px}.broker-registration-preview-actions{display:grid;grid-template-columns:1fr 1fr}.broker-device-list{padding:9px}.broker-device-card{grid-template-columns:1fr}.broker-device-state,.broker-device-identity,.broker-device-certificate,.broker-device-validity,.broker-device-actions{grid-column:1}.broker-device-actions{display:grid;grid-template-columns:1fr 1fr}.broker-device-actions button{width:100%}}
.connected-user-card{grid-template-columns:auto minmax(180px,1fr) minmax(130px,.45fr) minmax(180px,.65fr) auto}.connected-user-actions{display:flex;justify-content:flex-end}.connected-user-actions button{padding:7px 10px;white-space:nowrap;font-size:.7rem;background:#b42318;color:#fff;border-color:#b42318}.connected-user-actions button:hover:not(:disabled){background:#912018;border-color:#912018}@media(max-width:1180px){.connected-user-card{grid-template-columns:auto minmax(0,1fr) minmax(150px,.5fr) auto}.connected-user-times{grid-column:2/4}.connected-user-actions{grid-column:4;grid-row:1/3}}@media(max-width:800px){.connected-user-card{grid-template-columns:auto minmax(0,1fr)}.connected-user-network,.connected-user-times,.connected-user-actions{grid-column:2}.connected-user-actions{grid-row:auto;justify-content:stretch}.connected-user-actions button{width:100%}}

/* v2.8.26 · Login estable en escritorio, iPhone y pantallas de poca altura */
.login-layout{min-height:100vh;min-height:100dvh}
.login-page{min-height:100vh;min-height:100dvh;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}
.login-card{box-sizing:border-box}
.login-card form,.login-card form>label:not(.login-remember){min-width:0}
.login-card input[type=text],.login-card input[type=password]{box-sizing:border-box;min-width:0}
.login-card input:not([type=checkbox]):focus{border-color:#43a5dd;box-shadow:0 0 0 3px rgba(67,165,221,.15)}
.login-remember{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;column-gap:10px;min-width:0;line-height:1.35;cursor:pointer}
.login-remember .login-remember-checkbox{appearance:auto;width:18px!important;height:18px!important;min-width:18px;min-height:18px;margin:0!important;padding:0!important;accent-color:#2f95ce;box-shadow:none}
.login-remember .login-remember-checkbox:focus-visible{outline:2px solid #65b9ea;outline-offset:2px}
.login-remember>span{min-width:0}
@media(max-width:600px){
  .login-page{place-items:center;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background-position:center}
  .login-card{width:100%;max-width:400px;gap:18px;padding:22px 18px;border-radius:14px}
  .login-card>img{width:min(190px,62%)}
  .login-heading{gap:5px}.login-heading h1{font-size:1.38rem;line-height:1.15}.login-heading p{font-size:.8rem;line-height:1.4}
  .login-card form{gap:12px}.login-card input[type=text],.login-card input[type=password]{min-height:46px;font-size:16px}.login-card form>button{min-height:46px}.login-card footer{padding-top:13px;line-height:1.35}
}
@media(max-width:600px) and (max-height:700px){
  .login-page{place-items:start center}.login-card{gap:14px;padding-top:18px;padding-bottom:18px}.login-card>img{width:min(165px,55%)}.login-heading p{display:none}.login-card footer{padding-top:10px}
}
@media(max-height:500px) and (orientation:landscape){
  .login-page{place-items:start center}.login-card{max-width:560px;grid-template-columns:145px minmax(0,1fr);gap:10px 22px;padding:16px 20px}.login-card>img{width:140px;align-self:center}.login-heading{align-self:center}.login-heading p{display:none}
  .login-card form{grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:end}.login-card form>.login-remember,.login-card form>.login-error,.login-card form>button{grid-column:1/-1}.login-card footer{grid-column:1/-1;padding-top:8px}
}

/* v2.8.27 · Gráfica combinada de generación */
.combined-generation-panel{display:grid;gap:12px}
.combined-generation-panel>.panel-title{margin-bottom:0}
.combined-chart-toolbar{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.combined-chart-toolbar>label{display:grid;gap:4px}
.combined-chart-toolbar>label>span,.combined-interval-selector>span{color:var(--muted);font-size:.66rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.combined-chart-toolbar input,.combined-chart-toolbar select{min-height:36px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--input-bg);color:var(--text)}
.combined-chart-toolbar .combined-quick-range{min-width:150px}
.combined-day-navigation,.combined-interval-selector{display:flex;align-items:center;gap:3px}
.combined-day-navigation button{width:36px;height:36px;min-height:36px;padding:0}
.combined-day-navigation>span{padding:0 5px;color:var(--muted);font-size:.72rem}
.combined-day-navigation .combined-refresh{display:inline-grid;place-items:center;margin-left:5px;font-size:1.05rem}
.combined-refresh-icon{display:inline-block;line-height:1;transform-origin:50% 50%}
.combined-refresh-icon.is-loading{animation:combined-spin .75s linear infinite;opacity:.82}
.combined-interval-selector{margin-left:auto}
.combined-interval-selector>span{margin-right:5px}
.combined-interval-selector button{min-width:38px;height:36px;min-height:36px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:.76rem;font-weight:750}
.combined-interval-selector button.active{border-color:var(--accent);background:var(--accent);color:#fff}
.combined-interval-selector small{margin-left:3px;color:var(--muted);font-size:.65rem}
.combined-series-selector{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}
.combined-series-selector label{display:grid;grid-template-columns:16px 30px auto;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);cursor:pointer}
.combined-series-selector input{width:15px;height:15px;margin:0;accent-color:var(--accent)}
.combined-series-selector i{display:block;height:3px;border-radius:99px}
.combined-series-selector .energy i{height:10px;background:#ff9800}.combined-series-selector .power i{background:#8bcf28}.combined-series-selector .irradiance i{background:#168cff}
.combined-series-selector span{font-size:.72rem;font-weight:700}
.combined-chart-scroll{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--combined-chart-bg)}
.combined-generation-chart{background:var(--combined-chart-bg)}
.combined-chart-stage{position:relative;width:100%;min-width:760px}
.combined-chart-stage .combined-generation-chart{min-width:0}
.combined-generation-chart{display:block;width:100%;min-width:760px;height:390px}
.combined-grid-line{stroke:var(--border);stroke-width:1;stroke-dasharray:3 5;opacity:.58}
.combined-axis{stroke:var(--border);stroke-width:1}.combined-axis.power-axis{stroke:#8bcf28}.combined-axis.irradiance-axis{stroke:#168cff}
.combined-axis-label,.combined-unit,.combined-time-label,.combined-time-title{font-family:inherit;font-size:11px}.combined-unit{font-size:12px;font-weight:750}
.power-label{fill:#8bcf28}.energy-label{fill:#ff9800}.irradiance-label{fill:#168cff}.combined-time-label,.combined-time-title{fill:var(--muted)}.combined-time-title{font-size:10px}
.combined-energy-area{fill:#ff98004d;stroke:#ff9800;stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.combined-energy-bar{fill:#ff98007a;stroke:#ff9800;stroke-width:1;vector-effect:non-scaling-stroke}
.combined-power-line{fill:none;stroke:#8bcf28;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.combined-irradiance-line{fill:none;stroke:#168cff;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.combined-chart-loading{min-height:300px;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted);background:var(--surface-2);border-radius:10px}.combined-chart-loading progress{width:min(320px,70vw)}
.combined-chart-refreshing{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;margin-top:8px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));box-shadow:0 8px 22px rgba(15,23,42,.08)}
.combined-chart-refreshing>div{display:grid;gap:2px;min-width:0}.combined-chart-refreshing strong{font-size:.76rem}.combined-chart-refreshing small{overflow:hidden;color:var(--muted);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}
.combined-loading-spinner{display:block;width:19px;height:19px;border:2px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-top-color:var(--accent);border-radius:50%;animation:combined-spin .75s linear infinite}
.combined-chart-error{padding:8px 11px;border:1px solid color-mix(in srgb,#ef4444 48%,var(--border));border-radius:8px;background:color-mix(in srgb,#ef4444 8%,var(--surface));color:var(--danger);font-size:.73rem}
@keyframes combined-spin{to{transform:rotate(360deg)}}
.combined-chart-sources{display:flex;gap:7px 18px;flex-wrap:wrap;padding:0 3px;color:var(--muted);font-size:.67rem}.combined-chart-sources b{color:var(--text)}
.combined-memory-badge{padding:2px 7px;border:1px solid color-mix(in srgb,#22c55e 45%,var(--border));border-radius:999px;background:color-mix(in srgb,#22c55e 10%,var(--surface));color:#22c55e;font-weight:750}
.combined-resolution-badge{padding:3px 7px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:.64rem;font-weight:700}
.combined-hover-capture{position:absolute;z-index:5;left:6.5%;right:6.65%;top:6.5%;bottom:13.5%;cursor:crosshair;touch-action:none}
.combined-hover-crosshair{position:absolute;z-index:1;top:0;bottom:0;width:1px;transform:translateX(-.5px);background:rgba(226,232,240,.7);box-shadow:0 0 0 1px rgba(15,23,42,.25);pointer-events:none}
.combined-hover-tooltip{position:absolute;z-index:2;top:9px;width:260px;max-width:min(280px,75vw);padding:9px 10px;border:1px solid rgba(148,163,184,.38);border-radius:9px;background:rgba(10,18,34,.94);color:#f8fafc;box-shadow:0 12px 30px rgba(0,0,0,.35);backdrop-filter:blur(7px);pointer-events:none}
.combined-hover-tooltip.dock-right{transform:translateX(12px)}.combined-hover-tooltip.dock-left{transform:translateX(calc(-100% - 12px))}
.combined-hover-tooltip header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:6px;margin-bottom:5px;border-bottom:1px solid rgba(148,163,184,.22)}
.combined-hover-tooltip header strong{font-size:.76rem}.combined-hover-tooltip header small{color:#94a3b8;font-size:.62rem}
.combined-hover-tooltip>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;padding:3px 0;font-size:.7rem}
.combined-hover-tooltip i{width:7px;height:7px;border-radius:50%}.combined-hover-tooltip i.power{background:#8bcf28}.combined-hover-tooltip i.energy{background:#ff9800}.combined-hover-tooltip i.irradiance{background:#168cff}
.combined-hover-tooltip span{overflow:hidden;color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap}.combined-hover-tooltip b{font-variant-numeric:tabular-nums}
@media(max-width:900px){
  .combined-chart-toolbar{align-items:stretch}.combined-chart-toolbar>label{flex:1 1 210px}.combined-interval-selector{width:100%;margin-left:0}.combined-interval-selector button{flex:1}
  .combined-generation-chart{height:340px}
}
@media(max-width:600px){
  .combined-generation-panel{padding:12px}.combined-generation-panel>.panel-title{align-items:flex-start;flex-direction:column}.combined-generation-panel>.panel-title>span{align-self:flex-start}
  .combined-chart-toolbar{display:grid;grid-template-columns:1fr;padding:9px}.combined-chart-toolbar>label,.combined-chart-toolbar input{width:100%}.combined-day-navigation{justify-content:center}.combined-interval-selector{display:grid;grid-template-columns:auto repeat(5,1fr) auto}.combined-interval-selector button{min-width:0}
  .combined-series-selector{display:grid;grid-template-columns:1fr}.combined-series-selector label{grid-template-columns:16px 30px minmax(0,1fr)}
  .combined-generation-chart{height:310px}.combined-chart-sources{display:grid;gap:4px}
  .combined-chart-refreshing{grid-template-columns:auto 1fr}.combined-chart-refreshing button{grid-column:1/-1;width:100%}
}

/* v2.8.28 · dedicated reports, project tools and global cache management */
.report-generator-page,.project-settings-tools{display:grid;gap:16px}
.report-generator-page{padding:20px}
.report-generator-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.report-generator-heading h1{margin:3px 0 5px}.report-generator-heading p{max-width:760px;margin:0;color:var(--muted)}
.report-project-selector{display:grid;gap:5px;min-width:min(360px,100%)}.report-project-selector span{font-size:.7rem;font-weight:750;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}
.report-project-selector select{width:100%;min-height:40px}
.report-generator-loading{min-height:220px;display:grid;place-items:center;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--muted)}
.project-settings-tools{margin-top:18px}.project-settings-tools .ops-workbench{margin:0}
.project-settings-location{margin:0}.project-settings-location .project-map-grid{margin-top:2px}
.global-cache-summary{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(90px,.5fr));gap:8px;margin:12px 0}
.global-cache-summary>span{display:grid;gap:3px;min-width:0;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}

/* v2.8.38 · explorador progresivo de dispositivos, canales y últimos valores */
.project-variable-settings{margin-top:18px;border:1px solid var(--border);border-radius:12px;background:var(--panel);overflow:hidden}.project-variable-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;cursor:pointer}.project-variable-settings>summary span{font-size:.84rem;font-weight:760}.project-variable-settings>summary small{color:var(--muted);font-size:.68rem}.project-variable-settings[open]>summary{border-bottom:1px solid var(--border)}
.variable-explorer{display:grid;gap:13px;min-width:0;padding:15px;background:var(--surface)}.variable-explorer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.variable-explorer-heading h3{margin:3px 0 4px;font-size:1.05rem}.variable-explorer-heading p{max-width:720px;margin:0;color:var(--muted);font-size:.76rem;line-height:1.45}.variable-explorer-heading .eyebrow{color:var(--accent);font-size:.62rem;font-weight:800;letter-spacing:.08em}.variable-explorer-actions{display:flex;align-items:end;gap:8px}.variable-explorer-actions label{display:grid;gap:4px}.variable-explorer-actions label span,.variable-explorer-toolbar label>span{color:var(--muted);font-size:.62rem;font-weight:760;text-transform:uppercase;letter-spacing:.04em}.variable-explorer-actions select,.variable-explorer-toolbar select,.variable-explorer-toolbar input{min-height:38px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.variable-explorer-actions button{white-space:nowrap}.refresh-glyph{font-size:1rem}
.variable-explorer-toolbar{display:grid;grid-template-columns:minmax(230px,1.5fr) minmax(150px,.8fr) minmax(150px,.8fr) auto auto;align-items:end;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.variable-explorer-toolbar label{display:grid;gap:4px;min-width:0}.variable-explorer-toolbar input,.variable-explorer-toolbar select{width:100%;min-width:0}.variable-check{display:flex!important;grid-auto-flow:column;grid-template-columns:18px minmax(120px,auto);align-items:center;gap:8px;min-height:38px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.variable-check input{appearance:auto;width:17px!important;height:17px;min-height:17px;margin:0;padding:0;accent-color:var(--accent)}.variable-check span{line-height:1.25}.variable-search-button{min-height:38px}
.variable-explorer-summary{display:flex;align-items:baseline;gap:6px 9px;flex-wrap:wrap;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.variable-explorer-summary strong{font-size:1rem;color:var(--accent)}.variable-explorer-summary span{color:var(--muted);font-size:.72rem}.variable-explorer-summary small{margin-left:auto;color:var(--muted);font-size:.68rem}.variable-explorer-progress,.variable-explorer-message,.variable-explorer-empty{padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:.75rem}.variable-explorer-progress{display:flex;align-items:center;gap:9px}.variable-explorer-progress>span{display:block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:overview-spin .8s linear infinite}.variable-explorer-message.error{border-color:color-mix(in srgb,#dc2626 45%,var(--border));color:#dc6268}.variable-explorer-empty{display:flex;align-items:center;justify-content:center;gap:9px;min-height:70px}
.variable-explorer-massive-note{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));color:var(--muted);font-size:.7rem;line-height:1.4}.variable-explorer-massive-note>span:first-child{color:var(--accent);font-size:.9rem}
.variable-comparison-card{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:11px;background:var(--surface-2)}.variable-comparison-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.variable-comparison-card h4{margin:3px 0 4px;font-size:.92rem}.variable-comparison-card header p{margin:0;color:var(--muted);font-size:.69rem}.variable-comparison-card .eyebrow{color:var(--accent);font-size:.59rem;font-weight:800;letter-spacing:.08em}.variable-comparison-toolbar{display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(190px,.8fr) auto;align-items:end;gap:8px}.variable-comparison-toolbar>label:not(.variable-check){display:grid;gap:4px}.variable-comparison-toolbar label>span{color:var(--muted);font-size:.6rem;font-weight:760;text-transform:uppercase;letter-spacing:.04em}.variable-comparison-toolbar select,.variable-comparison-toolbar input{width:100%;min-width:0;min-height:38px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.variable-comparison-summary{display:flex;align-items:baseline;gap:5px;color:var(--muted);font-size:.68rem}.variable-comparison-summary strong{color:var(--text);font-size:.76rem}.variable-comparison-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:9px;background:var(--surface);-webkit-overflow-scrolling:touch}.variable-comparison-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.variable-comparison-table th,.variable-comparison-table td{min-width:165px;padding:8px 9px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;vertical-align:top;font-size:.68rem}.variable-comparison-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--text);font-size:.63rem}.variable-comparison-table th:first-child{position:sticky;left:0;z-index:3;min-width:220px;max-width:260px;background:var(--surface-2)}.variable-comparison-table tbody th{color:var(--text)}.variable-comparison-table th strong,.variable-comparison-table th small,.variable-comparison-table td strong,.variable-comparison-table td small{display:block}.variable-comparison-table th small,.variable-comparison-table td small{margin-top:3px;color:var(--muted);font-size:.59rem;line-height:1.3}.variable-comparison-table td strong{font-size:.76rem;font-variant-numeric:tabular-nums}.variable-comparison-table td .variable-quality{margin-top:6px}.variable-comparison-table tr:last-child th,.variable-comparison-table tr:last-child td{border-bottom:0}.variable-comparison-table th:last-child,.variable-comparison-table td:last-child{border-right:0}.variable-comparison-missing{color:var(--muted)}
.variable-device-list{display:grid;gap:8px;min-width:0}.variable-device{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow:hidden}.variable-device.expanded{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.variable-device-header{display:grid;grid-template-columns:18px minmax(180px,1.5fr) minmax(180px,1fr) minmax(125px,.55fr);align-items:center;gap:10px;width:100%;min-height:58px;padding:9px 12px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left}.variable-device-header:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 3.5%,var(--surface-2))!important;color:var(--text)!important;transform:none!important}.variable-chevron{color:var(--accent);font-size:1.1rem}.variable-device-identity,.variable-device-date{display:grid;gap:2px;min-width:0}.variable-device-identity strong,.variable-device-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.variable-device-identity strong{font-size:.8rem}.variable-device-identity small,.variable-device-date{color:var(--muted);font-size:.64rem}.variable-device-tags{display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}.variable-device-tags b,.variable-device-tags small{padding:3px 6px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.6rem;font-weight:700}.variable-device-tags b{color:var(--accent)}.variable-device-tags small{color:var(--muted)}.variable-device-date{text-align:right}.variable-device-date strong{color:var(--text);font-size:.68rem}
.variable-channel-panel{display:grid;gap:9px;padding:10px;border-top:1px solid var(--border);background:var(--surface)}.variable-channel-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:8px;-webkit-overflow-scrolling:touch}.variable-channel-table{width:100%;min-width:880px;border-collapse:collapse}.variable-channel-table th,.variable-channel-table td{padding:8px 9px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;font-size:.7rem}.variable-channel-table th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--muted);font-size:.61rem;text-transform:uppercase;letter-spacing:.03em}.variable-channel-table tr:last-child td{border-bottom:0}.variable-channel-table td strong,.variable-channel-table td small{display:block}.variable-channel-table td small{margin-top:2px;color:var(--muted);font-size:.61rem}.variable-channel-table td:first-child{max-width:230px}.variable-channel-table td:first-child strong,.variable-channel-table td:first-child small,.variable-channel-table td:nth-child(2) span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.variable-value strong{font-size:.78rem;font-variant-numeric:tabular-nums}.variable-quality{display:inline-flex;padding:3px 7px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:.6rem;font-weight:800;white-space:nowrap}.variable-quality.ok{color:#1b9c5b;border-color:color-mix(in srgb,#1b9c5b 45%,var(--border))}.variable-quality.stale{color:#d98213;border-color:color-mix(in srgb,#d98213 45%,var(--border))}.variable-quality.communication,.variable-quality.invalid{color:#dc4d57;border-color:color-mix(in srgb,#dc4d57 45%,var(--border))}.variable-quality.missing{color:var(--muted)}.variable-load-more{justify-self:center}.variable-device-pagination{display:flex;align-items:center;justify-content:center;gap:10px}.variable-device-pagination button{width:36px;height:34px;padding:0}.variable-device-pagination span{color:var(--muted);font-size:.7rem}
.measurement-source-card>div .measurement-inspect-button{justify-self:start;margin-top:7px;min-height:31px;padding:6px 9px;font-size:.68rem}.variable-inspector-backdrop{position:fixed;z-index:1800;inset:0;display:flex;justify-content:flex-end;background:rgba(3,9,20,.62);backdrop-filter:blur(2px)}.variable-inspector-drawer{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1040px,94vw);height:100dvh;border-left:1px solid var(--border);background:var(--surface);box-shadow:-18px 0 60px rgba(0,0,0,.35);overflow:hidden}.variable-inspector-drawer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--border)}.variable-inspector-drawer>header span{color:var(--accent);font-size:.62rem;font-weight:800;letter-spacing:.08em}.variable-inspector-drawer>header h2{margin:3px 0 4px;font-size:1.15rem}.variable-inspector-drawer>header p{max-width:720px;margin:0;color:var(--muted);font-size:.72rem}.variable-inspector-close{flex:0 0 36px;width:36px;height:36px;padding:0;font-size:1.25rem}.variable-inspector-drawer>.variable-explorer{min-height:0;overflow:auto}.variable-explorer.compact .variable-explorer-heading h3{font-size:.95rem}
.variable-device.inverter-module{margin-left:22px;border-left:3px solid color-mix(in srgb,var(--accent) 65%,var(--border))}
@media(max-width:1050px){.variable-explorer-toolbar{grid-template-columns:1fr 1fr 1fr}.variable-search{grid-column:1/-1}.variable-check{grid-column:1/3}.variable-device-header{grid-template-columns:18px minmax(180px,1fr) minmax(150px,.8fr)}.variable-device-date{grid-column:2/4;text-align:left}}
@media(max-width:700px){.project-variable-settings>summary{align-items:flex-start;flex-direction:column;gap:3px}.variable-explorer{padding:10px}.variable-explorer-heading,.variable-explorer-actions{align-items:stretch;flex-direction:column}.variable-explorer-actions label,.variable-explorer-actions button{width:100%}.variable-explorer-toolbar{grid-template-columns:1fr}.variable-search,.variable-check{grid-column:auto}.variable-explorer-toolbar button{width:100%}.variable-explorer-summary small{width:100%;margin-left:0}.variable-device-header{grid-template-columns:18px minmax(0,1fr);gap:7px}.variable-device-tags,.variable-device-date{grid-column:2;text-align:left}.variable-device-tags{margin-top:2px}.variable-channel-panel{padding:7px}.variable-channel-table{min-width:760px}.variable-inspector-drawer{width:100vw;border-left:0}.variable-inspector-drawer>header{padding:12px}.variable-inspector-drawer>header p{font-size:.68rem}.variable-inspector-drawer>.variable-explorer{padding-bottom:max(16px,env(safe-area-inset-bottom))}.measurement-source-card>div .measurement-inspect-button{width:100%}}
@media(max-width:1050px){.variable-comparison-toolbar{grid-template-columns:1fr 1fr}.variable-comparison-toolbar .variable-check{grid-column:1/-1}}
@media(max-width:700px){.variable-comparison-card>header{align-items:stretch;flex-direction:column}.variable-comparison-card>header button{width:100%}.variable-comparison-toolbar{grid-template-columns:1fr}.variable-comparison-toolbar .variable-check{grid-column:auto}.variable-comparison-table th:first-child{min-width:175px;max-width:210px}.variable-comparison-table th,.variable-comparison-table td{min-width:145px}}

.manual-nominal-power{display:grid;gap:10px;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 5%,var(--panel-2))}
.project-power-config{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.project-power-config-title{font-size:.75rem}.manual-nominal-fields.compact{padding-left:0}
.nominal-power-mode{display:grid;gap:6px}.nominal-power-mode>span{color:var(--muted);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.nominal-power-mode select{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.75rem}.nominal-power-channel-editor .measurement-source-card{margin:0}.inverter-nominal-sum{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.inverter-nominal-sum strong{font-size:.74rem}.inverter-nominal-sum small{color:var(--muted);font-size:.65rem;line-height:1.4}.inverter-nominal-sum.complete{border-color:color-mix(in srgb,#29c977 55%,var(--border))}.inverter-nominal-sum.complete strong{color:#29c977}.inverter-nominal-sum.incomplete{border-color:color-mix(in srgb,#f4ad35 55%,var(--border))}.inverter-nominal-sum.incomplete strong{color:#f4ad35}
.aggregate-measurement-config{display:grid;gap:10px;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 5%,var(--panel-2))}.aggregate-measurement-config>.measurement-source-card{margin:0}.inverter-aggregate-editor{display:grid;gap:7px}.inverter-aggregate-editor>header{display:grid;gap:3px}.inverter-aggregate-editor>header strong{font-size:.74rem}.inverter-aggregate-editor>header small{color:var(--muted);font-size:.64rem;line-height:1.4}.inverter-aggregate-row{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(180px,1.1fr) minmax(90px,.35fr);align-items:center;gap:9px;padding:8px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.inverter-aggregate-row>span{display:grid;min-width:0;gap:2px}.inverter-aggregate-row>span strong,.inverter-aggregate-row>span small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inverter-aggregate-row>span strong{font-size:.69rem}.inverter-aggregate-row>span small{color:var(--muted);font-size:.56rem}.inverter-aggregate-row input,.inverter-aggregate-row select{width:100%;min-width:0;min-height:36px;box-sizing:border-box;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.72rem}
@media(max-width:600px){.inverter-aggregate-row{grid-template-columns:1fr}.inverter-aggregate-row input{font-size:16px}}
.manual-nominal-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.manual-nominal-toggle input{flex:0 0 auto;width:17px;height:17px;margin-top:2px;accent-color:var(--accent)}.manual-nominal-toggle>span{display:grid;gap:3px}.manual-nominal-toggle strong{font-size:.78rem}.manual-nominal-toggle small{color:var(--muted);font-size:.67rem;line-height:1.4}
.manual-nominal-fields{display:grid;grid-template-columns:minmax(150px,1fr) 110px minmax(170px,auto);align-items:end;gap:10px;padding-left:27px}.manual-nominal-fields label{display:grid;gap:5px}.manual-nominal-fields label>span{color:var(--muted);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.manual-nominal-fields input,.manual-nominal-fields select{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.74rem}.manual-nominal-fields output{align-self:center;color:var(--accent);font-size:.68rem;font-weight:700}
@media(max-width:760px){.project-power-config{grid-template-columns:1fr}}@media(max-width:600px){.manual-nominal-fields{grid-template-columns:1fr;padding-left:0}.manual-nominal-fields input,.manual-nominal-fields select{font-size:16px}.manual-nominal-fields output{align-self:start}.project-profile-grid select{font-size:16px}}

.project-inverter-config{display:grid;grid-column:1/-1;align-self:start;width:100%;min-width:0;box-sizing:border-box;gap:11px;padding:13px;border:1px solid var(--border);border-radius:11px;background:var(--panel-2)}.project-inverter-config>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-inverter-config>header>div{display:grid;min-width:0;gap:3px}.project-inverter-config>header strong{font-size:.8rem}.project-inverter-config>header small{color:var(--muted);font-size:.67rem;line-height:1.4}.project-inverter-redetect{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:7px;min-height:35px;white-space:nowrap}.project-inverter-detection-result{padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.68rem;line-height:1.4}.project-inverter-detection-result.success{border-color:color-mix(in srgb,#22c55e 42%,var(--border));background:color-mix(in srgb,#22c55e 8%,var(--surface));color:color-mix(in srgb,#22c55e 72%,var(--text))}.project-inverter-detection-result.error{border-color:color-mix(in srgb,#ef4444 42%,var(--border));background:color-mix(in srgb,#ef4444 8%,var(--surface));color:color-mix(in srgb,#ef4444 72%,var(--text))}.project-inverter-hierarchy-settings{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.35fr);align-items:end;gap:12px;padding:11px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.project-inverter-hierarchy-settings>div{display:grid;gap:3px}.project-inverter-hierarchy-settings strong{font-size:.73rem}.project-inverter-hierarchy-settings small{color:var(--muted);font-size:.63rem;line-height:1.4}.project-inverter-bulk{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(160px,1fr) minmax(125px,.65fr) auto;align-items:end;gap:8px;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.project-inverter-bulk button{min-height:38px;white-space:nowrap}.project-inverter-config label{display:grid;gap:5px;min-width:0}.project-inverter-config label>span{color:var(--muted);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.project-inverter-config label>small{color:var(--muted);font-size:.61rem;line-height:1.35}.project-inverter-config input,.project-inverter-config select{width:100%;min-width:0;min-height:38px;box-sizing:border-box;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.74rem}.project-inverter-manual-help{color:var(--muted);font-size:.63rem;line-height:1.4}.project-inverter-list{display:grid;min-width:0;gap:6px}.project-inverter-list-head,.project-inverter-override{display:grid;grid-template-columns:minmax(210px,1.2fr) minmax(120px,.72fr) minmax(160px,1fr) minmax(115px,.62fr) 38px;gap:8px}.project-inverter-list-head{padding:0 9px;color:var(--muted);font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.project-inverter-override{align-items:end;min-width:0;padding:9px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:9px;background:var(--surface);transition:border-color .15s ease,background .15s ease,transform .15s ease}.project-inverter-override.module{margin-left:24px;border-left:3px solid color-mix(in srgb,var(--accent) 68%,var(--border))}.project-inverter-override.drag-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));transform:translateY(-1px)}.project-inverter-identity{display:grid;align-self:center;min-width:0;gap:4px}.project-inverter-hierarchy-role{display:flex;align-items:center;gap:5px;color:var(--accent);font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.project-inverter-drag-handle{display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid var(--border);border-radius:5px;color:var(--muted);font-size:.8rem;cursor:grab;user-select:none}.project-inverter-override:active .project-inverter-drag-handle{cursor:grabbing}.project-inverter-parent-select{margin-top:3px}.project-inverter-parent-select select{min-height:30px!important;padding:4px 7px!important;font-size:.64rem!important}.project-inverter-identity strong,.project-inverter-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-inverter-identity strong{font-size:.72rem}.project-inverter-identity small{color:var(--muted);font-size:.57rem}.project-inverter-device-key{min-width:0}.project-inverter-device-key summary{width:max-content;max-width:100%;color:var(--accent);font-size:.58rem;cursor:pointer}.project-inverter-device-key code{display:block;overflow:hidden;margin-top:3px;color:var(--muted);font-size:.55rem;text-overflow:ellipsis;white-space:nowrap}.project-inverter-name-input,.project-inverter-key-input{min-height:32px!important;font-size:.68rem!important}.project-inverter-key-input{color:var(--muted)!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important}.project-inverter-delete{width:38px;min-width:38px;height:38px;min-height:38px;padding:0;color:#c86a73;font-size:1rem}.project-inverter-actions{display:flex;flex-wrap:wrap;gap:8px}.project-inverter-actions button{min-height:35px}.project-inverter-empty{padding:14px;border:1px dashed var(--border);border-radius:9px;color:var(--muted);font-size:.7rem;text-align:center}
@media(max-width:850px){.project-inverter-bulk{grid-template-columns:1fr 1fr}.project-inverter-bulk button{width:100%}.project-inverter-list-head{display:none}.project-inverter-override{grid-template-columns:1fr 1fr}.project-inverter-identity{grid-column:1/-1;padding-bottom:4px;border-bottom:1px solid var(--border)}.project-inverter-delete{justify-self:end}}
.project-inverter-collapse{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:42px;height:24px;min-height:24px;padding:0 6px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:.9rem;line-height:1;cursor:pointer}.project-inverter-collapse:hover{background:color-mix(in srgb,var(--accent) 16%,var(--surface))}.project-inverter-collapse small{color:inherit;font-size:.57rem;font-weight:800}
@media(max-width:600px){.project-inverter-config>header,.project-inverter-hierarchy-settings{display:grid;grid-template-columns:1fr}.project-inverter-redetect{width:100%}.project-inverter-bulk,.project-inverter-override{grid-template-columns:1fr}.project-inverter-override.module{margin-left:12px}.project-inverter-identity{grid-column:auto}.project-inverter-config input,.project-inverter-config select,.nominal-power-mode select{font-size:16px}.project-inverter-delete{justify-self:stretch;width:100%}.project-inverter-actions{display:grid}.project-inverter-actions button{width:100%}}

/* Project settings cards share one visual and interaction model. */
.project-settings-selector{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(300px,1.35fr) auto;align-items:end}.project-settings-selector label{width:100%}.project-settings-selector input,.project-settings-selector select{width:100%;min-width:0;min-height:42px;box-sizing:border-box;padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.8rem}.project-settings-selector select{padding-right:36px}.project-settings-loading{display:flex;align-items:center;gap:8px;align-self:center;max-width:250px;line-height:1.35}.project-settings-loading i,.project-config-card-loading i{display:block;flex:0 0 15px;width:15px;height:15px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:overview-spin .8s linear infinite}.project-settings-message{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-settings-message span{min-width:0;overflow-wrap:anywhere}.project-settings-message button{flex:0 0 auto}
.project-config-card-list,.project-settings-fieldset{display:grid;gap:12px}.project-config-card-list{margin-bottom:12px}.project-config-card{min-width:0;border:1px solid var(--border);border-radius:13px;background:var(--panel);overflow:hidden;box-shadow:0 8px 24px color-mix(in srgb,#000 12%,transparent)}.project-config-card.expanded{border-color:color-mix(in srgb,var(--accent) 32%,var(--border))}.project-config-card.loading{background:color-mix(in srgb,var(--panel) 94%,var(--surface-2))}
.project-config-card-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px;padding:14px 16px}.project-config-card-header>div{display:grid;gap:4px;min-width:0}.project-config-card-header h2{margin:0;color:var(--text);font-size:.9rem;font-weight:720;line-height:1.25}.project-config-card-header p{max-width:820px;margin:0;color:var(--muted);font-size:.69rem;font-weight:450;line-height:1.45}.project-config-toggle{display:flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-width:94px;min-height:34px;padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font:inherit;font-size:.65rem;font-weight:650}.project-config-toggle:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}.project-config-toggle i{display:grid;place-items:center;width:16px;height:16px;color:var(--accent);font-style:normal;font-size:.9rem}
.project-config-card-body{min-width:0;padding:14px 16px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--panel) 88%,var(--surface-2))}.project-settings-section-fieldset{min-width:0;margin:0;padding:0;border:0}.project-settings-section-fieldset:disabled{opacity:.78}.project-settings-section-fieldset>.project-profile-grid,.project-settings-section-fieldset>.measurement-source-list{padding:0;border:0}.project-config-card-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:86px;color:var(--muted);font-size:.74rem}.project-config-card-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:11px 16px;border-top:1px solid var(--border);background:var(--panel)}.project-config-card-footer>span{margin-right:auto;color:var(--muted);font-size:.68rem}.project-config-card-footer>span:empty{display:none}.project-config-card-footer button{min-height:36px}
.project-xml-upload-intro{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.project-xml-upload-intro p{margin:1px 0 0;color:var(--muted);font-size:.72rem;line-height:1.5}.project-xml-admin-badge{flex:0 0 auto;padding:5px 8px;border:1px solid color-mix(in srgb,#f3b33d 55%,var(--border));border-radius:999px;background:color-mix(in srgb,#f3b33d 10%,var(--surface-2));color:#f3b33d;font-size:.62rem;font-weight:760;text-transform:uppercase}.project-xml-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-xml-file{display:grid;gap:7px;min-width:0;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.project-xml-file>span{font-size:.7rem;font-weight:720}.project-xml-file>span b{color:#f26363}.project-xml-file input{width:100%;min-width:0;color:var(--text);font:inherit;font-size:.7rem}.project-xml-file input::file-selector-button{margin-right:9px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--accent) 50%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));color:var(--text);font:inherit;font-weight:650;cursor:pointer}.project-xml-file small{min-height:1.2em;color:var(--muted);font-size:.65rem;overflow-wrap:anywhere}.project-xml-upload-result{margin-top:12px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.7rem}.project-xml-upload-result.success{border-color:color-mix(in srgb,#27c777 48%,var(--border));background:color-mix(in srgb,#27c777 9%,var(--surface-2));color:#65df9c}.project-xml-upload-result.error{border-color:color-mix(in srgb,#ef5f68 48%,var(--border));background:color-mix(in srgb,#ef5f68 9%,var(--surface-2));color:#ff8c93}.project-xml-inventory-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.project-xml-inventory-summary span{padding:6px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:.66rem}.project-xml-inventory-summary b{color:var(--text)}
.pr-settings-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(280px,1.25fr);gap:14px}.pr-settings-grid>label,.pr-settings-source{display:grid;align-content:start;gap:7px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.pr-settings-grid span{color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase}.pr-settings-grid small{color:var(--muted);font-size:.7rem;line-height:1.45}.pr-settings-grid label>div{display:flex;align-items:center;gap:8px}.pr-settings-grid input{width:130px;min-height:40px;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit}.pr-settings-grid b{font-size:.75rem}.pr-settings-source strong{font-size:.82rem;overflow-wrap:anywhere}
.snapshot-measurement-config{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.snapshot-measurement-config>p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.5}.snapshot-enable{display:flex;align-items:center;gap:9px;font-weight:700}.snapshot-enable input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.snapshot-parameter-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:10px}.snapshot-parameter-grid>label{display:grid;gap:6px}.snapshot-parameter-grid>label>span{color:var(--muted);font-size:.65rem;font-weight:700;text-transform:uppercase}.snapshot-parameter-grid>label>div{display:flex;align-items:center;gap:7px}.snapshot-parameter-grid input{width:100%;min-width:0}.snapshot-parameter-grid b{font-size:.72rem;white-space:nowrap}
.project-settings-location.embedded{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.project-settings-location.embedded .project-map-grid{margin:0}.project-coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.project-coordinate-fields label{min-width:0}.project-coordinate-fields input{width:100%;min-width:0;box-sizing:border-box}
.source-variable-disclosure{display:grid;gap:10px;margin-top:12px}.source-variable-disclosure>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;width:100%;padding:10px 12px;text-align:left}.source-variable-disclosure>button span{font-size:.75rem;font-weight:720}.source-variable-disclosure>button small{grid-column:1;color:var(--muted);font-size:.65rem;font-weight:450;white-space:normal}.source-variable-disclosure>button i{grid-column:2;grid-row:1/3;align-self:center;color:var(--accent);font-style:normal}.source-variable-disclosure>.variable-explorer{border:1px solid var(--border);border-radius:10px}
.project-settings-inline-loading,.variable-project-loading{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.69rem}.project-settings-inline-loading{margin-bottom:10px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.project-settings-inline-loading i,.variable-project-loading i{display:block;flex:0 0 14px;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:overview-spin .8s linear infinite}
.project-settings-tools{margin:0;padding:0}.project-settings-tools .ops-workbench.embedded{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.project-settings-tools .ops-workbench.embedded .ops-tabs{margin-top:0}
@media(max-width:850px){.project-settings-selector{grid-template-columns:1fr 1.4fr}.project-settings-loading{grid-column:1/-1;max-width:none}.project-config-card-header{align-items:flex-start}.measurement-source-card{grid-template-columns:1fr 1fr}.measurement-source-card>div{grid-column:1/-1}}
@media(max-width:850px){.pr-settings-grid{grid-template-columns:1fr}.snapshot-parameter-grid{grid-template-columns:1fr}}
@media(max-width:600px){.project-settings-selector{grid-template-columns:1fr}.project-settings-selector input,.project-settings-selector select{font-size:16px}.project-config-card-header{gap:10px;padding:12px}.project-config-card-header h2{font-size:.86rem}.project-config-card-header p{font-size:.67rem}.project-config-toggle{min-width:36px;width:36px;height:36px;padding:0}.project-config-toggle span{display:none}.project-config-card-body{padding:10px}.project-config-card-footer{align-items:stretch;flex-direction:column;padding:10px}.project-config-card-footer>span{width:100%;margin:0}.project-config-card-footer button{width:100%}.project-coordinate-fields{grid-template-columns:1fr}.measurement-source-card{grid-template-columns:1fr}.measurement-source-card>div{grid-column:auto}.source-variable-disclosure>button{grid-template-columns:minmax(0,1fr) 18px}.project-settings-message{align-items:stretch;flex-direction:column}.project-settings-message button{width:100%}.pr-settings-grid input{width:100%;font-size:16px}}

/* Project device hierarchy ------------------------------------------------ */
.device-hierarchy-editor{display:grid;gap:11px;min-width:0}.device-hierarchy-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.35fr) minmax(150px,.35fr) auto;gap:10px;align-items:end}.device-hierarchy-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:.67rem}.device-hierarchy-toolbar input,.device-hierarchy-toolbar select,.device-hierarchy-bulk select,.device-virtual-group-create input{width:100%;min-width:0;min-height:38px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit}.device-hierarchy-summary{display:grid;grid-template-columns:auto auto;column-gap:6px;align-items:baseline;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:.65rem}.device-hierarchy-summary strong{color:var(--accent);font-size:.78rem}.device-virtual-group-create{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;align-items:end;padding:9px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 4%,var(--panel))}.device-virtual-group-create label{display:grid;gap:5px;color:var(--muted);font-size:.67rem}.device-hierarchy-bulk{display:grid;grid-template-columns:auto minmax(180px,1fr) auto minmax(180px,1fr) auto auto auto auto;gap:7px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.device-hierarchy-bulk>span{color:var(--muted);font-size:.67rem}.device-hierarchy-help{margin:0;color:var(--muted);font-size:.68rem;line-height:1.5}.device-hierarchy-tree{max-height:560px;overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel);scrollbar-width:thin}.device-hierarchy-row{display:grid;grid-template-columns:20px 22px minmax(180px,1fr) auto auto auto 82px;align-items:center;gap:7px;min-height:38px;padding:5px 9px 5px calc(9px + var(--tree-depth)*22px);border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent);transition:background .12s,border-color .12s;cursor:pointer}.device-hierarchy-row:last-child{border-bottom:0}.device-hierarchy-row.selected{background:color-mix(in srgb,var(--accent) 14%,var(--surface-2));box-shadow:inset 3px 0 0 var(--accent)}.device-hierarchy-row:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}.device-hierarchy-row.drag-over,.device-virtual-group-row.drag-over{outline:2px solid var(--accent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 13%,var(--surface-2))}.device-hierarchy-row.virtual-member{background:color-mix(in srgb,var(--accent) 3%,var(--panel))}.device-virtual-group-row,.device-device-type-group-row{display:grid;grid-template-columns:22px 22px minmax(180px,1fr) auto 30px;align-items:center;gap:7px;min-height:42px;padding:6px 9px;border-bottom:1px solid var(--border);border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}.device-device-type-group-row{grid-template-columns:22px minmax(180px,1fr) auto;border-left-color:#64748b;background:color-mix(in srgb,var(--border) 28%,var(--surface-2))}.device-virtual-group-row strong,.device-device-type-group-row strong{color:var(--text);font-size:.74rem}.device-virtual-group-row>span,.device-device-type-group-row>span{color:var(--muted);font-size:.62rem}.device-virtual-group-delete{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid color-mix(in srgb,var(--danger) 55%,var(--border));border-radius:7px;background:transparent;color:var(--danger);font-size:1rem}.device-hierarchy-row input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.device-tree-chevron{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;background:transparent;color:var(--accent);font-size:1.05rem}.device-tree-chevron-spacer{width:22px}.device-hierarchy-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.72rem;font-weight:680}.device-hierarchy-category,.device-hierarchy-group{padding:3px 6px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:.58rem;white-space:nowrap}.device-hierarchy-group{max-width:150px;overflow:hidden;text-overflow:ellipsis}.device-hierarchy-row small{color:var(--muted);font-size:.6rem;white-space:nowrap}.device-hierarchy-key{overflow:hidden;text-overflow:ellipsis}.device-hierarchy-more{justify-self:center}.device-hierarchy-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:2px}.device-hierarchy-footer>span{margin-right:auto;font-size:.67rem}.device-hierarchy-footer .success{color:var(--success)}.device-hierarchy-footer .error,.device-hierarchy-message.error{color:var(--danger)}.device-hierarchy-message{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--panel);font-size:.68rem}
@media(max-width:950px){.device-hierarchy-toolbar{grid-template-columns:1fr 1fr}.device-hierarchy-summary{grid-column:1/-1}.device-hierarchy-bulk{grid-template-columns:1fr 1fr}.device-hierarchy-bulk select{grid-column:1/-1}.device-hierarchy-row{grid-template-columns:20px 22px minmax(130px,1fr) auto auto}.device-hierarchy-group,.device-hierarchy-key{display:none}}
@media(max-width:600px){.device-hierarchy-toolbar,.device-virtual-group-create{grid-template-columns:1fr}.device-hierarchy-summary{grid-column:auto}.device-hierarchy-toolbar input,.device-hierarchy-toolbar select,.device-hierarchy-bulk select,.device-virtual-group-create input{font-size:16px}.device-hierarchy-bulk{grid-template-columns:1fr}.device-hierarchy-bulk select{grid-column:auto}.device-hierarchy-bulk button,.device-virtual-group-create button{width:100%}.device-hierarchy-row{grid-template-columns:20px 20px minmax(0,1fr) auto;padding-left:calc(7px + var(--tree-depth)*14px)}.device-hierarchy-row small,.device-hierarchy-category{display:none}.device-virtual-group-row{grid-template-columns:18px 20px minmax(0,1fr) auto 28px}.device-hierarchy-footer{align-items:stretch;flex-direction:column}.device-hierarchy-footer button{width:100%}}
@media(max-width:600px){.project-xml-upload-intro{display:grid}.project-xml-admin-badge{justify-self:start}.project-xml-upload-grid{grid-template-columns:1fr}.project-xml-file input{font-size:16px}}

/* v2.8.187 · device hierarchy responsive controls */
.device-hierarchy-editor{overflow:hidden}.device-hierarchy-toolbar{grid-template-columns:minmax(180px,1fr) minmax(132px,.34fr) minmax(132px,.34fr) minmax(180px,.55fr);align-items:stretch}.device-hierarchy-toolbar label,.device-virtual-group-create label{min-width:0}.device-hierarchy-summary{min-width:0;grid-template-columns:auto minmax(0,1fr);align-content:center}.device-hierarchy-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-virtual-group-create{grid-template-columns:minmax(180px,1fr) auto}.device-hierarchy-bulk{display:flex;flex-wrap:wrap;align-items:center;max-width:100%;overflow:hidden}.device-hierarchy-bulk>span{flex:0 0 auto}.device-hierarchy-bulk select{flex:1 1 210px;max-width:100%}.device-hierarchy-bulk button,.device-virtual-group-create button{flex:0 1 auto;min-height:36px;padding-inline:10px;white-space:normal;line-height:1.15}.device-hierarchy-tree{max-width:100%}.device-hierarchy-row,.device-virtual-group-row,.device-device-type-group-row{min-width:0}.device-hierarchy-name,.device-hierarchy-category,.device-hierarchy-group,.device-hierarchy-row small{min-width:0}
@media(max-width:1100px){.device-hierarchy-toolbar{grid-template-columns:1fr 1fr}.device-hierarchy-summary{grid-column:1/-1}.device-virtual-group-create{grid-template-columns:1fr auto}.device-hierarchy-bulk select{flex-basis:260px}.device-hierarchy-bulk button{flex:1 1 150px}}
@media(max-width:700px){.device-hierarchy-toolbar,.device-virtual-group-create{grid-template-columns:1fr}.device-hierarchy-bulk{display:grid;grid-template-columns:1fr}.device-hierarchy-bulk>span,.device-hierarchy-bulk select,.device-hierarchy-bulk button,.device-virtual-group-create button{width:100%;max-width:100%}}

/* v2.8.188 · channel value contextual actions */
.variable-channel-value-actions{position:relative;display:inline-flex;margin-top:7px}.variable-channel-value-actions .variable-channel-action-trigger{display:grid;place-items:center;width:30px;height:28px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));color:var(--accent);font-size:1rem;font-weight:800;line-height:1}.variable-channel-value-actions .variable-channel-action-trigger:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));transform:translateY(-1px)}.variable-channel-action-menu{position:absolute;z-index:160;top:calc(100% + 6px);right:0;display:grid;min-width:190px;padding:6px;border:1px solid var(--border);border-radius:9px;background:var(--surface);box-shadow:0 14px 36px rgba(0,0,0,.24)}.variable-channel-action-menu button{display:flex!important;align-items:center;justify-content:flex-start!important;gap:8px;width:100%!important;height:auto!important;min-height:34px;padding:7px 9px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:var(--text)!important;font-size:.68rem!important;font-weight:720;text-align:left}.variable-channel-action-menu button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 11%,var(--surface-2))!important;transform:none!important}.variable-channel-action-menu button:disabled{opacity:.42;cursor:not-allowed}.variable-channel-action-menu span{display:grid;place-items:center;width:18px;color:var(--accent);font-size:.78rem}.variable-channel-table td>.variable-channel-value-actions{margin-top:0}.variable-channel-table td:last-child .variable-channel-action-menu{right:0}

.variable-explorer-page{display:grid;gap:15px;width:min(1380px,100%);margin:0 auto;padding:24px 22px 52px}.variable-explorer-page-heading span{color:var(--accent);font-size:.67rem;font-weight:780;letter-spacing:.12em}.variable-explorer-page-heading h1{margin:5px 0 7px;font-size:clamp(1.55rem,3vw,2.15rem)}.variable-explorer-page-heading p{max-width:760px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.variable-project-selector{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(300px,1.3fr) auto;align-items:end;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.variable-project-selector label{display:grid;gap:6px;min-width:0}.variable-project-selector label>span{color:var(--muted);font-size:.66rem;font-weight:720;letter-spacing:.06em;text-transform:uppercase}.variable-project-selector input,.variable-project-selector select{width:100%;min-width:0;min-height:42px;box-sizing:border-box;padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.8rem}.variable-explorer-page>.variable-explorer{border:1px solid var(--border);border-radius:13px}
@media(max-width:800px){.variable-project-selector{grid-template-columns:1fr 1.3fr}.variable-project-loading{grid-column:1/-1}.variable-explorer-page{padding:16px 11px 36px}}
@media(max-width:560px){.variable-project-selector{grid-template-columns:1fr}.variable-project-selector input,.variable-project-selector select{font-size:16px}.variable-explorer-page{padding-inline:6px}.variable-explorer-page-heading{padding-inline:5px}}

.data-source-diagnostics{margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow:hidden}.data-source-diagnostics>summary{cursor:pointer;padding:11px 13px;color:var(--text);font-size:.76rem;font-weight:720;list-style-position:inside}.data-source-diagnostics>p{margin:0;padding:0 13px 10px;color:var(--muted);font-size:.69rem}.data-source-diagnostic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;padding:0 11px 11px}.data-source-diagnostic-grid article{display:grid;gap:5px;min-width:0;padding:10px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;background:var(--panel)}.data-source-diagnostic-grid article.source-diagnostic-ok{border-left-color:var(--success)}.data-source-diagnostic-grid article.source-diagnostic-no_data,.data-source-diagnostic-grid article.source-diagnostic-not_found,.data-source-diagnostic-grid article.source-diagnostic-incompatible_type{border-left-color:var(--danger)}.data-source-diagnostic-grid article.source-diagnostic-stale,.data-source-diagnostic-grid article.source-diagnostic-frozen,.data-source-diagnostic-grid article.source-diagnostic-missing_unit{border-left-color:var(--warning)}.data-source-diagnostic-grid article header{display:flex;align-items:center;justify-content:space-between;gap:8px}.data-source-diagnostic-grid article header strong{font-size:.73rem}.data-source-diagnostic-grid article header span{color:var(--muted);font-size:.59rem;text-transform:uppercase}.data-source-diagnostic-grid article>b{overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.data-source-diagnostic-grid article code{overflow:hidden;color:var(--accent);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.data-source-diagnostic-grid article small{color:var(--muted);font-size:.62rem}.data-source-diagnostic-grid article p{margin:2px 0 0;color:var(--text);font-size:.64rem;line-height:1.4}.dashboard-source-diagnostics{margin-top:0}
@media(max-width:600px){.data-source-diagnostic-grid{grid-template-columns:1fr;padding-inline:8px}.data-source-diagnostics>summary{padding-inline:10px}}

.global-cache-summary small{color:var(--muted);font-size:.68rem;text-transform:uppercase}.global-cache-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-cache-toolbar{display:flex;gap:8px;margin-bottom:8px}.global-cache-toolbar input{flex:1;min-width:0}
.global-cache-projects{display:grid;gap:6px;max-height:310px;overflow:auto;padding-right:3px}
.global-cache-projects>article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}
.global-cache-projects>article>div{display:grid;gap:2px;min-width:0}.global-cache-projects strong,.global-cache-projects small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-cache-projects small{color:var(--muted)}
.global-cache-projects .danger-button{min-height:32px;padding:5px 10px}
@media(max-width:800px){
  .report-generator-page{padding:12px}.report-generator-heading{align-items:stretch;flex-direction:column}.report-project-selector{min-width:0}
  .global-cache-summary{grid-template-columns:1fr 1fr}.global-cache-summary>span:first-child{grid-column:1/-1}
}
@media(max-width:520px){
  .global-cache-toolbar{align-items:stretch;flex-direction:column}.global-cache-projects>article{align-items:stretch;flex-direction:column}.global-cache-projects .danger-button{width:100%}
}

/* Existing XML files in project settings. */
.project-xml-existing-files{display:grid;gap:8px;margin:0 0 12px}.project-xml-existing-file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.project-xml-existing-file.present{border-color:color-mix(in srgb,#27c777 38%,var(--border))}.project-xml-existing-file.missing{opacity:.78}.project-xml-file-state{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted);font-size:.72rem;font-weight:800}.project-xml-existing-file.present .project-xml-file-state{background:color-mix(in srgb,#27c777 14%,transparent);color:#48d98c}.project-xml-existing-file>div{display:grid;gap:2px;min-width:0}.project-xml-existing-file strong{font-size:.72rem;overflow-wrap:anywhere}.project-xml-existing-file small{color:var(--muted);font-size:.64rem}.project-xml-delete{padding:6px 9px!important;border-color:color-mix(in srgb,#b14a5c 50%,var(--border))!important;background:color-mix(in srgb,#7e2538 14%,var(--surface-2))!important;color:#df8b99!important;font-size:.65rem!important}
@media(max-width:600px){.project-xml-existing-file{grid-template-columns:auto minmax(0,1fr)}.project-xml-delete{grid-column:2;justify-self:start}}

/* XML multarchivo: los mapas existentes y la selección pendiente se identifican en azul. */
.project-xml-upload-grid.single{grid-template-columns:1fr}
.project-xml-existing-file.present{border-color:color-mix(in srgb,var(--accent) 46%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}
.project-xml-existing-file.present .project-xml-file-state{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.project-xml-selected-files{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.project-xml-selected-files>span{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;max-width:100%;padding:7px 8px 7px 10px;border:1px solid color-mix(in srgb,var(--accent) 58%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--accent)}
.project-xml-selected-files b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.66rem}
.project-xml-selected-files small{color:var(--muted);font-size:.6rem}
.project-xml-selected-files button{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:.9rem;line-height:1;cursor:pointer}
.project-xml-selected-files button:hover{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text)}
.project-xml-tree{display:grid;gap:5px;margin:0 0 14px;padding:9px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface-2) 72%,transparent)}
.project-xml-empty{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin:0 0 14px;padding:14px;border:1px dashed color-mix(in srgb,var(--muted) 55%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--surface-2) 72%,transparent)}.project-xml-empty>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted);font-size:.9rem;font-weight:800}.project-xml-empty>div{display:grid;gap:3px}.project-xml-empty strong{color:var(--text);font-size:.73rem}.project-xml-empty small{color:var(--muted);font-size:.66rem;line-height:1.45}
.project-xml-tree-folder{display:flex;align-items:center;gap:7px;min-height:28px;margin-left:calc(var(--xml-depth) * 18px);padding:4px 7px;color:var(--text);font-size:.69rem}
.project-xml-tree-folder>span{color:var(--accent);font-size:.62rem}.project-xml-tree-folder small{display:grid;place-items:center;min-width:20px;height:20px;margin-left:auto;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--muted);font-size:.59rem}
.project-xml-tree .project-xml-existing-file{margin-left:calc(var(--xml-depth) * 18px)}
.project-xml-target{margin:0 0 12px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.project-xml-target label{display:grid;grid-template-columns:minmax(130px,.28fr) minmax(220px,1fr);align-items:center;gap:7px 12px}.project-xml-target span{font-size:.7rem;font-weight:720}.project-xml-target input{width:100%;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:.72rem}.project-xml-target small{grid-column:2;color:var(--muted);font-size:.63rem}
@media(max-width:600px){.project-xml-target label{grid-template-columns:1fr}.project-xml-target small{grid-column:1}.project-xml-tree .project-xml-existing-file{margin-left:min(calc(var(--xml-depth) * 12px),24px)}.project-xml-tree-folder{margin-left:min(calc(var(--xml-depth) * 12px),24px)}}
.variable-comparison-table .variable-comparison-spread{min-width:150px;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.variable-comparison-table thead .variable-comparison-spread{background:color-mix(in srgb,var(--accent) 12%,var(--surface-2))}.variable-comparison-table td.variable-comparison-spread strong{color:var(--accent)}
.variable-channel-value-actions{display:flex;align-items:center;gap:5px;margin-top:7px}.variable-channel-value-actions button{display:grid;place-items:center;width:28px;height:26px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));color:var(--accent);font-size:.72rem}.variable-channel-value-actions button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));transform:translateY(-1px)}.variable-channel-value-actions button.review{border-color:color-mix(in srgb,#f4ad35 48%,var(--border));color:#d98b12}.variable-channel-value-actions button:disabled{opacity:.35;cursor:not-allowed}.variable-channel-table td>.variable-channel-value-actions{margin-top:0}.variable-channel-action-status{display:grid;grid-template-columns:24px minmax(0,1fr) 28px;align-items:center;gap:8px;padding:9px 11px;border:1px solid color-mix(in srgb,#24a866 48%,var(--border));border-radius:9px;background:color-mix(in srgb,#24a866 8%,var(--surface-2));color:var(--text);font-size:.7rem}.variable-channel-action-status>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#24a866;color:#fff;font-weight:800}.variable-channel-action-status>button{width:26px;height:26px;padding:0;border:0;background:transparent;color:var(--muted);font-size:1rem}.variable-channel-action-status.error{border-color:color-mix(in srgb,#dc4d57 52%,var(--border));background:color-mix(in srgb,#dc4d57 8%,var(--surface-2))}.variable-channel-action-status.error>span{background:#dc4d57}.variable-incident-backdrop{position:fixed;z-index:2100;inset:0;display:grid;place-items:center;padding:18px;background:rgba(3,9,20,.7);backdrop-filter:blur(3px)}.variable-incident-dialog{display:grid;gap:14px;width:min(680px,96vw);max-height:calc(100dvh - 36px);padding:17px;border:1px solid color-mix(in srgb,#f4ad35 40%,var(--border));border-radius:14px;background:var(--surface);box-shadow:0 24px 80px rgba(0,0,0,.45);overflow:auto}.variable-incident-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.variable-incident-dialog>header span{color:#d98b12;font-size:.61rem;font-weight:800;letter-spacing:.08em}.variable-incident-dialog h3{margin:3px 0 0;font-size:1rem}.variable-incident-close{flex:0 0 34px;width:34px;height:34px;padding:0;font-size:1.15rem}.variable-incident-observation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.variable-incident-observation>div{display:grid;gap:3px;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.variable-incident-observation>div:last-child{grid-column:1/-1}.variable-incident-observation span,.variable-incident-dialog>label>span{color:var(--muted);font-size:.61rem;font-weight:760;text-transform:uppercase;letter-spacing:.04em}.variable-incident-observation strong{overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.variable-incident-dialog>label{display:grid;gap:5px}.variable-incident-dialog select,.variable-incident-dialog textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text);font:inherit;font-size:.72rem}.variable-incident-dialog textarea{resize:vertical}.variable-incident-dialog>p{margin:0;color:var(--muted);font-size:.66rem;line-height:1.45}.variable-incident-dialog>footer{display:flex;justify-content:flex-end;gap:8px}.incident-observed-value{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-2px 0 9px;padding:7px 9px;border:1px solid color-mix(in srgb,#f4ad35 38%,var(--border));border-radius:7px;background:color-mix(in srgb,#f4ad35 7%,var(--surface-2));font-size:.66rem}.incident-observed-value>span{color:#d98b12;font-weight:760}.incident-observed-value>small{color:var(--muted)}
@media(max-width:600px){.variable-incident-observation{grid-template-columns:1fr}.variable-incident-observation>div:last-child{grid-column:auto}.variable-incident-dialog{padding:13px}.variable-incident-dialog>footer{flex-direction:column-reverse}.variable-incident-dialog>footer button{width:100%}}

/* Detailed telemetry gaps in Datos recientes. */
/* Outrank the generic button hover without losing light/dark theme contrast. */
.date-calendar-trigger:hover:not(:disabled),
.date-calendar-trigger:focus-visible {
    background: color-mix(in srgb, var(--primary) 8%, var(--surface));
    color: var(--text);
    border-color: var(--primary);
}
.date-calendar-trigger:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.availability-calendar-head button:hover:not(:disabled) {
    background: color-mix(in srgb, var(--primary) 12%, var(--surface));
    color: var(--text);
}
.freshness-signal-details{min-width:250px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--accent) 4%,var(--surface));overflow:hidden}.freshness-signal-details>summary{padding:9px 11px;color:var(--accent);font-size:.76rem;font-weight:800;cursor:pointer;list-style-position:inside}.freshness-signal-details[open]>summary{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}.freshness-signal-details ul{display:grid;gap:0;margin:0;padding:0;list-style:none}.freshness-signal-details li{display:grid;gap:3px;padding:9px 11px 9px 14px;border-bottom:1px solid var(--border);border-left:3px solid #d97706}.freshness-signal-details li:last-child{border-bottom:0}.freshness-signal-details li.signal-critical,.freshness-signal-details li.signal-missing{border-left-color:#dc2626}.freshness-signal-details li strong{font-size:.75rem;overflow-wrap:anywhere}.freshness-signal-details li small{color:var(--muted);font-size:.68rem;line-height:1.4}.freshness-no-signal-detail{padding:9px 11px;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:.72rem}.freshness-table{min-width:1240px}.freshness-table th:first-child,.freshness-table td:first-child{width:auto;min-width:150px}.freshness-table td:last-child{min-width:310px;max-width:410px}.freshness-card>.freshness-signal-details,.freshness-card>.freshness-no-signal-detail{margin-top:2px}
@media(max-width:700px){.freshness-signal-details{min-width:0}.freshness-table td:last-child{min-width:270px}.freshness-signal-details>summary{padding:10px}}
