/* ═══════════════════════════════════════════════════════════
   "Executive Glass" — Royal Commission identity glassmorphism
   Light, cool olive-gray canvas · frosted glass surfaces ·
   identity palette: royal blue + violet + fresh green + sky.
   Per-department colors preserved (LS=green, CE=royal,
   OTS=violet, QC=sky) to match the entry-screen agreement.
   ═══════════════════════════════════════════════════════════ */
:root {
  /* canvas + glass surfaces */
  --bg: #eef1ee;
  --bg2: rgba(255,255,255,.75);
  --bg3: rgba(255,255,255,.58);
  --bg4: rgba(255,255,255,.88);
  --glass-hi: rgba(255,255,255,.92);
  --border: rgba(66,78,66,.14);
  --border2: rgba(66,78,66,.26);
  --text: #212a24;
  --text2: #515c54;
  --text3: #7f8a82;
  /* identity palette */
  --navy: #0e1c6e;
  --green: #22c55e;  --green2: #1a9e4f;  --green3: #15833f;
  --blue: #2947dd;   --blue2: #1f37c0;
  --amber: #b3862c;  --amber2: #946d1f;
  --red: #d64a43;    --red2: #c03a34;
  --purple: #7c33ec; --violet: #7c33ec;
  --teal: #3ec5ff;   --sky: #3ec5ff;
  /* per-department (identity-mapped) */
  --ls-color: #22c55e;
  --ce-color: #2947dd;
  --ots-color: #7c33ec;
  --qc-color: #3ec5ff;
  --radius: 10px;
  --radius-lg: 16px;
  --font: 'IBM Plex Sans Arabic','Plus Jakarta Sans','Cairo',sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  --shadow: 0 2px 8px -2px rgba(40,56,44,.14);
  --shadow-lg: 0 22px 60px -18px rgba(30,44,34,.30);
  --glass-blur: blur(16px) saturate(1.35);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--text);font-size:14px;line-height:1.6;min-height:100vh;overflow-x:hidden;
  background:linear-gradient(160deg,#eef1ee,#e9edf1 52%,#edf1ef);background-attachment:fixed}
/* subtle identity tint the frosted glass refracts (kept calm in light mode) */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
   radial-gradient(46rem 30rem at 88% -10%,rgba(124,51,236,.07),transparent 60%),
   radial-gradient(44rem 32rem at 0% 108%,rgba(41,71,221,.06),transparent 62%),
   radial-gradient(40rem 28rem at 106% 78%,rgba(62,197,255,.05),transparent 62%)}
a{color:var(--blue);text-decoration:none}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(66,78,66,.28);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(66,78,66,.45)}

/* ─── LAYOUT ─── */
#app{display:flex;min-height:100vh}
#sidebar{width:230px;min-width:230px;background:linear-gradient(170deg,rgba(255,255,255,.66),rgba(255,255,255,.5));
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border-inline-end:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;inset-inline-start:0;height:100vh;overflow-y:auto;z-index:100;transition:transform .2s}
#main{margin-inline-start:230px;flex:1;min-height:100vh;display:flex;flex-direction:column}
#topbar{background:rgba(255,255,255,.6);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border-bottom:1px solid var(--border);padding:0 20px;height:48px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}
#content{flex:1;padding:24px}

/* ─── SIDEBAR ─── */
.sidebar-logo{flex:0 0 48px;min-height:48px;max-height:48px;padding:13px 14px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.sidebar-logo h1{font-size:12px;font-weight:800;color:var(--navy);letter-spacing:.3px;line-height:1.3}
.sidebar-logo p{font-size:10px;color:var(--text3);margin-top:2px}
.sidebar-section{padding:8px 8px 4px;font-size:10px;font-weight:700;color:var(--text3);letter-spacing:.8px;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);margin:1px 8px;cursor:pointer;font-size:13px;color:var(--text2);transition:.12s;border:1px solid transparent;position:relative;font-weight:600}
.nav-item:hover{background:var(--bg3);color:var(--text)}
.nav-item.active{background:linear-gradient(120deg,rgba(41,71,221,.13),transparent);color:var(--blue);font-weight:700}
.nav-item .icon{width:16px;text-align:center;opacity:.7}
.nav-item.active .icon{opacity:1}
.dept-tag{margin-right:auto;font-size:9px;padding:1px 5px;border-radius:3px;font-weight:600}
.sidebar-bottom{margin-top:auto;padding:12px;border-top:1px solid var(--border)}
.user-pill{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--radius);background:var(--bg3);border:1px solid var(--border)}
.avatar{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}

/* ─── TOPBAR ─── */
.topbar-title{font-size:14px;font-weight:700;color:var(--text)}
.topbar-right{display:flex;align-items:center;gap:10px}
.week-badge{background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:12px;font-family:var(--mono);color:var(--text2)}
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:var(--radius);border:1px solid var(--border2);
  background:var(--bg4);backdrop-filter:blur(6px);color:var(--text);font-family:var(--font);font-size:12px;cursor:pointer;transition:.14s;font-weight:600}
.btn:hover{background:var(--glass-hi);border-color:var(--blue);color:var(--blue);transform:translateY(-1px);box-shadow:0 4px 12px rgba(40,56,44,.12)}
.btn:active{transform:translateY(0)}
.btn-primary{background:linear-gradient(135deg,#3b60f2,var(--blue));border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(41,71,221,.32)}
.btn-primary:hover{background:linear-gradient(135deg,#4a6dff,#2f4de0);color:#fff;box-shadow:0 6px 18px rgba(41,71,221,.42)}
.btn-danger{background:transparent;border-color:var(--red);color:var(--red)}
.btn-danger:hover{background:rgba(214,74,67,.1);color:var(--red)}
.btn-sm{padding:5px 11px;font-size:11px}
.btn .ic{opacity:.92}

/* ─── CARDS ─── */
.card{background:linear-gradient(160deg,rgba(255,255,255,.66),rgba(255,255,255,.52));backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s}
.card:hover{border-color:var(--border2)}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.card-title{font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px}
.card-sub{font-size:11px;color:var(--text3);margin-top:2px}

/* ─── STAT CARDS ─── */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin-bottom:14px}
.stat-card{background:linear-gradient(160deg,rgba(255,255,255,.7),rgba(255,255,255,.52));backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;position:relative;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s}
.stat-card::before{content:'';position:absolute;top:0;inset-inline:0;height:3px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.stat-card.green::before{background:linear-gradient(90deg,var(--green),#5fe08a)}
.stat-card.blue::before{background:linear-gradient(90deg,var(--blue),#5b7bf5)}
.stat-card.amber::before{background:linear-gradient(90deg,var(--violet),#a06ef2)}
.stat-card.red::before{background:linear-gradient(90deg,var(--sky),#8fdcff)}
.stat-card:hover{transform:translateY(-3px);border-color:var(--border2);box-shadow:0 14px 34px -12px rgba(30,44,34,.24)}
.stat-label{font-size:10px;font-weight:700;color:var(--text3);margin-bottom:8px;text-transform:uppercase;letter-spacing:.6px}
.stat-value{font-size:30px;font-weight:800;font-family:var(--mono);line-height:1;color:var(--text);letter-spacing:-.02em}
.stat-delta{font-size:11px;color:var(--text3);margin-top:6px}
.stat-delta.up{color:var(--green2)}
.stat-delta.down{color:var(--red)}

/* --- DESIGN LOG --- */
.dl-btn{background:transparent;border:1px solid var(--border);border-radius:5px;padding:3px 5px;cursor:pointer;color:var(--text3);transition:all .15s}
.dl-btn:hover,.dl-btn-active{background:rgba(124,51,236,.12);border-color:var(--purple);color:var(--purple)}
.dl-sub-row td{padding:0!important;background:var(--bg3)}
.dl-panel{padding:10px 14px 14px;border-top:2px solid var(--purple)}
.dl-panel-header{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:var(--purple);margin-bottom:8px}
.dl-stats{font-size:10px;color:var(--text3);font-weight:400;margin-inline-start:auto}
.dl-table{width:100%;border-collapse:collapse;font-size:11px}
.dl-table th{background:rgba(124,51,236,.08);color:var(--purple);font-weight:700;padding:5px 8px;text-align:start;border-bottom:1px solid var(--border)}
.dl-table td{padding:5px 8px;border-bottom:1px solid var(--border)}
.dl-history-row:hover td{background:rgba(20,40,30,.03)}
.dl-input-row td{background:rgba(34,197,94,.05)}
.dl-input{background:var(--glass-hi);border:1px solid var(--border2);border-radius:5px;padding:3px 6px;color:var(--text);font-size:11px;font-family:inherit;width:auto}
.dl-input:focus{outline:none;border-color:var(--purple)}
.dl-badge{display:inline-block;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:700}
.dl-done{background:rgba(34,197,94,.14);color:var(--green2)}
.dl-progress{background:rgba(179,134,44,.14);color:var(--amber)}
.dl-type-badge{display:inline-block;background:rgba(41,71,221,.12);color:var(--blue);border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;font-family:var(--mono)}
.dl-finish-btn{background:transparent;border:1px solid var(--green2);color:var(--green2);border-radius:5px;padding:2px 8px;font-size:10px;cursor:pointer;transition:all .15s}
.dl-finish-btn:hover{background:var(--green2);color:#fff}
.dl-week{font-family:var(--mono);color:var(--text3);font-size:10px}
.dl-name{font-weight:600}
.dl-hrs{font-family:var(--mono);text-align:end}
@keyframes spin{to{transform:rotate(360deg)}}
.ic-spin{animation:spin .8s linear infinite}

/* --- STATUS STRIP --- */
.status-strip{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.status-chip{flex:1;min-width:140px;background:var(--bg2);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:12px;transition:transform .15s,box-shadow .15s;border-inline-start:3px solid transparent}
.status-chip:hover{transform:translateY(-2px);box-shadow:0 8px 22px -10px rgba(30,44,34,.2)}
.status-chip.sc-done{border-inline-start-color:var(--green);background:linear-gradient(135deg,var(--bg2),rgba(34,197,94,.07))}
.status-chip.sc-none{border-inline-start-color:var(--border2)}
.status-chip.sc-risk{border-inline-start-color:var(--red);background:linear-gradient(135deg,var(--bg2),rgba(214,74,67,.07))}
.sc-icon{width:24px;height:24px;flex-shrink:0}
.sc-val{font-size:24px;font-weight:800;font-family:var(--mono);line-height:1}
.sc-lbl{font-size:10px;color:var(--text3);margin-top:3px;text-transform:uppercase;letter-spacing:.5px}

/* ─── PROGRESS ─── */
.progress-bar{height:7px;background:rgba(66,78,66,.14);border-radius:99px;overflow:hidden;margin-top:4px}
.progress-fill{height:100%;border-radius:99px;transition:width .4s ease}
.progress-fill.green{background:linear-gradient(90deg,var(--green),#5fe08a)}
.progress-fill.blue{background:linear-gradient(90deg,var(--blue),#5b7bf5)}
.progress-fill.amber{background:linear-gradient(90deg,var(--violet),#a06ef2)}
.progress-fill.red{background:linear-gradient(90deg,var(--red),#f08a84)}

/* ─── TABLE ─── */
.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:12px}
th{background:var(--bg3);color:var(--text2);font-weight:700;font-size:11px;padding:9px 10px;text-align:start;border-bottom:1px solid var(--border);white-space:nowrap;letter-spacing:.3px}
td{padding:7px 10px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(20,40,30,.03)}
td.mono{font-family:var(--mono);font-size:11px}
td.muted{color:var(--text3)}
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.badge-green{background:rgba(34,197,94,.16);color:var(--green2)}
.badge-blue{background:rgba(41,71,221,.15);color:var(--blue)}
.badge-amber{background:rgba(179,134,44,.16);color:var(--amber2)}
.badge-red{background:rgba(214,74,67,.15);color:var(--red)}
.badge-gray{background:var(--bg3);color:var(--text3)}

/* ─── FORMS ─── */
.form-group{margin-bottom:14px}
.form-label{display:block;font-size:11px;font-weight:700;color:var(--text2);margin-bottom:5px;letter-spacing:.3px}
.form-input,.form-select,.form-textarea{width:100%;background:var(--glass-hi);border:1px solid var(--border2);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:13px;padding:8px 11px;transition:.12s;outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(41,71,221,.15)}
.form-select{appearance:none;cursor:pointer}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* ─── EDITABLE TABLE CELL ─── */
.cell-input{width:100%;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text);font-family:var(--mono);font-size:11px;padding:4px 5px;text-align:center;transition:.1s;outline:none}
.cell-input:hover{border-color:var(--border2);background:var(--glass-hi)}
.cell-input:focus{border-color:var(--blue);background:var(--glass-hi);box-shadow:0 0 0 2px rgba(41,71,221,.15)}
.cell-input[readonly]{color:var(--text3);cursor:default}
.cell-input[readonly]:hover{border-color:transparent;background:transparent}
.cell-input::-webkit-outer-spin-button,.cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cell-input[type=number]{-moz-appearance:textfield;appearance:textfield}

/* ─── MODAL ─── */
.modal-overlay{position:fixed;inset:0;background:rgba(30,44,34,.32);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(6px)}
.modal{background:linear-gradient(160deg,rgba(255,255,255,.82),rgba(255,255,255,.7));backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);
  border:1px solid var(--glass-hi);border-radius:var(--radius-lg);padding:20px;width:520px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modalPop .18s cubic-bezier(.16,1,.3,1)}
@keyframes modalPop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.modal-title{font-size:15px;font-weight:800;display:inline-flex;align-items:center;gap:8px}
.modal-close{background:none;border:none;color:var(--text3);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:5px;transition:.12s}
.modal-close:hover{background:var(--bg3);color:var(--text)}
.modal-close .ic{width:15px;height:15px;stroke-width:2.4}
.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}

/* ─── ALERTS / TOAST ─── */
.toast-container{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(255,255,255,.72));backdrop-filter:blur(18px);border:1px solid var(--glass-hi);border-radius:var(--radius);padding:11px 16px;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);animation:slideIn .2s ease;min-width:200px;text-align:center;color:var(--text)}
.toast.success{border-color:rgba(34,197,94,.5);color:var(--green2)}
.toast.error{border-color:rgba(214,74,67,.5);color:var(--red)}
.toast.info{border-color:rgba(41,71,221,.5);color:var(--blue)}
@keyframes slideIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}

/* ─── REMINDER BELL ─── */
.bell-btn{position:relative;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text2);transition:.12s}
.bell-btn:hover{background:var(--glass-hi);color:var(--blue)}
.bell-btn .ic{width:17px;height:17px}
.bell-dot{position:absolute;top:5px;left:5px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid #fff;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}

/* ─── VIEWS ─── */
.view{display:none}
.view.active{display:block}

/* ─── LOGIN ─── */
#login-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:500;
  background:linear-gradient(160deg,#eef1ee,#e9edf1 52%,#edf1ef)}
.login-box{background:linear-gradient(160deg,rgba(255,255,255,.78),rgba(255,255,255,.62));backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);
  border:1px solid var(--glass-hi);border-radius:22px;padding:34px;width:370px;box-shadow:var(--shadow-lg)}
.login-logo{text-align:center;margin-bottom:24px}
.login-logo h1{font-size:19px;font-weight:900;color:var(--navy);margin-bottom:4px;display:flex;align-items:center;justify-content:center;gap:8px;line-height:1}
.login-logo h1 .ic{width:18px;height:18px;color:var(--blue)}
.login-logo p{font-size:11px;color:var(--text3)}
.login-logo .rc-badge{font-size:9px;background:rgba(41,71,221,.1);border:1px solid rgba(41,71,221,.28);color:var(--blue);border-radius:5px;padding:2px 8px;display:inline-block;margin-top:6px;letter-spacing:.5px;font-weight:700}
.divider{height:1px;background:var(--border);margin:16px 0}
.demo-accounts{background:var(--bg3);border-radius:var(--radius);padding:10px 12px;margin-bottom:16px}
.demo-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;cursor:pointer;border-radius:5px;transition:.1s}
.demo-row:hover{background:var(--glass-hi);padding:3px 4px}
.demo-row span{font-size:11px;color:var(--text2)}
.demo-row code{font-family:var(--mono);font-size:10px;color:var(--text3)}

/* ─── CHARTS ─── */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.chart-wrap{position:relative;height:200px}

/* ─── SECTION HEADER ─── */
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.section-title{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}
.section-title .ic{color:var(--blue)}
.section-actions{display:flex;gap:8px}

/* ─── DEPT HEADER BAND ─── */
.dept-band{border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;border:1px solid;display:flex;align-items:center;gap:10px;backdrop-filter:blur(8px)}
.dept-band.ls{background:rgba(34,197,94,.10);border-color:rgba(34,197,94,.30);color:var(--ls-color)}
.dept-band.ce{background:rgba(41,71,221,.10);border-color:rgba(41,71,221,.30);color:var(--ce-color)}
.dept-band.ots{background:rgba(124,51,236,.10);border-color:rgba(124,51,236,.30);color:var(--ots-color)}
.dept-band.qc{background:rgba(62,197,255,.12);border-color:rgba(62,197,255,.34);color:#159fe0}
.dept-band h3{font-size:14px;font-weight:800;margin:0}
.dept-band p{font-size:11px;opacity:.7;margin:0}
.dept-band .ic{flex-shrink:0}

/* ─── REPORT TABLE ─── */
.report-table{width:100%;border-collapse:collapse;font-size:11px}
.report-table th{background:var(--bg3);color:var(--text2);padding:7px 8px;text-align:center;border:1px solid var(--border);font-size:10px;font-weight:700;white-space:nowrap}
.report-table td{border:1px solid var(--border);padding:5px 6px;vertical-align:middle}
.report-table td.item-no{width:60px;text-align:center;color:var(--text3);font-family:var(--mono);font-size:10px;white-space:nowrap}
.report-table td.description{text-align:start;color:var(--text);max-width:280px}
.report-table tr.category-row td{background:var(--bg3);color:var(--text);font-weight:800;font-size:11px;border-top:2px solid var(--sect,var(--border2))}
/* Section start marker: a bold colored bar on the first cell of each category
   header row. --sect is set per-department on the table container and inherited
   here, so Landscape/Civil/OTS/QC each keep their own identity hue. */
.report-table tr.category-row td.item-no{border-inline-start:4px solid var(--sect,var(--green))}
.report-table tr.section-row td{background:rgba(34,197,94,.06);color:var(--green2);font-weight:700}
/* ── Option 1: entry-grid hierarchy (Amira) ──
   Group-level header (bare-integer item_no, e.g. "6"): a lighter band than the
   section, marked by a colored number chip so main groups read at a glance. */
.report-table tr.group-row td.grp-cell{background:var(--bg2);border-top:1px solid var(--border);border-inline-start:4px solid var(--sect,var(--green));padding:6px 12px}
.report-table tr.group-row .grp{display:flex;align-items:center;gap:9px}
.report-table tr.group-row .grp-n{min-width:22px;height:22px;padding:0 5px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:800;font-size:11px;color:#fff;background:var(--sect,var(--green))}
.report-table tr.group-row .grp-t{font-weight:800;font-size:12.5px;color:var(--text)}
/* Leaf child (dotted item_no, e.g. "6.01"): indent + a tree connector line so it
   reads as belonging under its group. */
.report-table tr.entry-child td.description{position:relative;padding-inline-start:26px}
.report-table tr.entry-child td.description::before{content:'';position:absolute;inset-inline-start:11px;top:0;bottom:50%;width:9px;border-inline-start:1.5px solid var(--border2,#cdd6e0);border-bottom:1.5px solid var(--border2,#cdd6e0);border-end-start-radius:5px}
/* Main-item number square chip (Amira): bare-integer item numbers read as a
   colored square (green=on track / red=behind) so main items stand out from
   dotted sub-items. Color set inline from itemStatus. */
.report-table td.item-no .num-chip{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:6px;color:#fff;font-weight:800;font-size:10px;font-family:var(--mono);line-height:1}
.pct-cell{text-align:center;font-family:var(--mono);font-size:10px;font-weight:700}
/* Primary data-entry column ("This Week") — clearly distinct so the eye lands
   on the column users type into. */
.report-table th.col-entry,.report-table td.col-entry{background:rgba(34,197,94,.14);border-inline:2px solid rgba(34,197,94,.42)}
.report-table td.col-entry .cell-input{font-weight:700;color:var(--text)}

/* ─── COLUMN MANAGER ─── */
.col-chip{display:inline-flex;align-items:center;gap:5px;background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:4px 10px;font-size:11px;margin:3px}
.col-chip .remove-col{background:none;border:none;color:var(--text3);cursor:pointer;font-size:12px;line-height:1;transition:.1s}
.col-chip .remove-col:hover{color:var(--red)}
.col-type-badge{font-size:9px;color:var(--text3)}

/* ─── REMINDER LIST ─── */
.reminder-item{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;display:flex;align-items:flex-start;gap:10px}
.reminder-icon{font-size:18px;margin-top:2px}
.reminder-body{flex:1}
.reminder-title{font-size:13px;font-weight:700}
.reminder-meta{font-size:11px;color:var(--text3);margin-top:2px}
.reminder-dept{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:700}
.reminder-actions{display:flex;gap:4px;margin-top:6px}

/* ─── DASHBOARD DEPT ROWS ─── */
.dept-summary-card{background:linear-gradient(160deg,rgba(255,255,255,.64),rgba(255,255,255,.5));backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s}
.dept-summary-card:hover{transform:translateY(-2px);border-color:var(--border2);box-shadow:0 12px 30px -12px rgba(30,44,34,.22)}
.dept-summary-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.dept-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}
.dept-name{font-weight:700;font-size:13px}
.dept-items-count{font-size:11px;color:var(--text3)}
.dept-progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mini-stat{text-align:center;background:var(--bg3);border:1px solid var(--border);border-radius:9px;padding:9px 4px;transition:background .15s}
.mini-stat:hover{background:var(--glass-hi)}
.mini-stat-val{font-size:15px;font-weight:800;font-family:var(--mono);color:var(--text)}
.mini-stat-label{font-size:9px;color:var(--text3);margin-top:3px;text-transform:uppercase;letter-spacing:.3px}

/* ─── EMPTY STATE ─── */
.empty-state{text-align:center;padding:60px 20px;color:var(--text3)}
.empty-state-icon{font-size:40px;margin-bottom:10px;opacity:.4}
.empty-state p{font-size:13px}

/* ─── NOTIFICATION PANEL ─── */
.notif-panel{position:fixed;top:52px;inset-inline-end:10px;width:320px;background:linear-gradient(160deg,rgba(255,255,255,.82),rgba(255,255,255,.7));backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);
  border:1px solid var(--glass-hi);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;display:none;max-height:400px;overflow-y:auto}
.notif-panel.open{display:block}
.notif-header{padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text2)}
.notif-item{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:.1s}
.notif-item:hover{background:var(--bg3)}
.notif-item:last-child{border-bottom:none}
.notif-item-title{font-size:12px;font-weight:700}
.notif-item-time{font-size:10px;color:var(--text3);margin-top:2px}

/* ─── COLUMN TOGGLE MENU ─── */
.col-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}
.col-toggle-row:last-child{border-bottom:none}
.toggle-switch{position:relative;width:34px;height:19px;cursor:pointer}
.toggle-switch input{opacity:0;width:0;height:0;position:absolute}
.toggle-track{position:absolute;inset:0;background:rgba(66,78,66,.2);border:1px solid var(--border2);border-radius:99px;transition:.2s}
.toggle-thumb{position:absolute;top:2px;right:2px;width:13px;height:13px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle-switch input:checked + .toggle-track{background:rgba(34,197,94,.35);border-color:var(--green)}
.toggle-switch input:checked ~ .toggle-thumb{background:#fff;right:17px}

/* ─── WEEK SELECTOR ─── */
.week-nav{display:flex;align-items:center;gap:8px}
.week-nav-btn{background:var(--bg3);border:1px solid var(--border);border-radius:7px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text2);transition:.1s;font-size:14px}
.week-nav-btn:hover{background:var(--glass-hi);color:var(--blue)}
.week-display{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);min-width:60px;text-align:center}
/* ─── PICKER DROPDOWN ─── */
.picker-wrap{position:relative}
.picker-dropdown{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(255,255,255,.72));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--glass-hi);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:500;min-width:90px;max-height:220px;overflow-y:auto;display:none}
.picker-dropdown.open{display:block}
.picker-item{padding:7px 14px;font-size:12px;font-family:var(--mono);cursor:pointer;text-align:center;color:var(--text2);transition:.1s}
.picker-item:hover{background:var(--bg3);color:var(--text)}
.picker-item.active{background:rgba(41,71,221,.15);color:var(--blue);font-weight:700}

/* ─── CONFIG WARNING ─── */
.config-warning{background:rgba(179,134,44,.1);border:1px solid rgba(179,134,44,.32);border-radius:var(--radius);padding:12px 16px;margin-bottom:20px;font-size:12px;color:var(--amber2)}
.config-warning strong{font-weight:800;display:block;margin-bottom:4px}

/* ─── TABS ─── */
.tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:3px}
.tab{flex:1;padding:7px 10px;border-radius:7px;border:none;background:none;color:var(--text3);font-family:var(--font);font-size:12px;cursor:pointer;transition:.12s;font-weight:600}
.tab.active{background:var(--glass-hi);color:var(--blue);box-shadow:var(--shadow)}
.tab:hover:not(.active){color:var(--text2)}

/* ─── RESPONSIVE ─── */
#hamburger{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--text);font-size:20px;line-height:1}
#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(30,44,34,.35);z-index:99;backdrop-filter:blur(2px)}
@media(max-width:900px){
  #hamburger{display:flex;align-items:center}
  #sidebar{transform:translateX(100%);transition:transform .25s ease}
  html[dir="ltr"] #sidebar{transform:translateX(-100%)}
  #sidebar.open,html[dir="ltr"] #sidebar.open{transform:translateX(0)}
  #sidebar-overlay.show{display:block}
  #main{margin-inline-start:0}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .charts-grid{grid-template-columns:1fr}
  #content{padding:14px}
  .section-header{flex-wrap:wrap;gap:8px}
  .section-actions{flex-wrap:wrap;gap:4px}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .modal{width:95vw!important;max-width:95vw!important;margin:8px}
  .form-row{grid-template-columns:1fr}
}
@media(max-width:480px){
  .stat-grid{grid-template-columns:1fr 1fr}
  .btn{font-size:11px;padding:6px 10px}
  #topbar{padding:0 12px}
}

/* ═══════════ SVG ICON SYSTEM ═══════════ */
.ic{width:16px;height:16px;flex-shrink:0;display:inline-block;vertical-align:-2px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.ic-lg{width:20px;height:20px}
.ic-xl{width:32px;height:32px;stroke-width:1.75}
.ic-spin{animation:icspin 1s linear infinite}
@keyframes icspin{to{transform:rotate(360deg)}}

/* ═══════════ DASHBOARD & NUMBER POLISH ═══════════ */
/* Sidebar header: give it room so the title/subtitle never clip */
.sidebar-logo{flex:0 0 auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:16px 16px 14px;display:flex;flex-direction:column;gap:3px}
.sidebar-logo h1{font-size:13.5px;font-weight:800;color:var(--navy);line-height:1.25;letter-spacing:-.01em}
.sidebar-logo p{font-size:10.5px;color:var(--text3)}

/* Numbers: larger + higher contrast everywhere they're read */
.stat-value{font-size:37px;font-weight:800;color:#131f18;letter-spacing:-.035em}
.stat-label{font-size:11px;color:var(--text2);font-weight:700}
.report-table{font-size:12px}
.report-table td.mono,.report-table td.item-no,.report-table .pct-cell{font-weight:700}
.report-table td.mono,.report-table .pct-cell{color:#131f18}
.report-table td.col-entry .cell-input{font-size:13px;font-weight:800;color:#131f18}
.cell-input{font-size:12.5px;font-weight:700;color:#1a271f}
td.mono{font-size:12px;font-weight:700;color:var(--text)}
.mini-stat-val{font-size:18px;color:#131f18}
.sc-val{font-size:27px;color:#131f18}
.week-display{font-size:14px;font-weight:800;color:var(--text)}
.dept-summary-header .dept-name{font-size:14px}

/* Premium stat cards: accent-tinted glass + colored icon tile + colored glow */
.stat-card{padding:18px 18px 16px}
.stat-card.green{background:linear-gradient(158deg,rgba(255,255,255,.74),rgba(34,197,94,.10))}
.stat-card.blue{background:linear-gradient(158deg,rgba(255,255,255,.74),rgba(41,71,221,.10))}
.stat-card.amber{background:linear-gradient(158deg,rgba(255,255,255,.74),rgba(124,51,236,.10))}
.stat-card.red{background:linear-gradient(158deg,rgba(255,255,255,.74),rgba(62,197,255,.12))}
.stat-card.green:hover{box-shadow:0 16px 38px -14px rgba(34,197,94,.42)}
.stat-card.blue:hover{box-shadow:0 16px 38px -14px rgba(41,71,221,.42)}
.stat-card.amber:hover{box-shadow:0 16px 38px -14px rgba(124,51,236,.42)}
.stat-card.red:hover{box-shadow:0 16px 38px -14px rgba(62,197,255,.42)}
.stat-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;float:inline-end;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.stat-ic svg{width:20px;height:20px;stroke-width:2}
.stat-card.green .stat-ic{background:rgba(34,197,94,.16);color:var(--green2)}
.stat-card.blue .stat-ic{background:rgba(41,71,221,.14);color:var(--blue)}
.stat-card.amber .stat-ic{background:rgba(124,51,236,.14);color:var(--violet)}
.stat-card.red .stat-ic{background:rgba(62,197,255,.18);color:#159fe0}
.dept-dot{box-shadow:0 0 10px currentColor}

/* ═══════════ #1 SOLID DATA GRIDS (not glass) ═══════════ */
/* Dense entry/report tables get a flat, opaque, high-legibility surface — glass
   is reserved for the dashboard, topbar, side cards and modals. Easier on the
   eyes over long data-entry sessions, fewer misreads, faster on weak devices. */
#view-report-entry .card,#view-report-view .card{background:#fcfdfc;backdrop-filter:none;-webkit-backdrop-filter:none}
.report-table{background:#fff}
.report-table td{background:#fff}
.report-table tbody tr:nth-child(even) td{background:#f5f8f4}
.report-table tbody tr:hover td{background:#e9f1ea}
.report-table thead th{background:#eef2ec;backdrop-filter:none}
.report-table td.col-entry{background:rgba(34,197,94,.16)!important}
.report-table tr.category-row td{background:#edf1ea!important}
/* hours columns — distinguished in sky/blue (distinct from the green entry column) */
.report-table th.col-hours,.report-table td.col-hours{background:rgba(62,197,255,.12)!important;border-inline:1.5px solid rgba(62,197,255,.34)}
.report-table th.col-hours{color:#159fe0}

/* ═══════════ #9 QUICK ACTIONS ═══════════ */
.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.qa-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:12px;border:1px solid var(--border);
  background:linear-gradient(160deg,rgba(255,255,255,.72),rgba(255,255,255,.54));backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  color:var(--text);font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;transition:.15s;box-shadow:var(--shadow)}
.qa-btn:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(41,71,221,.32)}
.qa-btn .ic{width:17px;height:17px}

/* ═══════════ #6 CRITICAL ROW FLAGS ═══════════ */
.report-table tr.row-crit-bad td{background:rgba(214,74,67,.09)!important}
.report-table tr.row-crit-bad td.item-no{box-shadow:inset 3px 0 0 var(--red)}
.report-table tr.row-crit-warn td{background:rgba(179,134,44,.08)!important}
.report-table tr.row-crit-warn td.item-no{box-shadow:inset 3px 0 0 var(--amber)}
.report-table tr.row-crit-bad:hover td{background:rgba(214,74,67,.15)!important}
.report-table tr.row-crit-warn:hover td{background:rgba(179,134,44,.14)!important}
.crit-flag{vertical-align:-2px;cursor:help}
/* focused row when opened from an alert (exec / supervisor "Open") */
.report-table tr.row-focus td{background:rgba(41,71,221,.16)!important;transition:background .3s}
.report-table tr.row-focus td.item-no{box-shadow:inset 4px 0 0 var(--blue)!important}
.report-table tr.row-focus td.col-entry{background:rgba(41,71,221,.24)!important}

/* ═══════════ #20 COMMAND PALETTE (Ctrl+K) ═══════════ */
.cmdk-overlay{position:fixed;inset:0;background:rgba(30,44,34,.34);backdrop-filter:blur(6px);z-index:3000;display:none;align-items:flex-start;justify-content:center;padding-top:14vh}
.cmdk-overlay.open{display:flex}
.cmdk{width:560px;max-width:92vw;background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.78));backdrop-filter:blur(28px) saturate(1.4);border:1px solid var(--glass-hi);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;animation:modalPop .16s cubic-bezier(.16,1,.3,1)}
.cmdk-input{width:100%;border:none;background:transparent;padding:16px 18px;font-family:var(--font);font-size:16px;color:var(--text);outline:none;border-bottom:1px solid var(--border)}
.cmdk-list{max-height:320px;overflow-y:auto;padding:6px}
.cmdk-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;cursor:pointer;font-size:13.5px;color:var(--text);font-weight:600}
.cmdk-item .ic{width:16px;height:16px;color:var(--text3)}
.cmdk-item.sel,.cmdk-item:hover{background:var(--royal-soft,rgba(41,71,221,.12));color:var(--blue)}
.cmdk-item.sel .ic,.cmdk-item:hover .ic{color:var(--blue)}
.cmdk-item .k{margin-inline-start:auto;font-family:var(--mono);font-size:10px;color:var(--text3);background:var(--bg3);border:1px solid var(--border);border-radius:5px;padding:1px 6px}
.cmdk-empty{padding:20px;text-align:center;color:var(--text3);font-size:13px}
/* ═══════════ #23 LAST-UPDATE STAMP ═══════════ */
.last-stamp{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text3);font-weight:600}
.last-stamp .ic{width:13px;height:13px;color:var(--green)}
/* #10 sidebar nav counters */
.nav-count{margin-inline-start:auto;font-family:var(--mono);font-size:10px;font-weight:800;color:#fff;background:var(--blue);border-radius:99px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 2px 6px rgba(41,71,221,.35)}
/* dept icon inside tabs/bands inherits local color */
.ic-dept{width:15px;height:15px;vertical-align:-2px}

/* ═══════════ SPLIT LOGIN — identity art panel + form ═══════════ */
#login-screen{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;padding:0}
.login-art{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:46px 44px;color:#fff;
  background:linear-gradient(150deg,var(--violet),#12235e 55%,var(--blue))}
.login-art::before{content:"";position:absolute;inset:0;background:
  radial-gradient(680px 420px at 88% -12%,rgba(62,197,255,.38),transparent),
  radial-gradient(620px 440px at -8% 110%,rgba(34,197,94,.42),transparent),
  radial-gradient(520px 420px at 55% 45%,rgba(255,255,255,.08),transparent)}
.login-art>*{position:relative;z-index:1}
.la-brand{display:flex;align-items:center;gap:12px}
.la-crest{width:44px;height:44px;border-radius:13px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);display:grid;place-items:center;font-weight:800;font-size:14px}
.la-org{font-weight:800;font-size:15px}
.la-org-en{font-family:var(--mono);font-size:10.5px;opacity:.82;letter-spacing:.3px}
.la-title{font-size:36px;font-weight:800;line-height:1.3;color:#fff;letter-spacing:-.01em}
.la-title::after{content:"";display:block;width:56px;height:4px;border-radius:99px;background:rgba(255,255,255,.6);margin-top:20px}
.la-sub{color:rgba(255,255,255,.85);font-size:14px;max-width:340px;line-height:1.7}
.la-meta{display:flex;gap:24px;font-family:var(--mono);font-size:12px;color:rgba(255,255,255,.72)}
.la-meta b{display:block;color:#fff;font-size:18px;font-weight:700}
/* form panel: the existing .login-box becomes the right-hand pane */
#login-screen .login-box{width:auto;max-width:none;border:none;border-radius:0;box-shadow:none;
  display:flex;flex-direction:column;justify-content:center;padding:46px;
  background:linear-gradient(160deg,var(--bg2),var(--bg3));backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
#login-screen .login-box>*{width:100%;max-width:330px;margin-inline:auto}
.login-head{margin-bottom:22px}
.login-head h2{font-size:23px;font-weight:800;color:var(--text);letter-spacing:-.01em}
.login-head p{font-size:13px;color:var(--text3);margin-top:5px}
/* premium login button */
.login-submit{width:100%;justify-content:center;padding:14px;font-size:15px;font-weight:800;border-radius:13px;margin-top:6px;letter-spacing:.3px;
  background:linear-gradient(135deg,var(--violet),var(--blue) 55%,#3b60f2)!important;border:none!important;color:#fff!important;
  box-shadow:0 8px 22px -6px rgba(41,71,221,.5);transition:transform .18s,box-shadow .18s,filter .18s}
.login-submit:hover{transform:translateY(-2px);box-shadow:0 14px 32px -8px rgba(41,71,221,.6);filter:brightness(1.06)}
.login-submit:active{transform:translateY(0)}
@media(max-width:820px){
  #login-screen{grid-template-columns:1fr}
  .login-art{display:none}
  #login-screen .login-box{padding:32px 22px}
}

/* ═══════════ MOBILE / RESPONSIVE ═══════════ */
/* Executive grids (class-based so they actually respond) */
.ex-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-bottom:16px}
.ex-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.ex-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.ex-perf{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}
@media(max-width:860px){
  .ex-hero,.ex-2,.ex-perf{grid-template-columns:1fr}
  .ex-g4{grid-template-columns:1fr 1fr}
}
/* Topbar: drop non-essentials so the controls fit small screens */
@media(max-width:640px){
  .last-stamp{display:none!important}
  #topbar [title*="غرفة التحكم"],#topbar [onclick="toggleControlRoom()"]{display:none!important}
  #topbar .btn-sm span[data-i18n]{display:none}      /* Excel/PDF → icon only */
  .topbar-right{gap:5px}
  .topbar-title{font-size:12px;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #content{padding:14px 12px}
  .quick-actions{gap:8px}
  .qa-btn{padding:10px 13px;font-size:12px}
}
@media(max-width:440px){
  .ex-g4{grid-template-columns:1fr 1fr}
  .stat-value{font-size:30px}
  .status-legend{gap:8px;font-size:10px}
  .modal{padding:16px}
}
/* #24 status dot (per-row state) + legend */
.stat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:6px;vertical-align:middle;box-shadow:0 0 5px currentColor}
.status-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--text2);margin-bottom:10px;align-items:center}
.status-legend b{color:var(--text3);font-weight:700}
.status-legend span{display:inline-flex;align-items:center;gap:5px}
.status-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}

/* ═══════════════════════════════════════════════════════
   #19 REAL DARK MODE — deep glass on a cool navy-green canvas.
   Identity blues/violets glow beautifully here.
   ═══════════════════════════════════════════════════════ */
:root[data-theme="dark"]{
  --bg:#0c1420;
  --bg2:rgba(255,255,255,.055); --bg3:rgba(255,255,255,.04); --bg4:rgba(255,255,255,.08);
  --glass-hi:rgba(255,255,255,.14);
  --border:rgba(255,255,255,.10); --border2:rgba(255,255,255,.18);
  --text:#e9eef6; --text2:#a7b4c4; --text3:#6f7d8f;
  --navy:#9db4ff;
  --green:#2dd47f; --green2:#34d98a; --green3:#22b56d;
  --blue:#5b7bf5; --blue2:#4a6bec;
  --violet:#9a6bf2; --purple:#9a6bf2;
  --sky:#5cc8ff; --teal:#5cc8ff;
  --ls-color:#2dd47f; --ce-color:#5b7bf5; --ots-color:#9a6bf2; --qc-color:#5cc8ff;
  --shadow:0 2px 10px rgba(0,0,0,.4), 0 14px 34px -14px rgba(0,0,0,.55);
  --shadow-lg:0 24px 60px -16px rgba(0,0,0,.7);
}
:root[data-theme="dark"] body{background:linear-gradient(150deg,#0b111c,#0d1622 48%,#0a1420)}
:root[data-theme="dark"] body::before{background:
  radial-gradient(42rem 28rem at 84% -8%,rgba(124,51,236,.22),transparent 60%),
  radial-gradient(40rem 30rem at 3% 106%,rgba(34,197,94,.16),transparent 60%),
  radial-gradient(46rem 32rem at 106% 72%,rgba(62,197,255,.18),transparent 62%),
  radial-gradient(34rem 24rem at 30% 24%,rgba(41,71,221,.20),transparent 60%)}
/* glass surfaces → dark translucent */
:root[data-theme="dark"] #sidebar{background:linear-gradient(170deg,rgba(255,255,255,.07),rgba(255,255,255,.03))}
:root[data-theme="dark"] #topbar{background:rgba(16,24,36,.6)}
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .dept-summary-card,
:root[data-theme="dark"] .qa-btn{background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.035))}
:root[data-theme="dark"] .modal,
:root[data-theme="dark"] .notif-panel,
:root[data-theme="dark"] .picker-dropdown,
:root[data-theme="dark"] .toast,
:root[data-theme="dark"] .cmdk{background:linear-gradient(160deg,rgba(28,38,54,.92),rgba(20,28,42,.85))}
:root[data-theme="dark"] .login-box{background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.04))}
:root[data-theme="dark"] #login-screen{background:linear-gradient(150deg,#0b111c,#0d1622 48%,#0a1420)}
:root[data-theme="dark"] .stat-card.green{background:linear-gradient(158deg,rgba(255,255,255,.06),rgba(45,212,127,.12))}
:root[data-theme="dark"] .stat-card.blue{background:linear-gradient(158deg,rgba(255,255,255,.06),rgba(91,123,245,.14))}
:root[data-theme="dark"] .stat-card.amber{background:linear-gradient(158deg,rgba(255,255,255,.06),rgba(154,107,242,.14))}
:root[data-theme="dark"] .stat-card.red{background:linear-gradient(158deg,rgba(255,255,255,.06),rgba(92,200,255,.14))}
/* solid data grids → dark */
:root[data-theme="dark"] #view-report-entry .card,
:root[data-theme="dark"] #view-report-view .card{background:#111b28}
:root[data-theme="dark"] .report-table{background:#0f1824}
:root[data-theme="dark"] .report-table td{background:#0f1824}
:root[data-theme="dark"] .report-table tbody tr:nth-child(even) td{background:#131f2e}
:root[data-theme="dark"] .report-table tbody tr:hover td{background:#1a2838}
:root[data-theme="dark"] .report-table thead th{background:#16222f}
:root[data-theme="dark"] .report-table tr.category-row td{background:#182636!important}
:root[data-theme="dark"] .report-table tr.group-row td.grp-cell{background:#111d29!important}
:root[data-theme="dark"] .report-table tr.group-row .grp-t{color:#eaf1f8}
:root[data-theme="dark"] .stat-value,
:root[data-theme="dark"] .report-table td.mono,
:root[data-theme="dark"] .report-table .pct-cell,
:root[data-theme="dark"] .cell-input,
:root[data-theme="dark"] .report-table td.col-entry .cell-input,
:root[data-theme="dark"] .mini-stat-val,
:root[data-theme="dark"] .sc-val{color:#eef3fb}
:root[data-theme="dark"] .sidebar-logo h1{color:#c3d2ff}
:root[data-theme="dark"] .theme-toggle .ic-sun{display:inline}
:root[data-theme="dark"] .theme-toggle .ic-moon{display:none}
.theme-toggle .ic-sun{display:none}.theme-toggle .ic-moon{display:inline}

/* ═══════════ #12 CONTROL ROOM MODE (big-screen / meeting) ═══════════ */
body.control-room #sidebar{transform:translateX(100%)}
html[dir="ltr"] body.control-room #sidebar{transform:translateX(-100%)}
body.control-room #main{margin-inline-start:0}
body.control-room #topbar{height:56px}
body.control-room .stat-value{font-size:46px}
body.control-room .stat-card{padding:26px 24px}
body.control-room .stat-label{font-size:13px}
body.control-room #content{padding:32px 40px}
body.control-room .card-title{font-size:16px}
body.control-room .dept-summary-card{padding:22px 26px}
.cr-exit{position:fixed;top:12px;inset-inline-end:14px;z-index:60}
