/* PrimeKitchen OS — Extracted Styles v376 */


  :root {
    /* ── PrimeKitchen OS v375 — Locked Design Tokens ── */

    /* Semantic tokens */
    --primary:     #C5A059;
    --success:     #4ADE80;
    --warning:     #FBBF24;
    --danger:      #F87171;
    --neutral:     #B8C8B6;   /* boosted for readability */

    /* Surfaces */
    --bg:          #0d1210;
    --surface:     #131a13;
    --surface-2:   #0f1a0f;
    --surface-3:   #1a2a1a;

    /* Borders */
    --border:      rgba(255,255,255,0.07);
    --border-gold: rgba(197,160,89,0.25);

    /* Text — contrast-audited for WCAG AA on dark surfaces */
    --ink:         #F0F0EA;   /* primary text — boosted from #e8e8e2 */
    --muted:       #A8B8A6;   /* secondary/muted — was #7a8a78 (too dark), now 5.2:1 ratio */
    --muted-2:     #7a8a78;   /* extra-muted for decorative only, not body text */
    --ink-inv:     #0d1210;

    /* Legacy aliases — mapped to tokens so old code never breaks */
    --green:       var(--primary);
    --green-mid:   #D4AF37;
    --green-light: rgba(197,160,89,0.08);
    --gold:        var(--primary);
    --gold-light:  rgba(197,160,89,0.08);
    --gold-bright: #E2C285;
    --white:       var(--surface);
    --cream:       var(--bg);
    --red:         var(--danger);
    --red-light:   rgba(248,113,113,0.10);
    --amber:       var(--warning);
    --amber-light: rgba(251,191,36,0.10);

    /* Spacing & shape tokens */
    --radius-xl:   18px;
    --radius-lg:   14px;
    --radius-md:   10px;
    --radius-sm:   8px;

    /* Shadows */
    --shadow-sm:   0 2px 8px rgba(0,0,0,0.4);
    --shadow-md:   0 4px 16px rgba(0,0,0,0.5);
    --shadow-lg:   0 20px 50px rgba(0,0,0,0.6);
    --shadow-soft: 0 10px 30px rgba(0,0,0,0.28);
    --shadow-gold: 0 0 0 1px rgba(197,160,89,0.22), 0 10px 30px rgba(0,0,0,0.22);
  }


  /* ══ LIGHT THEME ══════════════════════════════════════════════════════════ */
  [data-theme="light"] {
    --primary:     #7A5500;
    --success:     #166534;
    --warning:     #B45309;
    --danger:      #B91C1C;
    --neutral:     #374151;

    --bg:          #F5F1E8;
    --surface:     #FFFFFF;
    --surface-2:   #EDE8DC;
    --surface-3:   #E2DAC8;

    --border:      rgba(0,0,0,0.13);
    --border-gold: rgba(122,85,0,0.30);

    --ink:         #111108;
    --muted:       #44443A;
    --muted-2:     #6B6B58;
    --ink-inv:     #F5F1E8;

    --green:       var(--primary);
    --green-mid:   #5C3D00;
    --green-light: rgba(122,85,0,0.10);
    --gold:        var(--primary);
    --gold-light:  rgba(122,85,0,0.10);
    --gold-bright: #5C3D00;
    --white:       var(--surface);
    --cream:       var(--bg);
    --red:         var(--danger);
    --red-light:   rgba(185,28,28,0.10);
    --amber:       var(--warning);
    --amber-light: rgba(180,83,9,0.10);

    --shadow-sm:   0 2px 8px rgba(0,0,0,0.08);
    --shadow-md:   0 4px 16px rgba(0,0,0,0.12);
    --shadow-lg:   0 20px 50px rgba(0,0,0,0.15);
    --shadow-soft: 0 10px 30px rgba(0,0,0,0.08);
    --shadow-gold: 0 0 0 1px rgba(122,85,0,0.20), 0 10px 30px rgba(0,0,0,0.08);
  }

  /* Light theme — explicit overrides for hardcoded dark colors in inline styles */
  [data-theme="light"] body,
  [data-theme="light"] #app {
    background: var(--bg) !important;
    color: var(--ink) !important;
  }
  [data-theme="light"] header {
    background: #1a2e1a !important;
  }
  /* Keep brand text bright gold on dark header */
  [data-theme="light"] header .brand-name,
  [data-theme="light"] header [style*="color:#D8AE55"],
  [data-theme="light"] header [style*="color: #D8AE55"] {
    color: #D8AE55 !important;
  }
  [data-theme="light"] header .brand-sub,
  [data-theme="light"] header #pk-brand-version,
  [data-theme="light"] header [style*="rgba(236,214,164"] {
    color: rgba(236,214,164,0.85) !important;
  }
  /* Header clock and status */
  [data-theme="light"] header #pk-clock,
  [data-theme="light"] header .pk-clock {
    color: rgba(236,214,164,0.8) !important;
  }
  [data-theme="light"] .pk-dropdown-nav {
    background: #FFFFFF !important;
    border-bottom: 2px solid rgba(0,0,0,0.12) !important;
  }
  /* All nav text dark */
  [data-theme="light"] .pk-dropdown-nav,
  [data-theme="light"] .pk-dropdown-nav * {
    color: #1a1a0e !important;
  }
  [data-theme="light"] .pk-nav-trigger span {
    color: #1a1a0e !important;
  }
  
  /* ── EXACT ID FIXES ──────────────────────────────────────────────────────*/

  /* HEALTHY badge — exact ID */
  [data-theme="light"] #pk-op-status {
    background: rgba(22,101,52,0.15) !important;
    border-color: rgba(22,101,52,0.4) !important;
    color: #166534 !important;
  }
  [data-theme="light"] #pk-op-dot {
    background: #166534 !important;
  }
  [data-theme="light"] #pk-op-label {
    color: #166534 !important;
  }

  /* Profile/user button in header — keep white since header is dark green */
  [data-theme="light"] header button[onclick*="admin"] {
    background: rgba(255,255,255,0.12) !important;
    border-color: rgba(255,255,255,0.2) !important;
    color: #fff !important;
  }
  [data-theme="light"] header button[onclick*="admin"] span:not(#pk-role-pill) {
    color: #fff !important;
  }
  [data-theme="light"] #profile-name-short {
    color: #fff !important;
  }

  /* Role pill (Owner badge) stays readable */
  [data-theme="light"] #pk-role-pill {
    background: rgba(124,58,237,0.18) !important;
    color: #4C1D95 !important;
    border-color: rgba(124,58,237,0.5) !important;
    font-weight: 800 !important;
  }

  /* Sync status text */
  [data-theme="light"] .sync-status span,
  [data-theme="light"] #syncTime {
    color: var(--muted) !important;
  }


  /* ── LIGHT MODE CONTRAST FIXES ─────────────────────────────────────────── */

  /* HEALTHY badge — keep green bg, make text white/dark enough to read */
  [data-theme="light"] #pk-health-badge,
  [data-theme="light"] .pk-health-badge,
  [data-theme="light"] [id*="health"][id*="badge"],
  [data-theme="light"] .health-status {
    background: #166534 !important;
    color: #ffffff !important;
    border-color: #166534 !important;
  }
  [data-theme="light"] #pk-health-badge *,
  [data-theme="light"] .pk-health-badge * {
    color: #ffffff !important;
  }

  /* User/owner pill — dark bg with readable text */
  [data-theme="light"] #pk-user-pill,
  [data-theme="light"] .pk-user-pill,
  [data-theme="light"] [id*="user-pill"] {
    background: rgba(0,0,0,0.12) !important;
    color: #1a1a0e !important;
    border: 1px solid rgba(0,0,0,0.15) !important;
  }
  [data-theme="light"] #pk-user-pill *,
  [data-theme="light"] .pk-user-pill * {
    color: #1a1a0e !important;
  }

  /* Shift Command title on dark green hero — keep gold */
  [data-theme="light"] .sc-title,
  [data-theme="light"] .sc-hero .sc-title {
    color: #D8AE55 !important;
  }
  /* Shift briefing date line */
  [data-theme="light"] .sc-date-line {
    color: rgba(236,214,164,0.8) !important;
  }
  /* Restaurant name below Shift Command */
  [data-theme="light"] .sc-hero .sc-rest-name,
  [data-theme="light"] .sc-hero > div:nth-child(3) {
    color: rgba(255,255,255,0.85) !important;
  }
  /* KPI labels inside dark hero */
  [data-theme="light"] .sc-hero .sc-kpi-label,
  [data-theme="light"] .sc-hero [style*="letter-spacing"] {
    color: rgba(236,214,164,0.7) !important;
  }
  /* KPI values inside dark hero */
  [data-theme="light"] .sc-hero .sc-kpi-val,
  [data-theme="light"] .sc-hero [style*="font-size:28"],
  [data-theme="light"] .sc-hero [style*="font-size: 28"] {
    color: #ffffff !important;
  }
  /* Push Tonight card text */
  [data-theme="light"] .sc-push-card,
  [data-theme="light"] [class*="push"] {
    color: rgba(255,255,255,0.9) !important;
  }

[data-theme="light"] .pk-nav-trigger {
    color: #1a1a0e !important;
    font-weight: 600 !important;
  }
  [data-theme="light"] .pk-nav-trigger:hover,
  [data-theme="light"] .pk-nav-group.pk-open .pk-nav-trigger {
    background: rgba(139,105,20,0.12) !important;
    color: #8B6914 !important;
  }
  [data-theme="light"] .pk-nav-dropdown {
    background: #FFFFFF !important;
    border: 1px solid rgba(139,105,20,0.20) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12) !important;
  }
  [data-theme="light"] .pk-nav-dd-item:hover {
    background: rgba(139,105,20,0.08) !important;
    color: #8B6914 !important;
  }
  /* Location bar row */
  [data-theme="light"] #pk-loc-bar-row {
    background: #EDE8DC !important;
    border-bottom: 1px solid rgba(0,0,0,0.12) !important;
  }
  /* Location pill text */
  [data-theme="light"] #pk-loc-bar-row,
  [data-theme="light"] #pk-loc-bar-row * {
    color: #1a1a0e !important;
  }
  /* Cards / surfaces */
  [data-theme="light"] .card,
  [data-theme="light"] [class*="card"],
  [data-theme="light"] .section-card,
  [data-theme="light"] .kpi-card,
  [data-theme="light"] .sc-metric-card,
  [data-theme="light"] .week-bar,
  [data-theme="light"] .lh-kpi,
  [data-theme="light"] .di-kpi {
    background: #FFFFFF !important;
    border-color: rgba(0,0,0,0.10) !important;
    color: var(--ink) !important;
  }
  /* Keep intentional dark hero cards dark — these are branded green panels */
  [data-theme="light"] .sc-hero,
  [data-theme="light"] .shift-hero,
  [data-theme="light"] [class*="hero"] {
    background: linear-gradient(135deg, #0a1f14 0%, #1B4332 60%, #0f2a1a 100%) !important;
  }
  /* KPI values and labels in light */
  [data-theme="light"] .kpi-value,
  [data-theme="light"] .kpi-val,
  [data-theme="light"] .sc-kpi-val,
  [data-theme="light"] .metric-val {
    color: var(--ink) !important;
  }
  [data-theme="light"] .kpi-label,
  [data-theme="light"] .kpi-lbl,
  [data-theme="light"] .sc-kpi-label,
  [data-theme="light"] .metric-key {
    color: var(--muted) !important;
  }
  /* Section titles and subtitles */
  [data-theme="light"] .section-title { color: var(--ink) !important; }
  [data-theme="light"] .section-sub   { color: var(--muted) !important; }
  /* Card titles */
  [data-theme="light"] .card-title { color: var(--ink) !important; }
  [data-theme="light"] .card-body  { color: var(--ink) !important; }
  /* Alert/banner text */
  [data-theme="light"] .week-bar,
  [data-theme="light"] .dow-tile,
  [data-theme="light"] .ai-analysis-box {
    background: #FFFFFF !important;
    color: var(--ink) !important;
    border-color: rgba(0,0,0,0.10) !important;
  }
  /* Tab content area background */
  [data-theme="light"] .main {
    background: var(--bg) !important;
    color: var(--ink) !important;
  }
  /* Tables */
  [data-theme="light"] table th {
    color: var(--muted) !important;
    border-bottom-color: rgba(0,0,0,0.10) !important;
  }
  [data-theme="light"] table td {
    border-bottom-color: rgba(0,0,0,0.06) !important;
  }
  /* Inputs */
  [data-theme="light"] input,
  [data-theme="light"] select,
  [data-theme="light"] textarea {
    background: #FFFFFF !important;
    border-color: rgba(0,0,0,0.15) !important;
    color: var(--ink) !important;
  }
  /* Shift cells */
  [data-theme="light"] .shift-cell-off {
    background: rgba(0,0,0,0.04) !important;
  }

  /* Light theme — label/mono text contrast boost */
  [data-theme="light"] [style*="color:var(--muted)"],
  [data-theme="light"] [style*="color: var(--muted)"] {
    color: var(--muted) !important;
  }
  [data-theme="light"] [style*="DM Mono"][style*="uppercase"],
  [data-theme="light"] [style*="letter-spacing"] {
    color: var(--muted) !important;
  }
  /* Exception: elements inside dark hero cards keep their white color */
  [data-theme="light"] .sc-hero [style*="letter-spacing"],
  [data-theme="light"] .sc-hero .sc-target-label,
  [data-theme="light"] .sc-hero .sc-target-sub,
  [data-theme="light"] .sc-hero .sc-date-line,
  [data-theme="light"] .sc-menu-push .sc-menu-push-label,
  [data-theme="light"] .sc-menu-push [style*="letter-spacing"] {
    color: rgba(255,255,255,0.75) !important;
  }
  [data-theme="light"] .section-label,
  [data-theme="light"] [class*="label"],
  [data-theme="light"] th {
    color: var(--muted) !important;
  }
  /* Card borders more visible in light */
  [data-theme="light"] [style*="border:1px solid var(--border)"],
  [data-theme="light"] [style*="border: 1px solid var(--border)"] {
    border-color: rgba(0,0,0,0.15) !important;
  }
  /* Input text in light */
  [data-theme="light"] input,
  [data-theme="light"] select,
  [data-theme="light"] textarea {
    color: #111108 !important;
    background: #FFFFFF !important;
    border-color: rgba(0,0,0,0.18) !important;
  }
  [data-theme="light"] input::placeholder,
  [data-theme="light"] textarea::placeholder {
    color: #6B6B58 !important;
  }

  /* Light theme — inventory table hardcoded dark header */
  [data-theme="light"] [style*="background:#0d1a0d"],
  [data-theme="light"] [style*="background: #0d1a0d"],
  [data-theme="light"] [style*="background:#0a1a0a"],
  [data-theme="light"] [style*="background:#080e08"],
  [data-theme="light"] [style*="background:#0d1210"],
  [data-theme="light"] [style*="background:#131a13"],
  [data-theme="light"] [style*="background:#0f1a0f"],
  [data-theme="light"] [style*="background:#1a2a1a"],
  [data-theme="light"] [style*="background:var(--surface)"],
  [data-theme="light"] [style*="background: var(--surface)"] {
    background: var(--surface) !important;
    color: var(--ink) !important;
  }
  /* Table header rows with dark hardcoded bg */
  [data-theme="light"] thead tr,
  [data-theme="light"] thead th {
    background: var(--surface-2) !important;
    color: var(--muted) !important;
    border-color: var(--border) !important;
  }
  /* Any element with hardcoded dark green text colors */
  [data-theme="light"] [style*="color:#A8B8A6"],
  [data-theme="light"] [style*="color: #A8B8A6"],
  [data-theme="light"] [style*="color:#7a8a78"],
  [data-theme="light"] [style*="color:#B8C8B6"] {
    color: var(--muted) !important;
  }
  [data-theme="light"] [style*="color:#F0F0EA"],
  [data-theme="light"] [style*="color: #F0F0EA"],
  [data-theme="light"] [style*="color:#e8e8e2"],
  [data-theme="light"] [style*="color:#fff"],
  [data-theme="light"] [style*="color: #fff"],
  [data-theme="light"] [style*="color:white"],
  [data-theme="light"] [style*="color:#ffffff"],
  [data-theme="light"] [style*="color:#FFFFFF"] {
    color: var(--ink) !important;
  }
  /* Keep white text inside intentionally dark cards */
  [data-theme="light"] .sc-hero [style*="color:#fff"],
  [data-theme="light"] .sc-hero [style*="color: #fff"],
  [data-theme="light"] .sc-hero [style*="color:white"],
  [data-theme="light"] .sc-menu-push [style*="color:rgba(255"],
  [data-theme="light"] .sc-hero [style*="color:rgba(255"] {
    color: inherit !important;
  }
  /* tfoot dark rows */
  [data-theme="light"] tfoot tr {
    background: var(--surface-2) !important;
  }
  /* Scrollbar */
  [data-theme="light"] ::-webkit-scrollbar-track { background: #E8E0D0; }
  [data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(139,105,20,0.35); }

  /* ══ CONTRAST PATCH — readability fixes ══════════════════════════════════
     Targets the most common low-contrast patterns across the app.
     Uses boosted --muted and explicit overrides for known problem areas.
  ══════════════════════════════════════════════════════════════════════════ */

  /* Restaurant name / location name — must be primary text */
  .portfolio-btn, .portfolio-btn span, #portfolio-rest-list button,
  .loc-name, .restaurant-name, .rest-name,
  #pk-org-name, .pk-org-label {
    color: var(--ink) !important;
    font-weight: 600;
  }

  /* Nav tabs — active and inactive both need to be readable */
  .nav-item {
    color: #C8D4C6 !important;
  }
  .nav-item.active, .nav-item[style*="border-bottom"] {
    color: var(--ink) !important;
  }

  /* Card section labels / subtitles */
  .card-label, .section-label, .metric-label,
  .kpi-label, .kpi-title {
    color: var(--muted) !important;
  }

  /* DM Mono uppercase tracking labels — common pattern throughout */
  [style*="letter-spacing:1px"][style*="color:var(--muted)"],
  [style*="letter-spacing: 1px"][style*="color:var(--muted)"] {
    color: var(--muted) !important;
  }

  /* Table headers */
  th, thead td {
    color: var(--muted) !important;
  }
  /* Table body — primary */
  td {
    color: var(--ink);
  }

  /* Form labels */
  label, .form-label, .input-label {
    color: var(--muted) !important;
  }

  /* Brand subtitle in header */
  .brand-sub, #pk-brand-sub {
    color: #8BA888 !important;
  }

  /* Roster / employee cards */
  .perf-card .emp-role, .perf-card .emp-dept,
  .emp-meta, .emp-since {
    color: var(--muted) !important;
  }

  /* Schedule position column */
  .sched-pos { color: var(--muted) !important; }

  /* Status badges text */
  .status-ok, .status-good { color: #4ADE80 !important; }
  .status-warn             { color: #FBBF24 !important; }
  .status-bad              { color: #F87171 !important; }

  /* Helper / hint text — use muted not muted-2 */
  .hint, .helper-text, .form-hint {
    color: var(--muted) !important;
  }

  /* Input placeholder */
  input::placeholder, textarea::placeholder, select::placeholder {
    color: #6a7a68 !important;
    opacity: 1 !important;
  }

  /* Dropdown / select text */
  select { color: var(--ink) !important; }

  /* Modal body text */
  .modal-body, .drawer-body { color: var(--ink) !important; }

  /* Timestamp / date strings */
  .timestamp, .date-str, time { color: var(--muted) !important; }

  /* "No data" empty state messages */
  .empty-state, .no-data { color: var(--muted) !important; }

html:not([data-theme="light"]) {
  body { background: #0d1210 !important; color: #e8e8e2 !important; }
  .header { background: #081008 !important; border-bottom: 1px solid rgba(197,160,89,0.15) !important; box-shadow: 0 2px 20px rgba(0,0,0,0.5) !important; }
  .nav { background: #0f1810 !important; border-bottom: 1px solid rgba(255,255,255,0.06) !important; }
  .nav-item { color: rgba(255,255,255,0.85) !important; }
  .nav-item:hover { color: #C5A059 !important; background: rgba(197,160,89,0.06) !important; }
  .nav-item.active { color: #C5A059 !important; border-bottom: 2px solid #C5A059 !important; background: rgba(197,160,89,0.08) !important; font-weight: 700 !important; }
  .card { background: #131a13 !important; border: 1px solid rgba(255,255,255,0.07) !important; box-shadow: 0 8px 24px rgba(0,0,0,0.35), 0 1px 0 rgba(255,255,255,0.04) inset !important; }
  .card-header { background: linear-gradient(135deg,#0f1a0f 0%,#1a2a1a 100%) !important; border-bottom: 1px solid rgba(255,255,255,0.07) !important; }
  .card-title { color: #e8e8e2 !important; }
  .section-title { color: #e8e8e2 !important; }
  .section-sub { color: #7a8a78 !important; }
  .rev-table thead tr { background: #0f1a0f !important; }
  .rev-table th { color: #C5A059 !important; border-bottom: 1px solid rgba(197,160,89,0.2) !important; font-size: 10px !important; letter-spacing: 1px !important; }
  .rev-table td { border-bottom: 1px solid rgba(255,255,255,0.05) !important; color: #e8e8e2 !important; }
  .rev-table tr:hover td { background: rgba(197,160,89,0.04) !important; }
  .kpi-card { background: #131a13 !important; border: 1px solid rgba(255,255,255,0.07) !important; }
  .kpi-label { color: #7a8a78 !important; }
  .kpi-value { color: #e8e8e2 !important; }
  .kpi-card.gold .kpi-value { color: #C5A059 !important; }
  .kpi-card.green .kpi-value { color: #4ADE80 !important; }
  .kpi-sub { color: #7a8a78 !important; }
  .btn-primary { background: #C5A059 !important; color: #0d1210 !important; font-weight: 700 !important; }
  .btn-primary:hover { background: #D4AF37 !important; }
  .btn-outline { border-color: rgba(197,160,89,0.4) !important; color: #C5A059 !important; background: transparent !important; }
  .btn-outline:hover { background: rgba(197,160,89,0.08) !important; }
  .btn-gold { background: linear-gradient(135deg,#C5A059,#D4AF37) !important; color: #0d1210 !important; font-weight: 700 !important; }
  input, select, textarea { background: #0f1a0f !important; border-color: rgba(255,255,255,0.1) !important; color: #e8e8e2 !important; }
  input::placeholder { color: #7a8a78 !important; }
  .card-badge { background: rgba(197,160,89,0.12) !important; color: #C5A059 !important; border: 1px solid rgba(197,160,89,0.2) !important; }
  .mode-tab { background: transparent !important; color: #7a8a78 !important; border-color: rgba(255,255,255,0.1) !important; }
  .mode-tab.active-mode { background: rgba(197,160,89,0.1) !important; color: #C5A059 !important; border-color: rgba(197,160,89,0.3) !important; }
  .metric-key { color: #7a8a78 !important; }
  .metric-val { color: #e8e8e2 !important; }
  .alert-banner.success { background: rgba(74,222,128,0.08) !important; border: 1px solid rgba(74,222,128,0.2) !important; color: #4ADE80 !important; }
  .alert-banner.warning { background: rgba(251,191,36,0.08) !important; border: 1px solid rgba(251,191,36,0.2) !important; color: #FBBF24 !important; }
  .alert-banner.error { background: rgba(248,113,113,0.08) !important; border: 1px solid rgba(248,113,113,0.2) !important; color: #F87171 !important; }
  .edu-card { background: #131a13 !important; border: 1px solid rgba(197,160,89,0.15) !important; }
  .edu-card-header { background: linear-gradient(135deg,#0f1a0f,#1a2a1a) !important; color: #C5A059 !important; }
  .playbook-step { background: #0f1a0f !important; border-left: 3px solid #C5A059 !important; }
  .step-num { background: #C5A059 !important; color: #0d1210 !important; }
  .metric-pill { background: #0f1a0f !important; border: 1px solid rgba(255,255,255,0.06) !important; color: #e8e8e2 !important; }
  ::-webkit-scrollbar { width: 6px; height: 6px; }
  ::-webkit-scrollbar-track { background: #0d1210; }
  ::-webkit-scrollbar-thumb { background: rgba(197,160,89,0.3); border-radius: 3px; }
  ::-webkit-scrollbar-thumb:hover { background: rgba(197,160,89,0.5); }

  /* ═══════════════════════════════════════════════
     v82 MOBILE ACTIONABILITY SYSTEM
     Sticky action bar · Alert banners · Touch-first
  ═══════════════════════════════════════════════ */

  /* Mobile sticky action bar — bottom of screen */
  #pk-mobile-action-bar {
    display: none;
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 800;
    background: #080e08;
    border-top: 1px solid rgba(197,160,89,0.25);
    padding: 10px 16px 18px;
    gap: 8px;
    box-shadow: 0 -8px 24px rgba(0,0,0,0.5);
    backdrop-filter: blur(10px);
  }
  #pk-mobile-action-bar.visible { display: flex; }

  .pk-mob-action-btn {
    flex: 1; padding: 11px 8px;
    border-radius: 10px; border: none; cursor: pointer;
    font-family: 'DM Sans', sans-serif; font-size: 12px; font-weight: 700;
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    transition: all 0.15s;
  }
  .pk-mob-action-btn span { font-size: 18px; line-height: 1; }
  .pk-mob-action-btn.primary { background: #C5A059; color: #0d1210; }
  .pk-mob-action-btn.danger  { background: rgba(248,113,113,0.15); color: #F87171; border: 1px solid rgba(248,113,113,0.3); }
  .pk-mob-action-btn.ghost   { background: rgba(255,255,255,0.06); color: #e8e8e2; border: 1px solid rgba(255,255,255,0.1); }

  /* Mobile labor alert banner — slides down from top */
  #pk-labor-alert-banner {
    display: none;
    position: fixed; top: 64px; left: 0; right: 0; z-index: 799;
    padding: 12px 16px; gap: 10px; align-items: center;
    font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 600;
    animation: pkSlideDown 0.3s ease;
  }
  #pk-labor-alert-banner.show { display: flex; }
  #pk-labor-alert-banner.danger-banner {
    background: rgba(239,68,68,0.92); color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(8px);
  }
  #pk-labor-alert-banner.warning-banner {
    background: rgba(217,119,6,0.92); color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(8px);
  }
  #pk-labor-alert-banner.success-banner {
    background: rgba(21,128,61,0.92); color: #fff;
    border-bottom: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(8px);
  }
  @keyframes pkSlideDown {
    from { transform: translateY(-100%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
  }

  /* Mobile KPI cards — larger touch targets, bolder numbers */
  @media (max-width: 768px) {
    #pk-mobile-action-bar { display: flex; }
    body { padding-bottom: 80px; }

    .kpi-value { font-size: 28px !important; }
    .kpi-label { font-size: 11px !important; }

    /* Nav scroll on mobile */
    .nav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .nav::-webkit-scrollbar { display: none; }

    /* Schedule table — horizontal scroll on mobile */
    .sched-wrap, [id^="tab-schedule"] .card-body { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    /* Shift cells bigger touch targets on mobile */
    .shift-cell div, [onclick*="openShiftEditor"] { min-height: 44px !important; display: flex !important; flex-direction: column !important; justify-content: center !important; }

    /* Cards full width */
    .grid-2, .grid-3 { grid-template-columns: 1fr !important; }

    /* Section titles smaller */
    .section-title { font-size: 18px !important; }

    /* Hide non-essential columns in schedule on mobile */
    .sched-rate-col, .sched-pos-col { display: none; }

    /* Mobile-friendly advisor */
    #tab-advisor .grid-2 { grid-template-columns: 1fr !important; }

    /* Nav tabs — scrollable, no wrap, no bleed */
    .nav { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; gap: 0 !important; }
    .nav::-webkit-scrollbar { display: none; }
    .nav-item { 
      padding: 10px 14px !important; 
      font-size: 11px !important; 
      min-width: unset !important;
      white-space: nowrap !important; 
      flex-shrink: 0 !important;
    }

    /* Header — compact single row on mobile */
    .header-bar { flex-wrap: nowrap !important; gap: 6px !important; padding: 8px 10px !important; }
    .brand { flex-shrink: 0; }
    .brand-title { font-size: 13px !important; }
    .brand-sub { display: none !important; }
    #pk-status-dot-wrap { flex-shrink: 0; }
    #pk-clock { display: none !important; }
    #loc-dropdown-wrap { max-width: 100px; overflow: hidden; }
    #pk-user-pill { max-width: 90px; overflow: hidden; }
    #pk-user-pill .pk-user-name { display: none !important; }

    /* Portfolio bar — scrollable */
    #portfolioBar { flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
    #portfolioBar::-webkit-scrollbar { display: none; }
  }

  /* Mobile alert pulse for urgent states */
  .pk-pulse-danger {
    animation: pkPulseDanger 1.5s ease infinite;
  }
  @keyframes pkPulseDanger {
    0%,100% { box-shadow: 0 0 0 0 rgba(248,113,113,0.4); }
    50%      { box-shadow: 0 0 0 6px rgba(248,113,113,0); }
  }
  [style*="background:#fff"],[style*="background: #fff"],[style*="background:white"] { background: #131a13 !important; }
  [style*="background:#0f1a0f"],[style*="background:#f9fafb"] { background: #0f1a0f !important; }
  [style*="color:#374151"] { color: #c8c8c2 !important; }
  [style*="color:#1a2e1a"] { color: #e8e8e2 !important; }
  [style*="color:#6B7280"],[style*="color:#6b7280"] { color: #7a8a78 !important; }
  [style*="border:1px solid #e5e7eb"],[style*="border: 1px solid #e5e7eb"] { border-color: rgba(255,255,255,0.07) !important; }
  [style*="background:#E5E7EB"],[style*="background:#e5e7eb"] { background: rgba(255,255,255,0.08) !important; }

}

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

  body {
    font-family: 'DM Sans', sans-serif;
    background: var(--cream);
    color: var(--ink);
    min-height: 100vh;
    overflow-x: hidden;
  }

  /* ── HEADER ─────────────────────────────────────── */
  .header {
    background: var(--green);
    padding: 0 32px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 12px rgba(0,0,0,0.2);
  }

  .header-brand {
    display: flex;
    align-items: center;
    gap: 16px;
  }

  .brand-mark {
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    filter: drop-shadow(0 0 8px rgba(244,196,48,0.35));
    transition: filter 0.3s ease, transform 0.3s ease;
    cursor: default;
  }
  .brand-mark:hover {
    filter: drop-shadow(0 0 14px rgba(244,196,48,0.65));
    transform: scale(1.04);
  }

  .brand-text {
    display: flex; flex-direction: column;
  }
  .brand-name {
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--gold-bright);
    letter-spacing: 2px;
    text-transform: uppercase;
    line-height: 1;
  }
  .brand-sub {
    font-family: 'DM Mono', monospace;
    font-size: 9.5px;
    color: rgba(255,255,255,0.85);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    line-height: 1.4;
    margin-top: 2px;
  }

  .header-right {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .sync-status {
    display: flex; align-items: center; gap: 6px;
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.6);
    letter-spacing: 0.5px;
  }
  .sync-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: #4ADE80;
    animation: pulse 2s infinite;
  }
  @keyframes pulse {
    0%,100% { opacity:1; transform:scale(1); }
    50% { opacity:0.5; transform:scale(1.3); }
  }
  .header-client { background:rgba(255,255,255,0.08) !important; border:1px solid rgba(255,255,255,0.15) !important; color:#fff !important;
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,0.85);
    padding: 6px 14px;
    background: rgba(255,255,255,0.08);
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,0.12);
  }

  /* ── NAV ────────────────────────────────────────── */
  .nav {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    padding: 0 32px;
    display: flex;
    align-items: center;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .nav-item {
    padding: 14px 20px;
    font-size: 13px;
    font-weight: 500;
    color: var(--muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.2s;
    white-space: nowrap;
    letter-spacing: 0.2px;
  }
  .nav-item:hover { color: var(--green); }
  .nav-item.active { color: var(--green); border-bottom: 2px solid var(--green); font-weight: 700; background: rgba(27,67,50,0.06); border-radius: 4px 4px 0 0; }
  .nav-scroll-arrow {
    position: sticky;
    background: transparent;
    padding: 0 10px;
    display: flex; align-items: center;
    cursor: pointer;
    font-size: 20px;
    font-weight: 900;
    color: var(--green);
    flex-shrink: 0;
    z-index: 2;
    border: none;
    height: 100%;
    line-height: 1;
  }
  .nav-scroll-arrow.left { left: 0; background: linear-gradient(to right, var(--white) 50%, transparent); padding-right: 14px; }
  .nav-scroll-arrow.right { right: 0; background: linear-gradient(to left, var(--white) 50%, transparent); padding-left: 14px; }
  .nav-scroll-arrow:hover { color: var(--gold); }


  /* ── MAIN LAYOUT ──────────────────────────────── */
  .main {
    max-width: 1280px;
    margin: 0 auto;
    padding: 32px;
    padding-bottom: 52px;
    display: none;
    min-height: calc(100vh - 120px);
  }
  .main.active {
    display: block;
  }
  .main.active { display: block; }

  /* ── WEEK SELECTOR BAR ──────────────────────────── */
  .week-bar {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 28px;
    box-shadow: var(--shadow-sm);
  }
  .week-label {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    font-weight: 700;
    color: var(--green);
  }
  .week-sub {
    font-size: 12px;
    color: var(--muted);
    margin-top: 2px;
    font-family: 'DM Mono', monospace;
    letter-spacing: 0.5px;
  }
  .week-controls {
    display: flex; align-items: center; gap: 10px;
  }
  .btn {
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    border: none;
    letter-spacing: 0.2px;
  }
  .btn-primary {
    background: var(--green);
    color: var(--white);
    box-shadow: var(--shadow-sm);
  }
  .btn-primary:hover { background: var(--green-mid); transform: translateY(-1px); box-shadow: var(--shadow-md); }
  .btn-outline {
    background: transparent;
    color: var(--green);
    border: 1.5px solid var(--border);
  }
  .btn-outline:hover { background: var(--green-light); border-color: var(--green); }
  .btn-gold {
    background: var(--gold);
    color: var(--white);
  }
  .btn-gold:hover { background: #9a7009; transform: translateY(-1px); }

  /* ── KPI GRID ─────────────────────────────────── */
  .kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 28px;
  }
  @media (max-width: 900px) { .kpi-grid { grid-template-columns: repeat(2,1fr); } }
  @media (max-width: 600px) { .kpi-grid { grid-template-columns: 1fr; } }

  .kpi-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 20px 22px;
    box-shadow: var(--shadow-sm);
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
  }
  .kpi-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
  .kpi-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
  }
  .kpi-card.green::before  { background: var(--green); }
  .kpi-card.gold::before   { background: var(--gold); }
  .kpi-card.alert::before  { background: var(--red); }
  .kpi-card.amber::before  { background: var(--amber); }

  .kpi-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--muted);
    margin-bottom: 8px;
    font-family: 'DM Mono', monospace;
  }
  .kpi-value {
    font-family: 'Playfair Display', serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--green);
    line-height: 1;
    margin-bottom: 6px;
  }
  .kpi-card.alert .kpi-value { color: var(--red); }
  .kpi-card.amber .kpi-value { color: var(--amber); }
  .kpi-card.gold  .kpi-value { color: var(--gold); }

  .kpi-delta {
    font-size: 12px;
    color: var(--muted);
    display: flex; align-items: center; gap: 4px;
  }
  .delta-up   { color: #16A34A; }
  .delta-down { color: var(--red); }

  /* ── ALERT BANNER ─────────────────────────────── */
  .alert-banner {
    border-radius: 12px;
    padding: 14px 20px;
    margin-bottom: 20px;
    display: flex; align-items: center; gap: 12px;
    font-size: 14px;
    font-weight: 500;
    animation: slideIn 0.3s ease;
  }
  @keyframes slideIn { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
  .alert-banner.danger  { background: var(--red-light); border: 1px solid rgba(248,113,113,0.3); color: #991B1B; }
  .alert-banner.warning { background: var(--amber-light); border: 1px solid #FCD34D; color: #92400E; }
  .alert-banner.success { background: var(--green-light); border: 1px solid #86EFAC; color: var(--green); }
  .alert-icon { font-size: 18px; flex-shrink: 0; }

  /* ── GRID LAYOUT ──────────────────────────────── */
  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
  .grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-bottom: 20px; }
  @media (max-width: 900px) { .grid-2, .grid-3 { grid-template-columns: 1fr; } }

  /* ── CARD ─────────────────────────────────────── */
  .card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
  }
  .card-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    display: flex; align-items: center; justify-content: space-between;
    background: linear-gradient(135deg, var(--green) 0%, var(--green-mid) 100%);
  }
  .card-title {
    font-family: 'Playfair Display', serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--white);
    letter-spacing: 0.3px;
  }
  .card-badge {
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    padding: 3px 10px;
    border-radius: 20px;
    background: rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.9);
    letter-spacing: 0.5px;
    text-transform: uppercase;
  }
  .card-body { padding: 20px; }

  /* ── REVENUE TABLE ────────────────────────────── */
  .rev-table { width: 100%; border-collapse: collapse; }
  .rev-table th {
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--muted);
    padding: 8px 12px;
    text-align: right;
    border-bottom: 1px solid var(--border);
  }
  .rev-table th:first-child { text-align: left; }
  .rev-table td {
    padding: 12px 12px;
    font-size: 13px;
    border-bottom: 1px solid rgba(27,67,50,0.05);
    text-align: right;
    font-family: 'DM Mono', monospace;
    letter-spacing: 0.3px;
  }
  .rev-table td:first-child {
    text-align: left;
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    color: var(--ink);
    font-size: 13px;
  }
  .rev-table tr:hover td { background: rgba(27,67,50,0.02); }
  .rev-table .total-row td {
    font-weight: 700;
    color: var(--green);
    border-top: 2px solid var(--border);
    border-bottom: none;
    background: var(--green-light);
  }
  .rev-table .total-row td:first-child { border-radius: 0 0 0 8px; }
  .rev-table .total-row td:last-child  { border-radius: 0 0 8px 0; }

  .event-tag {
    display: inline-block;
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 4px;
    background: var(--gold-light);
    color: var(--gold);
    font-weight: 600;
    margin-left: 6px;
    font-family: 'DM Mono', monospace;
    letter-spacing: 0.3px;
  }

  /* ── SCHEDULE TABLE ───────────────────────────── */
  .schedule-table { width: 100%; border-collapse: collapse; font-size: 12px; }
  .schedule-table th {
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--muted);
    padding: 8px 10px;
    text-align: center;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
  }
  .schedule-table th:first-child, .schedule-table th:nth-child(2) { text-align: left; }
  .schedule-table td {
    padding: 10px 10px;
    text-align: center;
    border-bottom: 1px solid rgba(27,67,50,0.04);
    font-family: 'DM Mono', monospace;
    font-size: 12px;
    color: var(--ink);
  }
  .schedule-table td:first-child { text-align: left; font-family: 'DM Sans', sans-serif; font-size: 12px; font-weight: 600; }
  .schedule-table td:nth-child(2) { text-align: left; font-family: 'DM Sans', sans-serif; font-size: 12px; }
  .schedule-table tr:hover td { background: rgba(27,67,50,0.02); }

  .hrs-cell { cursor: pointer; }
  .hrs-input {
    width: 42px; padding: 4px 6px; text-align: center;
    border: 1.5px solid var(--gold);
    border-radius: 6px; font-size: 12px;
    font-family: 'DM Mono', monospace;
    background: var(--gold-light);
    color: var(--ink);
    outline: none;
  }
  .hrs-display {
    display: inline-block;
    width: 32px; height: 24px;
    line-height: 24px;
    border-radius: 6px;
    font-size: 12px;
    transition: background 0.15s;
  }
  .hrs-display:not(.zero):hover { background: var(--gold-light); }
  .hrs-display.zero { color: rgba(107,124,106,0.35); }

  .total-hrs { font-weight: 700; color: var(--green); }
  .labor-amt  { font-weight: 600; color: var(--ink); }
  .over-avg   { color: var(--red); font-size: 10px; }
  .under-avg  { color: #16A34A; font-size: 10px; }

  .sched-totals td {
    font-weight: 700; color: var(--green);
    background: var(--green-light);
    border-top: 2px solid var(--border);
  }

  .dept-badge {
    font-size: 9px; padding: 2px 6px; border-radius: 4px;
    font-family: 'DM Mono', monospace; font-weight: 600;
    letter-spacing: 0.5px; margin-left: 6px;
  }
  .dept-foh { background: rgba(91,33,182,0.15); color: #A78BFA; }
  .dept-boh { background: rgba(251,191,36,0.12); color: #92400E; }

  /* ── EVENTS TABLE ─────────────────────────────── */
  .events-table { width: 100%; border-collapse: collapse; }
  .events-table th {
    font-family: 'DM Mono', monospace;
    font-size: 10px; text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--muted); padding: 8px 14px;
    text-align: left; border-bottom: 1px solid var(--border);
  }
  .events-table td {
    padding: 12px 14px; font-size: 13px;
    border-bottom: 1px solid rgba(27,67,50,0.05);
  }
  .events-table tr:hover td { background: rgba(27,67,50,0.02); }

  .confirm-badge {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 10px; border-radius: 20px;
    font-size: 11px; font-weight: 600;
    font-family: 'DM Mono', monospace; letter-spacing: 0.3px;
  }
  .confirmed    { background: var(--green-light); color: var(--green); }
  .unconfirmed  { background: var(--amber-light); color: var(--amber); }

  /* ── RPLH GAUGE ───────────────────────────────── */
  .gauge-wrap {
    display: flex; flex-direction: column; align-items: center;
    padding: 20px 0 10px;
  }
  .gauge-svg { overflow: visible; }
  .gauge-value {
    font-family: 'Playfair Display', serif;
    font-size: 36px; font-weight: 900;
    fill: var(--green); text-anchor: middle;
  }
  .gauge-label {
    font-family: 'DM Mono', monospace;
    font-size: 11px; text-transform: uppercase; letter-spacing: 1px;
    fill: var(--muted); text-anchor: middle;
  }

  .metric-row {
    display: flex; justify-content: space-between;
    padding: 10px 0; border-bottom: 1px solid var(--border);
  }
  .metric-row:last-child { border-bottom: none; }
  .metric-key {
    font-size: 12px; color: var(--muted); font-weight: 500;
  }
  .metric-val {
    font-family: 'DM Mono', monospace;
    font-size: 13px; font-weight: 600; color: var(--ink);
  }
  .metric-val.danger { color: var(--red); }
  .metric-val.success { color: #16A34A; }

  /* ── POSITION TABLE ───────────────────────────── */
  .pos-table { width: 100%; border-collapse: collapse; }
  .pos-table th {
    font-family: 'DM Mono', monospace;
    font-size: 10px; text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--muted); padding: 8px 14px;
    text-align: right; border-bottom: 1px solid var(--border);
  }
  .pos-table th:first-child { text-align: left; }
  .pos-table td {
    padding: 11px 14px; font-size: 12px;
    font-family: 'DM Mono', monospace; text-align: right;
    border-bottom: 1px solid rgba(27,67,50,0.04);
  }
  .pos-table td:first-child {
    text-align: left; font-family: 'DM Sans', sans-serif;
    font-weight: 600; font-size: 13px;
  }
  .pos-table tr:hover td { background: rgba(27,67,50,0.02); }

  /* Invoice list table — explicit alignment, not overridden by pos-table */
  .inv-list-table { width:100%; table-layout:fixed; border-collapse:collapse; }
  .inv-list-table th { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:0.8px; color:var(--muted); padding:8px 14px; border-bottom:1px solid var(--border); }
  .inv-list-table td { padding:11px 14px; font-size:12px; font-family:'DM Mono',monospace; border-bottom:1px solid rgba(27,67,50,0.04); }
  .inv-list-table tr:hover td { background:rgba(27,67,50,0.02); }

  /* ── EXPORT BAR ───────────────────────────────── */
  .export-bar {
    display: flex; gap: 10px; justify-content: flex-end; margin-bottom: 20px;
  }

  /* ── EMPTY STATE ──────────────────────────────── */
  .empty-state {
    text-align: center; padding: 60px 20px; color: var(--muted);
  }
  .empty-icon { font-size: 48px; margin-bottom: 16px; }
  .empty-title { font-family: 'Playfair Display', serif; font-size: 20px; color: var(--green); margin-bottom: 8px; }
  .empty-text  { font-size: 14px; max-width: 360px; margin: 0 auto; }

  /* ── SECTION TITLE ────────────────────────────── */
  .section-title {
    font-family: 'Playfair Display', serif;
    font-size: 22px; font-weight: 700; color: var(--green);
    margin-bottom: 6px;
  }
  .section-sub {
    font-size: 13px; color: var(--muted); margin-bottom: 24px;
  }

  /* ── FOOTER ───────────────────────────────────── */
  .footer {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
    text-align: center; padding: 8px 32px;
    font-family: 'DM Mono', monospace; font-size: 10px;
    color: var(--muted); letter-spacing: 0.5px;
    background: var(--bg, #0A1A12);
    border-top: 1px solid var(--border);
  }
  .footer span { color: var(--gold); }
  /* ── FRAMEWORK STYLES ──────────────────────────────── */
  .fw-btn {
    padding: 9px 20px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    background: var(--white);
    color: var(--muted);
    border: 1.5px solid var(--border);
    font-family: 'DM Mono', monospace;
    letter-spacing: 0.3px;
    transition: all 0.2s;
  }
  .fw-btn:hover { background: var(--green-light); color: var(--green); border-color: var(--green); }
  .fw-btn.active { background: var(--green); color: var(--white); border-color: var(--green); }

  .profit-node {
    padding: 12px 32px;
    border-radius: 10px;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 600;
    width: 260px;
    text-align: center;
    border: 1.5px solid var(--border);
  }
  .profit-node.revenue { background: var(--green); color: var(--white); }
  .profit-node.cost { background: var(--cream); color: var(--ink); }
  .profit-node.prime { border: none; }
  .profit-node.profit { background: var(--green-light); color: var(--green); border-color: #86EFAC; }
  .profit-arrow { font-size: 18px; color: var(--muted); padding: 4px 0; font-family: 'DM Mono', monospace; }

  .mod-section { margin-bottom: 20px; }
  .mod-label {
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--gold);
    font-weight: 600;
    margin-bottom: 8px;
  }
  .mod-section p { font-size: 14px; line-height: 1.8; color: var(--ink); }

  .metric-pill {
    background: var(--cream);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--ink);
  }

  .playbook-step {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
  }
  .playbook-step:last-child { border-bottom: none; }
  .step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: var(--green);
    color: var(--white);
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0;
  }
  .playbook-step p, .playbook-step div { font-size: 13px; line-height: 1.7; color: var(--ink); }

  /* CASE STUDIES */
  .case-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  @media(max-width:800px) { .case-grid { grid-template-columns: 1fr; } }
  .case-block { padding: 16px; border-radius: 10px; }
  .case-block.situation { background: var(--cream); border: 1px solid var(--border); }
  .case-block.intervention { background: var(--gold-light); border: 1px solid #DEB887; }
  .case-block.result { background: var(--green-light); border: 1px solid #86EFAC; }
  .case-block.insight { background: var(--green); color: var(--white); }
  .case-label {
    font-family: 'DM Mono', monospace;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--muted);
  }
  .case-block.insight .case-label { color: rgba(255,255,255,0.6); }
  .case-block p { font-size: 13px; line-height: 1.7; }
  .case-block.insight p { color: rgba(255,255,255,0.9); }

  /* PLAYBOOK PHASES */
  .phase-block {
    border-left: 4px solid var(--green);
    padding: 16px 20px;
    background: var(--white);
    border-radius: 0 12px 12px 0;
    box-shadow: var(--shadow-sm);
  }
  .phase-header { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
  .phase-num {
    padding: 4px 12px;
    border-radius: 20px;
    color: var(--white);
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    white-space: nowrap;
  }
  .phase-title { font-family: 'Playfair Display', serif; font-size: 16px; font-weight: 700; color: var(--ink); }
  .phase-time { font-family: 'DM Mono', monospace; font-size: 11px; color: var(--muted); margin-left: auto; }
  .checklist-item {
    font-size: 12px;
    font-family: 'DM Mono', monospace;
    color: var(--ink);
    padding: 6px 10px;
    background: var(--cream);
    border-radius: 6px;
    line-height: 1.5;
  }

  /* TOOLS */
  .tool-label {
    display: block;
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--muted);
    margin-bottom: 4px;
  }
  .tool-input {
    width: 100%;
    padding: 8px 12px;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    font-family: 'DM Mono', monospace;
    color: var(--ink);
    background: var(--surface);
  }
  .tool-input:focus { outline: none; border-color: var(--primary); }

  /* AI ADVISOR */
  .quick-prompt {
    padding: 7px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    background: var(--cream);
    color: var(--ink);
    border: 1px solid var(--border);
    font-family: 'DM Sans', sans-serif;
    transition: all 0.2s;
    white-space: nowrap;
  }
  .quick-prompt:hover { background: var(--green-light); color: var(--green); border-color: var(--green); }

  .ai-msg-user {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    align-items: flex-start;
  }
  .ai-msg-user .bubble {
    background: var(--green);
    color: var(--white);
    padding: 12px 16px;
    border-radius: 12px 2px 12px 12px;
    max-width: 80%;
    font-size: 13px;
    line-height: 1.6;
  }
  .ai-msg-bot {
    display: flex;
    gap: 12px;
    align-items: flex-start;
  }
  .ai-msg-bot .bubble {
    background: var(--white);
    color: var(--ink);
    padding: 14px 16px;
    border-radius: 2px 12px 12px 12px;
    max-width: 85%;
    font-size: 13px;
    line-height: 1.7;
    box-shadow: var(--shadow-sm);
  }
  .ai-avatar {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--green);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold-bright);
    font-family: 'Playfair Display', serif;
    font-weight: 900;
    font-size: 14px;
    flex-shrink: 0;
  }
  .typing-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--muted);
    animation: typingBounce 1.2s infinite;
    margin: 0 2px;
  }
  .typing-dot:nth-child(2) { animation-delay: 0.2s; }
  .typing-dot:nth-child(3) { animation-delay: 0.4s; }
  @keyframes typingBounce {
    0%,60%,100% { transform:translateY(0); opacity:.4; }
    30% { transform:translateY(-6px); opacity:1; }
  }

  /* SECTION TITLE */
  .section-title {
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--green);
    margin-bottom: 4px;
  }
  .section-sub {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 24px;
  }


  /* ── EDUCATION MODE ──────────────────────────── */
  .edu-toggle-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 20px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-sm);
  }
  .toggle-switch {
    position: relative;
    display: inline-block;
    width: 46px;
    height: 24px;
  }
  .toggle-switch input { opacity: 0; width: 0; height: 0; }
  .toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background: var(--border);
    border-radius: 24px;
    transition: 0.3s;
  }
  .toggle-slider:before {
    content: '';
    position: absolute;
    height: 18px; width: 18px;
    left: 3px; bottom: 3px;
    background: white;
    border-radius: 50%;
    transition: 0.3s;
  }
  .toggle-switch input:checked + .toggle-slider { background: var(--green); }
  .toggle-switch input:checked + .toggle-slider:before { transform: translateX(22px); }

  .edu-card {
    background: linear-gradient(135deg, #1B4332 0%, #2D6A4F 100%);
    border-radius: 14px;
    margin-bottom: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
  }
  .edu-card-header {
    padding: 14px 20px;
    font-family: 'Playfair Display', serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--gold-bright);
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .edu-card-body {
    padding: 20px;
    color: rgba(255,255,255,0.9);
    font-size: 14px;
    line-height: 1.8;
  }
  .edu-card-body strong { color: var(--gold-bright); }
  .edu-formula {
    background: rgba(0,0,0,0.3);
    border-radius: 8px;
    padding: 12px 16px;
    font-family: 'DM Mono', monospace;
    font-size: 13px;
    color: var(--gold-bright);
    margin: 12px 0;
    line-height: 1.8;
  }
  .edu-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 16px;
  }
  @media(max-width:800px) { .edu-grid { grid-template-columns: repeat(2,1fr); } }
  .edu-fact {
    background: rgba(255,255,255,0.1);
    border-radius: 10px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: center;
  }
  .edu-num {
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    font-weight: 900;
    color: var(--gold-bright);
  }
  .edu-fact span:last-child { font-size: 11px; opacity: 0.75; }

  /* ── PRIME COST ──────────────────────────────── */
  .pc-big-number {
    font-family: 'Playfair Display', serif;
    font-size: 56px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    padding: 16px 0 8px;
  }
  .pc-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
  .pc-label { font-family: 'DM Mono', monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); }
  .pc-val { font-family: 'DM Mono', monospace; font-size: 15px; font-weight: 700; color: var(--ink); }

  .rec-block {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 14px;
    border-radius: 10px;
    margin-bottom: 12px;
  }
  .rec-block.rec-labor { background: var(--green-light); border: 1px solid #86EFAC; }
  .rec-block.rec-menu  { background: var(--gold-light);  border: 1px solid #DEB887; }
  .rec-block.rec-waste { background: var(--amber-light); border: 1px solid #FCD34D; }
  .rec-icon { font-size: 22px; flex-shrink: 0; }
  .rec-title { font-weight: 700; font-size: 13px; margin-bottom: 4px; }
  .rec-detail { font-size: 12px; line-height: 1.7; color: var(--muted); }
  .rec-action { display: inline-block; margin-top: 6px; font-size: 11px; font-weight: 700; font-family: 'DM Mono', monospace; padding: 3px 10px; border-radius: 4px; background: rgba(0,0,0,0.08); }

  /* ── INVENTORY ───────────────────────────────── */
  .inv-signal {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    font-family: 'DM Mono', monospace;
    letter-spacing: 0.3px;
    white-space: nowrap;
  }
  .sig-dead    { background: rgba(248,113,113,0.12); color: #991B1B; }
  .sig-high    { background: var(--amber-light); color: #92400E; }
  .sig-ok      { background: var(--green-light); color: var(--green); }
  .sig-low     { background: var(--gold-light);  color: var(--gold); }

  .inv-alert-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
  }
  .inv-alert-item:last-child { border-bottom: none; }
  .inv-alert-icon { font-size: 20px; flex-shrink: 0; }
  .inv-alert-msg  { font-size: 13px; line-height: 1.7; }
  .inv-alert-msg strong { color: var(--ink); }

  /* ── VELOCITY ────────────────────────────────── */
  .dow-tile {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 8px;
    text-align: center;
    box-shadow: var(--shadow-sm);
    position: relative;
    overflow: hidden;
  }
  .dow-tile::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
  }
  .dow-tile.high::before  { background: var(--green); }
  .dow-tile.med::before   { background: var(--gold); }
  .dow-tile.low::before   { background: var(--muted); }
  .dow-day   { font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-bottom: 4px; }
  .dow-rev   { font-family: 'Playfair Display', serif; font-size: 16px; font-weight: 700; color: var(--green); }
  .dow-index { font-size: 10px; font-family: 'DM Mono', monospace; margin-top: 3px; }

  .vel-bar-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
  }
  .vel-bar-label { width: 80px; font-size: 12px; font-family: 'DM Mono', monospace; color: var(--muted); text-align: right; }
  .vel-bar-track { flex: 1; height: 8px; background: var(--cream); border-radius: 4px; overflow: hidden; }
  .vel-bar-fill  { height: 100%; border-radius: 4px; transition: width 0.5s ease; }
  .vel-bar-val   { width: 50px; font-size: 12px; font-family: 'DM Mono', monospace; font-weight: 700; }

  .prep-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
  }
  .prep-item:last-child { border-bottom: none; }
  .prep-qty { font-family: 'DM Mono', monospace; font-weight: 700; color: var(--green); }

  .staff-rec-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: var(--cream);
    border-radius: 8px;
  }
  .staff-pos  { font-size: 13px; font-weight: 600; }
  .staff-hrs  { font-family: 'DM Mono', monospace; font-size: 13px; font-weight: 700; color: var(--green); }


  /* ── MODE TABS ───────────────────────────────── */
  .mode-tab {
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid rgba(255,255,255,.3);
    color: rgba(255,255,255,.7);
    background: rgba(255,255,255,.1);
    font-family: 'DM Mono', monospace;
    transition: all .2s;
  }
  .mode-tab.active-mode {
    background: rgba(255,255,255,.25);
    color: #fff;
    border-color: rgba(255,255,255,.6);
  }

  /* ── PORTFOLIO SWITCHER ──────────────────────── */
  .portfolio-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 14px 16px;
    background: var(--white);
    border: 1.5px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    transition: all .2s;
    margin-bottom: 8px;
  }
  .portfolio-btn:hover { border-color: var(--green); background: var(--green-light); }
  .portfolio-btn.active-rest { border-color: var(--green); background: var(--green-light); box-shadow: 0 0 0 2px rgba(27,67,50,.2); }
  .portfolio-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--muted); flex-shrink: 0; }
  .portfolio-btn.active-rest .portfolio-dot { background: var(--green); }
  .portfolio-rest-name { font-weight: 700; font-size: 14px; color: var(--ink); }
  .portfolio-rest-meta { font-size: 11px; color: var(--muted); font-family: 'DM Mono', monospace; }
  .portfolio-actions { margin-left: auto; display: flex; gap: 6px; }
  .portfolio-action-btn {
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    cursor: pointer;
    border: 1px solid var(--border);
    background: var(--white);
    color: var(--ink);
    font-family: 'DM Mono', monospace;
  }

  /* ── PORTFOLIO HEADER SWITCHER BAR ────────────── */
  #portfolioBar {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }
  #portfolioBar::-webkit-scrollbar { display: none; }
  .port-tab {
    white-space: nowrap;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid rgba(255,255,255,.25);
    color: rgba(255,255,255,.65);
    background: rgba(255,255,255,.08);
    font-family: 'DM Mono', monospace;
    transition: all .2s;
    flex-shrink: 0;
  }
  .port-tab:hover { background: rgba(255,255,255,.15); color: #fff; }
  .port-tab.active-port { background: var(--gold); color: #0d1210; border-color: var(--gold); font-weight: 800; }
  .port-add-btn {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 11px;
    cursor: pointer;
    border: 1px dashed rgba(255,255,255,.4);
    color: rgba(255,255,255,.6);
    background: transparent;
    font-family: 'DM Mono', monospace;
    flex-shrink: 0;
  }
  .port-add-btn:hover { border-color: var(--gold-bright); color: var(--gold-bright); }

  /* ── ROSTER TABLE ────────────────────────────── */
  .dept-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    font-family: 'DM Mono', monospace;
    letter-spacing: .5px;
  }
  .dept-BOH { background: rgba(249,115,22,0.15); color: #FB923C; font-weight:700; }
  .dept-FOH { background: rgba(74,222,128,0.12); color: #4ADE80; font-weight:700; }
  .dept-MGT { background: rgba(255,255,255,0.08); color: var(--white); }
  .dept-BAR { background: var(--amber-light); color: var(--amber); }

  /* ── PLATE DRIFT TABLE ───────────────────────── */
  .drift-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 9px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 700;
    font-family: 'DM Mono', monospace;
    white-space: nowrap;
  }
  .drift-ok      { background: var(--green-light); color: var(--green); }
  .drift-watch   { background: var(--gold-light);  color: var(--gold);  }
  .drift-warning { background: var(--amber-light); color: var(--amber); }
  .drift-danger  { background: rgba(248,113,113,0.12);            color: #991B1B;      }

  .drift-rec-block {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    border-radius: 10px;
    margin-bottom: 10px;
  }
  .drift-rec-icon  { font-size: 20px; flex-shrink: 0; }
  .drift-rec-title { font-weight: 700; font-size: 13px; margin-bottom: 3px; }
  .drift-rec-text  { font-size: 12px; line-height: 1.65; color: var(--muted); }


  /* ── DAILY SNAPSHOT ─────────────────────────────── */
  .snap-metric {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
  .snap-metric:last-child { border-bottom: none; }
  .snap-metric-label { font-family: 'DM Mono', monospace; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; color: var(--muted); }
  .snap-metric-val { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; }
  .snap-prime-big {
    text-align: center;
    padding: 20px 0 12px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 12px;
  }
  .snap-prime-num { font-family: 'Playfair Display', serif; font-size: 64px; font-weight: 900; line-height: 1; }
  .snap-prime-label { font-family: 'DM Mono', monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-top: 4px; }
  .snap-action-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    border-radius: 10px;
    margin-bottom: 10px;
  }
  .snap-action-icon { font-size: 20px; flex-shrink: 0; }
  .snap-action-title { font-weight: 700; font-size: 13px; margin-bottom: 3px; }
  .snap-action-detail { font-size: 12px; line-height: 1.65; }

  /* ── LABOR ENGINE ────────────────────────────────── */
  .le-big-decision {
    text-align: center;
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 16px;
  }
  .le-decision-headline { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 900; margin-bottom: 6px; }
  .le-decision-sub { font-family: 'DM Mono', monospace; font-size: 12px; opacity: .75; }
  .le-metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
  }
  .le-metric-row:last-child { border-bottom: none; }
  .le-metric-key { font-family: 'DM Mono', monospace; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .5px; }
  .le-metric-val { font-weight: 700; font-size: 15px; }

  /* ── MENU ENGINE ─────────────────────────────────── */
  .quad-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 8px;
    border-radius: 6px;
    font-size: 11px;
    background: rgba(255,255,255,.6);
    border: 1px solid rgba(0,0,0,.06);
  }
  .quad-item-name { font-weight: 600; }
  .quad-item-cm { font-family: 'DM Mono', monospace; font-size: 10px; color: var(--muted); }
  .menu-action-block {
    padding: 12px 14px;
    border-radius: 10px;
    margin-bottom: 10px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
  }
  .menu-action-icon { font-size: 18px; flex-shrink: 0; }
  .menu-action-title { font-weight: 700; font-size: 12px; margin-bottom: 3px; }
  .menu-action-detail { font-size: 11px; line-height: 1.6; color: var(--muted); }

  /* ── PROFIT SCORE ────────────────────────────────── */
  .score-breakdown-row {
    padding: 12px;
    background: var(--cream);
    border-radius: 8px;
    border: 1px solid var(--border);
  }
  .sbr-label { font-weight: 700; font-size: 12px; color: var(--green); margin-bottom: 4px; font-family: 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .5px; }
  .sbr-desc { font-size: 12px; line-height: 1.6; color: var(--muted); }
  .score-band {
    padding: 12px 16px;
    border-radius: 8px;
    border: 1px solid;
    display: flex;
    align-items: center;
    gap: 16px;
  }


  /* ── VENDOR IMPORT ───────────────────────────────────────────────── */
  .vendor-chip {
    padding: 6px 14px;
    border-radius: 20px;
    border: 1.5px solid var(--border);
    background: var(--white);
    font-size: 12px;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: all .15s;
    color: var(--ink);
  }
  .vendor-chip:hover { border-color: var(--green); color: var(--green); }
  .active-chip {
    background: var(--green);
    border-color: var(--green);
    color: var(--white) !important;
  }
  .csv-dropzone {
    border: 2px dashed var(--border);
    border-radius: 12px;
    padding: 28px 20px;
    text-align: center;
    cursor: pointer;
    transition: all .2s;
    background: var(--cream);
    font-size: 13px;
    font-weight: 600;
    color: var(--muted);
  }
  .csv-dropzone:hover, .csv-drop-active {
    border-color: var(--green);
    background: var(--green-light);
    color: var(--green);
  }
  .conf-high  { color: var(--green); font-weight: 700; }
  .conf-med   { color: var(--amber); font-weight: 700; }
  .conf-low   { color: var(--red);   font-weight: 700; }
  .price-up   { color: var(--red);   font-weight: 700; }
  .price-down { color: var(--green); font-weight: 700; }
  .price-same { color: var(--muted); }
  .scan-item-row td { vertical-align: middle; }

  /* ── V14: Mobile Card View for tables ── */
  @media (max-width: 600px) {
    .rev-table thead { display: none; }
    .rev-table, .rev-table tbody, .rev-table tr, .rev-table td { display: block; width: 100%; box-sizing: border-box; }
    .rev-table tr {
      margin-bottom: 14px;
      border: 1.5px solid var(--border);
      border-radius: 12px;
      background: var(--white);
      padding: 10px 12px;
      box-shadow: var(--shadow-sm);
    }
    .rev-table td {
      text-align: right;
      padding: 8px 0;
      border-bottom: 1px solid rgba(0,0,0,0.05);
      display: flex;
      justify-content: space-between;
      font-size: 13px;
    }
    .rev-table td:last-child { border-bottom: none; }
    .rev-table td::before {
      content: attr(data-label);
      font-weight: 700;
      color: var(--muted);
      font-family: 'DM Mono', monospace;
      font-size: 11px;
      text-align: left;
    }
  }

  /* ── V14: Advisor quick prompts ── */
  .quick-prompt {
    background: var(--white);
    border: 1.5px solid var(--border);
    border-radius: 20px;
    padding: 7px 14px;
    font-size: 12px;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    color: var(--ink);
    transition: all .15s;
    font-weight: 500;
  }
  .quick-prompt:hover {
    border-color: var(--green);
    background: var(--green-light);
    color: var(--green);
  }

  /* ── V14: btn-gold ── */
  .btn-gold {
    background: var(--gold);
    color: var(--ink);
    border: none;
    padding: 10px 22px;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    transition: opacity .2s;
  }
  .btn-gold:hover { opacity: .85; }


  /* ── API KEY MODAL ──────────────────────────────────────────── */
  #pk-apikey-modal {
    position: fixed; inset: 0; z-index: 99999;
    background: rgba(10,30,20,0.82);
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(6px);
    font-family: 'DM Sans', sans-serif;
  }
  #pk-apikey-modal .ak-card {
    background: var(--white); border-radius: 20px;
    padding: 40px 36px 32px; max-width: 480px; width: 90%;
    box-shadow: 0 24px 64px rgba(0,0,0,0.4);
  }
  #pk-apikey-modal .ak-logo { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
  #pk-apikey-modal .ak-mark {
    width:42px; height:42px; border-radius:10px; background:var(--gold-bright);
    display:flex; align-items:center; justify-content:center;
    font-family:'Playfair Display',serif; font-weight:900; font-size:20px; color:var(--green);
  }
  #pk-apikey-modal h2 { font-family:'Playfair Display',serif; font-size:22px; color:var(--ink); margin-bottom:6px; }
  #pk-apikey-modal p { font-size:13.5px; color:var(--muted); line-height:1.6; margin-bottom:20px; }
  #pk-apikey-modal input {
    width:100%; padding:12px 14px; border:1.5px solid var(--border); border-radius:10px;
    font-family:'DM Mono',monospace; font-size:13px; color:var(--ink);
    background:var(--cream); margin-bottom:14px; outline:none; transition:border-color .2s;
  }
  #pk-apikey-modal input:focus { border-color:var(--green-mid); }
  #pk-apikey-modal .ak-btn {
    width:100%; padding:13px; background:var(--green); color:#fff; border:none; border-radius:10px;
    font-family:'DM Sans',sans-serif; font-size:14px; font-weight:600; cursor:pointer; transition:opacity .2s;
  }
  #pk-apikey-modal .ak-btn:hover { opacity:.88; }
  #pk-apikey-modal .ak-note { font-size:11px; color:var(--muted); text-align:center; margin-top:14px; font-family:'DM Mono',monospace; }
  #pk-apikey-modal .ak-note a { color:var(--green-mid); text-decoration:none; }
  #pk-apikey-modal .ak-error { font-size:12px; color:var(--red); margin-bottom:10px; display:none; }


  /* ── SCHEDULE READABILITY FIXES ── */
  .shift-cell { min-height: 56px !important; padding: 6px 4px !important; }
  .shift-cell .shift-type { font-size: 12px !important; font-weight: 800 !important; letter-spacing: 0.5px !important; }
  .shift-cell .shift-time { font-size: 11px !important; font-weight: 600 !important; }
  .shift-cell .shift-hrs { font-size: 11px !important; font-weight: 600 !important; }
  .shift-cell.open { background: rgba(74,222,128,0.15) !important; border: 1px solid rgba(74,222,128,0.35) !important; color: #4ADE80 !important; }
  .shift-cell.mid { background: rgba(251,191,36,0.15) !important; border: 1px solid rgba(251,191,36,0.35) !important; color: #FBBF24 !important; }
  .shift-cell.close { background: rgba(139,92,246,0.15) !important; border: 1px solid rgba(139,92,246,0.35) !important; color: #A78BFA !important; }
  .shift-cell.split { background: rgba(249,115,22,0.15) !important; border: 1px solid rgba(249,115,22,0.35) !important; color: #FB923C !important; }
  .shift-cell.off { background: rgba(255,255,255,0.04) !important; border: 1px solid rgba(255,255,255,0.08) !important; color: rgba(255,255,255,0.3) !important; }
  .sched-table th { font-size: 12px !important; letter-spacing: 1px !important; color: #C5A059 !important; padding: 10px 8px !important; }
  .sched-table td { padding: 6px 4px !important; }
  .emp-name { font-size: 14px !important; font-weight: 700 !important; color: #e8e8e2 !important; }
  .emp-dept { color: #4ADE80 !important; font-size: 11px !important; font-weight: 700 !important; }
  .proj-labor-val { font-size: 14px !important; font-weight: 800 !important; color: #C5A059 !important; }

  
  .shift-cell * { font-weight: 700 !important; }
  .shift-cell div:first-child { font-size: 13px !important; letter-spacing: 0.5px !important; }
  .shift-cell div:nth-child(2) { font-size: 12px !important; opacity: 0.9 !important; }
  .shift-cell div:last-child { font-size: 11px !important; opacity: 0.8 !important; }
  td .dept-FOH, td .dept-BOH { padding: 2px 6px !important; border-radius: 4px !important; font-size: 11px !important; }

  
  /* SCHEDULE CELL BRIGHT OVERRIDES */
  .shift-cell { border-radius: 8px !important; }
  .shift-cell[style*="background:#E8F5E9"], .shift-cell[style*="background: #E8F5E9"] { background: rgba(74,222,128,0.2) !important; border: 1px solid rgba(74,222,128,0.4) !important; }
  .shift-cell[style*="color:#1B5E20"] { color: #4ADE80 !important; }
  .shift-cell[style*="background:#FFF8E1"] { background: rgba(251,191,36,0.15) !important; border: 1px solid rgba(251,191,36,0.35) !important; }
  .shift-cell[style*="color:#E65100"] { color: #FBBF24 !important; }
  .shift-cell[style*="background:#EDE7F6"] { background: rgba(139,92,246,0.15) !important; border: 1px solid rgba(139,92,246,0.35) !important; }
  .shift-cell[style*="color:#4A148C"] { color: #A78BFA !important; }
  .shift-cell[style*="background:#FBE9E7"] { background: rgba(249,115,22,0.15) !important; border: 1px solid rgba(249,115,22,0.35) !important; }
  .shift-cell[style*="color:#BF360C"] { color: #FB923C !important; }
  /* Force all text in shift cells to be bright and readable */
  .shift-cell div { font-weight: 700 !important; }
  .shift-cell div:first-child { font-size: 13px !important; }
  .shift-cell div:nth-child(2) { font-size: 12px !important; }
  .shift-cell div:nth-child(3) { font-size: 11px !important; }
  /* FOH green brighter */
  .dept-FOH, [class*="dept-FOH"] { color: #4ADE80 !important; background: rgba(74,222,128,0.12) !important; font-weight: 800 !important; }
  .dept-BOH, [class*="dept-BOH"] { color: #FB923C !important; background: rgba(249,115,22,0.12) !important; font-weight: 800 !important; }

  
  /* ═══ SCHEDULE READABILITY OVERHAUL ═══ */

  /* Row hover */
  .sched-table tr:hover td { background: rgba(255,255,255,0.025) !important; }

  /* Day column separators */
  .sched-table td, .sched-table th { border-right: 1px solid rgba(255,255,255,0.04) !important; }

  /* Shift pills — unified size and layout */
  .shift-cell {
    min-height: 52px !important;
    width: 86px !important;
    padding: 7px 6px !important;
    border-radius: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    cursor: pointer !important;
    transition: filter 0.15s !important;
  }
  .shift-cell:hover { filter: brightness(1.15) !important; }

  /* Shift pill text hierarchy — time is dominant */
  .shift-cell div:first-child {
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
  }
  .shift-cell div:nth-child(2) {
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    opacity: 0.8 !important;
  }
  .shift-cell div:nth-child(3) {
    font-size: 10px !important;
    font-weight: 600 !important;
    opacity: 0.7 !important;
  }

  /* Shift type colors — reduced saturation, high contrast */
  .shift-cell.open  { background: rgba(59,130,246,0.18) !important; border: 1px solid rgba(59,130,246,0.35) !important; color: #93C5FD !important; }
  .shift-cell.mid   { background: rgba(217,119,6,0.18) !important;  border: 1px solid rgba(217,119,6,0.35) !important;  color: #FCD34D !important; }
  .shift-cell.close { background: rgba(109,40,217,0.18) !important; border: 1px solid rgba(109,40,217,0.35) !important; color: #C4B5FD !important; }
  .shift-cell.split { background: rgba(220,38,38,0.18) !important;  border: 1px solid rgba(220,38,38,0.35) !important;  color: #FCA5A5 !important; }
  .shift-cell.off   { background: rgba(255,255,255,0.03) !important; border: 1px solid rgba(255,255,255,0.06) !important; color: rgba(255,255,255,0.25) !important; }

  /* Attribute selectors to catch inline-styled cells */
  .shift-cell[style*="background:#E8F5E9"] { background: rgba(59,130,246,0.18) !important; border: 1px solid rgba(59,130,246,0.35) !important; color: #93C5FD !important; }
  .shift-cell[style*="background:#FFF8E1"] { background: rgba(217,119,6,0.18) !important;  border: 1px solid rgba(217,119,6,0.35) !important;  color: #FCD34D !important; }
  .shift-cell[style*="background:#EDE7F6"] { background: rgba(109,40,217,0.18) !important; border: 1px solid rgba(109,40,217,0.35) !important; color: #C4B5FD !important; }
  .shift-cell[style*="background:#FBE9E7"] { background: rgba(220,38,38,0.18) !important;  border: 1px solid rgba(220,38,38,0.35) !important;  color: #FCA5A5 !important; }
  .shift-cell[style*="color:#1B5E20"] { color: #93C5FD !important; }
  .shift-cell[style*="color:#E65100"] { color: #FCD34D !important; }
  .shift-cell[style*="color:#4A148C"] { color: #C4B5FD !important; }
  .shift-cell[style*="color:#BF360C"] { color: #FCA5A5 !important; }

  /* Force all shift cell children bright */
  .shift-cell * { color: inherit !important; }

  /* Overtime warning on hours column */
  .hrs-warn-amber { color: #FBBF24 !important; font-weight: 800 !important; }
  .hrs-warn-red   { color: #F87171 !important; font-weight: 800 !important; }

  /* Employee name + dept labels */
  .emp-dept { font-size: 11px !important; font-weight: 700 !important; }
  .dept-FOH { color: #4ADE80 !important; background: rgba(74,222,128,0.1) !important; padding: 1px 5px !important; border-radius: 3px !important; }
  .dept-BOH { color: #FB923C !important; background: rgba(249,115,22,0.1) !important; padding: 1px 5px !important; border-radius: 3px !important; }

  /* Table header */
  .sched-table th {
    font-family: 'DM Mono', monospace !important;
    font-size: 11px !important;
    letter-spacing: 1.5px !important;
    color: #C5A059 !important;
    text-transform: uppercase !important;
    padding: 10px 6px !important;
    border-bottom: 1px solid rgba(197,160,89,0.2) !important;
  }

  /* Proj labor column — gold */
  .proj-labor-val { color: #C5A059 !important; font-weight: 800 !important; font-size: 14px !important; }

  /* Weekly totals row */
  .sched-totals-row td {
    font-family: 'DM Mono', monospace !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    color: #C5A059 !important;
    border-top: 1px solid rgba(197,160,89,0.2) !important;
    padding: 10px 8px !important;
  }

  
  /* ═══ ROSTER CARD DARK FIX ═══ */
  #pk-roster-grid > div {
    background: #141c14 !important;
    border: 1px solid rgba(255,255,255,0.07) !important;
    color: #e8e8e2 !important;
  }
  /* High risk cards — strong contrast */
  #pk-roster-grid > div[style*="background:#FFF0F0"],
  #pk-roster-grid > div[style*="background: #FFF0F0"],
  #pk-roster-grid > div[style*="background:#ffebeb"] {
    background: rgba(239,68,68,0.18) !important;
    border: 1.5px solid rgba(239,68,68,0.55) !important;
    box-shadow: 0 0 0 1px rgba(239,68,68,0.12) inset !important;
  }
  /* Monitor/warning cards — strong contrast */
  #pk-roster-grid > div[style*="background:#FFFBEB"],
  #pk-roster-grid > div[style*="background: #FFFBEB"],
  #pk-roster-grid > div[style*="background:#fff8e1"] {
    background: rgba(251,191,36,0.16) !important;
    border: 1.5px solid rgba(251,191,36,0.50) !important;
    box-shadow: 0 0 0 1px rgba(251,191,36,0.10) inset !important;
  }
  /* Employee names */
  #pk-roster-grid strong, #pk-roster-grid .emp-card-name {
    color: #ffffff !important;
    font-weight: 700 !important;
  }
  /* Role text */
  #pk-roster-grid > div > div:nth-child(2) {
    color: rgba(255,255,255,0.75) !important;
  }
  /* Score number */
  #pk-roster-grid .perf-score-num {
    font-size: 16px !important;
    font-weight: 800 !important;
  }
  /* Initials badge */
  #pk-roster-grid > div > div:first-child > div:first-child {
    background: #1B4332 !important;
    color: #E2C285 !important;
  }

  /* ═══ SCHEDULE WHITE AREA FIX ═══ */
  #tab-schedule, #tab-schedule > *, .sched-wrap, .schedule-container {
    background: transparent !important;
  }
  /* Catch any inline cream/white backgrounds in schedule tab */
  [id^="tab-schedule"] [style*="background:#F"],
  [id^="tab-schedule"] [style*="background: #F"] {
    background: transparent !important;
  }

  
  /* ═══ ROSTER CARD DARK FIX ═══ */
  #pk-roster-grid > div {
    background: #141c14 !important;
    border: 1px solid rgba(255,255,255,0.07) !important;
    color: #e8e8e2 !important;
  }
  /* High risk cards — strong contrast */
  #pk-roster-grid > div[style*="background:#FFF0F0"],
  #pk-roster-grid > div[style*="background: #FFF0F0"],
  #pk-roster-grid > div[style*="background:#ffebeb"] {
    background: rgba(239,68,68,0.18) !important;
    border: 1.5px solid rgba(239,68,68,0.55) !important;
    box-shadow: 0 0 0 1px rgba(239,68,68,0.12) inset !important;
  }
  /* Monitor/warning cards — strong contrast */
  #pk-roster-grid > div[style*="background:#FFFBEB"],
  #pk-roster-grid > div[style*="background: #FFFBEB"],
  #pk-roster-grid > div[style*="background:#fff8e1"] {
    background: rgba(251,191,36,0.16) !important;
    border: 1.5px solid rgba(251,191,36,0.50) !important;
    box-shadow: 0 0 0 1px rgba(251,191,36,0.10) inset !important;
  }
  /* Employee names */
  #pk-roster-grid strong, #pk-roster-grid .emp-card-name {
    color: #ffffff !important;
    font-weight: 700 !important;
  }
  /* Role text */
  #pk-roster-grid > div > div:nth-child(2) {
    color: rgba(255,255,255,0.75) !important;
  }
  /* Score number */
  #pk-roster-grid .perf-score-num {
    font-size: 16px !important;
    font-weight: 800 !important;
  }
  /* Initials badge */
  #pk-roster-grid > div > div:first-child > div:first-child {
    background: #1B4332 !important;
    color: #E2C285 !important;
  }

  /* ═══ SCHEDULE WHITE AREA FIX ═══ */
  #tab-schedule, #tab-schedule > *, .sched-wrap, .schedule-container {
    background: transparent !important;
  }
  /* Catch any inline cream/white backgrounds in schedule tab */
  [id^="tab-schedule"] [style*="background:#F"],
  [id^="tab-schedule"] [style*="background: #F"] {
    background: transparent !important;
  }

  
  /* ═══ KILL ALL LIGHT BACKGROUNDS IN SCHEDULE + ROSTER ═══ */
  #tab-schedule { background: transparent !important; }
  #tab-schedule * [style*="background:#fff"],
  #tab-schedule * [style*="background: #fff"],
  #tab-schedule * [style*="background:white"] { background: #141c14 !important; }
  
  /* The big beige block - target the schedule table container */
  #tab-schedule > div, #tab-schedule .card { background: #141c14 !important; }
  
  /* Schedule publish link input */
  #publish-link { background: #0f1a0f !important; color: #e8e8e2 !important; }
  
  /* mfSummary box */
  #mfSummary { background: #0f1a0f !important; color: #e8e8e2 !important; }

  /* ═══ ROSTER SUMMARY STAT BOXES ═══ */
  #tab-roster .card, #tab-roster > div { background: transparent !important; }

  /* ═══ ROSTER CARD FULL DARK FIX v82 ═══ */
  /* Since/Rate info boxes — the invisible grey boxes */
  #pk-roster-grid [style*="background:rgba(255,255,255,0.7)"],
  #pk-roster-grid [style*="background: rgba(255,255,255,0.7)"] {
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
  }
  /* Label text inside those boxes (SINCE, RATE) */
  #pk-roster-grid [style*="color:#999"] {
    color: rgba(197,160,89,0.75) !important;
    font-weight: 600 !important;
    font-size: 10px !important;
    letter-spacing: 0.8px !important;
  }
  /* Value text (dates, dollar amounts) */
  #pk-roster-grid [style*="color:#374151"] {
    color: #e8e8e2 !important;
    font-weight: 700 !important;
  }
  /* Card backgrounds — the pastel ones that are invisible */
  #pk-roster-grid [style*="background: #141c14"],
  #pk-roster-grid [style*="background:#141c14"] {
    background: #141c14 !important;
    border: 1px solid rgba(255,255,255,0.09) !important;
  }
  /* Employee name in card */
  #pk-roster-grid [style*="color:#1a2e1a"] {
    color: #e8e8e2 !important;
  }
  /* Role/dept sub text */
  #pk-roster-grid [style*="color:#6B7280"],
  #pk-roster-grid [style*="color:#6b7280"] {
    color: rgba(255,255,255,0.55) !important;
  }
  /* "Click for full review" link */
  #pk-roster-grid [style*="color:#6B7280"]:last-child,
  #pk-roster-grid div[style*="text-align:center"][style*="color:#6B7280"] {
    color: rgba(197,160,89,0.6) !important;
  }
  /* Performance bar background (grey track) */
  #pk-roster-grid [style*="background:#e5e7eb"] {
    background: rgba(255,255,255,0.08) !important;
  }
  /* CLEAN badge */
  #pk-roster-grid [style*="background:#F0FDF4"] {
    background: rgba(74,222,128,0.12) !important;
    color: #4ADE80 !important;
  }
  /* CLEAN badge text */
  #pk-roster-grid [style*="color:#16A34A"] {
    color: #4ADE80 !important;
  }
  /* HIGH RISK card background */
  #pk-roster-grid [style*="background: rgba(239,68,68,0.14)"],
  #pk-roster-grid [style*="background:rgba(239,68,68,0.14)"] {
    background: rgba(239,68,68,0.14) !important;
    border: 1.5px solid rgba(239,68,68,0.4) !important;
  }
  /* MONITOR card background (yellow) */
  #pk-roster-grid [style*="background: rgba(251,191,36,0.12)"],
  #pk-roster-grid [style*="background:rgba(251,191,36,0.12)"] {
    background: rgba(251,191,36,0.12) !important;
    border: 1.5px solid rgba(251,191,36,0.4) !important;
  }
  /* HIGH RISK border color */
  #pk-roster-grid [style*="border: 1.5px solid rgba(239,68,68,0.4)"],
  #pk-roster-grid [style*="border:1px solid rgb(252,165,165)"] {
    border: 1.5px solid rgba(239,68,68,0.4) !important;
  }
  /* MONITOR border */
  #pk-roster-grid [style*="border: 1.5px solid rgba(251,191,36,0.4)"],
  #pk-roster-grid [style*="border:1px solid rgb(252,211,77)"] {
    border: 1.5px solid rgba(251,191,36,0.4) !important;
  }
  /* Initials avatar */
  #pk-roster-grid [style*="background:#1a2e1a"] {
    background: rgba(197,160,89,0.15) !important;
    border: 1px solid rgba(197,160,89,0.3) !important;
    color: #E2C285 !important;
  }

  
.pk-profit-rows { padding: 0; }
.pk-profit-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  transition: background 0.15s;
}
.pk-profit-row:last-child { border-bottom: none; }
.pk-profit-row:hover { background: rgba(255,255,255,0.02); }
.pk-profit-icon { font-size: 22px; flex-shrink: 0; width: 32px; text-align: center; }
.pk-profit-detail { flex: 1; min-width: 0; }
.pk-profit-label { font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
.pk-profit-sub { font-size: 12px; color: var(--muted); }
.pk-profit-amount { font-family: 'DM Mono', monospace; font-size: 18px; font-weight: 700; flex-shrink: 0; }
.pk-profit-amount.positive { color: var(--green); }
.pk-profit-amount.negative { color: var(--danger); }
.pk-profit-amount.neutral { color: var(--muted); }
.pk-profit-row.positive { border-left: 3px solid var(--green); }
.pk-profit-row.negative { border-left: 3px solid var(--danger); }
.pk-profit-row.neutral { border-left: 3px solid var(--border); }

/* ── Rotate Prompt ─────────────────────────────────────────────────────── */
#pk-rotate-prompt {
  display: none;
  position: fixed;
  inset: 0;
  background: #0B1F14;
  z-index: 99999;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 40px;
}
#pk-rotate-prompt .rotate-icon {
  font-size: 64px;
  animation: pk-rotate-anim 2s ease-in-out infinite;
}
@keyframes pk-rotate-anim {
  0%   { transform: rotate(0deg); }
  30%  { transform: rotate(90deg); }
  70%  { transform: rotate(90deg); }
  100% { transform: rotate(0deg); }
}
#pk-rotate-prompt h2 {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  color: var(--gold);
  text-align: center;
  margin: 0;
}
#pk-rotate-prompt p {
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  color: var(--muted);
  text-align: center;
  margin: 0;
  line-height: 1.8;
}
#pk-rotate-prompt button {
  margin-top: 8px;
  padding: 10px 24px;
  background: transparent;
  border: 1px solid rgba(197,160,89,0.4);
  color: var(--muted);
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  border-radius: 8px;
  cursor: pointer;
}
@media (max-width: 768px) and (orientation: portrait) {
  #pk-rotate-prompt { display: flex; }
}
@media (orientation: landscape) {
  #pk-rotate-prompt { display: none !important; }
}

/* ── Schedule Department Tabs ──────────────────────────────────────────── */
.sdt-btn {
  padding: 6px 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--muted);
  font-size: 11px;
  font-family: 'DM Mono', monospace;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.sdt-btn:hover { border-color: var(--gold); color: var(--gold); }
.sdt-btn.sdt-active {
  background: rgba(197,160,89,0.15);
  border-color: var(--gold);
  color: var(--gold);
  font-weight: 700;
}
.sched-row-hidden { display: none !important; }



/* ===== PK DARK SURFACE FIX v82 ===== */
.leading-card {
  background: #121914 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  color: #E8E8E2 !important;
}
.leading-card .lc-title,
.leading-card .lc-head {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}
.leading-card .lc-sub,
.leading-card .lc-body {
  color: rgba(255,255,255,0.60) !important;
}

/* ===== RPLH GAUGE SPACING FIX ===== */
.gauge-wrap,
[id*="rplhGaugeWrap"],
[id*="gaugeWrap"] {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  min-height: 260px !important;
  padding: 20px 0 28px !important;
  overflow: visible !important;
}
svg[id*="rplh"],
svg[id*="gauge"],
#rplhGaugeSvg {
  display: block !important;
  max-width: 280px !important;
  height: 170px !important;
  overflow: visible !important;
  margin: 0 auto 18px !important;
}
canvas[id*="rplh"],
canvas[id*="gauge"],
#rplhGaugeCanvas {
  display: block !important;
  max-width: 280px !important;
  height: 170px !important;
  margin: 0 auto 18px !important;
}
.gauge-value, text.gauge-value {
  fill: #D4AF37 !important;
  font-size: 30px !important;
  font-weight: 800 !important;
}
.gauge-label, text.gauge-label {
  fill: #8EA08F !important;
  font-size: 10px !important;
  letter-spacing: 1.4px !important;
  transform: translateY(12px) !important;
}
#rplh-minimum-note, .rplh-minimum-note {
  color: #4ADE80 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

/* ── Time-Off Request table grid ── */

  /* Nav group labels */
  .nav-group-label {
    display: flex;
    align-items: center;
    padding: 0 10px;
    font-family: 'DM Mono', monospace;
    font-size: 9px;
    letter-spacing: 2px;
    color: rgba(197,160,89,0.5);
    text-transform: uppercase;
    white-space: nowrap;
    align-self: center;
    margin: 0 4px;
  }
  .nav-group-label::before {
    content: '';
    display: inline-block;
    width: 1px;
    height: 18px;
    background: rgba(197,160,89,0.2);
    margin-right: 8px;
  }

  .tor-row {
  display: grid;
  grid-template-columns: 1.5fr 1.2fr 1.2fr 1fr auto;
  align-items: start;
  border-bottom: 1px solid var(--border);
  padding: 0;
}
.tor-row:last-child { border-bottom: none; }
.tor-cell {
  padding: 12px 14px;
  font-size: 13px;
  color: var(--ink);
}
@media (max-width: 768px) {
  .tor-row {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .tor-cell:nth-child(5) { grid-column: 1 / -1; }
}

  
  /* ── Promo Image Tools: quick-prompt buttons ── */
  .quick-prompt {
    width: 100%;
    padding: 9px 14px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--ink);
    font-size: 12px;
    font-family: 'DM Mono', monospace;
    cursor: pointer;
    text-align: left;
    transition: all .15s;
    letter-spacing: .3px;
  }
  .quick-prompt:hover {
    background: var(--surface-3);
    border-color: var(--border-gold);
    color: var(--primary);
  }
  /* ════════════════════════════════════════════════
     RECIPE STUDIO
  ════════════════════════════════════════════════ */
  .rs-layout { display:grid; grid-template-columns:1fr 380px; gap:20px; align-items:start; }
  @media(max-width:900px){ .rs-layout { grid-template-columns:1fr; } }

  .rs-panel { background:var(--surface); border:1px solid var(--border); border-radius:16px; overflow:hidden; }
  .rs-panel-header { padding:16px 20px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; }
  .rs-panel-title { font-family:'Playfair Display',serif; font-size:15px; font-weight:700; color:var(--ink); }
  .rs-panel-body { padding:20px; }

  .rs-field-group { margin-bottom:16px; }
  .rs-label { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); margin-bottom:5px; display:block; }
  .rs-input { width:100%; padding:9px 12px; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; color:var(--ink); font-size:13px; font-family:'DM Sans',sans-serif; box-sizing:border-box; }
  .rs-input:focus { outline:none; border-color:var(--primary); }
  .rs-select { width:100%; padding:9px 12px; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; color:var(--ink); font-size:13px; font-family:'DM Sans',sans-serif; box-sizing:border-box; cursor:pointer; }
  .rs-textarea { width:100%; padding:10px 12px; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; color:var(--ink); font-size:13px; font-family:'DM Sans',sans-serif; resize:vertical; min-height:80px; box-sizing:border-box; line-height:1.6; }
  .rs-textarea:focus, .rs-input:focus { outline:none; border-color:var(--primary); }
  .rs-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .rs-row-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }

  /* ingredient rows */
  .rs-ing-table { width:100%; border-collapse:collapse; margin-bottom:10px; }
  .rs-ing-table th { font-family:'DM Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); padding:4px 6px; text-align:left; border-bottom:1px solid var(--border); }
  .rs-ing-row td { padding:5px 6px; border-bottom:1px solid rgba(255,255,255,0.04); vertical-align:middle; }
  .rs-ing-input { width:100%; padding:6px 8px; background:var(--surface-2); border:1px solid transparent; border-radius:6px; color:var(--ink); font-size:12px; font-family:'DM Sans',sans-serif; }
  .rs-ing-input:focus { outline:none; border-color:var(--primary); background:var(--surface-3); }
  .rs-ing-cost { font-family:'DM Mono',monospace; font-size:11px; color:var(--primary); text-align:right; padding-right:4px; min-width:52px; }
  .rs-ing-del { background:none; border:none; color:var(--muted); cursor:pointer; font-size:14px; padding:2px 6px; border-radius:4px; }
  .rs-ing-del:hover { color:var(--danger); background:rgba(248,113,113,0.1); }

  /* cost intelligence panel */
  .rs-kpi { display:flex; justify-content:space-between; align-items:baseline; padding:10px 0; border-bottom:1px solid var(--border); }
  .rs-kpi:last-child { border-bottom:none; }
  .rs-kpi-label { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); }
  .rs-kpi-val { font-family:'Playfair Display',serif; font-size:18px; font-weight:700; color:var(--ink); }
  .rs-kpi-val.good { color:var(--success); }
  .rs-kpi-val.warn { color:var(--warning); }
  .rs-kpi-val.bad  { color:var(--danger); }

  .rs-signal { display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:10px; margin-top:10px; font-size:12px; font-weight:600; }
  .rs-signal.green { background:rgba(74,222,128,0.1); color:#4ADE80; border:1px solid rgba(74,222,128,0.2); }
  .rs-signal.amber { background:rgba(251,191,36,0.1); color:#FBBF24; border:1px solid rgba(251,191,36,0.2); }
  .rs-signal.red   { background:rgba(248,113,113,0.1); color:#F87171; border:1px solid rgba(248,113,113,0.2); }

  /* recipe card / special sheet output */
  .rs-output-tabs { display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap; }
  .rs-otab { padding:7px 16px; border-radius:20px; border:1px solid var(--border); background:var(--surface-2); color:var(--muted); font-size:12px; font-family:'DM Mono',monospace; cursor:pointer; transition:all .15s; }
  .rs-otab.active { background:var(--primary); color:#0d1210; border-color:var(--primary); font-weight:700; }

  /* recipe library table */
  .rs-lib-row { display:grid; grid-template-columns:2fr 1fr 1fr 1fr 80px; align-items:center; padding:11px 14px; border-bottom:1px solid var(--border); font-size:13px; }
  .rs-lib-row:last-child { border-bottom:none; }
  .rs-lib-row:hover { background:var(--surface-3); }
  .rs-lib-header { font-family:'DM Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); background:var(--surface-2); }

  /* print recipe card */
  @media print {
    .rs-print-card { background:#fff !important; color:#000 !important; font-family:Georgia,serif; max-width:680px; margin:0 auto; padding:32px; }
    .rs-print-card * { color:#000 !important; background:transparent !important; }
  }
  .rs-print-card { background:var(--surface); border-radius:14px; padding:28px; border:1px solid var(--border-gold); }

  /* ── PK Hero Status Card ─────────────────────────────────────── */
  .pk-hero-status-card { background: linear-gradient(135deg, var(--green-mid) 0%, var(--surface) 100%); border: 1px solid var(--border-gold); }
  .pk-hero-status-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 16px; }
  .pk-hero-kicker { font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 2px; color: var(--muted); margin-bottom: 6px; }
  .pk-hero-headline { font-family: 'Playfair Display', serif; font-size: 28px; font-weight: 800; color: var(--primary); line-height: 1.1; margin-bottom: 6px; }
  .pk-hero-subtext { font-size: 13px; color: var(--ink); opacity: 0.8; max-width: 480px; line-height: 1.5; }
  .pk-hero-badge { padding: 6px 14px; border-radius: 20px; font-family: 'DM Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 1px; white-space: nowrap; flex-shrink: 0; }
  .pk-hero-badge.watch  { background: rgba(251,191,36,0.15); border: 1px solid rgba(251,191,36,0.4); color: #FBBF24; }
  .pk-hero-badge.good   { background: rgba(74,222,128,0.12); border: 1px solid rgba(74,222,128,0.35); color: #4ADE80; }
  .pk-hero-badge.alert  { background: rgba(248,113,113,0.12); border: 1px solid rgba(248,113,113,0.35); color: #F87171; }
  .pk-hero-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
  .pk-hero-metric { padding: 16px 20px; border-right: 1px solid var(--border); }
  .pk-hero-metric:last-child { border-right: none; }
  .pk-hero-metric-label { font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-bottom: 6px; }
  .pk-hero-metric-value { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 800; color: var(--ink); }
  .pk-hero-action-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 24px; flex-wrap: wrap; }
  .pk-hero-action-block { flex: 1; min-width: 0; }
  .pk-hero-action-title { font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-bottom: 4px; }
  .pk-hero-action-text { font-size: 13px; color: var(--ink); line-height: 1.5; }
  .pk-hero-action-buttons { display: flex; gap: 10px; flex-shrink: 0; flex-wrap: wrap; }
  @media (max-width: 768px) {
    .pk-hero-metrics { grid-template-columns: repeat(3, 1fr); }
    .pk-hero-metric:nth-child(3) { border-right: none; }
    .pk-hero-status-top { flex-direction: column; }
    .pk-hero-action-row { flex-direction: column; align-items: flex-start; }
  }



.sc-hero {
  background: linear-gradient(135deg, #0a1f14 0%, #1B4332 60%, #0f2a1a 100%);
  border-radius: 18px;
  padding: 36px 40px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 12px 60px rgba(0,0,0,0.35);
}
.sc-hero::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(244,196,48,0.12) 0%, transparent 65%);
  pointer-events: none;
}
.sc-date-line {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: rgba(255,255,255,0.4);
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.sc-title {
  font-family: 'Playfair Display', serif;
  font-size: 32px;
  font-weight: 900;
  color: var(--gold-bright);
  letter-spacing: -0.5px;
  margin-bottom: 6px;
}
.sc-sub {
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  color: rgba(255,255,255,0.80);
  letter-spacing: 1px;
  margin-bottom: 32px;
}
.sc-targets-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.08);
  border-radius: 12px;
  overflow: hidden;
}
@media (max-width: 768px) { .sc-targets-grid { grid-template-columns: repeat(2,1fr); } }
.sc-target-block {
  background: rgba(0,0,0,0.25);
  padding: 18px 20px;
  text-align: center;
}
.sc-target-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: rgba(255,255,255,0.75);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 8px;
}
.sc-target-val {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 900;
  color: #fff;
  line-height: 1;
}
.sc-target-val.gold  { color: var(--gold-bright); }
.sc-target-val.green { color: #4ADE80; }
.sc-target-val.red   { color: #F87171; }
.sc-target-val.amber { color: #FCD34D; }
.sc-target-sub {
  font-size: 11px;
  color: rgba(255,255,255,0.65);
  font-family: 'DM Mono', monospace;
  margin-top: 4px;
}

.sc-alert-row {
  display: flex; align-items: stretch; gap: 14px; margin-bottom: 14px; flex-wrap: wrap;
}
.sc-alert-card {
  flex: 1; min-width: 260px;
  border-radius: 14px;
  padding: 18px 22px;
  border: 1.5px solid;
  display: flex; flex-direction: column; gap: 6px;
}
.sc-alert-card.danger  { background: var(--red-light); border-color: #FCA5A5; }
.sc-alert-card.warning { background: var(--amber-light); border-color: #FCD34D; }
.sc-alert-card.success { background: var(--green-light); border-color: #86EFAC; }
.sc-alert-card.info    { background: #EFF6FF; border-color: #BFDBFE; }

.sc-alert-type {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 700;
}
.sc-alert-card.danger  .sc-alert-type { color: var(--red); }
.sc-alert-card.warning .sc-alert-type { color: var(--amber); }
.sc-alert-card.success .sc-alert-type { color: var(--green); }
.sc-alert-card.info    .sc-alert-type { color: #3B82F6; }

.sc-alert-heading {
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}
.sc-alert-body {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
  font-family: 'DM Sans', sans-serif;
}
.sc-alert-action {
  font-size: 12px;
  font-weight: 700;
  margin-top: 4px;
}
.sc-alert-card.danger  .sc-alert-action { color: var(--red); }
.sc-alert-card.warning .sc-alert-action { color: var(--amber); }
.sc-alert-card.success .sc-alert-action { color: var(--green); }

.sc-menu-push {
  background: linear-gradient(135deg, #0f2318 0%, #1a3a22 100%);
  border-radius: 14px;
  padding: 20px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  flex-wrap: wrap;
}
.sc-menu-push-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 4px;
}
.sc-menu-push-item {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 900;
  color: #E8C97A;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.sc-menu-push-detail {
  font-size: 12px;
  color: rgba(255,255,255,0.85);
  font-family: 'DM Mono', monospace;
  margin-top: 4px;
}
.sc-waste-pills {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.sc-waste-pill {
  padding: 6px 14px;
  border-radius: 20px;
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  border: 1.5px solid;
}
.sc-waste-pill.high   { background: var(--red-light); border-color: #FCA5A5; color: var(--red); }
.sc-waste-pill.medium { background: var(--amber-light); border-color: #FCD34D; color: var(--amber); }
.sc-waste-pill.low    { background: var(--green-light); border-color: #86EFAC; color: var(--green); }



    .rpt-nav { display:flex; gap:8px; margin-bottom:24px; flex-wrap:wrap; }
    .rpt-nav-btn { padding:8px 18px; border-radius:20px; border:1.5px solid var(--border); background:transparent; color:var(--muted); font-size:12px; font-family:'DM Mono',monospace; cursor:pointer; transition:all 0.2s; text-transform:uppercase; letter-spacing:0.5px; }
    .rpt-nav-btn.active { background:var(--green); color:#fff; border-color:var(--green); }
    .rpt-panel { display:none; }
    .rpt-panel.active { display:block; }
    .rpt-action-bar { display:flex; gap:10px; margin-bottom:20px; flex-wrap:wrap; align-items:center; }
    .rpt-kpi-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:24px; }
    .rpt-kpi { background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:16px 18px; }
    .rpt-kpi-label { font-size:10px; font-family:'DM Mono',monospace; color:var(--muted); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:6px; }
    .rpt-kpi-val { font-family:'Playfair Display',serif; font-size:26px; font-weight:700; color:var(--ink); }
    .rpt-kpi-sub { font-size:11px; color:var(--muted); margin-top:4px; }
    .rpt-table { width:100%; border-collapse:collapse; }
    .rpt-table th { background:#1B4332; color:#fff; padding:10px 14px; font-size:10px; font-family:'DM Mono',monospace; text-transform:uppercase; letter-spacing:0.5px; text-align:left; }
    .rpt-table td { padding:10px 14px; border-bottom:1px solid var(--border); font-size:13px; }
    .rpt-table tr:hover td { background:rgba(255,255,255,0.03); }
    .rpt-period-sel { display:flex; gap:8px; align-items:center; margin-bottom:20px; flex-wrap:wrap; }
    .rpt-period-btn { padding:6px 14px; border-radius:6px; border:1px solid var(--border); background:transparent; color:var(--muted); font-size:11px; font-family:'DM Mono',monospace; cursor:pointer; }
    .rpt-period-btn.active { background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:700; }
    .count-hist-badge { display:inline-flex; align-items:center; gap:4px; font-size:10px; padding:2px 7px; border-radius:4px; font-family:'DM Mono',monospace; }
    .count-hist-edited { background:rgba(251,191,36,0.15); color:#FBBF24; }
    .count-hist-clean  { background:rgba(74,222,128,0.12); color:#4ADE80; }
    @media print {
      .rpt-nav, .rpt-action-bar, .rpt-period-sel, #tab-selector, .sidebar, .top-nav { display:none !important; }
      .rpt-panel { display:block !important; }
      body { background:#fff; color:#000; }
      .rpt-table th { background:#1B4332; }
    }
  


/* ── LEAK DETECTOR STYLES ──────────────────────────────────────────── */
.leak-hero {
  background: var(--surface);
  border: 1px solid rgba(248,113,113,0.2);
  border-radius: 16px;
  padding: 32px 36px;
  margin-bottom: 28px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,0.3);
}
.leak-hero::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(220,38,38,0.18) 0%, transparent 70%);
  pointer-events: none;
}
.leak-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.5px;
  margin-bottom: 6px;
}
.leak-hero-sub {
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  color: rgba(255,255,255,0.80);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.leak-totals {
  display: flex; gap: 32px; flex-wrap: wrap; align-items: flex-end;
}
.leak-total-block { text-align: center; }
.leak-total-val {
  font-family: 'Playfair Display', serif;
  font-size: 42px;
  font-weight: 900;
  line-height: 1;
}
.leak-total-val.red  { color: #F87171; }
.leak-total-val.gold { color: var(--gold-bright); }
.leak-total-val.green{ color: #4ADE80; }
.leak-total-label {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  color: rgba(255,255,255,0.80);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 4px;
}
.leak-divider { width: 1px; background: rgba(255,255,255,0.1); align-self: stretch; }

/* ── LEAK CARD ── */
.leak-card {
  border-radius: 14px;
  border: 1.5px solid var(--border);
  background: var(--white);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.2s, transform 0.2s;
  margin-bottom: 16px;
}
.leak-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

.leak-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid var(--border);
}
.leak-card-header.danger  { background: linear-gradient(135deg, #FEF2F2, #FEE2E2); border-bottom-color: #FECACA; }
.leak-card-header.warning { background: linear-gradient(135deg, #FFFBEB, #FEF3C7); border-bottom-color: #FDE68A; }
.leak-card-header.info    { background: linear-gradient(135deg, #EFF6FF, #DBEAFE); border-bottom-color: #BFDBFE; }
.leak-card-header.success { background: linear-gradient(135deg, #F0FDF4, #DCFCE7); border-bottom-color: #BBF7D0; }

.leak-type-badge {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
}
.leak-type-badge.danger  { background: var(--red); color: #fff; }
.leak-type-badge.warning { background: var(--amber); color: #fff; }
.leak-type-badge.info    { background: #3B82F6; color: #fff; }
.leak-type-badge.success { background: var(--green); color: #fff; }

.leak-card-title {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 700;
}
.leak-card-title.danger  { color: #991B1B; }
.leak-card-title.warning { color: #92400E; }
.leak-card-title.info    { color: #1E40AF; }
.leak-card-title.success { color: var(--green); }

.leak-card-body {
  display: grid; grid-template-columns: 1fr auto; gap: 0;
}
@media (max-width: 700px) { .leak-card-body { grid-template-columns: 1fr; } }

.leak-details { padding: 20px 22px; }
.leak-stat-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
}
.leak-stat-row:last-child { border-bottom: none; }
.leak-stat-key {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.leak-stat-val {
  font-family: 'DM Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}
.leak-stat-val.red { color: var(--red); }
.leak-stat-val.green { color: #16A34A; }
.leak-stat-val.amber { color: var(--amber); }

.leak-action-box {
  background: var(--surface-2);
  padding: 20px 22px;
  min-width: 260px;
  display: flex; flex-direction: column; justify-content: center; gap: 10px;
}
.leak-action-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 2px;
}
.leak-action-text {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  line-height: 1.5;
}
.leak-impact {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--gold-bright);
}
.leak-impact-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* ── TVA MODULE ── */
.tva-bar {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 0;
  box-shadow: var(--shadow-sm);
}
@media (max-width: 900px) { .tva-bar { grid-template-columns: repeat(3,1fr); } }
.tva-block {
  padding: 0 20px;
  border-right: 1px solid var(--border);
  text-align: center;
}
.tva-block:first-child { padding-left: 0; }
.tva-block:last-child  { border-right: none; padding-right: 0; }
.tva-val {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 900;
  color: var(--green);
  line-height: 1;
  margin-bottom: 4px;
}
.tva-lbl {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--muted);
}

/* ── RUN BUTTON ── */
.run-audit-btn {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  width: 100%;
  padding: 18px 24px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, var(--red) 0%, #9B1C1C 100%);
  color: #fff;
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 20px rgba(220,38,38,0.35);
  letter-spacing: 0.5px;
  margin-bottom: 28px;
}
.run-audit-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(220,38,38,0.45); }
.run-audit-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }

.audit-spinner {
  width: 20px; height: 20px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── INPUTS PANEL ── */
.leak-input-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 14px;
}
@media (max-width: 768px) { .leak-input-grid { grid-template-columns: 1fr 1fr; } }

.leak-section-header {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--muted);
  padding: 10px 0 6px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 14px;
  margin-top: 8px;
}

/* ── PRE-SHIFT BRIEFING ── */
.briefing-card {
  background: var(--surface);
  border: 1px solid var(--border-gold);
  border-radius: 16px;
  padding: 28px 32px;
  margin-bottom: 24px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.25);
}
.briefing-date {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 6px;
}
.briefing-title {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--gold-bright);
  margin-bottom: 24px;
}
.briefing-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
@media (max-width: 768px) { .briefing-grid { grid-template-columns: 1fr 1fr; } }
.briefing-block {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
}
.briefing-block-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: rgba(255,255,255,0.4);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 6px;
}
.briefing-block-val {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.briefing-block-val.gold  { color: var(--gold-bright); }
.briefing-block-val.green { color: #4ADE80; }
.briefing-block-val.red   { color: #F87171; }
.briefing-block-sub {
  font-size: 11px;
  color: rgba(255,255,255,0.4);
  margin-top: 4px;
  font-family: 'DM Mono', monospace;
}

/* ── AI ANALYSIS BOX ── */
.ai-analysis-box {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-sm);
}
.ai-analysis-header {
  display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
}
.ai-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--red);
  animation: pulse 2s infinite;
}
.ai-analysis-title {
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}
.ai-analysis-text {
  font-size: 14px;
  line-height: 1.75;
  color: var(--ink);
  font-family: 'DM Sans', sans-serif;
}
.ai-analysis-text strong { color: var(--red); }



.oi-section-divider {
  display: flex; align-items: center; gap: 14px; margin: 28px 0 16px;
}
.oi-section-divider-line { flex: 1; height: 1px; background: var(--border); }
.oi-section-label {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--muted);
  white-space: nowrap;
}
.oi-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
@media (max-width: 900px) { .oi-metric-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px) { .oi-metric-grid { grid-template-columns: 1fr; } }

.oi-metric-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: var(--shadow-sm);
  position: relative;
  overflow: hidden;
  transition: transform 0.15s, box-shadow 0.15s;
}
.oi-metric-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.oi-metric-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
}
.oi-metric-card.purple::before { background: #7C3AED; }
.oi-metric-card.blue::before   { background: #3B82F6; }
.oi-metric-card.teal::before   { background: #0D9488; }
.oi-metric-card.pink::before   { background: #DB2777; }
.oi-metric-card.green::before  { background: var(--green); }
.oi-metric-card.gold::before   { background: var(--gold); }
.oi-metric-card.red::before    { background: var(--red); }
.oi-metric-card.amber::before  { background: var(--amber); }

.oi-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--muted);
  margin-bottom: 8px;
}
.oi-value {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 4px;
}
.oi-delta {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  display: flex; align-items: center; gap: 4px;
}
.oi-delta.up   { color: #16A34A; }
.oi-delta.down { color: var(--red); }
.oi-delta.warn { color: var(--amber); }
.oi-delta.mute { color: var(--muted); }

.oi-benchmark-bar {
  margin-top: 8px;
  height: 4px;
  background: var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.oi-benchmark-fill { height: 100%; border-radius: 4px; transition: width 0.6s; }

/* Confidence badge */
.confidence-badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 10px;
  border-radius: 20px;
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  font-weight: 700;
}
.confidence-badge.high   { background: var(--green-light); color: var(--green); }
.confidence-badge.medium { background: var(--amber-light); color: var(--amber); }
.confidence-badge.low    { background: var(--red-light); color: var(--red); }

/* Channel mix donut placeholder */
.channel-mix-row {
  display: flex; flex-direction: column; gap: 8px;
}
.channel-bar-row {
  display: flex; align-items: center; gap: 10px;
}
.channel-bar-label {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  width: 80px;
  flex-shrink: 0;
}
.channel-bar-track {
  flex: 1;
  height: 8px;
  background: var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.channel-bar-fill {
  height: 100%;
  border-radius: 4px;
}
.channel-bar-val {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--ink);
  width: 40px;
  text-align: right;
  flex-shrink: 0;
}

/* Server leaderboard */
.server-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 0;
  border-bottom: 1px solid var(--border);
  font-size: 13px;
}
.server-row:last-child { border-bottom: none; }
.server-rank {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: var(--muted);
  width: 20px;
}
.server-name { font-weight: 600; flex: 1; }
.server-stat {
  font-family: 'DM Mono', monospace;
  font-size: 12px;
  color: var(--muted);
  margin-left: 12px;
}
.server-stat.highlight { color: var(--green); font-weight: 700; }

/* Leading indicator card */
.leading-card {
  background: var(--surface);
  border-radius: 12px;
  padding: 16px 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.leading-card .lc-icon { font-size: 24px; flex-shrink: 0; }
.leading-card .lc-body { flex: 1; }
.leading-card .lc-title {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 3px;
}
.leading-card .lc-sub {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: rgba(255,255,255,0.80);
}
.leading-card .lc-badge {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
}
.leading-card .lc-badge.danger  { background: var(--red); color: #fff; }
.leading-card .lc-badge.warning { background: var(--amber); color: #fff; }
.leading-card .lc-badge.ok      { background: var(--green); color: #fff; }

/* ── V16 GUARDIAN ALERT BANNER ──────────────────────────────── */
.critical-alert-banner {
  background: var(--red);
  color: white;
  padding: 15px 24px;
  text-align: center;
  font-weight: 700;
  font-size: 14px;
  position: sticky;
  top: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  letter-spacing: 0.3px;
  animation: guardianPulse 2s infinite;
  box-shadow: 0 4px 20px rgba(220,38,38,0.5);
}
.critical-alert-banner .dismiss-x {
  margin-left: auto;
  cursor: pointer;
  font-size: 18px;
  opacity: 0.8;
  padding: 0 4px;
  transition: opacity 0.2s;
}
.critical-alert-banner .dismiss-x:hover { opacity: 1; }
@keyframes guardianPulse {
  0%   { background-color: #F87171; }
  50%  { background-color: #7F1D1D; }
  100% { background-color: #F87171; }
}

/* ── V16 SAAS SETTINGS CARD ─────────────────────────────────── */
.guardian-settings-card {
  margin-top: 24px;
  border: 2px dashed var(--gold);
  border-radius: 14px;
  background: var(--white);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.guardian-settings-header {
  background: linear-gradient(135deg, var(--green) 0%, var(--green-mid) 100%);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.guardian-settings-header-icon {
  font-size: 20px;
}
.guardian-settings-header-title {
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--gold-bright);
}
.guardian-settings-body {
  padding: 20px;
}
.guardian-settings-body p {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 14px;
  line-height: 1.6;
  font-family: 'DM Mono', monospace;
}
.guardian-sheet-input {
  width: 100%;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  font-size: 13px;
  font-family: 'DM Mono', monospace;
  color: var(--ink);
  background: var(--cream);
  transition: border-color 0.2s;
}
.guardian-sheet-input:focus { outline: none; border-color: var(--green); background: var(--white); }
.guardian-threshold-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}
.guardian-threshold-row label {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--muted);
  white-space: nowrap;
}
.guardian-threshold-input {
  width: 72px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  font-size: 13px;
  font-family: 'DM Mono', monospace;
  color: var(--ink);
  text-align: center;
}
.guardian-connect-status {
  display: none;
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-family: 'DM Mono', monospace;
  font-weight: 600;
}
.guardian-connect-status.success { background: var(--green-light); color: var(--green); display: block; }
.guardian-connect-status.error   { background: rgba(248,113,113,0.12); color: #991B1B; display: block; }



.saas-step {
  display: flex; gap: 16px;
  padding: 16px 20px;
  border-left: 3px solid var(--gold);
  background: var(--white);
  border-radius: 0 12px 12px 0;
  margin-bottom: 12px;
  box-shadow: var(--shadow-sm);
}
.saas-step-num {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
  flex-shrink: 0;
  width: 32px;
}
.saas-step-body {}
.saas-step-title {
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 4px;
}
.saas-step-desc {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
  font-family: 'DM Mono', monospace;
}
.saas-step-code {
  margin-top: 8px;
  padding: 10px 14px;
  background: var(--surface-2);
  border-radius: 8px;
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  color: #4ADE80;
  overflow-x: auto;
}

.pos-card {
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.pos-card-header {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;
}
.pos-name { font-weight: 700; font-size: 14px; }
.pos-auth-method {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--green-light);
  color: var(--green);
}
.pos-status-bar { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.pos-chip {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  padding: 3px 9px;
  border-radius: 12px;
  border: 1px solid;
}
.pos-chip.done { background: var(--green-light); border-color: var(--green); color: var(--green); }
.pos-chip.todo { background: var(--cream); border-color: var(--border); color: var(--muted); }
.pos-chip.warn { background: var(--amber-light); border-color: var(--amber); color: var(--amber); }

.pricing-col {
  border: 1.5px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  flex: 1;
  min-width: 200px;
}
.pricing-col.featured {
  border-color: var(--gold);
  box-shadow: 0 4px 24px rgba(184,134,11,0.2);
}
.pricing-header {
  padding: 20px 20px 16px;
  background: var(--cream);
}
.pricing-header.featured-bg { background: linear-gradient(135deg, var(--green), var(--green-mid)); }
.pricing-name {
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--muted);
  margin-bottom: 4px;
}
.pricing-name.featured-text { color: rgba(255,255,255,0.6); }
.pricing-price {
  font-family: 'Playfair Display', serif;
  font-size: 32px;
  font-weight: 900;
  color: var(--ink);
}
.pricing-price.featured-text { color: var(--gold-bright); }
.pricing-per {
  font-size: 12px;
  color: var(--muted);
  font-family: 'DM Mono', monospace;
}
.pricing-per.featured-text { color: rgba(255,255,255,0.85); }
.pricing-body { padding: 16px 20px; }
.pricing-feature {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 12px;
  color: var(--muted);
  padding: 5px 0;
  border-bottom: 1px solid var(--border);
  line-height: 1.4;
}
.pricing-feature:last-child { border-bottom: none; }
.pricing-feature .pf-check { flex-shrink: 0; font-size: 13px; }



    .ocr-drop { border:2.5px dashed var(--border); border-radius:16px; padding:48px 32px; text-align:center; cursor:pointer; transition:all .2s; background:var(--white); margin-bottom:20px; }
    .ocr-drop:hover, .ocr-drop.dragging { border-color:var(--green); background:var(--green-light); }
    .ocr-drop-icon { font-size:48px; margin-bottom:12px; }
    .ocr-drop-title { font-family:'Playfair Display',serif; font-size:20px; font-weight:700; color:var(--green); margin-bottom:6px; }
    .ocr-drop-sub { font-size:13px; color:var(--muted); }
    .ocr-preview-img { max-width:340px; border-radius:10px; border:2px solid var(--border); box-shadow:var(--shadow-md); }
    .ocr-result-table { width:100%; border-collapse:collapse; }
    .ocr-result-table th { background:var(--green); color:#fff; padding:10px 14px; font-size:11px; font-family:'DM Mono',monospace; text-align:left; text-transform:uppercase; letter-spacing:0.5px; }
    .ocr-result-table td { padding:10px 14px; border-bottom:1px solid var(--border); font-size:13px; }
    .ocr-result-table tr:hover td { background:var(--cream); }
    .ocr-spike { color:var(--red); font-weight:700; }
    .ocr-ok { color:var(--green); font-weight:700; }
    .ocr-new { color:var(--amber); font-weight:700; }
    .ocr-conf-bar { height:6px; border-radius:3px; background:#E5E7EB; overflow:hidden; margin-top:4px; }
    .ocr-conf-fill { height:100%; border-radius:3px; background:var(--green); transition:width .5s; }
    .ocr-conf-fill.med { background:var(--amber); }
    .ocr-conf-fill.low { background:var(--red); }
    .ocr-summary-hero { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px; }
    .ocr-hero-stat { background:var(--white); border:1px solid var(--border); border-radius:12px; padding:16px; }
    .ocr-hero-val { font-family:'DM Mono',monospace; font-size:22px; font-weight:700; }
    .ocr-hero-label { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-top:2px; }
    .ocr-review-badge { display:inline-block; font-size:10px; font-family:'DM Mono',monospace; font-weight:700; padding:2px 8px; border-radius:4px; text-transform:uppercase; }
    .ocr-review-badge.needs { background:rgba(248,113,113,0.12); color:var(--red); }
    .ocr-review-badge.ok { background:#D1FAE5; color:var(--green); }
    .ocr-review-badge.new { background:rgba(251,191,36,0.12); color:var(--amber); }
  


.di-hero {
  background: linear-gradient(135deg, #0a1a2e 0%, #0c2340 50%, #071628 100%);
  border-radius: 18px; padding: 36px 40px; margin-bottom: 24px;
  position: relative; overflow: hidden;
  box-shadow: 0 12px 60px rgba(0,0,0,0.4);
}
.di-hero::before {
  content: ''; position: absolute; top: -60px; right: -60px;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(6,182,212,0.15) 0%, transparent 65%);
  pointer-events: none;
}
.di-kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 24px; }
.di-kpi { background: var(--white); border-radius: 14px; padding: 18px 20px; box-shadow: var(--shadow-sm); border-left: 4px solid var(--border); }
.di-kpi.cyan   { border-left-color: #06B6D4; }
.di-kpi.green  { border-left-color: var(--green); }
.di-kpi.amber  { border-left-color: var(--amber); }
.di-kpi.red    { border-left-color: var(--red); }
.di-kpi-val    { font-family:'Playfair Display',serif; font-size:26px; font-weight:900; color:var(--ink); line-height:1; }
.di-kpi-label  { font-family:'DM Mono',monospace; font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-top:4px; }
.di-kpi-sub    { font-size:11px; color:var(--muted); margin-top:4px; }
.di-reorder-row {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr auto;
  align-items: center; gap: 0; border-bottom: 1px solid var(--border);
  transition: background .15s;
}
.di-reorder-row:hover { background: rgba(6,182,212,0.04); }
.di-reorder-cell { padding: 13px 14px; font-size: 13px; }
.di-urgency { display: inline-flex; align-items: center; gap: 5px; font-family:'DM Mono',monospace; font-size:10px; font-weight:700; padding: 3px 9px; border-radius: 20px; }
.di-urgency.critical { background: rgba(248,113,113,0.12); color: var(--red); }
.di-urgency.high     { background: var(--amber-light); color: var(--amber); }
.di-urgency.normal   { background: var(--green-light); color: var(--green); }
.di-order-btn { background: #0891B2; color: #fff; border: none; border-radius: 8px; padding: 7px 14px; font-size:11px; font-family:'DM Mono',monospace; font-weight:700; cursor:pointer; transition:opacity .15s; white-space:nowrap; }
.di-order-btn:hover { opacity:.85; }
.di-order-btn.ordered { background: var(--green-light); color: var(--green); }
.di-rep-card { background: linear-gradient(135deg, #0c2340, #0a1a2e); border-radius: 14px; padding: 22px 24px; color: #fff; }
.di-rep-item { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,0.08); font-size:13px; }
.di-rep-item:last-child { border-bottom: none; }
.di-alt-badge { background: rgba(6,182,212,0.2); color: #67E8F9; font-family:'DM Mono',monospace; font-size:10px; padding: 2px 8px; border-radius:10px; }
.di-market-pill { display:flex; align-items:center; gap:8px; padding:10px 14px; background:var(--white); border-radius:10px; box-shadow:var(--shadow-sm); font-size:13px; }
.di-market-pill .di-trend-up   { color: var(--red); font-weight:700; font-family:'DM Mono',monospace; font-size:12px; }
.di-market-pill .di-trend-down { color: var(--green); font-weight:700; font-family:'DM Mono',monospace; font-size:12px; }
.di-market-pill .di-trend-flat { color: var(--muted); font-weight:700; font-family:'DM Mono',monospace; font-size:12px; }
.di-tab-btn { padding: 8px 18px; border-radius:8px; border:1.5px solid var(--border); background:var(--white); font-family:'DM Mono',monospace; font-size:11px; cursor:pointer; transition:all .15s; }
.di-tab-btn.active { background:#0891B2; color:#fff; border-color:#0891B2; }
@media(max-width:700px) {
  .di-kpi-grid { grid-template-columns:1fr 1fr; }
  .di-reorder-row { grid-template-columns:1fr 1fr; }
}



    .lh-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:24px; }
    .lh-day-col { background:var(--white); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
    .lh-day-header { background:var(--green); color:#fff; padding:8px 10px; text-align:center; font-size:11px; font-family:'DM Mono',monospace; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
    .lh-hour { padding:6px 8px; font-size:11px; font-family:'DM Mono',monospace; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid rgba(0,0,0,0.04); transition:all 0.15s; cursor:default; }
    .lh-hour:last-child { border-bottom:none; }
    .lh-hour.zone-green { background:linear-gradient(90deg,rgba(34,197,94,0.15),transparent); }
    .lh-hour.zone-yellow { background:linear-gradient(90deg,rgba(234,179,8,0.18),transparent); }
    .lh-hour.zone-red { background:linear-gradient(90deg,rgba(220,38,38,0.18),transparent); }
    .lh-hour-time { color:var(--muted); font-size:10px; }
    .lh-hour-ratio { font-weight:700; font-size:11px; }
    .lh-hour.zone-green .lh-hour-ratio { color:#16A34A; }
    .lh-hour.zone-yellow .lh-hour-ratio { color:#CA8A04; }
    .lh-hour.zone-red .lh-hour-ratio { color:var(--red); }
    .lh-legend { display:flex; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
    .lh-legend-item { display:flex; align-items:center; gap:6px; font-size:12px; font-family:'DM Mono',monospace; }
    .lh-legend-dot { width:12px; height:12px; border-radius:3px; }
    .lh-kpi-row { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
    .lh-kpi { background:var(--white); border:1px solid var(--border); border-radius:12px; padding:16px 18px; }
    .lh-kpi-val { font-family:'DM Mono',monospace; font-size:24px; font-weight:700; color:var(--ink); }
    .lh-kpi-label { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-top:3px; }
    .lh-alert { background:linear-gradient(135deg,#FEF2F2,#FEE2E2); border:1.5px solid #FECACA; border-radius:10px; padding:14px 18px; margin-bottom:10px; }
    .lh-alert-title { font-weight:700; color:var(--red); font-size:13px; }
    .lh-alert-body { font-size:12px; color:var(--ink); line-height:1.6; margin-top:4px; }
    .lh-cut-badge { display:inline-block; background:var(--red); color:#fff; font-family:'DM Mono',monospace; font-size:9px; font-weight:700; padding:2px 6px; border-radius:4px; text-transform:uppercase; letter-spacing:1px; margin-left:4px; }
  


    .ics-flow { display:flex; gap:0; margin-bottom:28px; counter-reset:ics; }
    .ics-step { flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; }
    .ics-step::after { content:''; position:absolute; top:20px; left:50%; width:100%; height:2px; background:var(--border); z-index:0; }
    .ics-step:last-child::after { display:none; }
    .ics-step-num { width:40px; height:40px; border-radius:50%; background:var(--green); color:#fff; font-family:'DM Mono',monospace; font-weight:700; font-size:14px; display:flex;align-items:center;justify-content:center; position:relative; z-index:1; margin-bottom:8px; }
    .ics-step.done .ics-step-num { background:var(--gold-bright); color:var(--green); }
    .ics-step-label { font-size:11px; color:var(--muted); font-family:'DM Mono',monospace; text-transform:uppercase; letter-spacing:0.5px; }
    .ics-confidence { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-family:'DM Mono',monospace; padding:2px 8px; border-radius:4px; }
    .ics-conf-high { background:rgba(74,222,128,0.15); color:#4ADE80; }
    .ics-conf-med  { background:rgba(251,191,36,0.18); color:#FBBF24; }
    .ics-conf-low  { background:rgba(248,113,113,0.18); color:#F87171; }
    .ics-count-table { width:100%; border-collapse:collapse; }
    .ics-count-table th { background:var(--surface-2); color:#fff; padding:10px 14px; font-size:11px; font-family:'DM Mono',monospace; text-align:left; }
    .ics-count-table td { padding:10px 14px; border-bottom:1px solid var(--border); font-size:13px; vertical-align:middle; }
    .ics-count-table tr.needs-review td { background:rgba(251,191,36,0.15); color:#fff; }
    .ics-count-table tr.outlier td { background:rgba(248,113,113,0.15); color:#fff; }
    .ics-variance-card { background:var(--white); border:1px solid var(--border); border-radius:12px; padding:16px 18px; margin-bottom:10px; display:flex; gap:12px; align-items:flex-start; }
    .ics-var-icon { width:36px; height:36px; border-radius:8px; display:flex;align-items:center;justify-content:center; font-size:16px; flex-shrink:0; }
    .ics-status-dot { width:8px; height:8px; border-radius:50%; display:inline-block; margin-right:4px; }
  
  /* ── Benchmark Card Grid ─────────────────────────────────────────────── */
  .pk-bench-grid { padding: 0; }
  .pk-bench-row {
    display: grid;
    grid-template-columns: 120px 1fr 100px;
    align-items: center;
    gap: 16px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
  }
  .pk-bench-row:last-child { border-bottom: none; }
  .pk-bench-metric-name {
    font-family: 'Playfair Display', serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
  }
  .pk-bench-bars { display: flex; flex-direction: column; gap: 6px; }
  .pk-bench-bar-wrap { display: flex; align-items: center; gap: 8px; }
  .pk-bench-bar-label {
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ink);
    width: 48px;
    flex-shrink: 0;
  }
  .pk-bench-bar-label.muted { color: var(--muted); }
  .pk-bench-bar-label.top { color: var(--primary); }
  .pk-bench-bar-track {
    flex: 1;
    height: 6px;
    background: rgba(255,255,255,0.08);
    border-radius: 3px;
    overflow: hidden;
  }
  .pk-bench-bar {
    height: 100%;
    border-radius: 3px;
    transition: width 0.6s ease;
  }
  .pk-bench-bar.you  { background: var(--success, #4ADE80); }
  .pk-bench-bar.peer { background: rgba(255,255,255,0.25); }
  .pk-bench-bar.top  { background: var(--primary, #C5A059); }
  .pk-bench-bar-val {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    color: var(--ink);
    width: 40px;
    text-align: right;
    flex-shrink: 0;
  }
  .pk-bench-bar-val.muted { color: var(--muted); }
  .pk-bench-bar-val.top   { color: var(--primary); }
  .pk-bench-verdict {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    text-align: right;
  }
  .pk-bench-verdict.good { color: var(--success, #4ADE80); }
  .pk-bench-verdict.warn { color: #FBBF24; }
  .pk-bench-verdict.bad  { color: #F87171; }
  .pk-bench-verdict.avg  { color: var(--muted); }
  .pk-bench-banner { transition: background 0.3s; }
  .pk-bench-banner.healthy { background: rgba(74,222,128,0.05); }
  .pk-bench-banner.warn    { background: rgba(251,191,36,0.05); }
  .pk-bench-banner.bad     { background: rgba(248,113,113,0.05); }



  /* ── TOAST NOTIFICATIONS ────────────────────────────────────── */
  #pk-toast-container {
    position: fixed; bottom: 24px; right: 24px; z-index: 99998;
    display: flex; flex-direction: column; gap: 8px; pointer-events: none;
  }
  .pk-toast {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 18px; border-radius: 12px;
    font-family: 'DM Sans', sans-serif; font-size: 13.5px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    min-width: 260px; max-width: 400px;
    animation: pkToastIn .25s ease; pointer-events: auto;
  }
  .pk-toast.success { background: var(--green);  color: #fff; }
  .pk-toast.error   { background: #DC2626;        color: #fff; }
  .pk-toast.warning { background: var(--amber);   color: #fff; }
  .pk-toast.info    { background: var(--surface-3);     color: #fff; }
  @keyframes pkToastIn  { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
  @keyframes pkToastOut { from { opacity:1; } to { opacity:0; transform:translateY(12px); } }
  /* ── INLINE SPINNER ─────────────────────────────────────────── */
  .pk-spinner {
    display: inline-block; width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff;
    border-radius: 50%; animation: pk-spin .7s linear infinite;
    vertical-align: middle; margin-right: 6px;
  }
  @keyframes pk-spin { to { transform: rotate(360deg); } }

/* ── DAILY CONTROL TOWER (v82) ──────────────────────────────────── */
.pk-tower-card {
  border: 1px solid var(--border-gold) !important;
  box-shadow: 0 0 40px rgba(197,160,89,0.07), 0 2px 16px rgba(0,0,0,0.25) !important;
  overflow: hidden;
}
.pk-tw-row {
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}
.pk-tw-num {
  width: 32px; height: 32px; border-radius: 50%;
  background: linear-gradient(135deg,rgba(197,160,89,0.18),rgba(197,160,89,0.06));
  border: 1px solid rgba(197,160,89,0.28);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif; font-size: 15px; font-weight: 800;
  color: var(--primary); flex-shrink: 0; margin-top: 2px;
}
.pk-tw-title  { font-size:14px; font-weight:700; color:var(--ink); margin-bottom:4px; line-height:1.35; }
.pk-tw-why    { font-size:12px; color:var(--muted); line-height:1.6; font-family:'DM Mono',monospace; }
.pk-tw-tags   { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.pk-tw-tag    { font-family:'DM Mono',monospace; font-size:10px; font-weight:700; padding:3px 8px; border-radius:4px; letter-spacing:.5px; text-transform:uppercase; }
.pk-tw-tag.labor   { background:rgba(251,191,36,0.12);  color:#FBBF24; }
.pk-tw-tag.menu    { background:rgba(74,222,128,0.12);  color:#4ADE80; }
.pk-tw-tag.waste   { background:rgba(147,197,253,0.12); color:#93C5FD; }
.pk-tw-tag.vendor  { background:rgba(196,181,253,0.12); color:#C4B5FD; }
.pk-tw-sav         { font-family:'Playfair Display',serif; font-size:22px; font-weight:800; white-space:nowrap; text-align:right; flex-shrink:0; }
.pk-tw-sav.pos     { color:#4ADE80; }
.pk-tw-sav.neg     { color:#F87171; }
.pk-tw-sav.neu     { color:var(--primary); }
#pk-tw-gap.over    { color:#F87171; }
#pk-tw-gap.under   { color:#4ADE80; }
#pk-tw-gap.on      { color:var(--muted); }
@media (max-width:768px) {
  #pk-tower-strip { grid-template-columns:1fr 1fr !important; }
  #pk-tower-strip > div { border-top:1px solid var(--border); }
  #pk-tower-strip > div:first-child { border-top:none; }
  .pk-tw-row { grid-template-columns:28px 1fr; }
  .pk-tw-sav { grid-column:2; text-align:left; font-size:18px; }
}




/* Camera modal overlay */
#pk-cam-modal {
  display:none; position:fixed; inset:0; z-index:9999;
  background:#0d1a12; flex-direction:column;
  font-family:'DM Sans','Segoe UI',sans-serif; color:#f5f0e8;
}
#pk-cam-modal.open { display:flex; }

/* Quality ring */
.pk-cam-ring { position:relative; width:72px; height:72px; flex-shrink:0; }
.pk-cam-ring svg { transform:rotate(-90deg); }

/* Approval table cells */
.pk-appr-input {
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12);
  border-radius:6px; padding:4px 8px; color:#f5f0e8; font-size:12px;
  width:100%; outline:none; font-family:'DM Sans',sans-serif;
}
.pk-appr-input.flagged {
  background:rgba(251,191,36,0.12); border-color:#fbbf24;
}
.pk-cam-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; border-bottom:1px solid rgba(255,255,255,0.08);
  background:rgba(0,0,0,0.35); flex-shrink:0;
}
.pk-cam-title { font-size:15px; font-weight:700; letter-spacing:0.06em; color:#c9a84c; text-transform:uppercase; }
.pk-cam-sub { font-size:11px; color:rgba(245,240,232,0.5); margin-top:2px; }
.pk-cam-btn {
  padding:9px 20px; border-radius:8px; border:none; cursor:pointer;
  font-weight:600; font-size:13px; letter-spacing:0.04em; transition:all 0.2s;
}
.pk-cam-btn-primary { background:linear-gradient(135deg,#c9a84c,#a07c2c); color:#0d1a12; }
.pk-cam-btn-ghost { background:rgba(255,255,255,0.08); color:#f5f0e8; border:1px solid rgba(255,255,255,0.15); }
.pk-cam-btn-danger { background:rgba(248,113,113,0.15); color:#f87171; border:1px solid rgba(248,113,113,0.3); }
.pk-cam-guide-box {
  position:absolute; width:85%; height:70%; border-radius:12px;
  box-shadow:0 0 0 4000px rgba(0,0,0,0.45);
  transition:border-color 0.3s;
  top:50%; left:50%; transform:translate(-50%,-50%);
}
.pk-cam-corner {
  position:absolute; width:22px; height:22px;
}
@keyframes pkspin { to { transform:rotate(360deg); } }
@keyframes pkcountdown { 0%{transform:scale(1.2);opacity:1} 100%{transform:scale(0.8);opacity:0.3} }
