/* =====================================================================
   2Get BI — Design System V1
   Business Intelligence
   Brand: #003366 / #009CBA / #00E2CA / #FAF9F6
   ===================================================================== */

:root{
  --bi-navy-950:#001b34;
  --bi-navy-900:#00284f;
  --bi-navy-800:#003366;
  --bi-navy-700:#064b78;
  --bi-blue-600:#007f9a;
  --bi-blue-500:#009cba;
  --bi-cyan-500:#00e2ca;
  --bi-cyan-100:#dffff9;
  --bi-cyan-050:#f0fffc;
  --bi-ivory:#faf9f6;
  --bi-bg:#f4f7f9;
  --bi-surface:#ffffff;
  --bi-surface-2:#f8fafb;
  --bi-surface-3:#eef4f6;
  --bi-line:#dde7eb;
  --bi-line-strong:#cad9df;
  --bi-text:#142b3a;
  --bi-muted:#6f8390;
  --bi-muted-2:#98a8b1;
  --bi-success:#17845e;
  --bi-success-bg:#eaf8f2;
  --bi-warning:#a96d10;
  --bi-warning-bg:#fff7e6;
  --bi-danger:#b74646;
  --bi-danger-bg:#fff0f0;
  --bi-purple:#6d6dc7;
  --bi-shadow-xs:0 1px 2px rgba(0,51,102,.04);
  --bi-shadow-sm:0 6px 20px rgba(0,51,102,.055);
  --bi-shadow-md:0 12px 34px rgba(0,51,102,.075);
  --bi-shadow-lg:0 22px 64px rgba(0,51,102,.12);
  --bi-radius-sm:9px;
  --bi-radius:14px;
  --bi-radius-lg:20px;
  --bi-sidebar:246px;
  --bi-sidebar-collapsed:82px;
  --bi-topbar:72px;
  --bi-content-max:1780px;
}

*{box-sizing:border-box}
html{background:var(--bi-bg);scroll-behavior:smooth}
body{
  margin:0;
  color:var(--bi-text);
  background:var(--bi-bg);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:13px;
  line-height:1.45;
  font-feature-settings:"kern","liga","tnum";
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
a{color:var(--bi-navy-800);text-decoration:none}
a:hover{color:var(--bi-blue-500)}
[hidden]{display:none!important}

/* ===== App shell ===== */
.bi-shell{min-height:100vh;display:grid;grid-template-columns:var(--bi-sidebar) minmax(0,1fr)}
.bi-sidebar{
  position:sticky;top:0;height:100vh;z-index:60;
  display:flex;flex-direction:column;
  padding:18px 14px 14px;
  color:#fff;
  background:
    radial-gradient(circle at 28% 7%,rgba(0,226,202,.15),transparent 22%),
    radial-gradient(circle at 88% 88%,rgba(0,156,186,.12),transparent 28%),
    linear-gradient(180deg,var(--bi-navy-800) 0%,var(--bi-navy-950) 100%);
  box-shadow:12px 0 36px rgba(0,38,73,.08);
  transition:width .22s ease,padding .22s ease;
  overflow:hidden;
}
.bi-brand{
  display:flex;align-items:center;gap:12px;
  min-height:58px;padding:0 8px 15px;margin-bottom:7px;
  border-bottom:1px solid rgba(255,255,255,.10);
  color:#fff;
}
.bi-brand:hover{color:#fff}
.bi-brand img{width:116px;height:auto;display:block;flex:0 0 auto}
.bi-brand-copy{min-width:0;display:flex;flex-direction:column;gap:1px}
.bi-brand-title{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:850;letter-spacing:-.02em;white-space:nowrap}
.bi-brand-title b{display:inline-flex;align-items:center;height:21px;padding:0 7px;border-radius:7px;background:var(--bi-cyan-500);color:var(--bi-navy-950);font-size:10px;letter-spacing:.08em}
.bi-brand-copy small{color:rgba(255,255,255,.55);font-size:8px;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}

.bi-nav{display:flex;flex-direction:column;gap:2px;overflow:auto;padding:2px 0 12px;scrollbar-width:none}
.bi-nav::-webkit-scrollbar{display:none}
.bi-nav-section{padding:14px 12px 5px;color:rgba(255,255,255,.36);font-size:8px;font-weight:850;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.bi-nav a{
  position:relative;display:flex;align-items:center;gap:11px;
  min-height:39px;padding:0 11px;border-radius:10px;
  color:rgba(255,255,255,.76);font-weight:610;white-space:nowrap;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
.bi-nav a:hover{background:rgba(255,255,255,.065);color:#fff;transform:translateX(2px)}
.bi-nav a.active{background:linear-gradient(90deg,rgba(0,226,202,.18),rgba(0,156,186,.09));color:#fff}
.bi-nav a.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:5px;background:var(--bi-cyan-500);box-shadow:0 0 16px rgba(0,226,202,.58)}
.bi-nav-icon{width:19px;height:19px;display:grid;place-items:center;flex:0 0 19px;color:currentColor}
.bi-nav-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.bi-nav-label{overflow:hidden;text-overflow:ellipsis}
.bi-nav-badge{margin-left:auto;padding:2px 6px;border-radius:999px;background:rgba(0,226,202,.14);color:var(--bi-cyan-500);font-size:8px;font-weight:800}

.bi-sidebar-bottom{margin-top:auto;padding:12px 7px 3px;border-top:1px solid rgba(255,255,255,.10)}
.bi-user-mini{display:flex;align-items:center;gap:9px;min-width:0}
.bi-user-avatar{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:0 0 32px;background:linear-gradient(145deg,rgba(0,226,202,.28),rgba(0,156,186,.20));border:1px solid rgba(255,255,255,.11);font-size:10px;font-weight:850;color:#fff}
.bi-user-mini-copy{min-width:0;display:flex;flex-direction:column}
.bi-user-mini-copy strong{font-size:10px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bi-user-mini-copy small{font-size:8px;color:rgba(255,255,255,.48);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.bi-sidebar-actions{display:flex;gap:7px;margin-top:10px}
.bi-sidebar-actions a{font-size:9px;color:rgba(255,255,255,.58)}
.bi-sidebar-actions a:hover{color:var(--bi-cyan-500)}

.bi-app{min-width:0;min-height:100vh}
.bi-topbar{
  position:sticky;top:0;z-index:50;
  height:var(--bi-topbar);display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:0 26px;
  background:rgba(244,247,249,.90);
  border-bottom:1px solid rgba(0,51,102,.06);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.bi-topbar-left,.bi-topbar-right{display:flex;align-items:center;gap:10px;min-width:0}
.bi-menu-toggle,.bi-icon-btn{
  width:38px;height:38px;border:1px solid var(--bi-line);border-radius:10px;background:#fff;color:var(--bi-navy-800);display:grid;place-items:center;cursor:pointer;box-shadow:var(--bi-shadow-xs)
}
.bi-menu-toggle svg,.bi-icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bi-app-title{display:flex;align-items:baseline;gap:7px;min-width:0}
.bi-app-title strong{font-size:13px;color:var(--bi-navy-800);letter-spacing:-.02em;white-space:nowrap}
.bi-app-title span{font-size:9px;color:var(--bi-muted);white-space:nowrap}
.bi-separator{width:1px;height:26px;background:var(--bi-line)}
.bi-refresh-state{display:flex;align-items:center;gap:7px;color:var(--bi-muted);font-size:10px;white-space:nowrap}
.bi-refresh-state:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--bi-cyan-500);box-shadow:0 0 0 4px rgba(0,226,202,.08)}

.bi-button{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 13px;border-radius:10px;border:1px solid var(--bi-line-strong);background:#fff;color:var(--bi-navy-800);font-weight:760;font-size:10px;cursor:pointer;box-shadow:var(--bi-shadow-xs);transition:.15s ease
}
.bi-button:hover{transform:translateY(-1px);border-color:#a6cbd4;background:#fbfeff;color:#006f86}
.bi-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bi-button.primary{background:linear-gradient(135deg,var(--bi-blue-500),#00849f);border-color:transparent;color:#fff;box-shadow:0 7px 18px rgba(0,156,186,.19)}
.bi-button.primary:hover{background:linear-gradient(135deg,#008da9,#007b94);color:#fff}
.bi-button.ghost{background:transparent;box-shadow:none}
.bi-button.compact{min-height:32px;padding:0 10px}
.bi-button:disabled{opacity:.52;cursor:not-allowed;transform:none}

.bi-export{position:relative}
.bi-export-menu{position:absolute;right:0;top:46px;width:238px;padding:7px;background:#fff;border:1px solid var(--bi-line);border-radius:13px;box-shadow:var(--bi-shadow-lg);z-index:100}
.bi-export-menu a{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:9px;color:var(--bi-text)}
.bi-export-menu a:hover{background:var(--bi-surface-2)}
.bi-export-menu strong{display:block;font-size:10px}
.bi-export-menu small{display:block;margin-top:2px;color:var(--bi-muted);font-size:9px;line-height:1.35}
.bi-export-menu .ico{width:28px;height:28px;border-radius:8px;background:var(--bi-soft);display:grid;place-items:center;color:var(--bi-blue-500);flex:0 0 28px}

.bi-user-chip{display:flex;align-items:center;gap:8px;padding:4px 7px 4px 4px;border:1px solid var(--bi-line);border-radius:11px;background:#fff;min-width:0}
.bi-user-chip-avatar{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(145deg,var(--bi-navy-800),#006387);color:#fff;font-size:9px;font-weight:850}
.bi-user-chip-copy{display:flex;flex-direction:column;min-width:0;max-width:160px}
.bi-user-chip-copy strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bi-user-chip-copy small{font-size:7.5px;color:var(--bi-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}

.bi-content{width:min(100%,var(--bi-content-max));margin:0 auto;padding:26px 28px 48px}
.bi-messages{display:grid;gap:8px;margin:0 0 14px}
.bi-message{padding:10px 13px;border-radius:10px;border:1px solid var(--bi-line);background:#fff}
.bi-message.success{background:var(--bi-success-bg);border-color:#caeadd;color:#176c50}
.bi-message.warning{background:var(--bi-warning-bg);border-color:#ecd9ae;color:#86590d}
.bi-message.error{background:var(--bi-danger-bg);border-color:#eccccc;color:#973b3b}

/* ===== Page hierarchy ===== */
.bi-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:2px 0 19px}
.bi-page-head-copy{min-width:0}
.bi-eyebrow{display:block;margin-bottom:5px;color:var(--bi-blue-500);font-size:8px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.bi-page-head h1{margin:0;color:var(--bi-navy-800);font-size:27px;line-height:1.1;letter-spacing:-.04em;font-weight:860}
.bi-page-head p{margin:7px 0 0;color:var(--bi-muted);font-size:11px;max-width:780px}
.bi-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.bi-breadcrumb{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--bi-muted-2);font-size:9px}
.bi-breadcrumb a{color:var(--bi-blue-500)}

.bi-context-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:11px 13px;border:1px solid #cde8ec;border-radius:12px;background:linear-gradient(90deg,#f2fbfc,#f8fffd);color:#315662}
.bi-context-bar strong{color:var(--bi-navy-800)}
.bi-context-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bi-pill{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 8px;border:1px solid var(--bi-line);border-radius:999px;background:#fff;color:#526975;font-size:9px;font-weight:700}
.bi-pill.good{border-color:#c8e6da;background:var(--bi-success-bg);color:#176c50}
.bi-pill.warn{border-color:#eddab0;background:var(--bi-warning-bg);color:#8d5e0d}

/* ===== Executive hero ===== */
.bi-hero{
  position:relative;overflow:hidden;
  min-height:188px;margin-bottom:16px;padding:24px 26px;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:26px;
  border:1px solid rgba(0,51,102,.11);border-radius:20px;
  background:
    radial-gradient(circle at 78% 10%,rgba(0,226,202,.17),transparent 28%),
    linear-gradient(135deg,#fff 0%,#f8fcfd 57%,#effafb 100%);
  box-shadow:var(--bi-shadow-md);
}
.bi-hero:after{content:"";position:absolute;width:430px;height:430px;right:-160px;bottom:-255px;border:1px solid rgba(0,156,186,.10);border-radius:50%;box-shadow:0 0 0 45px rgba(0,226,202,.025),0 0 0 90px rgba(0,156,186,.018);pointer-events:none}
.bi-hero-copy{position:relative;z-index:1;align-self:center}
.bi-hero-kicker{display:inline-flex;align-items:center;gap:7px;color:var(--bi-blue-500);font-size:8px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.bi-hero-kicker:before{content:"";width:18px;height:2px;border-radius:2px;background:var(--bi-cyan-500)}
.bi-hero h2{margin:8px 0 7px;color:var(--bi-navy-800);font-size:30px;line-height:1.08;letter-spacing:-.045em;max-width:720px}
.bi-hero p{margin:0;color:#617782;font-size:11px;line-height:1.65;max-width:700px}
.bi-hero-actions{display:flex;gap:8px;margin-top:17px;flex-wrap:wrap}
.bi-hero-side{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}
.bi-hero-mini{padding:14px;border:1px solid rgba(0,51,102,.09);border-radius:14px;background:rgba(255,255,255,.78);box-shadow:var(--bi-shadow-xs);backdrop-filter:blur(8px)}
.bi-hero-mini span{display:block;color:var(--bi-muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.bi-hero-mini strong{display:block;margin-top:4px;color:var(--bi-navy-800);font-size:21px;letter-spacing:-.04em}
.bi-hero-mini small{display:block;margin-top:2px;color:var(--bi-muted-2);font-size:8px}

/* ===== KPI ===== */
.bi-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.bi-kpi{
  position:relative;overflow:hidden;min-height:118px;padding:15px 16px;
  border:1px solid var(--bi-line);border-radius:15px;background:#fff;box-shadow:var(--bi-shadow-sm);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.bi-kpi:hover{transform:translateY(-2px);border-color:#c4dde3;box-shadow:var(--bi-shadow-md)}
.bi-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--bi-blue-500),var(--bi-cyan-500))}
.bi-kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.bi-kpi-label{color:var(--bi-muted);font-size:9px;font-weight:780}
.bi-kpi-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--bi-soft);color:var(--bi-blue-500)}
.bi-kpi-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.bi-kpi-value{display:block;margin-top:8px;color:var(--bi-navy-800);font-size:25px;line-height:1;letter-spacing:-.045em;font-weight:860}
.bi-kpi-value.money{color:#007f98}
.bi-kpi-foot{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:8px;color:var(--bi-muted-2);font-size:8px}
.bi-kpi-foot a{font-weight:750;color:var(--bi-blue-500)}
.bi-delta{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:800}
.bi-delta.up{color:var(--bi-success)}.bi-delta.down{color:var(--bi-danger)}.bi-delta.neutral{color:var(--bi-muted)}
.bi-info{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;border:1px solid #c9dce2;color:var(--bi-blue-500);font-size:9px;cursor:pointer;background:#fff}

/* ===== Panels/grid ===== */
.bi-grid{display:grid;gap:14px;margin-bottom:14px}
.bi-grid.cols-2{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr)}
.bi-grid.cols-2-even{grid-template-columns:repeat(2,minmax(0,1fr))}
.bi-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.bi-panel{border:1px solid var(--bi-line);border-radius:16px;background:#fff;box-shadow:var(--bi-shadow-sm);overflow:hidden}
.bi-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 17px 12px}
.bi-panel-head h2{margin:0;color:var(--bi-navy-800);font-size:14px;letter-spacing:-.02em}
.bi-panel-head p{margin:3px 0 0;color:var(--bi-muted);font-size:9px}
.bi-panel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.bi-panel-body{padding:0 17px 17px}
.bi-chart{height:280px;width:100%}.bi-chart.sm{height:220px}.bi-chart.lg{height:330px}
.bi-chart-caption{margin:7px 0 0;color:var(--bi-muted-2);font-size:8.5px;line-height:1.45}
.bi-panel-empty{min-height:180px;display:grid;place-items:center;text-align:center;color:var(--bi-muted);padding:28px}
.bi-panel-empty strong{display:block;color:var(--bi-navy-800);font-size:11px;margin-bottom:4px}

.bi-insight-list{display:grid;gap:8px}
.bi-insight{
  display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:11px 12px;border:1px solid var(--bi-line);border-radius:11px;background:var(--bi-surface-2)
}
.bi-insight:hover{border-color:#c8dfe4;background:#fff}
.bi-insight-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;background:var(--bi-blue-500);box-shadow:0 0 0 4px rgba(0,156,186,.08)}
.bi-insight-dot.high{background:var(--bi-danger);box-shadow:0 0 0 4px rgba(183,70,70,.08)}
.bi-insight-dot.medium{background:#d99a24;box-shadow:0 0 0 4px rgba(217,154,36,.08)}
.bi-insight-copy{min-width:0}.bi-insight-copy strong{display:block;color:var(--bi-text);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bi-insight-copy span{display:block;margin-top:2px;color:var(--bi-muted);font-size:8.5px;line-height:1.4}.bi-insight-meta{color:var(--bi-muted-2);font-size:8px;white-space:nowrap}

.bi-bar-list{display:grid;gap:11px}.bi-bar-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr 58px;align-items:center;gap:10px}.bi-bar-label{min-width:0}.bi-bar-label strong{display:block;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bi-bar-label small{display:block;color:var(--bi-muted-2);font-size:8px}.bi-bar-track{height:7px;border-radius:99px;background:#edf3f5;overflow:hidden}.bi-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--bi-blue-500),var(--bi-cyan-500))}.bi-bar-value{text-align:right;color:var(--bi-navy-800);font-weight:800;font-size:9px}

.bi-status-strip{display:flex;height:13px;border-radius:99px;overflow:hidden;background:#eef3f5;margin:8px 0 14px}.bi-status-seg{height:100%;min-width:2px}.bi-status-seg.active{background:#15966b}.bi-status-seg.canceled{background:#7d8b94}.bi-status-seg.failed{background:#d75b5b}.bi-status-seg.suspended{background:#df9f2d}.bi-status-seg.inactive{background:#b6c2c8}
.bi-status-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.bi-status-item{padding:9px;border:1px solid var(--bi-line);border-radius:10px}.bi-status-item span{display:block;color:var(--bi-muted);font-size:7.5px;text-transform:uppercase;letter-spacing:.06em}.bi-status-item strong{display:block;margin-top:3px;color:var(--bi-navy-800);font-size:15px}.bi-status-item small{display:block;color:var(--bi-muted-2);font-size:7.5px}

/* ===== Filters ===== */
.bi-filterbar{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin-bottom:14px;padding:12px;border:1px solid var(--bi-line);border-radius:14px;background:#fff;box-shadow:var(--bi-shadow-xs)}
.bi-field{display:flex;flex-direction:column;gap:5px;min-width:120px}.bi-field.grow{flex:1 1 220px}.bi-field label{color:var(--bi-muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.bi-field input,.bi-field select,.bi-field textarea{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--bi-line-strong);border-radius:9px;background:#fff;color:var(--bi-text);outline:none}.bi-field textarea{padding:9px;min-height:94px;resize:vertical}.bi-field input:focus,.bi-field select:focus,.bi-field textarea:focus{border-color:var(--bi-blue-500);box-shadow:0 0 0 3px rgba(0,156,186,.10)}

/* ===== Tables ===== */
.bi-table-wrap{width:100%;overflow:auto}.bi-table{width:100%;border-collapse:collapse;font-size:10px}.bi-table th{position:sticky;top:0;z-index:1;padding:9px 10px;text-align:left;color:#78909d;background:#fbfcfd;border-bottom:1px solid var(--bi-line);font-size:7.5px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.bi-table td{padding:10px;border-bottom:1px solid #edf2f4;vertical-align:top}.bi-table tbody tr:hover{background:#f9fcfd}.bi-table strong{font-size:9.5px}.bi-table small{display:block;margin-top:2px;color:var(--bi-muted-2);font-size:8px}.bi-table code{font-size:8px;color:#4d6470;background:#f2f6f7;padding:2px 4px;border-radius:4px;white-space:pre-wrap;word-break:break-word}
.bi-table-actions{display:flex;gap:5px;justify-content:flex-end}
.bi-table-empty{text-align:center!important;padding:34px!important;color:var(--bi-muted)!important}

/* ===== Badges ===== */
.bi-badge{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:0 7px;border-radius:999px;background:#eef3f5;color:#536973;font-size:7.5px;font-weight:820;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}.bi-badge.good{background:var(--bi-success-bg);color:var(--bi-success)}.bi-badge.warn{background:var(--bi-warning-bg);color:var(--bi-warning)}.bi-badge.bad{background:var(--bi-danger-bg);color:var(--bi-danger)}.bi-badge.blue{background:#eaf6f9;color:#007d97}.bi-badge.purple{background:#f1effb;color:#6660b4}

/* ===== Reports ===== */
.bi-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bi-report-card{position:relative;overflow:hidden;padding:18px;border:1px solid var(--bi-line);border-radius:15px;background:#fff;box-shadow:var(--bi-shadow-sm)}.bi-report-card:after{content:"";position:absolute;right:-35px;top:-35px;width:100px;height:100px;border:1px solid rgba(0,156,186,.09);border-radius:50%;box-shadow:0 0 0 22px rgba(0,226,202,.025)}.bi-report-card-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--bi-soft);color:var(--bi-blue-500)}.bi-report-card h3{margin:12px 0 5px;color:var(--bi-navy-800);font-size:13px}.bi-report-card p{margin:0;color:var(--bi-muted);font-size:9px;line-height:1.5;min-height:42px}.bi-report-card-actions{display:flex;gap:7px;margin-top:14px}

/* ===== Method modal / audit dialogs ===== */
.method-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px}.method-modal-backdrop{position:absolute;inset:0;background:rgba(0,27,52,.52);backdrop-filter:blur(3px)}.method-modal-card{position:relative;z-index:1;width:min(720px,96vw);max-height:86vh;overflow:auto;border:1px solid var(--bi-line);border-radius:18px;background:#fff;box-shadow:var(--bi-shadow-lg)}.method-modal-head{position:sticky;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 18px;background:linear-gradient(90deg,#f5fbfc,#f7fffd);border-bottom:1px solid var(--bi-line);z-index:2}.method-modal-head h2{margin:3px 0 0;color:var(--bi-navy-800);font-size:16px}.method-close{border:0;background:#fff;width:31px;height:31px;border-radius:9px;color:var(--bi-muted);cursor:pointer}.method-body{padding:16px 18px}.method-row{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid #edf2f4}.method-row strong{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#83939d}.method-row div{font-size:9.5px;color:#324a58;word-break:break-word}

/* ===== Command palette ===== */
.bi-command{position:fixed;inset:0;z-index:260;display:grid;place-items:start center;padding-top:12vh}.bi-command-backdrop{position:absolute;inset:0;background:rgba(0,27,52,.56);backdrop-filter:blur(4px)}.bi-command-card{position:relative;z-index:1;width:min(620px,92vw);border:1px solid rgba(255,255,255,.2);border-radius:16px;background:#fff;box-shadow:var(--bi-shadow-lg);overflow:hidden}.bi-command-search{display:flex;align-items:center;gap:10px;padding:13px;border-bottom:1px solid var(--bi-line)}.bi-command-search input{flex:1;border:0;outline:0;font-size:14px;color:var(--bi-text)}.bi-command-results{padding:7px;max-height:52vh;overflow:auto}.bi-command-results a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:9px;color:var(--bi-text)}.bi-command-results a:hover,.bi-command-results a.selected{background:var(--bi-soft)}.bi-command-results strong{font-size:10px}.bi-command-results small{color:var(--bi-muted);font-size:8px}

/* ===== Existing app compatibility ===== */
.card,.metric,.kpi-primary,.admin-panel,.admin-stat{border-color:var(--bi-line)!important;border-radius:15px!important;box-shadow:var(--bi-shadow-sm)!important;background:#fff!important}.card-head h2{color:var(--bi-navy-800)!important}.section-kicker,.card-kicker{color:var(--bi-blue-500)!important}.quality-banner{border-color:#cde8ec!important;background:linear-gradient(90deg,#f3fbfc,#f8fffd)!important;color:#315662!important;border-radius:12px!important}.quality-banner.warning{background:var(--bi-warning-bg)!important;border-color:#ebd8ab!important}.filters{border-color:var(--bi-line)!important;border-radius:14px!important;box-shadow:var(--bi-shadow-xs)!important;background:#fff!important}.btn{border-radius:10px!important}.btn.primary,.refresh-btn{background:linear-gradient(135deg,var(--bi-blue-500),#00849f)!important;border-color:transparent!important;color:#fff!important}.status-active,.validation-badge.good{background:var(--bi-success-bg)!important;color:var(--bi-success)!important}.validation-badge.warn,.status-suspended{background:var(--bi-warning-bg)!important;color:var(--bi-warning)!important}

/* ===== Login ===== */
.bi-login{min-height:100vh;display:grid;grid-template-columns:minmax(430px,.9fr) minmax(520px,1.1fr);background:var(--bi-ivory)}
.bi-login-form-pane{display:flex;align-items:center;justify-content:center;padding:52px;background:#fff}
.bi-login-box{width:min(430px,100%)}
.bi-login-logo{display:flex;align-items:center;gap:13px;margin-bottom:42px}.bi-login-logo img{width:145px;height:auto}.bi-login-product{padding-left:13px;border-left:1px solid var(--bi-line)}.bi-login-product strong{display:block;color:var(--bi-navy-800);font-size:14px;letter-spacing:-.03em}.bi-login-product small{display:block;margin-top:2px;color:var(--bi-muted);font-size:8px;letter-spacing:.09em;text-transform:uppercase}
.bi-login-eyebrow{display:block;color:var(--bi-blue-500);font-size:8px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.bi-login h1{margin:7px 0 9px;color:var(--bi-navy-800);font-size:32px;line-height:1.06;letter-spacing:-.045em}.bi-login-intro{margin:0 0 27px;color:var(--bi-muted);line-height:1.6;font-size:10.5px;max-width:380px}.bi-login label{display:block;margin:0 0 6px;color:#5b707c;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.bi-login input{width:100%;height:47px;margin-bottom:15px;padding:0 13px;border:1px solid var(--bi-line-strong);border-radius:10px;background:#fbfdfe;outline:0}.bi-login input:focus{border-color:var(--bi-blue-500);box-shadow:0 0 0 3px rgba(0,156,186,.10)}.bi-login-submit{width:100%;height:47px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--bi-navy-800),#005d83);color:#fff;font-weight:850;cursor:pointer;box-shadow:0 10px 24px rgba(0,51,102,.16)}.bi-login-submit:hover{filter:brightness(1.05)}.bi-login-links{display:flex;justify-content:space-between;gap:12px;margin-top:16px;font-size:9px}.bi-login-foot{margin-top:31px;padding-top:16px;border-top:1px solid var(--bi-line);color:var(--bi-muted-2);font-size:8px}
.bi-login-visual{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:60px;background:radial-gradient(circle at 72% 18%,rgba(0,226,202,.27),transparent 27%),radial-gradient(circle at 18% 80%,rgba(0,156,186,.25),transparent 31%),linear-gradient(145deg,var(--bi-navy-950),var(--bi-navy-800) 49%,#005273)}.bi-login-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent)}.bi-login-visual-inner{position:relative;z-index:1;width:min(540px,88%);color:#fff}.bi-login-mark{width:210px;height:auto;opacity:.98;margin-bottom:39px}.bi-login-visual h2{margin:0;font-size:37px;line-height:1.08;letter-spacing:-.045em}.bi-login-visual p{max-width:445px;color:rgba(255,255,255,.68);font-size:11.5px;line-height:1.65}.bi-login-line{width:56px;height:3px;margin:20px 0;border-radius:4px;background:var(--bi-cyan-500)}.bi-login-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px}.bi-login-feature{padding:10px 11px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:rgba(255,255,255,.045);font-size:9px;color:rgba(255,255,255,.74);backdrop-filter:blur(4px)}.bi-login-feature strong{display:block;color:#fff;font-size:9px;margin-bottom:2px}

/* ===== Responsive ===== */
body.bi-collapsed .bi-shell{grid-template-columns:var(--bi-sidebar-collapsed) minmax(0,1fr)}
body.bi-collapsed .bi-sidebar{padding-left:10px;padding-right:10px}
body.bi-collapsed .bi-brand{justify-content:center;padding-left:0;padding-right:0}
body.bi-collapsed .bi-brand img{width:45px;object-fit:cover;object-position:left}
body.bi-collapsed .bi-brand-copy,body.bi-collapsed .bi-nav-label,body.bi-collapsed .bi-nav-section,body.bi-collapsed .bi-nav-badge,body.bi-collapsed .bi-user-mini-copy,body.bi-collapsed .bi-sidebar-actions{display:none}
body.bi-collapsed .bi-nav a{justify-content:center;padding-left:0;padding-right:0}
body.bi-collapsed .bi-user-mini{justify-content:center}

@media(max-width:1360px){
  .bi-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bi-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bi-status-legend{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1120px){
  .bi-shell{grid-template-columns:82px minmax(0,1fr)}
  .bi-sidebar{padding-left:10px;padding-right:10px}
  .bi-brand{justify-content:center;padding-left:0;padding-right:0}.bi-brand img{width:45px;object-fit:cover;object-position:left}.bi-brand-copy,.bi-nav-label,.bi-nav-section,.bi-nav-badge,.bi-user-mini-copy,.bi-sidebar-actions{display:none!important}.bi-nav a{justify-content:center;padding-left:0;padding-right:0}.bi-user-mini{justify-content:center}.bi-menu-toggle{display:none}
  .bi-grid.cols-2,.bi-grid.cols-2-even{grid-template-columns:1fr}.bi-hero{grid-template-columns:1fr}.bi-hero-side{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:820px){
  .bi-shell{display:block}.bi-sidebar{position:relative;width:100%;height:auto;min-height:0;display:block;padding:10px 12px}.bi-brand{display:flex;justify-content:flex-start;border-bottom:0;margin:0;padding:0 0 8px}.bi-brand img{width:100px;object-fit:contain}.bi-brand-copy{display:flex!important}.bi-nav{flex-direction:row;overflow:auto;padding-bottom:2px}.bi-nav a{justify-content:flex-start!important;flex:0 0 auto;padding:0 10px}.bi-nav-label{display:inline!important}.bi-nav-section,.bi-sidebar-bottom{display:none!important}.bi-topbar{position:sticky;padding:0 13px}.bi-menu-toggle{display:none}.bi-user-chip-copy,.bi-refresh-state{display:none}.bi-content{padding:18px 13px 34px}.bi-hero-side{grid-template-columns:repeat(2,1fr)}.bi-kpi-grid{grid-template-columns:1fr 1fr}.bi-grid.cols-3{grid-template-columns:1fr}.bi-report-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .bi-app-title span,.bi-separator{display:none}.bi-topbar{height:62px}.bi-button .label{display:none}.bi-page-head{align-items:flex-start;flex-direction:column}.bi-page-actions{justify-content:flex-start}.bi-hero{padding:18px}.bi-hero h2{font-size:25px}.bi-hero-side{grid-template-columns:1fr 1fr}.bi-kpi-grid{grid-template-columns:1fr}.bi-report-grid{grid-template-columns:1fr}.bi-status-legend{grid-template-columns:1fr 1fr}.bi-login{display:block}.bi-login-visual{display:none}.bi-login-form-pane{min-height:100vh;padding:28px 20px}.method-row{grid-template-columns:1fr;gap:4px}
}

@media print{
  .bi-sidebar,.bi-topbar,.bi-page-actions,.bi-filterbar,.bi-export{display:none!important}.bi-shell{display:block}.bi-content{padding:0;width:100%;max-width:none}.bi-panel,.bi-kpi,.bi-hero{box-shadow:none!important;break-inside:avoid}.bi-chart{height:230px}
}
