@charset "UTF-8";

.shell:has(.executive-dashboard) { align-items: start; padding-block: 30px; background: #eef3f0; }
.executive-dashboard { padding: 0; overflow: hidden; border: 0; border-radius: 20px; box-shadow: 0 18px 50px rgba(16, 48, 34, .1); }
.executive-hero { min-height: 176px; padding: 34px 38px; display: flex; align-items: center; justify-content: space-between; gap: 28px; color: #fff; background: linear-gradient(125deg, #063e2b 0%, #07603e 58%, #08794b 100%); }
.executive-eyebrow, .executive-section-label { display: block; color: #2a8b5d; font-size: .7rem; font-weight: 600; letter-spacing: .11em; }
.executive-hero .executive-eyebrow { color: #9dd6ba; }
.executive-hero h1 { margin: 8px 0 4px; padding-top: .12em; color: #fff; font-size: clamp(1.8rem, 1.55rem + 1vw, 2.45rem); font-weight: 600; line-height: 1.38; }
.executive-hero p { margin: 0; color: rgba(255, 255, 255, .75); font-size: .96rem; }
.executive-status { min-width: 218px; padding: 13px 15px; display: flex; align-items: center; gap: 11px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 14px; background: rgba(255, 255, 255, .1); backdrop-filter: blur(8px); cursor: pointer; list-style: none; }
.executive-status::-webkit-details-marker { display: none; }
.executive-status-details { position: relative; z-index: 8; }
.executive-status-details[open] .executive-status { background: rgba(255, 255, 255, .18); }
.executive-hero__aside { display: grid; justify-items: end; gap: 9px; }
.executive-print { min-height: 34px; padding: 0 11px; border: 1px solid rgba(255, 255, 255, .24); border-radius: 9px; background: rgba(255, 255, 255, .08); color: #fff; font-size: .76rem; font-weight: 500; box-shadow: none; }
.executive-print:hover { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .38); }
.executive-status__dot { width: 10px; height: 10px; flex: 0 0 10px; border-radius: 50%; }
.executive-status.is-good .executive-status__dot { background: #6ee7a3; box-shadow: 0 0 0 5px rgba(110, 231, 163, .12); }
.executive-status.is-watch .executive-status__dot { background: #ffd166; box-shadow: 0 0 0 5px rgba(255, 209, 102, .12); }
.executive-status__copy { flex: 1; display: grid; }
.executive-status small { color: rgba(255, 255, 255, .64); font-size: .7rem; }
.executive-status strong { margin-top: 2px; font-size: .92rem; font-weight: 600; }
.executive-status__chevron { color: rgba(255, 255, 255, .7); transition: transform .15s ease; }
.executive-status-details[open] .executive-status__chevron { transform: rotate(180deg); }
.executive-status-panel { position: absolute; top: calc(100% + 8px); right: 0; width: min(390px, calc(100vw - 32px)); padding: 8px; border: 1px solid #d8e3dd; border-radius: 15px; background: #fff; color: #24372e; box-shadow: 0 22px 55px rgba(10, 42, 28, .24); }
.status-detail-row { padding: 10px; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-radius: 10px; }
.status-detail-row + .status-detail-row { border-top: 1px solid #edf1ee; }
.status-detail-row > i { width: 9px; height: 9px; border-radius: 50%; }
.status-detail-row > i.is-good { background: #18a561; box-shadow: 0 0 0 4px rgba(24, 165, 97, .1); }
.status-detail-row > i.is-watch { background: #e7a02f; box-shadow: 0 0 0 4px rgba(231, 160, 47, .1); }
.status-detail-row > span { min-width: 0; display: grid; }
.status-detail-row strong { color: #263b31; font-size: .8rem; font-weight: 600; }
.status-detail-row small { margin-top: 2px; color: #718078; font-size: .7rem; line-height: 1.4; }
.status-detail-row a { padding: 5px 8px; border-radius: 7px; background: #eaf6ef; color: #08784b; font-size: .7rem; font-weight: 600; white-space: nowrap; }
.status-detail-row em { color: #178050; font-size: .68rem; font-style: normal; font-weight: 600; }
.executive-dashboard > .reg-flash { margin: 20px 28px 0; }

.executive-kpis { padding: 24px 28px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.executive-kpi { min-width: 0; padding: 18px; display: grid; grid-template-columns: 38px 1fr; column-gap: 12px; border: 1px solid #dfe7e2; border-radius: 15px; background: #fff; }
.executive-kpi__icon { grid-row: 1 / 4; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: #edf5f1; color: #176344; font-size: 1.05rem; font-weight: 600; }
.executive-kpi > span { color: #64736b; font-size: .8rem; line-height: 1.4; }
.executive-kpi > strong { margin-top: 3px; color: #123426; font-size: 1.75rem; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.executive-kpi > small { margin-top: 5px; color: #829087; font-size: .72rem; }
.executive-kpi--primary { border-color: #b8ddc9; background: #f2faf6; }
.executive-kpi--primary .executive-kpi__icon { background: #dff3e8; color: #08784b; }
.executive-kpi--warning { border-color: #eadbb6; background: #fffbf2; }
.executive-kpi--warning .executive-kpi__icon { background: #fff0cc; color: #936300; }

.executive-grid { padding: 16px 28px 28px; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); gap: 16px; }
.executive-panel { min-width: 0; padding: 22px; border: 1px solid #dfe7e2; border-radius: 16px; background: #fff; }
.executive-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.executive-panel__head h2, .executive-actions h2 { margin: 5px 0 0; color: #17382a; font-size: 1.1rem; font-weight: 600; }
.executive-panel__head p { margin: 4px 0 0; color: #7a887f; font-size: .78rem; }
.trend-summary { min-width: 94px; text-align: right; }
.trend-summary strong { display: block; font-size: .92rem; font-weight: 600; }
.trend-summary small { display: block; color: #839088; font-size: .68rem; }
.trend-summary.is-up strong { color: #08784b; }
.trend-summary.is-down strong { color: #b33a2f; }

.executive-chart { height: 238px; margin-top: 18px; padding-top: 22px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; border-bottom: 1px solid #e7ede9; background: repeating-linear-gradient(to bottom, transparent 0, transparent 52px, #eef2ef 53px); }
.executive-chart__day { height: 100%; min-width: 0; display: grid; grid-template-rows: 20px 1fr 28px; justify-items: center; }
.executive-chart__value { color: #718078; font-size: .7rem; font-variant-numeric: tabular-nums; }
.executive-chart__column { width: min(36px, 72%); height: 100%; display: block; overflow: hidden; border-radius: 8px 8px 3px 3px; background: #f0f4f2; }
.executive-chart__column .is-success { fill: #08784b; }
.executive-chart__column .is-failed { fill: #e9a13a; }
.executive-chart__day > small { padding-top: 6px; color: #75847b; font-size: .7rem; }
.executive-chart__legend { margin-top: 14px; display: flex; gap: 18px; color: #637269; font-size: .74rem; }
.executive-chart__legend span { display: inline-flex; align-items: center; gap: 6px; }
.executive-chart__legend i { width: 9px; height: 9px; border-radius: 3px; }
.executive-chart__legend .is-success { background: #0b8a55; }
.executive-chart__legend .is-failed { background: #e9a13a; }

.security-score { margin-top: 20px; display: flex; align-items: center; gap: 15px; }
.security-score__ring { width: 82px; height: 82px; flex: 0 0 82px; display: grid; place-items: center; position: relative; }
.security-score__ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.security-score__ring circle { fill: none; stroke-width: 5; }
.security-score__track { stroke: #e9eeeb; }
.security-score__value { stroke: #0a8a55; stroke-linecap: round; }
.security-score__ring strong { position: relative; z-index: 1; color: #16372a; font-size: 1.18rem; font-weight: 600; }
.security-score__ring small { font-size: .66rem; }
.security-score > div:last-child > strong { color: #243a30; font-size: .86rem; font-weight: 600; }
.security-score p { margin: 4px 0 0; color: #738078; font-size: .76rem; }
.security-facts { margin: 19px 0 0; display: grid; grid-template-columns: 1fr; gap: 0; }
.security-facts > div { padding: 10px 0; display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #edf1ee; }
.security-facts dt { color: #66766d; font-size: .78rem; }
.security-facts dd { color: #233b30; font-size: .82rem; font-weight: 600; }
.security-facts dd.is-good { color: #08784b; }
.security-facts dd.is-watch { color: #9a6400; }
.executive-text-link { margin-top: 13px; display: inline-flex; align-items: center; gap: 8px; color: #08784b; font-size: .8rem; font-weight: 600; }

.system-ranking { margin-top: 18px; display: grid; gap: 14px; }
.system-ranking__legend { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; color: #6e7c74; font-size: .7rem; }
.system-ranking__legend span { display: inline-flex; align-items: center; gap: 6px; }
.system-ranking__legend i { width: 9px; height: 9px; border-radius: 3px; }
.system-ranking__legend .is-active { background: #16a064; }
.system-ranking__legend .is-trash { background: #d94b42; }
.system-ranking__item { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 11px; align-items: start; }
.system-ranking__number { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: #edf5f1; color: #176344; font-size: .74rem; font-weight: 600; }
.system-ranking__title { display: flex; justify-content: space-between; gap: 12px; }
.system-ranking__title strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #2b4036; font-size: .84rem; font-weight: 600; }
.system-ranking__title span { flex: 0 0 auto; color: #6f7d75; font-size: .72rem; }
.system-ranking__bar { width: 100%; height: 8px; margin-top: 5px; overflow: hidden; display: block; border-radius: 99px; background: #edf1ef; }
.system-ranking__bar .is-active { fill: #16a064; }
.system-ranking__bar .is-trash { fill: #d94b42; }
.system-ranking__item small { display: block; margin-top: 4px; color: #89958e; font-size: .68rem; }
.executive-empty { padding: 26px; text-align: center; color: #7b8981; font-size: .84rem; }

.health-list { margin-top: 17px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.health-list > div { padding: 11px; display: flex; align-items: center; gap: 10px; border: 1px solid #e7ece9; border-radius: 11px; background: #fafcfb; }
.health-indicator { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; }
.health-indicator.is-good { background: #18a561; box-shadow: 0 0 0 4px rgba(24, 165, 97, .1); }
.health-indicator.is-watch { background: #e9a13a; box-shadow: 0 0 0 4px rgba(233, 161, 58, .1); }
.health-list p { margin: 0; display: grid; line-height: 1.3; }
.health-list strong { color: #32463b; font-size: .78rem; font-weight: 600; }
.health-list small { margin-top: 2px; color: #7f8b84; font-size: .68rem; }

.executive-actions { padding: 26px 28px 10px; border-top: 1px solid #e1e8e4; background: #f8faf9; }
.executive-actions .admin-quick-nav { margin: 16px 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.executive-actions .admin-quick-nav__item { background: #fff; }
.executive-footer { padding: 12px 28px 20px; display: flex; justify-content: space-between; gap: 16px; color: #819087; font-size: .7rem; background: #f8faf9; }

@media (max-width: 980px) {
  .executive-kpis { grid-template-columns: 1fr 1fr; }
  .executive-grid { grid-template-columns: 1fr; }
  .executive-actions .admin-quick-nav { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .shell:has(.executive-dashboard) { padding: 12px 8px; }
  .executive-dashboard { border-radius: 16px; }
  .executive-hero { min-height: 0; padding: 26px 22px; align-items: flex-start; flex-direction: column; }
  .executive-status { width: 100%; }
  .executive-hero__aside { width: 100%; justify-items: stretch; }
  .executive-print { justify-self: start; }
  .executive-status-details { width: 100%; }
  .executive-status-panel { position: static; width: 100%; margin-top: 8px; }
  .executive-kpis { padding: 16px 14px 0; grid-template-columns: 1fr; gap: 10px; }
  .executive-grid { padding: 12px 14px 20px; }
  .executive-panel { padding: 18px; }
  .executive-chart { height: 210px; gap: 5px; }
  .executive-chart__column { width: min(28px, 76%); }
  .health-list { grid-template-columns: 1fr; }
  .executive-actions { padding: 22px 14px 8px; }
  .executive-actions .admin-quick-nav { grid-template-columns: 1fr; }
  .executive-footer { padding: 12px 14px 18px; flex-direction: column; gap: 3px; }
}

@media print {
  @page { size: A4 landscape; margin: 9mm; }
  .site-header, .site-footer, .executive-print, .executive-actions, .executive-status-panel, #reg-alert-root { display: none !important; }
  body, .shell, .shell:has(.executive-dashboard) { display: block; min-height: 0; padding: 0; background: #fff; }
  .executive-dashboard { width: 100%; max-width: none; border-radius: 0; box-shadow: none; }
  .executive-hero { min-height: 115px; padding: 20px 24px; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .executive-kpis { padding: 14px 0 0; gap: 8px; }
  .executive-kpi { padding: 12px; break-inside: avoid; }
  .executive-grid { padding: 10px 0; grid-template-columns: 1.45fr .75fr; gap: 9px; }
  .executive-panel { padding: 13px; break-inside: avoid; }
  .executive-chart { height: 180px; }
  .executive-footer { padding: 8px 0 0; background: #fff; }
}
