/* Qualiconsult Engineering Operations Portal V3.10.0
   Approved corporate command-center visual system. */

:root{
  --v3-navy-950:#0a1425;
  --v3-navy-900:#101b31;
  --v3-navy-800:#192641;
  --v3-navy-700:#263651;
  --v3-red:#c5362d;
  --v3-red-dark:#a82d26;
  --v3-red-soft:#fff1ef;
  --v3-canvas:#f4f5f7;
  --v3-surface:#ffffff;
  --v3-surface-2:#f8f9fb;
  --v3-line:#dfe3e8;
  --v3-line-strong:#cbd2dc;
  --v3-text:#182237;
  --v3-muted:#68758a;
  --v3-green:#3f7857;
  --v3-green-soft:#eaf4ed;
  --v3-amber:#a76b0c;
  --v3-amber-soft:#fff5dc;
  --v3-danger:#a9312a;
  --v3-sidebar:250px;
  --v3-radius:8px;
  --v3-shadow:0 2px 8px rgba(16,27,49,.055);
  --sidebar:var(--v3-sidebar);
  --navy:var(--v3-navy-900);
  --navy-2:var(--v3-navy-800);
  --red:var(--v3-red);
  --red-dark:var(--v3-red-dark);
  --green:var(--v3-green);
  --amber:var(--v3-amber);
  --line:var(--v3-line);
  --muted:var(--v3-muted);
  --shadow:var(--v3-shadow);
}

html{background:var(--v3-canvas)}
body{
  background:var(--v3-canvas);
  color:var(--v3-text);
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:14px;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(197,54,45,.18);
  outline-offset:2px;
}

/* Application frame */
.enterprise-portal{
  display:grid;
  grid-template-columns:var(--v3-sidebar) minmax(0,1fr);
  min-height:100vh;
  background:var(--v3-canvas);
}
.app-sidebar{
  position:fixed;
  inset:0 auto 0 0;
  z-index:100;
  display:flex;
  width:var(--v3-sidebar);
  min-height:100vh;
  flex-direction:column;
  overflow:hidden;
  border-right:1px solid rgba(255,255,255,.08);
  background:var(--v3-navy-900);
  color:#fff;
  box-shadow:none;
}
.sidebar-brand.sidebar-brand-v3{
  display:flex;
  min-height:82px;
  align-items:center;
  gap:.8rem;
  padding:1rem 1rem .85rem;
  border-top:4px solid var(--v3-red);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:var(--v3-navy-950);
}
.sidebar-logo-crop{
  position:relative;
  display:block;
  flex:0 0 44px;
  width:44px;
  height:44px;
  overflow:hidden;
  border-radius:6px;
  background:#fff;
}
.sidebar-logo-crop img{
  position:absolute;
  left:-42px;
  top:-16px;
  width:132px;
  max-width:none;
  height:auto;
}
.sidebar-brand-copy{display:block;min-width:0}
.sidebar-brand-copy strong{
  display:block;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.94rem;
  line-height:1.1;
  letter-spacing:-.015em;
  white-space:nowrap;
}
.sidebar-brand-copy small{
  display:block;
  margin-top:.35rem;
  color:#aebad0;
  font-size:.55rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.sidebar-context{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:.65rem;
  margin:.8rem .9rem .35rem;
  padding:.62rem .7rem;
  border:1px solid rgba(255,255,255,.11);
  border-radius:7px;
  background:rgba(255,255,255,.035);
}
.sidebar-context small{
  overflow:hidden;
  color:#8496ad;
  font-size:.55rem;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.environment-badge{
  display:flex;
  align-items:center;
  gap:.42rem;
  color:#cce8d6;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.environment-badge i,.status-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#55b97c;
  box-shadow:0 0 0 3px rgba(85,185,124,.13);
}
.app-sidebar .nav-tabs{
  position:static;
  display:block;
  flex:1;
  overflow-y:auto;
  padding:.1rem .75rem 1rem;
  border:0;
  background:transparent;
  scrollbar-width:thin;
  scrollbar-color:#344159 transparent;
}
.nav-group{
  margin:1.05rem .65rem .36rem;
  color:#7e8da5;
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.app-sidebar .nav-button{
  position:relative;
  display:flex;
  width:100%;
  min-height:42px;
  align-items:center;
  gap:.72rem;
  margin:.12rem 0;
  padding:.62rem .72rem;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:#c4cede;
  font-size:.7rem;
  font-weight:750;
  text-align:left;
  transition:background .15s,border-color .15s,color .15s;
}
.app-sidebar .nav-button:hover{
  transform:none;
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.055);
  color:#fff;
}
.app-sidebar .nav-button.active{
  border-color:rgba(255,255,255,.08);
  background:var(--v3-red);
  color:#fff;
  box-shadow:none;
}
.app-sidebar .nav-button.active:before{
  content:"";
  position:absolute;
  inset:8px auto 8px -12px;
  width:3px;
  background:#fff;
}
.nav-icon{
  display:grid;
  flex:0 0 25px;
  width:25px;
  height:25px;
  place-items:center;
  border:1px solid rgba(255,255,255,.06);
  border-radius:6px;
  background:rgba(255,255,255,.06);
  font-size:.78rem;
}
.nav-button.active .nav-icon{background:rgba(255,255,255,.14)}
.nav-alert-badge{
  display:grid;
  min-width:20px;
  height:20px;
  margin-left:auto;
  place-items:center;
  border:1px solid rgba(255,255,255,.5);
  border-radius:99px;
  background:#fff;
  color:var(--v3-red);
  font-size:.59rem;
}
.sidebar-footer{
  padding:.85rem 1.15rem 1.05rem;
  border-top:1px solid rgba(255,255,255,.08);
  color:#8fa0b6;
}
.sidebar-footer span{font-size:.51rem;letter-spacing:.14em}
.sidebar-footer strong{margin-top:.18rem;font-size:.66rem}
.sidebar-footer>small{margin-top:.55rem;font-size:.52rem}

.app-shell{grid-column:2;min-width:0;min-height:100vh}
.app-topbar{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  min-height:70px;
  align-items:center;
  justify-content:space-between;
  gap:1.15rem;
  padding:.72rem 1.5rem;
  border-bottom:1px solid var(--v3-line);
  background:rgba(255,255,255,.98);
  box-shadow:0 1px 0 rgba(16,27,49,.025);
  backdrop-filter:none;
}
.topbar-title{min-width:255px}
.topbar-title p{
  margin:0 0 .16rem;
  color:#778398;
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.02em;
}
.topbar-title h1{
  margin:0;
  color:var(--v3-navy-900);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.2rem;
  font-weight:700;
  letter-spacing:-.015em;
}
.global-search{
  display:flex;
  width:min(470px,38vw);
  min-height:40px;
  align-items:center;
  gap:.5rem;
  padding:0 .75rem;
  border:1px solid var(--v3-line);
  border-radius:7px;
  background:var(--v3-surface-2);
  color:#8591a3;
}
.global-search input{padding:.55rem 0;border:0;background:transparent;font-size:.7rem;box-shadow:none}
.topbar-actions{display:flex;align-items:center;gap:.6rem}
.topbar-icon{
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  padding:0;
  border:1px solid var(--v3-line);
  border-radius:7px;
  background:#fff;
  color:#516078;
}
.topbar-icon:hover{border-color:#aeb8c6;background:#f8f9fb;color:var(--v3-navy-900)}
.app-topbar .user-panel{grid-template-columns:36px auto 32px;min-width:210px}
.user-avatar{border-radius:7px;background:var(--v3-navy-900)}
.app-topbar .user-panel strong{font-size:.7rem}
.app-topbar .user-panel span:not(.user-avatar){font-size:.58rem}
.user-menu{border-radius:8px;box-shadow:0 12px 30px rgba(16,27,49,.15)}
.system-strip{
  display:flex;
  min-height:31px;
  align-items:center;
  justify-content:space-between;
  padding:.42rem 1.5rem;
  border-bottom:1px solid #e7e9ed;
  background:#fafbfc;
  color:#69768a;
  font-size:.57rem;
  font-weight:700;
}

/* Workspace hierarchy */
.enterprise-portal main{
  width:100%;
  max-width:1920px;
  margin:0 auto;
  padding:1.3rem 1.5rem 4rem;
}
.tab{animation:v3-enter .18s ease-out}
@keyframes v3-enter{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}
.page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin:0 0 1rem;
  padding:.1rem 0;
}
.page-head h2{
  margin:0;
  color:var(--v3-navy-900);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.35rem;
}
.page-head p{margin:.25rem 0 0;color:var(--v3-muted);font-size:.72rem}
.page-head .page-label,.eyebrow{
  color:var(--v3-red);
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.page-head .page-context span{
  padding:.4rem .58rem;
  border:1px solid var(--v3-line);
  border-radius:6px;
  background:#fff;
  color:#5f6c80;
  font-size:.58rem;
}
.workspace-banner{
  position:relative;
  overflow:hidden;
  min-height:110px;
  margin-bottom:1rem;
  padding:1.25rem 1.4rem;
  border:1px solid #202f4b;
  border-radius:var(--v3-radius);
  background:var(--v3-navy-900);
  box-shadow:none;
}
.workspace-banner:before{
  content:"";
  position:absolute;
  inset:0 0 0 auto;
  width:36%;
  opacity:.45;
  background:
    linear-gradient(135deg,transparent 47%,rgba(255,255,255,.055) 48% 49%,transparent 50%),
    linear-gradient(45deg,transparent 47%,rgba(255,255,255,.04) 48% 49%,transparent 50%);
  background-size:56px 56px;
}
.workspace-banner:after{display:none}
.workspace-banner h2,.workspace-banner h3,.workspace-banner strong{font-family:Georgia,"Times New Roman",serif}

/* Cards and data visualization */
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.7rem;
  margin-bottom:1rem;
}
.kpi{
  --kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 19V9M10 19V5M16 19v-7M22 19V3'/%3E%3C/svg%3E");
  position:relative;
  min-height:92px;
  overflow:hidden;
  padding:.95rem 1rem;
  border:1px solid var(--v3-line);
  border-radius:var(--v3-radius);
  background:#fff;
  box-shadow:none;
}
.kpi:before{width:3px;background:#7f8ca0}
.kpi:after{
  content:"";
  position:absolute;
  top:13px;
  right:13px;
  width:24px;
  height:24px;
  border:1px solid #e2e6eb;
  border-radius:6px;
  background:#f7f8fa;
}
.kpi.red:before{background:var(--v3-red)}
.kpi.green:before{background:var(--v3-green)}
.kpi.amber:before{background:var(--v3-amber)}
.kpi span{display:block;padding-right:34px;color:#718096;font-size:.57rem;letter-spacing:.09em}
.kpi strong{
  display:block;
  margin-top:.52rem;
  color:var(--v3-navy-900);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.1rem,1.55vw,1.42rem);
  letter-spacing:-.02em;
}
.kpi.red strong{color:var(--v3-red-dark)}
.kpi.green strong{color:var(--v3-green)}
.kpi.amber strong{color:var(--v3-amber)}
.chart-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);gap:.85rem;margin-bottom:.9rem}
.dashboard-grid{gap:.85rem}
.panel{
  margin-bottom:.85rem;
  padding:1rem 1.05rem;
  border:1px solid var(--v3-line);
  border-radius:var(--v3-radius);
  background:var(--v3-surface);
  box-shadow:var(--v3-shadow);
}
.panel-title,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.panel-title{margin-bottom:.8rem;padding-bottom:.72rem;border-bottom:1px solid #e8ebef}
.panel h2,.toolbar h2{
  margin:.15rem 0 0;
  color:var(--v3-navy-900);
  font-family:Georgia,"Times New Roman",serif;
  font-size:.98rem;
  letter-spacing:-.01em;
}
.panel p.muted,.muted{color:var(--v3-muted);font-size:.7rem;line-height:1.5}
.pill{
  padding:.32rem .52rem;
  border:1px solid #dfe3e8;
  border-radius:99px;
  background:#f7f8fa;
  color:#4f5d71;
  font-size:.59rem;
  font-weight:800;
}
.bar-chart,.mini-chart,.stacked-chart,.donut-host{min-height:230px}
.rank-list>div,.rank-row,.preview-card,.preview-grid>div{border-radius:6px;background:#f8f9fb}

/* Controls */
.button{
  min-height:36px;
  padding:.58rem .82rem;
  border-radius:6px;
  font-size:.68rem;
  font-weight:800;
  box-shadow:none;
}
.button.primary{border-color:var(--v3-red);background:var(--v3-red);color:#fff}
.button.primary:hover{border-color:var(--v3-red-dark);background:var(--v3-red-dark)}
.button.neutral{border-color:var(--v3-line-strong);background:#fff;color:#26344c}
.button.neutral:hover{border-color:#9eaaba;background:#f7f8fa}
.text-button{font-size:.68rem;font-weight:800}
input,select,textarea{
  min-height:38px;
  border:1px solid #cfd6df;
  border-radius:6px;
  background:#fff;
  color:var(--v3-text);
  font-size:.7rem;
  box-shadow:none;
}
textarea{line-height:1.45}
input:hover,select:hover,textarea:hover{border-color:#acb6c4}
input:focus,select:focus,textarea:focus{border-color:#8d9aad;box-shadow:0 0 0 3px rgba(16,27,49,.06)}
.filters{
  display:grid;
  grid-template-columns:2fr repeat(3,minmax(160px,1fr));
  gap:.65rem;
  margin:.75rem 0;
  padding:.72rem;
  border:1px solid var(--v3-line);
  border-radius:7px;
  background:#f8f9fb;
}
.project-portfolio-filters{
  grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));
  align-items:end;
}
.project-portfolio-filters select{max-width:none}
#documentForm > label.document-write-field{display:grid;gap:.4rem;margin-top:.8rem}
.report-toolbar{
  margin-bottom:.85rem;
  padding:.75rem .85rem;
  border:1px solid var(--v3-line);
  border-radius:7px;
  background:#fff;
  box-shadow:none;
}
.report-toolbar>div:first-child span{font-size:.63rem}

/* Tables */
.table-wrap{
  overflow:auto;
  border:1px solid var(--v3-line);
  border-radius:7px;
  background:#fff;
  scrollbar-color:#9ea7b4 #eef0f2;
  scrollbar-width:thin;
}
table{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
th{
  position:sticky;
  top:0;
  z-index:3;
  padding:.68rem .72rem;
  border-right:1px solid rgba(255,255,255,.08);
  background:var(--v3-navy-900);
  color:#fff;
  font-size:.59rem;
  font-weight:850;
  letter-spacing:.025em;
  text-align:left;
  white-space:nowrap;
}
td{
  padding:.65rem .72rem;
  border-bottom:1px solid #e8ebef;
  background:#fff;
  color:#27334a;
  font-size:.66rem;
  line-height:1.35;
  vertical-align:middle;
}
tbody tr:nth-child(even) td{background:#fafbfc}
tbody tr:hover td,tbody tr:focus-within td{background:#f4f7fa}
tbody tr:last-child td{border-bottom:0}
.row-actions{display:flex;align-items:center;gap:.35rem;white-space:nowrap}
.row-actions button{
  padding:.4rem .52rem;
  border:1px solid #d4dae2;
  border-radius:5px;
  background:#fff;
  color:#344159;
  font-size:.61rem;
}
.row-actions button:hover{border-color:#aeb8c6;background:#f7f8fa}
.status{padding:.28rem .48rem;border-radius:99px;font-size:.57rem;font-weight:850;white-space:nowrap}

/* Engineer workspace: keep all approved direct-entry fields visible. */
.engineer-hero{
  border-left:4px solid var(--v3-red);
  background:#fff;
}
.engineer-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.engineer-grid-wrap{max-height:64vh;border-radius:7px}
.engineer-table{
  width:max-content;
  min-width:2260px;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
}
.engineer-table th,.engineer-table td{vertical-align:middle}
.engineer-table th:nth-child(1),.engineer-table td:nth-child(1){width:145px;min-width:145px;max-width:145px}
.engineer-table th:nth-child(2),.engineer-table td:nth-child(2){width:185px;min-width:185px;max-width:185px}
.engineer-table th:nth-child(3),.engineer-table td:nth-child(3){width:180px;min-width:180px;max-width:180px}
.engineer-table th:nth-child(4),.engineer-table td:nth-child(4){width:245px;min-width:245px;max-width:245px}
.engineer-table th:nth-child(5),.engineer-table td:nth-child(5){width:330px;min-width:330px;max-width:330px}
.engineer-table th:nth-child(6),.engineer-table td:nth-child(6){width:235px;min-width:235px;max-width:235px}
.engineer-table th:nth-child(7),.engineer-table td:nth-child(7){width:155px;min-width:155px;max-width:155px}
.engineer-table th:nth-child(8),.engineer-table td:nth-child(8){width:140px;min-width:140px;max-width:140px}
.engineer-table th:nth-child(9),.engineer-table td:nth-child(9){width:125px;min-width:125px;max-width:125px}
.engineer-table th:nth-child(10),.engineer-table td:nth-child(10){width:135px;min-width:135px;max-width:135px}
.engineer-table th:nth-child(11),.engineer-table td:nth-child(11){width:120px;min-width:120px;max-width:120px;text-align:center}
.engineer-table th:nth-child(12),.engineer-table td:nth-child(12){width:150px;min-width:150px;max-width:150px;text-align:center}
.engineer-table th:nth-child(13),.engineer-table td:nth-child(13){width:105px;min-width:105px;max-width:105px;text-align:center}
.engineer-table th:nth-child(1),.engineer-table td:nth-child(1){
  position:sticky;
  left:0;
  z-index:4;
  box-shadow:8px 0 12px -12px rgba(15,23,42,.7);
}
.engineer-table th:nth-child(1){z-index:7;background:var(--v3-navy-900)}
.engineer-table input,.engineer-table select,.engineer-table textarea{width:100%;min-width:0}
.engineer-table textarea{min-height:60px;resize:vertical}
.engineer-table td:nth-child(10) input{text-align:right;font-weight:800}
.engineer-status-select{border-left:3px solid #8290a4!important;font-weight:800}
.engineer-status-select.is-warning{border-left-color:#d09422!important;background:var(--v3-amber-soft)!important;color:#76500e!important}
.engineer-status-select.is-success{border-left-color:var(--v3-green)!important;background:var(--v3-green-soft)!important;color:#2e6448!important}
.engineer-status-select.is-danger{border-left-color:var(--v3-danger)!important;background:#fff0ef!important;color:#8c2d27!important}
.engineer-documents,.engineer-finance-action,.engineer-archive{white-space:nowrap}
.engineer-archive{color:var(--v3-danger)}
.finance-alert-banner{
  border:1px solid #efc8a7;
  border-left:4px solid var(--v3-red);
  border-radius:7px;
  background:#fff8f0;
}

/* Directories, forms and detail panels */
.form-grid,.dashboard-grid{column-gap:.85rem;row-gap:.75rem}
.preview-grid{gap:.7rem}
dialog{
  border:1px solid #cfd5de;
  border-radius:9px;
  background:#fff;
  box-shadow:0 28px 80px rgba(16,27,49,.26);
}
dialog::backdrop{background:rgba(10,20,37,.48)}
.side-drawer{
  border-left:1px solid var(--v3-line);
  border-radius:0;
  box-shadow:-18px 0 50px rgba(16,27,49,.2);
}
.task-detail-grid dt{color:#6b778b;font-size:.65rem}
.task-detail-grid dd{color:var(--v3-text);font-size:.72rem}
.notification-list>*,.reviewer-grid>*,.client-grid>*{border-radius:7px}

/* Formal secure sign-in remains part of the approved visual system. */
.login-screen{
  background:
    radial-gradient(circle at 50% 42%,rgba(40,68,108,.42),transparent 38%),
    linear-gradient(118deg,#071329 0%,#0d1d38 52%,#071329 100%);
}
.login-card{
  border-radius:10px;
  box-shadow:0 28px 75px rgba(0,0,0,.34);
}
.login-card .button.primary{background:var(--v3-red);box-shadow:none}
.login-card .button.primary:hover{background:var(--v3-red-dark)}

/* Responsive command center */
@media(max-width:1280px){
  :root{--v3-sidebar:226px}
  .app-topbar,.system-strip{padding-inline:1rem}
  .enterprise-portal main{padding-inline:1rem}
  .global-search{width:min(330px,30vw)}
  .engineer-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:980px){
  .enterprise-portal{display:block}
  .app-sidebar{transform:translateX(-102%);transition:transform .2s ease}
  .app-sidebar.open{transform:none}
  .app-shell{margin:0}
  .mobile-menu{display:grid}
  .global-search{display:none}
  .topbar-title{min-width:0}
  .app-topbar .user-panel{min-width:auto;grid-template-columns:36px 32px}
  .app-topbar .user-panel>div:not(.user-menu){display:none}
  .topbar-actions{margin-left:auto}
  .chart-grid{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .engineer-table th:nth-child(n),.engineer-table td:nth-child(n){position:static;box-shadow:none}
  .engineer-table th{position:sticky;top:0;z-index:5}
}
@media(max-width:700px){
  .app-topbar{min-height:62px;padding:.55rem .7rem}
  .system-strip{padding:.4rem .7rem}
  .system-strip span:first-child{display:none}
  .enterprise-portal main{padding:.8rem .7rem 3rem}
  .topbar-title h1{font-size:1rem}
  .topbar-title p{display:none}
  .page-head{align-items:flex-start;flex-direction:column}
  .page-head .page-context{justify-content:flex-start}
  .workspace-banner{min-height:100px;padding:1rem}
  .kpi-grid,.engineer-kpis{grid-template-columns:1fr 1fr}
  .filters{grid-template-columns:1fr}
  .panel{padding:.82rem}
  .toolbar,.panel-title,.report-toolbar{align-items:flex-start;flex-direction:column}
  .toolbar-actions{width:100%;flex-wrap:wrap}
}
@media(max-width:440px){
  .kpi-grid,.engineer-kpis{grid-template-columns:1fr}
}

/* V3.1 component integration -------------------------------------------------
   These selectors bind the enterprise visual system to the explicit V3.1
   dashboard and Engineer workspace markup. */
.executive-page-head,
.engineer-page-head{
  min-height:64px;
  align-items:center;
  margin-bottom:.8rem;
}
.page-head-copy{min-width:0}
.executive-page-head .page-label,
.engineer-page-head .page-label{
  display:block;
  margin-bottom:.22rem;
  color:#667181;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
.executive-page-head .page-label::after,
.engineer-page-head .page-label::after{
  content:" / Overview";
  margin-left:.35rem;
  color:var(--v3-red);
}
.engineer-page-head .page-label::after{content:" / Personal delivery"}
.executive-page-head h2,
.engineer-page-head h2{
  color:#080d13;
  font-size:1.68rem;
  line-height:1.1;
}
.executive-page-head p,
.engineer-page-head p{
  max-width:720px;
  margin-top:.3rem;
  color:#606975;
  font-size:.73rem;
}
.page-head-actions{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:flex-end;
  gap:.5rem;
}
.page-head-actions .button{
  min-height:36px;
  padding:.55rem .75rem;
  white-space:nowrap;
}

/* Live operations command strip. Both the initial HTML and the hydrated
   JavaScript structure use the same sizing so there is no layout jump. */
.operations-command-strip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  color:#fff;
}
.operations-command-title,
.command-strip-title{
  position:relative;
  z-index:1;
  display:flex;
  min-width:280px;
  align-items:center;
  gap:.85rem;
}
.operations-command-icon,
.command-strip-icon{
  display:grid;
  width:44px;
  height:44px;
  flex:0 0 44px;
  place-items:center;
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  color:#fff;
  font-size:1.55rem;
  line-height:1;
}
.operations-command-title small{
  display:block;
  margin-bottom:.18rem;
  color:#aebfd0;
  font-size:.55rem;
  font-weight:700;
  letter-spacing:.13em;
}
.operations-command-title h2,
.command-strip-title strong{
  margin:0;
  color:#fff;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:1.08rem;
  font-weight:600;
  letter-spacing:-.015em;
}
.operations-command-stats,
.command-strip-metrics{
  position:relative;
  z-index:1;
  display:flex;
  min-width:0;
  align-items:stretch;
  justify-content:flex-end;
}
.operations-command-stats>span{
  display:grid;
  min-width:145px;
  grid-template-columns:30px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-content:center;
  column-gap:.55rem;
  padding:.35rem 1rem;
  border-left:1px solid rgba(255,255,255,.22);
}
.operations-command-stats i{
  grid-column:1;
  grid-row:1/3;
  align-self:center;
  color:#f5f8fb;
  font-size:1.35rem;
  font-style:normal;
  line-height:1;
  text-align:center;
}
.operations-command-stats b{
  grid-column:2;
  margin:0;
  color:#fff;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:1.35rem;
  font-weight:700;
  line-height:1.05;
}
.operations-command-stats small{
  grid-column:2;
  color:#ced9e4;
  font-size:.61rem;
  line-height:1.2;
}
.operations-command-stats .is-alert b,
.operations-command-stats .is-alert i{color:#ff5b5f}
.command-strip-metrics>span{
  display:flex;
  min-width:145px;
  flex-direction:column;
  justify-content:center;
  padding:.35rem 1rem;
  border-left:1px solid rgba(255,255,255,.22);
  color:#ced9e4;
  font-size:.61rem;
}
.command-strip-metrics strong{
  color:#fff;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:1.35rem;
  line-height:1.1;
}

/* The V3.1 markup includes real inline line icons. Disable the legacy mask
   pseudo-icon so each KPI has exactly one crisp, accessible visual. */
.executive-kpi::after,
.engineer-kpi::after{display:none}
.executive-kpi,
.engineer-kpi{
  grid-template-columns:46px minmax(0,1fr);
  grid-template-rows:1fr;
  align-items:center;
}
.kpi .kpi-icon{
  display:grid;
  width:42px;
  height:42px;
  grid-column:1;
  grid-row:1;
  align-self:center;
  padding:0;
  place-items:center;
  color:var(--kpi-icon-color,var(--v3-navy-950));
}
.kpi .kpi-icon svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.kpi .kpi-copy{
  display:flex!important;
  min-width:0;
  grid-column:2;
  grid-row:1;
  align-self:center;
  flex-direction:column;
  justify-content:center;
  padding:0;
}
.kpi .kpi-copy .kpi-label{
  display:block;
  padding:0;
  color:#202731;
  font-size:.67rem;
  font-weight:500;
  letter-spacing:0;
  line-height:1.2;
}
.kpi .kpi-copy strong{
  display:block;
  margin-top:.24rem;
  color:#080d13!important;
  font-size:1.5rem;
  line-height:1.06;
}

/* Native SVG monthly fee/task combination chart. */
#monthlyChart{
  display:flex;
  min-height:215px;
  flex-direction:column;
}
.combo-chart-legend{
  display:flex;
  min-height:24px;
  align-items:center;
  justify-content:center;
  gap:1.2rem;
  color:#4f5865;
  font-size:.64rem;
}
.combo-chart-legend span{display:inline-flex;align-items:center;gap:.42rem}
.combo-chart-legend i{
  display:inline-block;
  width:14px;
  height:8px;
  border-radius:1px;
  background:var(--v3-red);
}
.combo-chart-legend b{
  position:relative;
  display:inline-block;
  width:17px;
  height:2px;
  background:var(--v3-navy-950);
}
.combo-chart-legend b::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--v3-navy-950);
  transform:translate(-50%,-50%);
}
.monthly-combo-svg{
  display:block;
  width:100%;
  height:auto;
  min-height:190px;
  flex:1 1 auto;
  overflow:visible;
}
.combo-grid line{stroke:#e4e8ed;stroke-width:1}
.combo-grid text,
.month-label{
  fill:#667181;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:11px;
}
.combo-bars rect{
  fill:var(--v3-red);
  fill-opacity:.9;
  transition:fill-opacity .18s ease;
}
.combo-bars rect:hover{fill-opacity:1}
.combo-line{
  fill:none;
  stroke:var(--v3-navy-950);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.monthly-combo-svg>circle{
  fill:var(--v3-navy-950);
  stroke:#fff;
  stroke-width:2;
}

@media(max-width:980px){
  .executive-page-head,
  .engineer-page-head{align-items:flex-start;flex-direction:column}
  .page-head-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .operations-command-strip{align-items:flex-start;flex-direction:column}
  .operations-command-stats,
  .command-strip-metrics{width:100%;justify-content:flex-start}
  .operations-command-stats>span:first-child,
  .command-strip-metrics>span:first-child{padding-left:0;border-left:0}
}
@media(max-width:700px){
  .operations-command-stats,
  .command-strip-metrics{flex-wrap:wrap}
  .operations-command-stats>span,
  .command-strip-metrics>span{min-width:33.333%;flex:1 1 33.333%;padding-inline:.7rem}
  .kpi .kpi-icon{width:32px;height:32px}
  .executive-kpi,
  .engineer-kpi{grid-template-columns:36px minmax(0,1fr)}
  .monthly-combo-svg{min-width:620px}
  #monthlyChart{overflow-x:auto;overflow-y:hidden}
}
@media(max-width:440px){
  .operations-command-title,
  .command-strip-title{min-width:0}
  .operations-command-stats>span,
  .command-strip-metrics>span{min-width:100%;flex-basis:100%;padding:.48rem 0;border-top:1px solid rgba(255,255,255,.16);border-left:0}
}

@media print{
  .app-sidebar,.app-topbar,.system-strip,.page-head,.report-toolbar,.toolbar-actions{display:none!important}
  .enterprise-portal,.app-shell{display:block!important}
  .enterprise-portal main{max-width:none;padding:0}
  .panel,.kpi{break-inside:avoid;box-shadow:none}
}

/* ========================================================================== 
   V3.2.0 — Approved Qualiconsult International enterprise visual system
   Dense, desktop-first operations layout based on the approved Executive and
   Engineer Workspace references. Business logic and interaction selectors are
   intentionally unchanged.
   ========================================================================== */

:root{
  --v3-navy-1000:#001426;
  --v3-navy-950:#001a31;
  --v3-navy-900:#00233f;
  --v3-navy-850:#062d4e;
  --v3-navy-800:#0b3758;
  --v3-red:#e51b20;
  --v3-red-dark:#c90e14;
  --v3-red-soft:#fff0ef;
  --v3-canvas:#fbfbfc;
  --v3-surface:#fff;
  --v3-surface-2:#f7f8fa;
  --v3-line:#d9dde3;
  --v3-line-strong:#c5cbd3;
  --v3-text:#111923;
  --v3-muted:#68717e;
  --v3-green:#2e8b42;
  --v3-green-soft:#dff0e1;
  --v3-amber:#dc8a08;
  --v3-amber-soft:#ffe8b5;
  --v3-danger:#d71920;
  --v3-sidebar:264px;
  --v3-radius:5px;
  --v3-shadow:0 1px 3px rgba(0,24,49,.055);
}

html,body{background:var(--v3-canvas)}
body{
  color:var(--v3-text);
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:13px;
  line-height:1.35;
}
h1,h2,h3,h4,h5,h6,
.topbar-title h1,.page-head h2,.workspace-banner h2,.workspace-banner h3,
.panel h2,.toolbar h2,.kpi strong{
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  letter-spacing:-.018em;
}
button,input,select,textarea{font-family:inherit}

/* Enterprise application shell */
.enterprise-portal{grid-template-columns:var(--v3-sidebar) minmax(0,1fr)}
.app-sidebar{
  width:var(--v3-sidebar);
  border-right:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,var(--v3-navy-950) 0%,#002b4b 54%,#00385d 100%);
  box-shadow:2px 0 9px rgba(0,20,38,.08);
}
.sidebar-brand.sidebar-brand-v3{
  min-height:145px;
  align-items:center;
  gap:.82rem;
  padding:1.25rem 1.35rem 1.1rem;
  border-top:0;
  border-bottom:1px solid rgba(255,255,255,.09);
  background:rgba(0,18,34,.22);
}
.sidebar-logo-crop{
  flex-basis:58px;
  width:58px;
  height:58px;
  border-radius:4px;
  box-shadow:0 0 0 1px rgba(255,255,255,.18);
}
.sidebar-logo-crop img{left:-55px;top:-21px;width:174px}
.sidebar-brand-copy strong{
  max-width:155px;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:1.02rem;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.17;
  white-space:normal;
}
.sidebar-brand-copy small{
  margin-top:.48rem;
  color:#d9e2ec;
  font-size:.61rem;
  letter-spacing:.17em;
}
.sidebar-context{display:none}
.app-sidebar .nav-tabs{padding:.75rem .5rem 1rem}
.nav-group{
  margin:1rem 1rem .42rem;
  color:#b1c0d0;
  font-size:.61rem;
  letter-spacing:.09em;
}
.app-sidebar .nav-button{
  min-height:50px;
  gap:.82rem;
  margin:.08rem 0;
  padding:.72rem 1rem;
  border-radius:4px;
  color:#f0f4f8;
  font-size:.77rem;
  font-weight:500;
}
.app-sidebar .nav-button:hover{
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.065);
}
.app-sidebar .nav-button.active{
  border-color:rgba(255,255,255,.08);
  background:linear-gradient(90deg,var(--v3-red),#f12327);
  box-shadow:0 5px 16px rgba(154,0,4,.18);
}
.app-sidebar .nav-button.active:before{display:none}
.nav-icon{
  flex-basis:27px;
  width:27px;
  height:27px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:#fff;
  font-size:1rem;
}
.nav-button.active .nav-icon{background:transparent}
.sidebar-footer{
  padding:.9rem 1.5rem 1.2rem;
  border-top-color:rgba(255,255,255,.11);
  color:#c5d0dc;
}

.app-topbar{
  min-height:58px;
  height:58px;
  gap:1rem;
  padding:.52rem 1.5rem;
  background:#fff;
  border-bottom:1px solid var(--v3-line);
  box-shadow:none;
}
.topbar-title{min-width:285px;gap:.7rem}
.topbar-title p{
  margin:0;
  color:#101a25;
  font-size:.72rem;
  font-weight:500;
}
.topbar-title h1{
  margin:.08rem 0 0;
  color:var(--v3-red);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:0;
}
.global-search{
  width:min(310px,31vw);
  min-height:36px;
  height:36px;
  padding:0 .68rem;
  border-color:#d4d8de;
  border-radius:4px;
  background:#fff;
}
.global-search input{font-size:.7rem}
.topbar-actions{gap:.72rem}
.topbar-icon{
  width:34px;
  height:34px;
  border:0;
  border-radius:3px;
  background:transparent;
  color:#0f1e2e;
}
.topbar-icon:hover{border:0;background:#f2f4f6}
.app-topbar .user-panel{
  grid-template-columns:34px auto 30px;
  min-width:218px;
  padding-left:.75rem;
  border-left:1px solid var(--v3-line);
}
.user-avatar{border-radius:50%;background:var(--v3-navy-900)}
.app-topbar .user-panel strong{font-size:.71rem;font-weight:600}
.app-topbar .user-panel span:not(.user-avatar){font-size:.61rem}
.system-strip{display:none}

/* Content density and hierarchy */
.enterprise-portal main{
  max-width:none;
  padding:1.45rem 1.75rem 3.5rem;
}
.page-head{
  min-height:70px;
  align-items:flex-start;
  margin:0 0 .85rem;
  padding:0;
}
.page-head h2{font-size:1.65rem;font-weight:700}
.page-head p{font-size:.76rem}
.page-head .page-label,.eyebrow{
  font-size:.6rem;
  font-weight:800;
  letter-spacing:.09em;
}
.report-toolbar{
  min-height:42px;
  margin-bottom:.75rem;
  padding:.45rem .65rem;
  border-radius:4px;
}
.workspace-banner{
  min-height:90px;
  margin-bottom:1rem;
  padding:1rem 1.45rem;
  border:0;
  border-radius:4px;
  background:linear-gradient(100deg,var(--v3-navy-950),#002d50);
}
.workspace-banner:before{display:none}
.workspace-banner h2,.workspace-banner h3{
  margin-bottom:.24rem;
  font-size:1.08rem;
  font-weight:600;
}
.workspace-banner p{margin:0;color:#d6e0e9;font-size:.69rem}
.workspace-stats{gap:0;align-items:stretch}
.workspace-stats span{
  display:flex;
  min-width:150px;
  align-items:center;
  gap:.55rem;
  padding:.45rem 1.15rem;
  border:0;
  border-left:1px solid rgba(255,255,255,.23);
  border-radius:0;
  background:transparent;
  color:#fff;
  font-size:.65rem;
}
.workspace-stats b{
  margin:0;
  color:#fff;
  font-size:1.28rem;
  font-weight:700;
}

/* KPI cards — compact line-icon cards with a single formal red rule. */
.kpi-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:.9rem;
}
.kpi{
  position:relative;
  display:grid;
  min-height:110px;
  grid-template-columns:50px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-content:center;
  column-gap:.72rem;
  overflow:hidden;
  padding:.88rem .85rem 1rem;
  border:1px solid var(--v3-line);
  border-radius:4px;
  background:#fff;
  box-shadow:none;
}
.kpi:before{
  content:"";
  position:absolute;
  inset:auto 10px 0;
  width:auto;
  height:2px;
  background:var(--v3-red)!important;
}
.kpi:after{
  content:"";
  position:static;
  grid-column:1;
  grid-row:1/3;
  width:42px;
  height:42px;
  align-self:center;
  border:0;
  border-radius:0;
  background:var(--kpi-icon-color,var(--v3-navy-950));
  -webkit-mask:var(--kpi-mask) center/contain no-repeat;
  mask:var(--kpi-mask) center/contain no-repeat;
}
.kpi span{
  grid-column:2;
  align-self:end;
  padding:0;
  color:#202731;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
.kpi strong{
  grid-column:2;
  align-self:start;
  margin-top:.22rem;
  color:#080d13!important;
  font-size:1.55rem;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.06;
}
.kpi.green{--kpi-icon-color:var(--v3-green)}
.kpi.amber,.kpi.red{--kpi-icon-color:var(--v3-red)}

/* Simple SVG masks keep icons crisp without changing application markup. */
.kpi:nth-child(1){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6.5h6l2 2h10v10.5H3z'/%3E%3C/svg%3E")}
.kpi:nth-child(2){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V2h6v2M8 10h8M8 14h8M8 18h5'/%3E%3C/svg%3E")}
#tab-dashboard>.kpi-grid .kpi:nth-child(3){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cellipse cx='9' cy='7' rx='6' ry='3'/%3E%3Cpath d='M3 7v4c0 1.7 2.7 3 6 3 1.2 0 2.3-.2 3.2-.5M3 11v4c0 1.7 2.7 3 6 3M15 10c3.3 0 6 1.3 6 3s-2.7 3-6 3-6-1.3-6-3 2.7-3 6-3zM9 13v4c0 1.7 2.7 3 6 3s6-1.3 6-3v-4'/%3E%3C/svg%3E")}
#tab-dashboard>.kpi-grid .kpi:nth-child(4){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.2 2.2 4.8-5'/%3E%3C/svg%3E")}
#tab-dashboard>.kpi-grid .kpi:nth-child(5){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.2 2'/%3E%3C/svg%3E")}
#tab-engineer .engineer-kpis .kpi:nth-child(3){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E")}
#tab-engineer .engineer-kpis .kpi:nth-child(4){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.4 12.4l2.3 2.3 5-5.4'/%3E%3C/svg%3E")}
#tab-engineer .engineer-kpis .kpi:nth-child(5){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18M8 14h2M14 14h2M8 18h2'/%3E%3C/svg%3E")}
#tab-engineer .engineer-kpis .kpi:nth-child(6){--kpi-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v12H8l-4 4zM8 9h8M8 13h5'/%3E%3C/svg%3E")}

/* Panels and charts */
.panel{
  margin-bottom:.9rem;
  padding:.9rem 1rem;
  border:1px solid var(--v3-line);
  border-radius:4px;
  background:#fff;
  box-shadow:var(--v3-shadow);
}
.panel-title{margin-bottom:.55rem;padding-bottom:.5rem;border-bottom:1px solid #e5e8ec}
.panel h2,.toolbar h2{font-size:.92rem;font-weight:600;letter-spacing:0}
.panel p.muted,.muted{font-size:.69rem}
.pill{padding:.25rem .48rem;border-radius:3px;font-size:.62rem}
.bar-chart,.mini-chart,.stacked-chart,.donut-host{min-height:190px}
.mini-chart{gap:.72rem;padding:.35rem 0}
.mini-chart-row{
  grid-template-columns:minmax(135px,190px) minmax(120px,1fr) 42px;
  gap:.75rem;
  font-size:.7rem;
}
.mini-chart-row i{height:15px;border-radius:0;background:#eef0f2}
.mini-chart-row i b{border-radius:0;background:linear-gradient(90deg,var(--v3-red),#f07469)}
.stack-row>div,.bar-track{border-radius:0}

/* Executive Dashboard composition: 8/4 first row and 6/6 second row. */
#tab-dashboard>.chart-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:.9rem;
  margin-bottom:.9rem;
}
#tab-dashboard>.chart-grid>article{margin:0;min-width:0}
#tab-dashboard>.chart-grid>article:nth-child(1){grid-column:span 8;min-height:286px}
#tab-dashboard>.chart-grid>article:nth-child(2){grid-column:span 4;min-height:286px}
#tab-dashboard>.chart-grid>article:nth-child(3),
#tab-dashboard>.chart-grid>article:nth-child(4){grid-column:span 6;min-height:258px}
#tab-dashboard #monthlyChart{min-height:215px}
#tab-dashboard #executivePaymentChart{min-height:215px}
#tab-dashboard #executiveReviewerChart,
#tab-dashboard #executiveServiceChart{min-height:185px}
#tab-dashboard .donut{width:155px}
#tab-dashboard .chart-legend{min-width:160px}

/* Engineer Workspace composition. */
.engineer-hero{
  min-height:76px;
  margin-bottom:.9rem;
  padding:.85rem 1rem;
  border:1px solid var(--v3-line);
  border-left:0;
  border-top:0;
  background:#fff;
  box-shadow:none;
}
.engineer-hero:before{display:none}
.engineer-hero h2{font-size:1rem;font-weight:650}
.engineer-hero .eyebrow{display:none}
.engineer-hero .toolbar-actions{flex-wrap:nowrap}
.engineer-hero .button{white-space:nowrap}
.engineer-kpis{
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin-top:0;
}
.engineer-kpis .kpi{min-height:98px}
.engineer-kpis .kpi:nth-child(6){display:none}
#tab-engineer>.dashboard-grid{
  grid-template-columns:1fr 1fr;
  gap:.9rem;
  margin-bottom:.9rem;
}
#tab-engineer>.dashboard-grid>.panel{
  min-height:214px;
  margin:0;
}
#tab-engineer>.dashboard-grid .mini-chart{min-height:145px}

/* Direct-entry Engineer table: every approved field remains visible. */
.engineer-grid-wrap{
  max-height:64vh;
  border-radius:3px;
}
.engineer-table{
  width:100%;
  min-width:1380px;
  table-layout:fixed;
}
.engineer-table th,.engineer-table td{vertical-align:middle}
.engineer-table th{
  height:40px;
  padding:.5rem .38rem;
  font-size:.6rem;
  font-weight:650;
  letter-spacing:0;
}
.engineer-table td{height:54px;padding:.32rem .35rem;font-size:.62rem}
.engineer-table th:nth-child(1),.engineer-table td:nth-child(1){width:88px;min-width:88px;max-width:88px}
.engineer-table th:nth-child(2),.engineer-table td:nth-child(2){width:122px;min-width:122px;max-width:122px}
.engineer-table th:nth-child(3),.engineer-table td:nth-child(3){width:118px;min-width:118px;max-width:118px}
.engineer-table th:nth-child(4),.engineer-table td:nth-child(4){width:104px;min-width:104px;max-width:104px}
.engineer-table th:nth-child(5),.engineer-table td:nth-child(5){width:220px;min-width:220px;max-width:220px}
.engineer-table th:nth-child(6),.engineer-table td:nth-child(6){width:116px;min-width:116px;max-width:116px}
.engineer-table th:nth-child(7),.engineer-table td:nth-child(7){width:106px;min-width:106px;max-width:106px}
.engineer-table th:nth-child(8),.engineer-table td:nth-child(8){width:91px;min-width:91px;max-width:91px}
.engineer-table th:nth-child(9),.engineer-table td:nth-child(9){width:88px;min-width:88px;max-width:88px}
.engineer-table th:nth-child(10),.engineer-table td:nth-child(10){width:78px;min-width:78px;max-width:78px}
.engineer-table th:nth-child(11),.engineer-table td:nth-child(11){width:79px;min-width:79px;max-width:79px}
.engineer-table th:nth-child(12),.engineer-table td:nth-child(12){width:91px;min-width:91px;max-width:91px}
.engineer-table th:nth-child(13),.engineer-table td:nth-child(13){width:71px;min-width:71px;max-width:71px}
.engineer-table th:nth-child(1),.engineer-table td:nth-child(1){
  position:sticky;
  left:0;
  z-index:4;
  box-shadow:5px 0 7px -7px rgba(0,24,49,.6);
}
.engineer-table th:nth-child(1){z-index:7;background:var(--v3-navy-950)}
.engineer-table input,.engineer-table select,.engineer-table textarea{
  min-height:32px;
  height:32px;
  padding:.32rem .38rem;
  border-radius:3px;
  font-size:.61rem;
}
.engineer-table textarea{min-height:34px;height:34px;line-height:1.25;resize:vertical}
.engineer-table td:nth-child(10) input{font-weight:650}
.engineer-documents,.engineer-finance-action,.engineer-archive{
  display:inline-block;
  max-width:100%;
  overflow:hidden;
  color:var(--v3-red-dark);
  font-size:.59rem;
  font-weight:650;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Compact controls and data tables */
.button{min-height:34px;padding:.48rem .72rem;border-radius:3px;font-size:.66rem}
input,select,textarea{min-height:35px;border-radius:3px;font-size:.68rem}
.table-wrap{border-radius:3px}
th{
  padding:.58rem .62rem;
  background:var(--v3-navy-950);
  font-size:.61rem;
  font-weight:650;
  letter-spacing:0;
}
td{padding:.57rem .62rem;font-size:.64rem}
.status{border-radius:3px}

/* Optional semantic wrappers used by the approved reference composition. */
.page-intro{
  display:flex;
  min-height:74px;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.75rem;
}
.page-intro h1{margin:0 0 .22rem;font-size:1.65rem;font-weight:700}
.page-intro p{margin:0;color:var(--v3-muted);font-size:.74rem}
.page-refresh{display:flex;align-items:center;gap:.65rem;color:#505967;font-size:.68rem}
.control-center-strip{
  display:grid;
  min-height:90px;
  grid-template-columns:minmax(300px,1.5fr) repeat(3,minmax(140px,.55fr));
  align-items:center;
  margin-bottom:.9rem;
  padding:.75rem 1.2rem;
  border-radius:4px;
  background:linear-gradient(100deg,var(--v3-navy-950),#002d50);
  color:#fff;
}
.control-center-strip>*+*{border-left:1px solid rgba(255,255,255,.24)}

/* Responsive behavior */
@media(max-width:1360px){
  :root{--v3-sidebar:232px}
  .sidebar-brand.sidebar-brand-v3{min-height:132px;padding-inline:1rem}
  .sidebar-logo-crop{flex-basis:50px;width:50px;height:50px}
  .sidebar-logo-crop img{left:-47px;top:-18px;width:150px}
  .enterprise-portal main{padding-inline:1.1rem}
  .engineer-table{min-width:1380px}
}
@media(max-width:1180px){
  .kpi-grid,.engineer-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  #tab-dashboard>.chart-grid>article:nth-child(n){grid-column:span 12}
  #tab-engineer>.dashboard-grid{grid-template-columns:1fr}
  .engineer-kpis .kpi:nth-child(6){display:grid}
}
@media(max-width:980px){
  :root{--v3-sidebar:264px}
  .enterprise-portal{display:block}
  .app-topbar{padding-inline:.85rem}
  .topbar-title{min-width:0}
  .topbar-title h1{display:none}
  .enterprise-portal main{padding:1rem .85rem 3rem}
  .workspace-banner{align-items:flex-start;flex-direction:column}
  .workspace-stats{width:100%;justify-content:flex-start}
  .workspace-stats span:first-child{border-left:0;padding-left:0}
  .engineer-table{min-width:1380px}
  .engineer-table th:nth-child(n),.engineer-table td:nth-child(n){position:static;box-shadow:none}
  .engineer-table th{position:sticky;top:0;z-index:5}
}
@media(max-width:700px){
  .app-topbar{height:56px;min-height:56px;padding:.45rem .65rem}
  .enterprise-portal main{padding:.8rem .65rem 2.5rem}
  .kpi-grid,.engineer-kpis{grid-template-columns:1fr 1fr}
  .kpi{min-height:92px;grid-template-columns:38px 1fr}
  .kpi:after{width:32px;height:32px}
  .kpi strong{font-size:1.25rem}
  .engineer-hero{align-items:flex-start;flex-direction:column}
  .engineer-hero .toolbar-actions{width:100%;flex-wrap:wrap}
  .panel{padding:.75rem}
  .page-intro{min-height:0;flex-direction:column}
  .control-center-strip{grid-template-columns:1fr;gap:.6rem}
  .control-center-strip>*+*{padding-top:.6rem;border-top:1px solid rgba(255,255,255,.2);border-left:0}
}
@media(max-width:440px){
  .kpi-grid,.engineer-kpis{grid-template-columns:1fr}
}

@media print{
  .app-sidebar,.app-topbar,.system-strip,.page-intro,.report-toolbar,.toolbar-actions{display:none!important}
  .enterprise-portal,.app-shell{display:block!important}
  .enterprise-portal main{max-width:none;padding:0}
  .panel,.kpi{break-inside:avoid;box-shadow:none}
}

/* Final V3.1 cascade lock: this file intentionally contains the legacy shell
   followed by the enterprise theme, so explicit component classes own their
   final dimensions regardless of the legacy declarations above. */
.page-head.executive-page-head,
.page-head.engineer-page-head{
  min-height:64px;
  align-items:center;
  margin-bottom:.8rem;
}
.executive-page-head .page-label,
.engineer-page-head .page-label{
  margin-bottom:.22rem;
  color:#667181;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
.executive-page-head h2,
.engineer-page-head h2{
  color:#080d13;
  font-size:1.68rem;
  font-weight:700;
  line-height:1.1;
}
.executive-page-head p,
.engineer-page-head p{font-size:.73rem}
.operations-command-title h2{
  margin:0;
  color:#fff;
  font-size:1.08rem;
  font-weight:600;
}
.executive-kpi::after,
.engineer-kpi::after{display:none!important}
.kpi.executive-kpi,
.kpi.engineer-kpi{
  grid-template-columns:46px minmax(0,1fr);
  grid-template-rows:1fr;
  align-items:center;
}
@media(max-width:980px){
  .page-head.executive-page-head,
  .page-head.engineer-page-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:700px){
  .kpi.executive-kpi,
  .kpi.engineer-kpi{grid-template-columns:36px minmax(0,1fr)}
}

/* V3.2.0 — controlled client-only workbook import */
.client-import-panel .client-import-actions{align-self:end;justify-content:flex-end}
.client-import-panel .client-import-preview{max-height:520px;margin-top:1rem}
.client-import-panel .client-import-preview table{min-width:1000px}
.client-import-panel .client-import-preview td:nth-child(3){min-width:260px}
.status.client-import-create{background:#dcf5e6;color:#22623f}
.status.client-import-skip_existing,
.status.client-import-skip_duplicate_file{background:#eef1f5;color:#4b5563}
.status.client-import-ignored_scope{background:#fff1cf;color:#8a5300}
.status.client-import-invalid{background:#fee4e2;color:#a52320}
@media(max-width:700px){
  .client-import-panel .client-import-actions{align-self:stretch;justify-content:stretch}
  .client-import-panel .client-import-actions .button{flex:1}
}

/* V3.3.0 — professional Administration Center */
#tab-admin .page-head{margin-bottom:.8rem}
.admin-command-bar{
  display:flex;
  min-height:116px;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.35rem 1.5rem;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--v3-radius);
  background:
    linear-gradient(115deg,rgba(197,54,45,.16),transparent 42%),
    linear-gradient(135deg,var(--v3-navy-900),var(--v3-navy-800));
  color:#fff;
  box-shadow:var(--v3-shadow);
}
.admin-command-copy{max-width:720px}
.admin-command-copy .eyebrow{margin:0 0 .35rem;color:#f0a59f}
.admin-command-copy h2{margin:0;color:#fff;font-size:1.55rem;line-height:1.2}
.admin-command-copy p{max-width:660px;margin:.42rem 0 0;color:#c8d0dc;line-height:1.55}
.admin-command-actions{display:flex;min-width:390px;align-items:flex-end;gap:.75rem}
.admin-search{display:grid;flex:1;gap:.35rem;color:#cbd4e1;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.admin-search input{min-height:42px;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.98);color:var(--v3-text);text-transform:none}
.admin-command-actions .button{min-height:42px;white-space:nowrap;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff}

.admin-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:.8rem 0}
.admin-kpi{display:grid;min-height:104px;align-content:center;gap:.18rem;padding:1rem 1.05rem;border:1px solid var(--v3-line);border-top:3px solid var(--v3-red);border-radius:var(--v3-radius);background:#fff;box-shadow:var(--v3-shadow)}
.admin-kpi span{color:var(--v3-muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.admin-kpi strong{color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;line-height:1.1}
.admin-kpi small{color:var(--v3-muted);font-size:.72rem}

.admin-section-nav{
  position:sticky;
  top:64px;
  z-index:25;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  margin-bottom:.9rem;
  overflow:hidden;
  border:1px solid var(--v3-line);
  border-radius:var(--v3-radius);
  background:#fff;
  box-shadow:var(--v3-shadow);
}
.admin-section-button{display:flex;min-height:58px;align-items:center;justify-content:center;gap:.45rem;padding:.65rem .4rem;border:0;border-right:1px solid var(--v3-line);background:#fff;color:#536076;font-size:.76rem;font-weight:750;cursor:pointer}
.admin-section-button:last-child{border-right:0}
.admin-section-button span{display:grid;width:24px;height:24px;place-items:center;border-radius:4px;background:#eef1f5;color:#7a8597;font-size:.64rem}
.admin-section-button:hover{background:#f8f9fb;color:var(--v3-navy-900)}
.admin-section-button.active{background:var(--v3-navy-900);color:#fff;box-shadow:inset 0 -3px 0 var(--v3-red)}
.admin-section-button.active span{background:rgba(255,255,255,.14);color:#fff}

.admin-workspace{display:grid;gap:.85rem}
.admin-workspace.hidden{display:none!important}
.admin-workspace-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.35rem .15rem}
.admin-workspace-head .eyebrow{margin:0 0 .25rem}
.admin-workspace-head h2{margin:0;color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.45rem}
.admin-workspace-head p{margin:.3rem 0 0;color:var(--v3-muted)}

.admin-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.admin-directory-card{position:relative;display:grid;min-height:168px;align-content:start;gap:.4rem;padding:1.1rem 1.15rem 1rem;border:1px solid var(--v3-line);border-radius:var(--v3-radius);background:#fff;box-shadow:var(--v3-shadow)}
.admin-directory-card:before{position:absolute;inset:0 auto 0 0;width:3px;border-radius:var(--v3-radius) 0 0 var(--v3-radius);background:var(--v3-red);content:""}
.admin-directory-card .eyebrow{margin:0;color:var(--v3-red)}
.admin-directory-card h3{margin:0;color:var(--v3-navy-900);font-size:1.05rem}
.admin-directory-card p{margin:0;color:var(--v3-muted);line-height:1.5}
.admin-directory-card button{justify-self:start;margin-top:auto;border:0;background:none;color:var(--v3-red-dark);font-weight:800;cursor:pointer}

.admin-master-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1rem;align-items:center}
.admin-master-panel .summary-grid{margin:0}
.admin-form-panel{border-top:3px solid var(--v3-red)}
.admin-form-panel .toolbar-actions{grid-column:1/-1;justify-content:flex-start}
.admin-form-panel textarea{min-height:80px}
.admin-split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:.85rem;align-items:start}
.admin-guidance{border-top:3px solid var(--v3-navy-700);background:linear-gradient(180deg,#fff,#f8f9fb)}
.admin-guidance ul{display:grid;gap:.7rem;margin:.8rem 0 0;padding-left:1.2rem;color:#445167;line-height:1.5}
.admin-governance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem}
.admin-governance-grid .panel{height:100%}
#tab-admin .table-wrap{max-height:600px}
#tab-admin .table-wrap thead th{position:sticky;top:0;z-index:3}
#tab-admin .row-actions{display:flex;flex-wrap:wrap;gap:.25rem}
#tab-admin .row-actions button{white-space:nowrap}

@media(max-width:1200px){
  .admin-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-section-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
  .admin-section-button:nth-child(4){border-right:0}
  .admin-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .admin-command-bar,.admin-workspace-head{align-items:stretch;flex-direction:column}
  .admin-command-actions{min-width:0;align-items:stretch;flex-direction:column}
  .admin-master-panel,.admin-split,.admin-governance-grid{grid-template-columns:1fr}
  .admin-section-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-section-button:nth-child(even){border-right:0}
}
@media(max-width:620px){
  .admin-kpi-grid,.admin-directory-grid{grid-template-columns:1fr}
  .admin-command-bar{padding:1rem}
  .admin-command-copy h2{font-size:1.3rem}
  .admin-section-nav{grid-template-columns:1fr}
  .admin-section-button{justify-content:flex-start;padding-inline:1rem;border-right:0;border-bottom:1px solid var(--v3-line)}
  .admin-section-button:last-child{border-bottom:0}
}

/* Authenticated portal tutorial */
.tutorial-intro-panel{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;border-left:4px solid var(--v3-red);background:linear-gradient(115deg,#fff 0%,#f7f8fa 100%)}
.tutorial-intro-panel h2{margin:.1rem 0 .35rem;color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.55rem}
.tutorial-intro-panel p{margin-bottom:0}
.tutorial-status{display:inline-flex;min-height:36px;align-items:center;padding:.45rem .75rem;border:1px solid var(--v3-line);border-radius:999px;background:#fff;color:#526077;font-size:.74rem;font-weight:800;white-space:nowrap}
.tutorial-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:1rem;align-items:start}
.tutorial-player-panel,.tutorial-guide-panel{height:100%}
.tutorial-video-shell{display:grid;aspect-ratio:16/9;place-items:center;overflow:hidden;border:1px solid #263852;border-radius:calc(var(--v3-radius) - 2px);background:linear-gradient(135deg,#071325,#102745);box-shadow:0 18px 42px rgba(7,19,37,.18)}
#portalTutorialVideo{display:block;width:100%;height:100%;background:#050b16;object-fit:contain}
.tutorial-unavailable{display:grid;max-width:480px;gap:.45rem;padding:2rem;text-align:center;color:#dce4ee}
.tutorial-unavailable strong{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;color:#fff}
.tutorial-unavailable span{font-size:.86rem;line-height:1.55}
.tutorial-security-note{margin:.8rem 0 0;color:var(--v3-muted);font-size:.76rem;line-height:1.5}
.tutorial-guide-panel{border-top:3px solid var(--v3-navy-700)}
.tutorial-guide-panel h2{margin:.15rem 0 1rem;color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}
.tutorial-chapters{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}
.tutorial-chapters li{display:grid;grid-template-columns:42px 1fr;gap:.75rem;align-items:start;padding:.85rem 0;border-bottom:1px solid var(--v3-line)}
.tutorial-chapters li:last-child{border-bottom:0}
.tutorial-chapters>li>span{display:grid;width:36px;height:36px;place-items:center;border-radius:4px;background:var(--v3-navy-900);color:#fff;font-size:.7rem;font-weight:850}
.tutorial-chapters div{display:grid;gap:.22rem}
.tutorial-chapters strong{color:var(--v3-navy-900);font-size:.86rem}
.tutorial-chapters small{color:var(--v3-muted);font-size:.75rem;line-height:1.45}
.support-manual-card{display:grid;gap:.85rem;margin-top:1.1rem;padding:1rem;border:1px solid var(--v3-line);border-left:3px solid var(--v3-red);background:var(--v3-surface-soft)}
.support-manual-card>div{display:grid;gap:.3rem}
.support-manual-card strong{color:var(--v3-navy-900);font-size:.9rem;line-height:1.4}
.support-manual-card small{color:var(--v3-muted);font-size:.75rem}
.support-manual-card .button{justify-self:start;text-decoration:none}
@media(max-width:980px){
  .tutorial-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .tutorial-intro-panel{align-items:flex-start;flex-direction:column}
  .tutorial-status{white-space:normal}
}

/* V3.6.0 — professional lightweight Meeting Schedule */
.dashboard-meetings{display:grid;gap:.75rem;margin:1rem 0}
.dashboard-meetings-heading{align-items:flex-end;margin:0;padding:.1rem .15rem}
.dashboard-meetings-heading h2{margin:.15rem 0 0;color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}
.dashboard-meeting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.meeting-preview-panel{min-height:180px;padding:0;overflow:hidden}
.meeting-preview-title{display:flex;align-items:center;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid var(--v3-line);background:linear-gradient(180deg,#fff,#fafbfc)}
.meeting-preview-title>span{display:grid;width:38px;height:38px;place-items:center;border-radius:7px;background:var(--v3-red);color:#fff;font-size:.72rem;font-weight:900;box-shadow:0 6px 14px rgba(197,54,45,.2)}
.meeting-preview-title>span.upcoming{background:var(--v3-navy-800);box-shadow:0 6px 14px rgba(16,27,49,.18)}
.meeting-preview-title>div{display:grid;gap:.12rem}
.meeting-preview-title strong{color:var(--v3-navy-900);font-size:.9rem}
.meeting-preview-title small{color:var(--v3-muted);font-size:.7rem}
.meeting-preview-list{display:grid;padding:.25rem 1rem .65rem}
.meeting-preview-list.empty-state{place-items:center;min-height:105px;color:var(--v3-muted);font-size:.8rem}
.meeting-preview-item{display:grid;grid-template-columns:58px minmax(0,1fr) 16px;align-items:center;gap:.7rem;padding:.72rem .15rem;border:0;border-bottom:1px solid var(--v3-line);background:#fff;text-align:left;cursor:pointer}
.meeting-preview-item:last-child{border-bottom:0}
.meeting-preview-item:hover strong{color:var(--v3-red)}
.meeting-preview-item time{color:var(--v3-red-dark);font-size:.76rem;font-weight:850;font-variant-numeric:tabular-nums}
.meeting-preview-item>span{display:grid;min-width:0;gap:.16rem}
.meeting-preview-item strong,.meeting-preview-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meeting-preview-item strong{color:var(--v3-navy-900);font-size:.79rem}
.meeting-preview-item small{color:var(--v3-muted);font-size:.69rem}
.meeting-preview-item i{color:#8c96a5;font-size:1rem;font-style:normal}

.meeting-command-bar{position:relative;display:flex;min-height:146px;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:.85rem;padding:1.45rem 1.6rem;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:var(--v3-radius);background:linear-gradient(112deg,rgba(197,54,45,.22),transparent 42%),linear-gradient(135deg,#101b31,#172a48);color:#fff;box-shadow:var(--v3-shadow)}
.meeting-command-bar:after{position:absolute;right:-55px;bottom:-90px;width:260px;height:260px;border:1px solid rgba(255,255,255,.08);border-radius:50%;content:""}
.meeting-command-bar>div{position:relative;z-index:1;max-width:760px}
.meeting-command-bar .eyebrow{margin:0 0 .35rem;color:#f2a7a2}
.meeting-command-bar h2{margin:0;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:1.65rem;line-height:1.18}
.meeting-command-bar p:last-child{max-width:680px;margin:.5rem 0 0;color:#cbd4e1;font-size:.82rem;line-height:1.55}
.meeting-command-bar>.button{position:relative;z-index:1;min-width:170px;box-shadow:0 10px 24px rgba(0,0,0,.2)}

.meeting-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:.85rem}
.meeting-kpi{position:relative;display:grid;min-height:108px;align-content:center;gap:.14rem;padding:1rem 1.1rem;overflow:hidden;border:1px solid var(--v3-line);border-radius:var(--v3-radius);background:#fff;box-shadow:var(--v3-shadow)}
.meeting-kpi:before{position:absolute;inset:0 auto 0 0;width:3px;background:var(--v3-red);content:""}
.meeting-kpi.completed:before{background:#4f8144}
.meeting-kpi span{color:var(--v3-muted);font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.meeting-kpi strong{color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.85rem;line-height:1.1}
.meeting-kpi small{color:var(--v3-muted);font-size:.69rem}

.meeting-planner-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.75fr);gap:.85rem;margin-bottom:.85rem;align-items:stretch}
.meeting-calendar-panel,.meeting-agenda-panel{height:100%}
.meeting-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--v3-line)}
.meeting-calendar-toolbar h2{margin:.12rem 0 0;color:var(--v3-navy-900);font-family:Georgia,"Times New Roman",serif;font-size:1.4rem}
.calendar-actions{display:flex;gap:.4rem}
.calendar-actions .button{min-width:38px;padding-inline:.7rem}
.meeting-calendar-weekdays,.meeting-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.meeting-calendar-weekdays{margin-bottom:.35rem}
.meeting-calendar-weekdays span{padding:.3rem;text-align:center;color:#7a8597;font-size:.64rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.meeting-calendar{overflow:hidden;border:1px solid var(--v3-line);border-radius:8px;background:var(--v3-line);gap:1px}
.meeting-calendar-day{position:relative;display:grid;min-height:88px;align-content:start;gap:.32rem;padding:.55rem;border:0;background:#fff;color:var(--v3-navy-900);text-align:left;cursor:pointer}
.meeting-calendar-day:hover{z-index:1;background:#f7f9fc;box-shadow:inset 0 0 0 1px #aeb9c8}
.meeting-calendar-day.outside{background:#f7f8fa;color:#a2aab5}
.meeting-calendar-day.today{box-shadow:inset 0 0 0 2px var(--v3-red)}
.meeting-calendar-day.selected{background:#fff4f2;box-shadow:inset 0 0 0 2px var(--v3-red)}
.meeting-calendar-day>span{font-size:.73rem;font-weight:850}
.meeting-calendar-day>b{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:var(--v3-navy-900);color:#fff;font-size:.64rem}
.meeting-calendar-day>i{color:var(--v3-muted);font-size:.58rem;font-style:normal}

.meeting-agenda-panel{border-top:3px solid var(--v3-red)}
.meeting-day-agenda{display:grid;gap:.35rem}
.meeting-day-agenda.empty-state{min-height:260px;place-items:center;text-align:center;color:var(--v3-muted);font-size:.78rem}
.meeting-agenda-item{display:grid;grid-template-columns:58px minmax(0,1fr);gap:.65rem;padding:.8rem 0;border:0;border-bottom:1px solid var(--v3-line);background:#fff;text-align:left;cursor:pointer}
.meeting-agenda-item:last-child{border-bottom:0}
.meeting-agenda-item:hover strong{color:var(--v3-red)}
.meeting-agenda-time{color:var(--v3-red-dark);font-size:.76rem;font-weight:900;font-variant-numeric:tabular-nums}
.meeting-agenda-item>span:last-child{display:grid;gap:.2rem}
.meeting-agenda-item strong{color:var(--v3-navy-900);font-size:.78rem}
.meeting-agenda-item small{color:var(--v3-muted);font-size:.67rem}

.meeting-register-panel{border-top:3px solid var(--v3-navy-800)}
.meeting-filters{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:.65rem;margin:.8rem 0}
.meeting-filters select{min-height:40px}
.meeting-table{min-width:1250px}
.meeting-table td{vertical-align:top}
.meeting-table td:nth-child(1){min-width:130px}
.meeting-table td:nth-child(2){min-width:190px}
.meeting-table td:nth-child(3){min-width:190px}
.meeting-table td:nth-child(4){min-width:210px}
.meeting-table-note{display:block;max-width:260px;margin-top:.38rem;color:#5a6577;font-size:.68rem;line-height:1.4;white-space:normal}
.meeting-attendees{display:block;max-width:250px;color:#445167;line-height:1.45}
.meeting-link{color:var(--v3-red-dark);font-weight:800;text-decoration:none}
.meeting-link:hover{text-decoration:underline}
.meeting-status{display:inline-flex;width:max-content;align-items:center;padding:.28rem .5rem;border-radius:999px;font-size:.65rem;font-style:normal;font-weight:850}
.meeting-status.is-scheduled{background:#fff0ce;color:#81530b}
.meeting-status.is-completed{background:#e5f1e3;color:#356331}
.meeting-status.is-cancelled{background:#eef0f3;color:#687281}

.meeting-dialog-card{width:min(760px,calc(100vw - 2rem));max-height:min(90vh,860px);overflow:auto}
.meeting-dialog-card .dialog-actions{position:sticky;bottom:0;z-index:2;margin:1rem -1.5rem -1.5rem;padding:1rem 1.5rem;background:rgba(255,255,255,.97);border-top:1px solid var(--v3-line);box-shadow:0 -8px 18px rgba(12,29,50,.06);backdrop-filter:blur(6px)}
.meeting-attendee-fieldset{display:grid;gap:.8rem;margin:1rem 0 0;padding:1rem;border:1px solid var(--v3-line);border-radius:8px;background:#fafbfc}
.meeting-attendee-fieldset legend{padding:0 .35rem;color:var(--v3-navy-900);font-size:.75rem;font-weight:850}
.meeting-all-employees{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem;border:1px solid var(--v3-line);border-radius:7px;background:#fff;cursor:pointer}
.meeting-all-employees input{width:18px;height:18px;margin-top:.1rem;accent-color:var(--v3-red)}
.meeting-all-employees span{display:grid;gap:.12rem}
.meeting-all-employees strong{color:var(--v3-navy-900);font-size:.8rem}
.meeting-all-employees small,.meeting-attendee-fieldset label>small{color:var(--v3-muted);font-size:.68rem;font-weight:500;line-height:1.45}
#meetingAttendeeLabel{display:grid;gap:.35rem}
#meetingAttendeeLabel.is-disabled{opacity:.48}
#meetingAttendees{min-height:145px;padding:.35rem}
#meetingAttendees option{padding:.42rem .5rem;border-radius:3px}

@media(max-width:1050px){
  .meeting-planner-grid{grid-template-columns:1fr}
  .meeting-day-agenda.empty-state{min-height:130px}
}
@media(max-width:820px){
  .dashboard-meeting-grid,.meeting-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .meeting-command-bar{align-items:flex-start;flex-direction:column}
  .meeting-command-bar>.button{min-width:0}
  .meeting-calendar-day{min-height:70px}
}
@media(max-width:620px){
  .dashboard-meeting-grid,.meeting-kpi-grid,.meeting-filters{grid-template-columns:1fr}
  .meeting-command-bar{padding:1rem}
  .meeting-command-bar h2{font-size:1.35rem}
  .meeting-calendar-panel{padding:.6rem}
  .meeting-calendar-day{min-height:50px;padding:.35rem}
  .meeting-calendar-day>i{display:none}
  .meeting-calendar-toolbar{align-items:flex-start;flex-direction:column}
}
