/* ============================================================
   OCC Shared Shell — base design system for the Operations
   Command Center product line.

   This file is TENANT-AGNOSTIC and WORKFLOW-AGNOSTIC. It only
   defines: CSS custom properties (overridden per tenant by
   occ-shell.js from tenant.config.js), the page chrome (header,
   workflow nav), and a small set of generic components (panel,
   card, kpi, button, tabs, tag) that any workflow can reuse.

   Workflow-specific visuals (map pins, rank cards, schedule
   timelines, etc.) belong in that workflow's own CSS file under
   occ/workflows/<workflow>/<workflow>.css — do not add them here.
   ============================================================ */

:root{
  /* Fallback brand tokens — occ-shell.js overwrites these at runtime
     from the active tenant's tenant.config.js so every tenant can look
     completely different without touching this file. */
  --brand-primary:#A31E23;
  --brand-primary-dark:#7A1216;
  --brand-black:#181818;
  --brand-charcoal:#4a4a4a;
  --bg:#f7f6f4;
  --card:#ffffff;
  --ink:#1c1c1c;
  --ink-soft:#5c5c5c;
  --line:#e6e3e0;
  --good:#2f9e64;
  --warn:#c9862c;
  --bad:#A31E23;
}

*{box-sizing:border-box;}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,'Segoe UI',Helvetica,sans-serif;line-height:1.5;}
.occ-shell{max-width:1360px;margin:0 auto;padding:0 28px 40px;}

/* ---- Header ---- */
.occ-header{
  color:#fff;padding:26px 28px;
  background:
    radial-gradient(circle at 85% 20%, color-mix(in srgb, var(--brand-primary) 55%, transparent) 0%, transparent 45%),
    linear-gradient(115deg, #101010 0%, #1e1e1e 60%, #2a1010 100%);
}
.occ-header .occ-shell{padding:0;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;}
.occ-brand-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.occ-brand-badge{width:30px;height:30px;border-radius:50%;background:var(--brand-primary);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:11px;border:2px solid #fff;flex:0 0 auto;color:#fff;}
.occ-brand-logo{height:31px;width:auto;max-width:165px;object-fit:contain;display:block;flex:0 0 auto;}
.occ-brand-tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#f0b9bb;}
.occ-title{font-size:22px;font-weight:900;letter-spacing:-.01em;}
.occ-sub{font-size:13px;color:#d8d8d8;margin-top:4px;max-width:560px;}
.occ-status-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:100px;}
.occ-status-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--warn);}

/* ---- Workflow nav (only shown when there's 2+ workflow buttons, real or
   planned). Every button is fully clickable/live — a "planned" workflow
   with no module yet just switches to an auto-generated "coming soon"
   section (see .occ-coming-soon below) instead of its own real content;
   the button itself looks and behaves like any other tab. ---- */
.occ-workflow-nav{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;}
.occ-workflow-nav button{
  background:var(--card);border:1px solid var(--line);border-radius:4px;
  padding:10px 16px;font-size:12.5px;font-weight:800;color:var(--ink-soft);
  cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;
  gap:7px;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:background .15s,border-color .15s,color .15s;
}
.occ-workflow-nav button:hover:not(.active){border-color:var(--brand-primary);color:var(--ink);}
.occ-workflow-nav button.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.12);}
.occ-workflow-section{display:none;}
.occ-workflow-section.active{display:block;}

/* ---- Coming-soon placeholder page (auto-generated for planned
   workflows — see occ-shell.js renderPlannedSections) ---- */
.occ-coming-soon{margin-top:16px;}
.occ-coming-soon .occ-panel-body{padding:48px 24px;text-align:center;}
.occ-coming-soon h2{margin:14px 0 8px;font-size:21px;color:var(--brand-black);}
.occ-coming-soon p{margin:0 auto;max-width:56ch;color:var(--ink-soft);font-size:13.5px;}
.occ-soon-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:100px;background:var(--line);color:var(--ink-soft);}

/* ---- Generic reusable components (any workflow may use these) ---- */
.occ-panel{background:var(--card);border:1px solid var(--line);border-radius:4px;overflow:hidden;}
.occ-panel-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;}
.occ-panel-head h2{margin:0;font-size:14.5px;color:var(--brand-black);font-weight:800;}
.occ-panel-head .hint{font-size:11.5px;color:var(--ink-soft);}
.occ-panel-body{padding:16px 18px;}

.occ-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px;}
@media(max-width:760px){.occ-stats{grid-template-columns:1fr;}}
.occ-stat-card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:16px 18px;}
.occ-stat-card .l{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:800;}
.occ-stat-card .n{font-size:20px;font-weight:900;color:var(--brand-black);margin-top:4px;}
.occ-stat-card .d{font-size:12px;color:var(--ink-soft);margin-top:3px;}

.occ-note{margin-top:16px;font-size:11.5px;color:var(--ink-soft);text-align:center;}

.occ-btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:4px;padding:10px 16px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;}
.occ-btn.primary{background:var(--brand-primary);color:#fff;}
.occ-btn.primary:hover{background:var(--brand-primary-dark);}
.occ-btn.ghost{background:transparent;color:var(--brand-black);border:1px solid var(--line);}
.occ-btn.ghost:hover{background:var(--card);border-color:var(--brand-black);}

.occ-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:100px;}
.occ-tag.urgent{background:#fbe9ea;color:var(--brand-primary);}

.occ-footer{display:flex;align-items:center;gap:10px;justify-content:center;margin-top:40px;padding:18px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:11px;}
