/* ═══════════════════════════════════════
   THE STEEL REPORT — core.css
═══════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=Barlow:wght@300;400;500;600&family=Barlow+Semi+Condensed:wght@400;500;600&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --steel:     #1E1E1C;
  --steel-2:   #2C2C2A;
  --steel-3:   #3A3A37;
  --steel-4:   #52524E;
  --steel-5:   #888780;
  --steel-6:   #C4C2BB;
  --steel-7:   #E4E2DA;
  --steel-8:   #F2F0E8;
  --steel-9:   #FAFAF7;
  --amber:     #F0A030;
  --amber-d:   #C07818;
  --amber-l:   #FDF0D8;
  --amber-t:   #3D2000;
  --teal:      #1A9E78;
  --teal-d:    #0F6E52;
  --teal-l:    #E0F5EE;
  --red:       #D94545;
  --red-l:     #FDEAEA;
  --blue:      #2B6CB0;
  --blue-l:    #EBF4FF;
  --yellow:    #D4A017;
  --yellow-l:  #FEF9E7;
  --purple:    #6B46C1;
  --purple-l:  #F0EBFF;
  --font-head: 'Barlow Condensed', sans-serif;
  --font-body: 'Barlow', sans-serif;
  --font-semi: 'Barlow Semi Condensed', sans-serif;
  --r:         4px;
  --rl:        8px;
  --shadow:    0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.15);
}

body {
  font-family: var(--font-body);
  background: var(--steel-8);
  color: var(--steel-2);
  min-height: 100vh;
  font-size: 14px;
  line-height: 1.5;
}

/* ── BOLT BAR ── */
#kpi-bar {
  background: var(--steel);
  color: #fff;
  display: flex;
  align-items: center;
  padding: 0 16px;
  height: 52px;
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  gap: 12px;
}
.kpi-brand { display:flex; align-items:center; gap:10px; padding-right:16px; border-right:1px solid var(--steel-3); flex-shrink:0; }
.kpi-brand-icon { width:30px; height:30px; background:var(--amber); border-radius:3px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.kpi-brand-icon svg { width:16px; height:16px; }
.kpi-brand-name { font-family:var(--font-head); font-size:18px; font-weight:800; letter-spacing:1px; color:#fff; line-height:1; }
.kpi-brand-sub  { font-size:8px; color:var(--steel-5); letter-spacing:2px; text-transform:uppercase; margin-top:1px; }

/* ── BOLT SEARCH ── */
.bolt-search-wrap { flex:1; position:relative; }
.bolt-search-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--steel-3);
  border: 1px solid var(--steel-4);
  border-radius: 8px;
  padding: 0 12px;
  height: 36px;
  transition: border-color 0.15s, background 0.15s;
}
.bolt-search-inner:focus-within {
  border-color: var(--amber);
  background: var(--steel-2);
}
.bolt-icon { font-size:14px; flex-shrink:0; }
.bolt-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-family: var(--font-body);
  font-size: 13px;
  padding: 0;
}
.bolt-input::placeholder { color: var(--steel-5); }
.bolt-kbd {
  font-size:10px; color:var(--steel-5); flex-shrink:0;
  background:var(--steel-2); border:1px solid var(--steel-4);
  border-radius:3px; padding:1px 5px; font-family:monospace;
}
.bolt-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0; right: 0;
  background: var(--steel-2);
  border: 1px solid var(--steel-3);
  border-radius: 8px;
  box-shadow: var(--shadow-md);
  z-index: 500;
  overflow: hidden;
  display: none;
}
.bolt-dropdown.open { display: block; }
.bolt-section-label {
  font-size: 9px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--steel-5);
  padding: 10px 14px 4px;
}
.bolt-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px; cursor: pointer;
  transition: background 0.1s;
  border-bottom: 1px solid var(--steel-3);
}
.bolt-item:last-child { border-bottom: none; }
.bolt-item:hover { background: var(--steel-3); }
.bolt-item-icon { font-size:16px; flex-shrink:0; }
.bolt-item-main { flex:1; }
.bolt-item-title { font-size:13px; color:#fff; font-weight:500; }
.bolt-item-sub   { font-size:11px; color:var(--steel-5); margin-top:1px; }
.bolt-item-badge { font-size:10px; color:var(--steel-5); flex-shrink:0; }
.bolt-answer {
  padding: 14px;
  font-size: 13px;
  color: #fff;
  line-height: 1.6;
  border-top: 1px solid var(--steel-3);
}
.bolt-answer-label {
  font-size: 9px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--amber);
  margin-bottom: 6px;
}
.bolt-thinking {
  padding: 14px;
  font-size: 12px;
  color: var(--steel-5);
  font-style: italic;
}

/* ── MAIN NAV ── */
#main-nav {
  background: var(--steel-2);
  display: flex;
  align-items: stretch;
  padding: 0 24px;
  height: 44px;
  position: sticky;
  top: 56px;
  z-index: 190;
}
.nav-tab { font-family:var(--font-semi); font-size:13px; font-weight:600; letter-spacing:0.5px; padding:0 18px; background:transparent; border:none; border-bottom:3px solid transparent; color:var(--steel-6); cursor:pointer; transition:all 0.15s; display:flex; align-items:center; gap:7px; margin-bottom:-1px; }
.nav-tab:hover { color:#fff; }
.nav-tab.active { color:#fff; border-bottom-color:var(--amber); }
.nav-count { background:var(--steel-3); color:var(--steel-6); font-size:10px; font-weight:700; padding:1px 6px; border-radius:10px; min-width:20px; text-align:center; }
.nav-tab.active .nav-count { background:var(--amber); color:var(--amber-t); }

/* ── PAGES ── */
.page { display:none; }
.page.active { display:block; }
.page-inner { max-width:1400px; margin:0 auto; padding:24px; }

/* ── SECTION HEADERS ── */
.section-hdr { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.section-title { font-family:var(--font-head); font-size:28px; font-weight:700; letter-spacing:0.5px; color:var(--steel-2); line-height:1; }
.section-sub { font-size:13px; color:var(--steel-5); margin-top:3px; }

/* ── CARDS ── */
.card { background:#fff; border:1px solid var(--steel-7); border-radius:var(--rl); box-shadow:var(--shadow); }
.card-hdr { padding:14px 18px; border-bottom:1px solid var(--steel-7); display:flex; align-items:center; justify-content:space-between; }
.card-title { font-family:var(--font-semi); font-size:14px; font-weight:600; color:var(--steel-2); }
.card-body { padding:16px 18px; }

/* ── BUTTONS ── */
.btn { font-family:var(--font-body); font-size:12px; font-weight:600; padding:7px 14px; border-radius:var(--r); border:1px solid; cursor:pointer; transition:all 0.12s; display:inline-flex; align-items:center; gap:5px; white-space:nowrap; letter-spacing:0.3px; }
.btn-primary { background:var(--steel-2); color:#fff; border-color:var(--steel-2); }
.btn-primary:hover { background:var(--steel-3); }
.btn-amber { background:var(--amber); color:var(--amber-t); border-color:var(--amber-d); }
.btn-amber:hover { background:var(--amber-d); color:#fff; }
.btn-teal { background:var(--teal-l); color:var(--teal-d); border-color:var(--teal); }
.btn-teal:hover { background:var(--teal); color:#fff; }
.btn-ghost { background:transparent; color:var(--steel-4); border-color:var(--steel-7); }
.btn-ghost:hover { background:var(--steel-8); color:var(--steel-2); }
.btn-danger { background:transparent; color:var(--red); border-color:#F0A0A0; }
.btn-danger:hover { background:var(--red-l); }
.btn-success { background:var(--teal); color:#fff; border-color:var(--teal-d); }
.btn-success:hover { background:var(--teal-d); }
.btn-sm { font-size:11px; padding:4px 10px; }
.btn-lg { font-size:14px; padding:10px 20px; }

/* ── BADGES ── */
.badge { display:inline-flex; align-items:center; gap:4px; font-family:var(--font-semi); font-size:10px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; padding:3px 8px; border-radius:3px; white-space:nowrap; }
.badge::before { content:''; width:6px; height:6px; border-radius:50%; }
.badge-pending   { background:var(--yellow-l); color:var(--yellow);  border:1px solid #F0D080; } .badge-pending::before   { background:var(--yellow); }
.badge-submitted { background:var(--blue-l);   color:var(--blue);    border:1px solid #90C0F0; } .badge-submitted::before { background:var(--blue); }
.badge-awarded   { background:var(--teal-l);   color:var(--teal-d);  border:1px solid #80D4B8; } .badge-awarded::before   { background:var(--teal); }
.badge-signed    { background:var(--steel-2);  color:#fff;           border:1px solid var(--steel-3); } .badge-signed::before    { background:var(--amber); }
.badge-lost      { background:var(--red-l);    color:var(--red);     border:1px solid #F0A0A0; } .badge-lost::before      { background:var(--red); }
.badge-nobid     { background:var(--steel-8);  color:var(--steel-5); border:1px solid var(--steel-7); } .badge-nobid::before     { background:var(--steel-6); }
.badge-rebid     { background:var(--purple-l); color:var(--purple);  border:1px solid #C4AAEE; } .badge-rebid::before     { background:var(--purple); }
.badge-active    { background:var(--teal-l);   color:var(--teal-d);  border:1px solid #80D4B8; } .badge-active::before    { background:var(--teal); }
.badge-complete  { background:var(--blue-l);   color:var(--blue);    border:1px solid #90C0F0; } .badge-complete::before  { background:var(--blue); }

/* ── FORMS ── */
.form-row { display:flex; gap:14px; margin-bottom:14px; flex-wrap:wrap; }
.form-group { display:flex; flex-direction:column; gap:4px; flex:1; min-width:140px; }
.form-group.full { flex:100%; }
.form-group.w2 { flex:2; }
label { font-size:11px; font-weight:600; color:var(--steel-4); text-transform:uppercase; letter-spacing:0.8px; }
input[type=text], input[type=number], input[type=date],
input[type=email], input[type=tel], select, textarea {
  font-family:var(--font-body); font-size:13px; color:var(--steel-2);
  background:var(--steel-9); border:1px solid var(--steel-7);
  border-radius:var(--r); padding:7px 10px; transition:border-color 0.15s, background 0.15s; width:100%;
}
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--amber); background:#fff; }
select { cursor:pointer; }
textarea { resize:vertical; min-height:80px; }

/* ── FILTER BAR ── */
.filter-bar { display:flex; align-items:center; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.filter-pill { font-family:var(--font-semi); font-size:11px; font-weight:600; padding:5px 12px; border-radius:20px; border:1px solid var(--steel-7); background:#fff; color:var(--steel-5); cursor:pointer; transition:all 0.12s; letter-spacing:0.5px; }
.filter-pill:hover { border-color:var(--steel-4); color:var(--steel-2); }
.filter-pill.active { background:var(--steel-2); color:#fff; border-color:var(--steel-2); }
.filter-search { font-family:var(--font-body); font-size:13px; padding:5px 12px; border:1px solid var(--steel-7); border-radius:20px; background:#fff; color:var(--steel-2); width:200px; margin-left:auto; }
.filter-search:focus { outline:none; border-color:var(--amber); }

/* ── LIST TABLE ── */
.list-table { width:100%; border-collapse:collapse; }
.list-table th { font-family:var(--font-semi); font-size:10px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--steel-5); padding:8px 12px; border-bottom:2px solid var(--steel-7); text-align:left; white-space:nowrap; background:var(--steel-8); }
.list-table td { padding:10px 12px; border-bottom:1px solid var(--steel-7); vertical-align:middle; font-size:13px; }
.list-table tr:last-child td { border-bottom:none; }
.list-table tbody tr { cursor:pointer; transition:background 0.1s; }
.list-table tbody tr:hover { background:var(--steel-8); }
.job-num  { font-family:var(--font-head); font-size:15px; font-weight:700; color:var(--steel-2); letter-spacing:0.5px; }
.job-name { font-weight:500; color:var(--steel-2); }
.job-gc   { font-size:12px; color:var(--steel-5); margin-top:1px; }
.td-r { text-align:right; }
.td-c { text-align:center; }
.mono { font-family:'Courier New',monospace; font-size:12px; }

/* ── DETAIL HEADER ── */
.detail-header { background:var(--steel-2); color:#fff; padding:16px 24px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.detail-back { background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.15); color:#fff; font-family:var(--font-body); font-size:12px; padding:5px 12px; border-radius:var(--r); cursor:pointer; transition:all 0.12s; display:flex; align-items:center; gap:5px; }
.detail-back:hover { background:rgba(255,255,255,0.18); }
.detail-num  { font-family:var(--font-head); font-size:13px; font-weight:600; color:var(--amber); letter-spacing:1px; }
.detail-name { font-family:var(--font-head); font-size:24px; font-weight:700; letter-spacing:0.5px; flex:1; }
.detail-gc   { font-size:13px; color:rgba(255,255,255,0.55); }
.detail-actions { display:flex; gap:8px; margin-left:auto; }

/* ── MODULE TABS ── */
.module-tabs { background:#fff; border-bottom:2px solid var(--steel-7); padding:0 24px; display:flex; overflow-x:auto; position:sticky; top:100px; z-index:100; }
.module-tab { font-family:var(--font-semi); font-size:12px; font-weight:600; letter-spacing:0.3px; padding:10px 16px; background:transparent; border:none; border-bottom:3px solid transparent; color:var(--steel-5); cursor:pointer; white-space:nowrap; margin-bottom:-2px; transition:all 0.12s; display:flex; align-items:center; gap:6px; }
.module-tab:hover { color:var(--steel-2); }
.module-tab.active { color:var(--steel-2); border-bottom-color:var(--amber); }
.module-content { display:none; padding:20px 24px; }
.module-content.active { display:block; }

/* ── DASHBOARD ── */
.dash-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:20px; }
.section-label { font-size:11px; font-weight:600; color:var(--steel-4); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
.dash-kpi { background:#fff; border:1px solid var(--steel-7); border-radius:var(--rl); padding:16px 18px; box-shadow:var(--shadow); }
.dash-kpi-v { font-family:var(--font-head); font-size:32px; font-weight:700; color:var(--steel-2); line-height:1; }
.dash-kpi-l { font-size:11px; color:var(--steel-5); text-transform:uppercase; letter-spacing:1px; margin-top:4px; }
.dash-kpi-sub { font-size:12px; color:var(--steel-5); margin-top:6px; }
.dash-kpi.amber .dash-kpi-v { color:var(--amber-d); }
.dash-kpi.teal  .dash-kpi-v { color:var(--teal-d); }
.dash-kpi.red   .dash-kpi-v { color:var(--red); }
.dash-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }

/* ── MODAL ── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(2px); }
.modal { background:#fff; border-radius:var(--rl); box-shadow:var(--shadow-md); width:100%; max-width:640px; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; }
.modal-hdr { padding:18px 20px; border-bottom:1px solid var(--steel-7); display:flex; align-items:center; justify-content:space-between; background:var(--steel-8); flex-shrink:0; }
.modal-title { font-family:var(--font-head); font-size:20px; font-weight:700; }
.modal-close { background:none; border:none; font-size:20px; color:var(--steel-5); cursor:pointer; padding:2px 6px; border-radius:3px; }
.modal-close:hover { background:var(--steel-7); color:var(--steel-2); }
.modal-body { padding:20px; overflow-y:auto; flex:1; }
.modal-footer { padding:14px 20px; border-top:1px solid var(--steel-7); display:flex; justify-content:flex-end; gap:8px; background:var(--steel-8); flex-shrink:0; }

/* ── SCOPE TAGS ── */
.scope-struct { background:#EEF2FF; color:#3730A3; border:1px solid #C7D2FE; font-size:10px; padding:2px 7px; border-radius:3px; font-weight:600; }
.scope-misc   { background:#FFF7ED; color:#C2410C; border:1px solid #FED7AA; font-size:10px; padding:2px 7px; border-radius:3px; font-weight:600; }
.scope-pemb   { background:#F0FDF4; color:#166534; border:1px solid #BBF7D0; font-size:10px; padding:2px 7px; border-radius:3px; font-weight:600; }

/* ── PLACEHOLDER ── */
.placeholder-module { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px 20px; text-align:center; border:2px dashed var(--steel-7); border-radius:var(--rl); background:var(--steel-9); margin:10px 0; }
.placeholder-module .ph-icon { font-size:36px; margin-bottom:12px; }
.placeholder-module h3 { font-family:var(--font-head); font-size:20px; font-weight:600; color:var(--steel-4); margin-bottom:6px; }
.placeholder-module p  { font-size:12px; color:var(--steel-5); max-width:260px; }

/* ── EMPTY STATE ── */
.empty-state { text-align:center; padding:60px 20px; color:var(--steel-5); }
.empty-state .empty-icon { font-size:40px; margin-bottom:12px; }
.empty-state h3 { font-family:var(--font-head); font-size:20px; font-weight:600; color:var(--steel-4); margin-bottom:6px; }
.empty-state p  { font-size:13px; max-width:300px; margin:0 auto 16px; }

/* ── UTILITY ── */
.flex { display:flex; }
.flex-center { display:flex; align-items:center; }
.gap-8  { gap:8px; }
.gap-12 { gap:12px; }
.ml-auto { margin-left:auto; }
.mt-16 { margin-top:16px; }
.mt-20 { margin-top:20px; }
.text-muted { color:var(--steel-5); font-size:12px; }
.divider { height:1px; background:var(--steel-7); margin:16px 0; }

/* ── SCROLLBARS ── */
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--steel-6); border-radius:3px; }

.table-wrap { display: block; width: 100%; border-radius: var(--rl); }
.table-wrap .card { overflow-x: auto; -webkit-overflow-scrolling: touch; display: block; }
.table-wrap .list-table { min-width: 600px; }

/* ═══════════════════════════════════════
   MOBILE RESPONSIVE  (≤ 768px)
═══════════════════════════════════════ */

@media (max-width: 768px) {

  /* ── BOLT BAR ── */
  #kpi-bar {
    padding: 0 10px;
    gap: 8px;
    height: 48px;
  }
  .kpi-brand-sub  { display: none; }
  .kpi-brand-name { font-size: 14px; }
  .bolt-kbd { display: none; }
  .bolt-input { font-size: 12px; }
  .bolt-input::placeholder { font-size: 11px; }

  /* ── MAIN NAV — scrollable strip, no floating tabs ── */
  #main-nav {
    height: auto;
    padding: 0 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    flex-wrap: nowrap;
    top: auto; /* recalculated below */
    -webkit-overflow-scrolling: touch;
  }
  #main-nav::-webkit-scrollbar { display: none; }
  .nav-tab {
    font-size: 11px;
    padding: 0 10px;
    white-space: nowrap;
    flex-shrink: 0;
    height: 40px;
  }

  /* ── MODULE TABS — also scrollable, fix sticky offset ── */
  .module-tabs {
    padding: 0 8px;
    top: 88px; /* KPI bar collapses — approximate; tabs scroll with page */
    overflow-x: auto;
    scrollbar-width: none;
  }
  .module-tabs::-webkit-scrollbar { display: none; }
  .module-tab {
    font-size: 11px;
    padding: 8px 10px;
  }
  .module-content {
    padding: 12px;
  }

  /* ── PAGE INNER ── */
  .page-inner {
    padding: 12px;
  }

  /* ── SECTION HEADER ── */
  .section-hdr {
    flex-wrap: wrap;
    gap: 8px;
  }
  .section-title { font-size: 22px; }

  /* ── TABLES — horizontal scroll inside container, page doesn't scroll ── */
  .table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--rl);
  }
  .list-table {
    min-width: 600px; /* forces scroll rather than squash */
  }
  .list-table th,
  .list-table td {
    padding: 8px 10px;
    font-size: 12px;
  }

  /* ── DETAIL HEADER ── */
  .detail-header {
    padding: 12px;
    gap: 8px;
  }
  .detail-name { font-size: 18px; }
  .detail-actions {
    width: 100%;
    margin-left: 0;
    flex-wrap: wrap;
  }

  /* ── MODALS — full screen on mobile ── */
  .modal-overlay {
    padding: 0;
    align-items: flex-end; /* sheet slides up from bottom */
  }
  .modal {
    max-width: 100%;
    max-height: 92vh;
    border-radius: var(--rl) var(--rl) 0 0;
  }

  /* ── FORMS ── */
  .form-row {
    gap: 10px;
    margin-bottom: 10px;
  }
  .form-group {
    min-width: 100%; /* stack all fields on mobile */
  }
  .form-group.w2 { flex: 100%; }

  /* ── DASHBOARD ── */
  .dash-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .dash-grid-2 {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .dash-kpi { padding: 12px 14px; }
  .dash-kpi-v { font-size: 24px; }

  /* ── FILTER BAR ── */
  .filter-bar {
    gap: 6px;
  }
  .filter-search {
    width: 100%;
    margin-left: 0;
    margin-top: 4px;
  }

  /* ── CARDS ── */
  .card-hdr {
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px;
  }
  .card-body { padding: 12px 14px; }

  /* ── BUTTONS — full width in footer stacks ── */
  .modal-footer {
    flex-wrap: wrap;
  }
  .modal-footer .btn {
    flex: 1;
    justify-content: center;
    min-width: 100px;
  }

  /* ── HIDE TABLE COLUMNS ON MOBILE ── */
  .list-table th:nth-child(3),
  .list-table td:nth-child(3),
  .list-table th:nth-child(4),
  .list-table td:nth-child(4),
  .list-table th:nth-child(6),
  .list-table td:nth-child(6),
  .list-table th:nth-child(7),
  .list-table td:nth-child(7) { display: none; }

  /* ── UTILITY ── */
  .hide-mobile { display: none !important; }
  .btn-sm { font-size: 11px; padding: 6px 10px; } /* slightly bigger tap target */

}

/* ── VERY SMALL PHONES (≤ 380px) ── */
@media (max-width: 380px) {
  .kpi-brand-name { font-size: 14px; }
  .nav-tab { font-size: 10px; padding: 0 8px; }
  .dash-grid { grid-template-columns: 1fr; }
}

/* ---- Data tables (shared component layer) ---- */
.dtable-card { background:#fff; border:1px solid var(--steel-7); border-radius:var(--rl); margin-bottom:16px; overflow:hidden; }
.dtable-hdr { padding:12px 16px; border-bottom:1px solid var(--steel-7); background:var(--steel-8); display:flex; align-items:center; justify-content:space-between; }
.dtable-hdr-title { font-family:var(--font-semi); font-size:14px; font-weight:600; color:var(--steel-2); }
.dtable { width:100%; border-collapse:collapse; }
.dtable th { padding:7px 10px; font-size:10px; font-weight:700; color:var(--steel-4); text-transform:uppercase; letter-spacing:0.7px; border-bottom:2px solid var(--steel-7); text-align:left; }
.dtable td { padding:7px 10px; font-size:13px; border-bottom:1px solid var(--steel-7); vertical-align:middle; }
.dtable th.num, .dtable td.num { text-align:right; }
.dtable.compact th { padding:6px 8px; }
.dtable.compact td { padding:6px 8px; font-size:12px; }

/* ==== LOGIN SCREEN (split layout, lg- prefix) ==== */
#tsr-login-overlay{background:var(--steel)!important}
.lg-stage{width:100%;height:100vh;display:grid;grid-template-columns:1.15fr 1fr}
.lg-left{position:relative;overflow:hidden;display:flex;flex-direction:column;
  justify-content:space-between;padding:54px 56px;
  background:linear-gradient(135deg,rgba(20,20,18,.93) 0%,rgba(28,28,26,.82) 45%,rgba(192,120,24,.30) 100%),
  repeating-linear-gradient(58deg,#232321 0 38px,#1d1d1b 38px 76px)}
.lg-left::before{content:'';position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(transparent 0 47%,rgba(240,160,48,.10) 47% 53%,transparent 53%),
  linear-gradient(90deg,transparent 0 47%,rgba(240,160,48,.07) 47% 53%,transparent 53%);
  background-size:120px 120px}
.lg-photo-note{position:absolute;top:18px;left:18px;z-index:3;font-family:var(--font-semi);
  font-size:10px;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.4);
  border:1px dashed rgba(255,255,255,.25);padding:5px 9px;border-radius:3px}
.lg-brand,.lg-mid,.lg-bot{position:relative;z-index:2}
.lg-brand{display:flex;align-items:center;gap:14px}
.lg-mark{width:54px;height:54px;background:var(--amber);border-radius:9px;display:flex;
  align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 22px rgba(240,160,48,.35)}
.lg-mark svg{width:30px;height:30px}
.lg-brand-txt h1{font-family:var(--font-head);font-weight:700;font-size:25px;letter-spacing:1px;
  color:#fff;line-height:1;margin:0}
.lg-brand-txt p{font-family:var(--font-semi);font-size:11px;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--amber);margin:4px 0 0}
.lg-headline{font-family:var(--font-head);font-weight:700;font-size:44px;line-height:1.05;
  color:#fff;letter-spacing:.5px;max-width:11ch}
.lg-headline em{color:var(--amber);font-style:normal}
.lg-blurb{font-size:15px;line-height:1.6;color:var(--steel-6);max-width:42ch;margin-top:18px}
.lg-feats{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.lg-feats span{font-family:var(--font-semi);font-size:11px;font-weight:600;letter-spacing:.5px;
  color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  padding:6px 12px;border-radius:20px}
.lg-bot{font-size:12px;color:var(--steel-5);display:flex;justify-content:space-between}
.lg-right{background:var(--steel-9);display:flex;align-items:center;justify-content:flex-start;
  padding:0 64px;overflow-y:auto}
.lg-form{width:100%;max-width:340px}
.lg-welcome{font-family:var(--font-head);font-weight:700;font-size:30px;color:var(--steel-2);letter-spacing:.5px}
.lg-welcome-sub{font-size:13.5px;color:var(--steel-5);margin:5px 0 30px}
.lg-error{margin-bottom:14px;padding:10px 12px;background:var(--red-l);border:1px solid #fca5a5;
  border-radius:var(--r);font-size:13px;color:#991b1b}
.lg-field{margin-bottom:18px}
.lg-field label{display:block;font-family:var(--font-semi);font-size:11px;font-weight:600;
  letter-spacing:1px;text-transform:uppercase;color:var(--steel-4);margin-bottom:6px}
.lg-input-shell{position:relative}
.lg-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--steel-5)}
.lg-form input{width:100%;font-family:var(--font-body);font-size:14px;color:var(--steel-2);background:#fff;
  border:1.5px solid var(--steel-7);border-radius:var(--r);padding:11px 12px 11px 38px;outline:none;
  box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.lg-form input:focus{border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-l)}
.lg-form input::placeholder{color:var(--steel-6)}
.lg-signin{width:100%;font-family:var(--font-semi);font-size:14px;font-weight:600;letter-spacing:.5px;
  color:#fff;background:var(--steel-2);border:none;border-radius:var(--r);padding:13px;cursor:pointer;
  transition:background .15s,transform .05s;display:flex;align-items:center;justify-content:center;gap:8px}
.lg-signin:hover{background:var(--amber);color:var(--amber-t)}
.lg-signin:active{transform:scale(.99)}
.lg-signin svg{width:15px;height:15px}
.lg-foot{margin-top:30px;font-size:11.5px;color:var(--steel-6);text-align:center;
  border-top:1px solid var(--steel-7);padding-top:16px}
.lg-demo{margin-top:30px;background:#fff;border:1px solid var(--steel-7);border-radius:var(--rl);overflow:hidden}
.lg-demo-bar{background:var(--steel-2);padding:7px 12px;display:flex;align-items:center;gap:6px}
.lg-dot{width:8px;height:8px;border-radius:50%;background:var(--steel-5)}
.lg-demo-title{font-family:var(--font-semi);font-size:10px;color:var(--steel-6);margin-left:6px;letter-spacing:.5px}
.lg-demo-body{padding:14px 14px 16px;min-height:122px;position:relative}
.lg-demo-q{font-size:12px;color:var(--steel-4);background:var(--steel-8);border-radius:12px 12px 12px 3px;
  padding:7px 11px;display:inline-block;opacity:0;animation:lgpop .5s ease forwards .6s}
.lg-demo-typing{font-size:12px;color:var(--steel-5);margin-top:12px;opacity:0;
  animation:lgblink 1s steps(2) infinite,lgshow 0s forwards 1.05s}
.lg-demo-a{font-family:var(--font-head);font-weight:700;font-size:32px;color:var(--teal-d);
  margin-top:12px;opacity:0;animation:lgpop .5s ease forwards 1.7s}
.lg-demo-a small{display:block;font-family:var(--font-body);font-weight:400;font-size:11px;
  color:var(--steel-5);margin-top:2px}
@keyframes lgpop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes lgblink{50%{opacity:.3}}
@keyframes lgshow{to{opacity:1}}
.lg-brand,.lg-headline,.lg-blurb,.lg-feats,.lg-form>*{animation:lgrise .6s ease backwards}
.lg-headline{animation-delay:.08s}.lg-blurb{animation-delay:.16s}.lg-feats{animation-delay:.24s}
@keyframes lgrise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:880px){
  .lg-stage{grid-template-columns:1fr}
  .lg-left{display:none}
  .lg-right{padding:40px 28px;justify-content:center;height:100vh}
}
