:root{
  /* Brand — Squeaky Clean blue */
  --brand:#00B8F5; --brand-600:#00A2D8; --brand-700:#0090BF; --brand-800:#007399;
  --brand-50:#EBF9FE; --brand-100:#D9F4FE;

  /* Accent — Squeaky Clean yellow */
  --accent:#FAD400; --accent-600:#DCBB00; --accent-50:#FFFCEB;

  /* Status */
  --ok:#16a34a; --warn:#d97706; --danger:#dc2626; --info:#0284c7;

  /* Neutrals */
  --ink:#1a1a1a; --ink-2:#33475b; --muted:#64748b; --muted-2:#4a5972;
  --line:#e2e8f0; --line-2:#cbd5e1; --canvas:#f6f7fb; --surface:#ffffff; --surface-2:#f9fafc;

  /* Shape */
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-xl:24px;

  /* Shadows */
  --sh-1:0 1px 2px rgb(15 23 42 / .06);
  --sh-2:0 4px 12px -4px rgb(15 23 42 / .08), 0 2px 4px -2px rgb(15 23 42 / .04);
  --sh-3:0 14px 40px -12px rgb(15 23 42 / .15), 0 4px 8px -4px rgb(15 23 42 / .06);

  --nav-w:280px;
}

* { box-sizing: border-box; }
html, body { margin:0; padding:0; background:var(--canvas); color:var(--ink);
  font-family:'Inter Tight', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body { min-height:100vh; }
img { max-width:100%; }
button, select, input { font-family:inherit; }
i.ph, i.ph-fill { line-height:1; }

a { color:var(--brand-700); text-decoration:none; }
a:hover { text-decoration:underline; }
button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible {
  outline:2px solid var(--brand-700); outline-offset:2px; border-radius:4px;
}

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

h1, h2, h3, h4 { font-family:'Bricolage Grotesque', sans-serif; letter-spacing:-0.02em; color:var(--ink); margin:0; }
h1 { font-size:clamp(1.75rem, 3vw, 2.4rem); font-weight:700; line-height:1.1; }
h2 { font-size:1.4rem; font-weight:700; }
h3 { font-size:1.1rem; font-weight:600; }
p { color:var(--ink-2); margin:0 0 1em; }

::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--line-2); border-radius:10px; border:2px solid var(--canvas); }
::-webkit-scrollbar-thumb:hover { background:var(--muted-2); }

/* ============ LAYOUT ============ */
.app { display:flex; min-height:100vh; }

aside.sidebar {
  width:var(--nav-w);
  background:linear-gradient(180deg, var(--brand-700) 0%, var(--brand-800) 100%);
  color:#fff; padding:26px 18px; position:fixed; inset:0 auto 0 0; height:100vh;
  display:flex; flex-direction:column; z-index:100;
  transition:transform .35s cubic-bezier(.4,0,.2,1); overflow-y:auto;
}
aside.sidebar::before {
  content:''; position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 15% 90%, rgba(255,255,255,.08) 0%, transparent 30%),
    radial-gradient(circle at 85% 10%, rgba(255,255,255,.1) 0%, transparent 40%);
  pointer-events:none;
}

.brand-block { position:relative; padding:10px 8px 26px; margin-bottom:14px; border-bottom:2px solid var(--accent); text-align:center; }
.brand-logo-inline { display:flex; align-items:center; justify-content:center; }
.brand-logo-inline img { width:182px; height:auto; flex-shrink:0; }
.brand-tag { font-size:10.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; text-align:center;
  margin-top:12px; color:rgba(255,255,255,.85); }

nav.main-nav { position:relative; display:flex; flex-direction:column; gap:3px; flex:1; }
.nav-section-label { font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.7); padding:16px 14px 8px; }

.nav-btn { background:transparent; border:none; color:rgba(255,255,255,.85);
  font:500 14.5px/1 'Inter Tight', sans-serif; cursor:pointer; padding:12px 14px; border-radius:10px;
  text-align:left; display:flex; align-items:center; gap:12px; transition:all .2s ease; position:relative; width:100%; }
.nav-btn i { font-size:19px; flex-shrink:0; }
.nav-btn:hover { color:#fff; background:rgba(255,255,255,.08); }
.nav-btn.active { color:#fff; background:rgba(255,255,255,.17); font-weight:600; }
.nav-btn.active::before { content:''; position:absolute; left:-18px; top:8px; bottom:8px; width:4px;
  background:var(--accent); border-radius:0 4px 4px 0; }
.nav-btn.sub { padding:10px 14px 10px 30px; font-size:13.5px; }
.nav-btn.sub i { font-size:16px; }

.sidebar-footer { position:relative; padding:14px; margin-top:12px; border-top:1px solid rgba(255,255,255,.14);
  font-size:12px; color:rgba(255,255,255,.8); line-height:1.5; }
.sidebar-footer strong { color:rgba(255,255,255,.95); font-weight:600; }

/* Mobile header */
.mobile-bar { display:none; background:linear-gradient(90deg, var(--brand-700), var(--brand-600));
  color:#fff; padding:12px 16px; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:200; box-shadow:var(--sh-2); }
.mobile-logo-inline img { width:140px; height:auto; display:block; }
.menu-btn { background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.22); color:#fff;
  width:38px; height:38px; border-radius:9px; font-size:22px; cursor:pointer; display:grid; place-items:center; }
.scrim { display:none; position:fixed; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(3px); z-index:99; }
.scrim.show { display:block; }

/* Main */
main { flex:1; margin-left:var(--nav-w); padding:0; min-width:0; }
.page-inner { max-width:1240px; padding:36px 44px 80px; margin:0 auto; }

.app-strip { background:var(--surface); border-bottom:1px solid var(--line); padding:12px 44px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; color:var(--muted); }
.app-strip .left { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.strip-item { display:inline-flex; align-items:center; gap:6px; }
.strip-item i { font-size:14px; color:var(--muted-2); }
.live-dot { display:inline-flex; align-items:center; gap:6px; font-weight:600; color:var(--ok); }
.live-dot::before { content:''; width:7px; height:7px; background:var(--ok); border-radius:50%;
  box-shadow:0 0 0 3px rgb(22 163 74 / .18); animation:pulse 2.2s infinite; }
@keyframes pulse { 0%,100% { box-shadow:0 0 0 3px rgb(22 163 74 / .18); } 50% { box-shadow:0 0 0 6px rgb(22 163 74 / 0); } }
.sim-pill { display:inline-flex; align-items:center; gap:6px; font-weight:600; color:#be123c; background:#fff1f2;
  padding:6px 14px; border-radius:999px; font-size:12.5px; letter-spacing:.02em; white-space:nowrap; }

.tab { display:none; animation:fade .45s ease both; }
.tab.active { display:block; }
@keyframes fade { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

/* ============ HOME ============ */
.hero { position:relative; background:
    radial-gradient(1100px 400px at 90% -10%, rgba(250,212,0,.14), transparent 50%),
    radial-gradient(900px 500px at -10% 110%, rgba(0,184,245,.22), transparent 55%),
    linear-gradient(135deg, var(--brand-700) 0%, var(--brand-800) 100%);
  color:#fff; border-radius:var(--r-xl); padding:44px 48px; margin-bottom:30px; overflow:hidden; box-shadow:var(--sh-3); }
.hero::before { content:''; position:absolute; top:-40%; left:55%; width:60%; height:180%;
  background:linear-gradient(100deg, transparent 0%, rgba(255,255,255,.14) 45%, rgba(255,255,255,.24) 50%, rgba(255,255,255,.14) 55%, transparent 100%);
  transform:rotate(8deg); pointer-events:none; }
.sparkle-field { position:absolute; inset:0; pointer-events:none; z-index:1; }
.sparkle { position:absolute; color:var(--accent); }
.sparkle.white { color:#fff; }
.hero-eyebrow { position:relative; z-index:2; font-family:'JetBrains Mono', monospace; font-size:12px; font-weight:500; text-transform:uppercase;
  letter-spacing:.14em; color:rgba(255,255,255,.9); margin-bottom:18px; display:flex; align-items:center; gap:10px; }
.hero-eyebrow::before { content:''; width:24px; height:1.5px; background:var(--accent); }
.hero-body { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.hero h1 { color:#fff; font-size:clamp(2rem, 4vw, 3rem); font-weight:800; max-width:640px; margin-bottom:18px; }
.hero h1 .accent { color:var(--accent); font-weight:700; }
.hero p { color:rgba(255,255,255,.88); font-size:1.05rem; max-width:560px; margin-bottom:28px; }
.hero-cta { display:flex; gap:12px; flex-wrap:wrap; }
.shift-card { flex-shrink:0; width:230px; background:rgba(255,255,255,.14); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.3); border-radius:var(--r-lg); padding:18px 20px; margin-bottom:4px; }
.shift-card h4 { font-family:'JetBrains Mono', monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.1em;
  color:rgba(255,255,255,.75); margin:0 0 12px; font-weight:600; }
.shift-row { display:flex; align-items:center; gap:9px; font-size:13px; color:#fff; padding:5px 0; }
.shift-row .dot { width:18px; height:18px; border-radius:50%; display:grid; place-items:center; font-size:11px; flex-shrink:0; }
.shift-row.done .dot { background:var(--accent); color:var(--brand-800); }
.shift-row.now .dot { background:#fff; color:var(--brand-700); }
.shift-row.todo .dot { background:rgba(255,255,255,.2); color:rgba(255,255,255,.7); }
.shift-row.now { font-weight:700; }
.btn { display:inline-flex; align-items:center; gap:8px; padding:12px 20px; border-radius:10px; font-weight:600;
  font-size:14.5px; cursor:pointer; border:1px solid transparent; transition:all .2s ease; text-decoration:none;
  font-family:'Inter Tight', sans-serif; }
.btn-primary { background:#fff; color:var(--brand-700); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:var(--sh-2); text-decoration:none; }
.btn-ghost { background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.26); }
.btn-ghost:hover { background:rgba(255,255,255,.18); text-decoration:none; }

.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:30px; }
.stat { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px;
  position:relative; overflow:hidden; transition:all .25s ease; }
.stat:hover { transform:translateY(-3px); box-shadow:var(--sh-2); border-color:var(--line-2); }
.stat-icon { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; font-size:19px; margin-bottom:14px; }
.stat-icon.b { background:var(--brand-50); color:var(--brand-700); }
.stat-icon.a { background:var(--accent-50); color:#8a6d00; }
.stat-icon.g { background:#dcfce7; color:#166534; }
.stat-icon.r { background:#fee2e2; color:#991b1b; }
.stat-value { font-family:'Bricolage Grotesque', sans-serif; font-size:1.75rem; font-weight:700; letter-spacing:-0.02em;
  line-height:1; margin-bottom:4px; }
.stat-label { font-size:13px; color:var(--muted); font-weight:500; }

.dash-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:22px; margin-bottom:30px; }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; }
.panel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.panel-head h2 { font-size:1.15rem; display:inline-flex; align-items:center; gap:10px; }
.panel-h-icon { font-size:22px; color:var(--brand-700); }
.panel-head .more { font-size:13px; color:var(--brand-700); font-weight:500; cursor:pointer; text-decoration:underline;
  background:none; border:none; font-family:inherit; display:inline-flex; align-items:center; gap:4px; }

.quick-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.quick { display:flex; align-items:center; gap:12px; padding:14px 16px; background:var(--surface-2);
  border:1px solid var(--line); border-radius:var(--r-md); cursor:pointer; transition:all .2s ease;
  text-align:left; width:100%; font:inherit; color:var(--ink); }
.quick:hover, .quick:focus-visible { border-color:var(--brand); background:var(--brand-50); transform:translateX(2px); }
.quick i { color:var(--brand-700); font-size:22px; flex-shrink:0; }
.quick-text { display:flex; flex-direction:column; gap:2px; }
.quick-text strong { font-weight:600; font-size:14px; }
.quick-text span { font-size:12px; color:var(--muted); }

.notice { display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.notice:last-child { border-bottom:none; padding-bottom:0; }
.notice:first-child { padding-top:0; }
.notice-icon { flex-shrink:0; width:36px; height:36px; border-radius:9px; display:grid; place-items:center; font-size:17px; }
.notice.safety .notice-icon { background:#fee2e2; color:var(--danger); }
.notice.team .notice-icon { background:var(--brand-50); color:var(--brand-700); }
.notice.event .notice-icon { background:var(--accent-50); color:#8a6d00; }
.notice.info .notice-icon { background:#e0f2fe; color:var(--info); }
.notice h3 { font-family:'Inter Tight', sans-serif; font-size:14px; font-weight:700; margin-bottom:3px; }
.notice p { font-family:'Inter Tight', sans-serif; font-size:13px; color:var(--muted); margin:0; }
.notice time { font-size:11.5px; color:var(--muted-2); font-family:'JetBrains Mono', monospace; }

/* ============ PAGE HEADERS ============ */
.page-head { margin-bottom:28px; padding-bottom:22px; border-bottom:1px solid var(--line);
  display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.page-head .left { max-width:720px; }
.crumb { font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.crumb span { color:var(--brand-700); }
.page-head p { font-size:15px; color:var(--ink-2); margin-bottom:0; margin-top:10px; }
.page-meta { display:flex; gap:8px; flex-wrap:wrap; }
.meta-chip { display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:6px 12px; background:var(--surface);
  border:1px solid var(--line); border-radius:999px; color:var(--ink-2); font-weight:500; }
.meta-chip i { color:var(--brand-700); }

/* Pills (department / category filters) */
.pill-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.pill { display:inline-flex; align-items:center; gap:7px; padding:7px 14px; background:var(--surface);
  border:1px solid var(--line); border-radius:999px; font-size:13px; font-weight:500; color:var(--ink-2);
  cursor:pointer; transition:all .2s ease; }
.pill:hover { border-color:var(--brand-700); color:var(--brand-700); }
.pill.active { background:var(--brand-700); border-color:var(--brand-700); color:#fff; font-weight:600; }
.pill.active i { color:#fff; }
.pill .dot { width:8px; height:8px; border-radius:50%; }
.pill i { font-size:14px; color:var(--brand-700); }
.pill.active .dot { background:#fff !important; }

/* ============ ORG CHART ============ */
.org-wrap { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px;
  margin-bottom:24px; position:relative; cursor:zoom-in; overflow-x:auto; }
.org-chart-svg { width:100%; height:auto; min-width:640px; display:block; }
.zoom-hint { position:absolute; top:14px; right:18px; display:inline-flex; align-items:center; gap:6px;
  padding:6px 11px; background:rgba(15,23,42,.8); color:#fff; font-size:12px; font-weight:500; border-radius:999px;
  pointer-events:none; backdrop-filter:blur(4px); }
.zoom-hint i { font-size:14px; }

.zoom-modal { display:none; position:fixed; inset:0; background:rgba(15,23,42,.9); backdrop-filter:blur(8px);
  z-index:2000; padding:4vh 4vw; overflow:auto; cursor:zoom-out; }
.zoom-modal.open { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.zoom-modal-inner { width:100%; max-width:1200px; background:var(--surface); border-radius:var(--r-lg); padding:28px;
  box-shadow:var(--sh-3); position:relative; cursor:default; }
.zoom-modal-inner .org-chart-svg { min-width:900px; }
.zoom-close { position:absolute; top:14px; right:14px; width:40px; height:40px; border-radius:50%; background:var(--ink);
  color:#fff; border:none; font-size:20px; cursor:pointer; display:grid; place-items:center; z-index:1;
  transition:transform .15s ease; }
.zoom-close:hover { transform:scale(1.08); }

/* ============ TEAM DIRECTORY ============ */
.team-directory { margin-top:6px; }
.division-heading { font-size:1.05rem; font-weight:700; color:var(--ink); margin:0 0 16px; padding-top:22px;
  border-top:1px solid var(--line); display:flex; align-items:center; gap:9px; }
.division-heading:first-child { padding-top:0; border-top:none; }
.division-heading i { color:var(--brand-700); font-size:20px; }
.dept-group { margin-bottom:28px; }
.dept-group h3 { font-size:17px; color:var(--brand-700); margin:0 0 14px; display:flex; align-items:center; gap:9px; }
.profile-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:16px; }
.profile-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:16px;
  display:flex; align-items:center; gap:14px; transition:all .2s ease; }
.profile-card:hover { border-color:var(--line-2); box-shadow:var(--sh-1); }
.avatar { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:700; color:#fff; flex-shrink:0; font-size:15px; }
.profile-card .name { font-weight:600; font-size:14.5px; }
.profile-card .role { color:var(--muted); font-size:13px; }
.profile-card.team-summary { grid-column:span 2; background:var(--brand-50); border-color:var(--brand-100); }
.profile-card.team-summary .avatar { background:var(--brand-700); font-size:18px; }

/* ============ RESOURCES ============ */
.resource-toolbar { display:flex; align-items:center; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.search-wrap { position:relative; flex:1; min-width:220px; }
.search-wrap i { position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--muted-2); font-size:18px; }
.search-input { width:100%; padding:12px 16px 12px 44px; font:500 14px 'Inter Tight', sans-serif; color:var(--ink);
  background:var(--surface); border:1px solid var(--line); border-radius:11px; transition:all .2s ease; }
.search-input:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 4px rgb(0 184 245 / .14); }

.toolbar-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.view-toggle { display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; background:var(--surface); }
.view-btn { background:transparent; border:none; padding:8px 11px; font-size:17px; color:var(--muted); cursor:pointer;
  transition:all .15s ease; display:grid; place-items:center; border-right:1px solid var(--line); }
.view-btn:last-child { border-right:none; }
.view-btn:hover { color:var(--ink-2); background:var(--surface-2); }
.view-btn.active { color:var(--brand-700); background:var(--brand-50); }

.sort-select, .filter-select { font:500 13px 'Inter Tight', sans-serif; color:var(--ink-2); background:var(--surface);
  border:1px solid var(--line); border-radius:9px; padding:8px 28px 8px 12px; cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; transition:border-color .2s ease; }
.sort-select:focus, .filter-select:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgb(0 184 245 / .12); }

.resource-counter { font-family:'JetBrains Mono', monospace; font-size:12.5px; color:var(--muted); margin:2px 2px 16px; }

.res-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:16px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:20px;
  display:flex; flex-direction:column; position:relative; overflow:hidden; transition:all .25s ease; cursor:pointer; }
.card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:transparent;
  transition:background .25s ease; }
.card:hover, .card:focus-visible { transform:translateY(-4px); box-shadow:var(--sh-3); border-color:var(--line-2); }
.card:hover::before, .card:focus-visible::before { background:var(--brand); }
.card-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.tag { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:6px; font-size:10.5px;
  font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.tag.pdf { background:#fef2f2; color:#b91c1c; }
.tag.doc { background:var(--brand-50); color:var(--brand-700); }
.tag.xls { background:#ecfdf5; color:#047857; }
.tag.link { background:#eef2ff; color:#4338ca; }
.tag.cat { background:#f1f5f9; color:var(--ink-2); }
.card h3 { font-size:0.98rem; margin-bottom:14px; line-height:1.35; flex:1; }
.card-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.file-meta { font-size:11px; color:var(--muted-2); font-family:'JetBrains Mono', monospace; }
.btn-link { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--brand-700);
  background:var(--brand-50); border:1px solid transparent; padding:8px 13px; border-radius:8px; cursor:pointer;
  transition:all .2s ease; text-decoration:none; }
.btn-link:hover, .btn-link:focus-visible { background:var(--brand-700); color:#fff; text-decoration:none; transform:translateX(2px); }

.res-list .card { flex-direction:row; align-items:center; gap:16px; padding:13px 18px; border-radius:var(--r-md); }
.res-list .card-tags { margin-bottom:0; flex-shrink:0; }
.res-list .card h3 { font-size:0.9rem; margin-bottom:0; flex:1; }
.res-list .card-foot { margin-top:0; flex-shrink:0; }
.res-list .card::before { display:none; }
.res-list .card:hover { transform:translateY(-2px); }

.alpha-section { margin-bottom:26px; }
.alpha-header { display:flex; align-items:center; gap:14px; margin-bottom:14px; padding-bottom:8px; border-bottom:2px solid var(--brand); }
.alpha-letter { font-family:'Bricolage Grotesque', sans-serif; font-size:1.5rem; font-weight:800; color:var(--brand-700);
  line-height:1; width:38px; height:38px; display:grid; place-items:center; background:var(--brand-50); border-radius:10px; }
.alpha-count { font-size:12px; color:var(--muted); font-weight:500; }

.grid-state { grid-column:1 / -1; text-align:center; padding:48px 24px; color:var(--muted); }
.grid-state i { font-size:38px; display:block; margin-bottom:14px; color:var(--line-2); }
.grid-state .state-title { font-weight:600; font-size:14.5px; color:var(--ink-2); margin-bottom:4px; }
.grid-state p { font-size:13px; margin:0; }
.grid-state.loading i { animation:spin 1.2s linear infinite; color:var(--brand); }
@keyframes spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.grid-state.error i { color:var(--danger); }

/* ============ ABOUT THE GROUP ============ */
.callout { display:flex; gap:14px; padding:18px 20px; border-radius:var(--r-lg); margin:0 0 28px;
  border:1px solid var(--line); background:var(--surface-2); }
.callout i { flex-shrink:0; font-size:20px; color:var(--brand-700); margin-top:1px; }
.callout p { margin:0; font-size:13.5px; color:var(--ink-2); line-height:1.6; }
.callout strong { color:var(--ink); }
.callout.warn { background:var(--accent-50); border-color:#f3e8a6; }
.callout.warn i { color:#8a6d00; }

.division-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:30px; }
.division-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px;
  transition:all .25s ease; }
.division-card:hover { transform:translateY(-3px); box-shadow:var(--sh-2); border-color:var(--line-2); }
.division-card .div-icon { width:40px; height:40px; border-radius:10px; display:grid; place-items:center;
  font-size:20px; margin-bottom:14px; background:var(--brand-50); color:var(--brand-700); }
.division-card h3 { font-size:1.02rem; margin-bottom:8px; }
.division-card p.div-desc { font-size:13px; color:var(--muted); margin:0 0 14px; line-height:1.55; }
.brand-tags { display:flex; flex-wrap:wrap; gap:6px; }
.brand-tags .tag { background:var(--surface-2); color:var(--ink-2); text-transform:none; letter-spacing:0; font-weight:500; font-size:11.5px; }

.oc-box.div { fill:var(--accent-50); stroke:var(--accent-600); }
.oc-group-label { font-family:'JetBrains Mono', monospace; font-size:11px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; fill:#64748b; }

/* ============ TOAST ============ */
.toast { position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(24px); background:var(--ink);
  color:#fff; padding:14px 22px; border-radius:12px; font-size:14px; box-shadow:var(--sh-3); opacity:0;
  pointer-events:none; transition:.25s; z-index:2100; display:flex; align-items:center; gap:10px; max-width:88vw; }
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
.toast i { font-size:19px; color:var(--accent); flex-shrink:0; }

/* ============ FOOTER ============ */
.page-footer { margin-top:16px; padding-top:24px; border-top:1px solid var(--line); color:var(--muted);
  font-size:12px; line-height:1.6; max-width:920px; }
.page-footer .disc-label { display:inline-flex; align-items:center; gap:7px; font-family:'JetBrains Mono', monospace;
  font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); margin-bottom:8px; }
.page-footer .disc-label i { font-size:14px; color:var(--brand-700); }
.page-footer p { margin:0; font-size:12px; color:var(--muted); }
.page-footer-meta { margin-top:14px; font-size:11px; color:var(--muted-2); font-family:'JetBrains Mono', monospace;
  letter-spacing:.02em; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* ============ RESPONSIVE ============ */
@media (max-width:1100px) {
  .stats { grid-template-columns:repeat(2,1fr); }
  .dash-grid { grid-template-columns:1fr; }
}
@media (max-width:880px) {
  .mobile-bar { display:flex; }
  aside.sidebar { transform:translateX(-100%); padding-top:78px; }
  aside.sidebar.open { transform:translateX(0); box-shadow:var(--sh-3); }
  aside.sidebar .brand-block { display:none; }
  main { margin-left:0; }
  .page-inner { padding:22px; }
  .app-strip { padding:10px 22px; }
  .hero { padding:30px 26px; border-radius:var(--r-lg); }
  .quick-grid { grid-template-columns:1fr; }
  .profile-card.team-summary { grid-column:span 1; }
  .division-grid { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .stats { grid-template-columns:1fr 1fr; }
  .stat { padding:16px; }
  .stat-value { font-size:1.4rem; }
  .resource-toolbar { flex-direction:column; align-items:stretch; }
}

/* ---------------- Org chart SVG styles (scoped per chart) ---------------- */

/* groupChartSvg */
#groupChartSvg .oc-box {fill:#ffffff;stroke:#dbe3ec;stroke-width:1.5;}
#groupChartSvg .oc-box.lead {fill:#EBF9FE;stroke:#00B8F5;}
#groupChartSvg .oc-box.div {fill:#FFFCEB;stroke:#DCBB00;}
#groupChartSvg .oc-cluster {fill:#f9fafc;stroke:#cbd5e1;stroke-width:1.5;}
#groupChartSvg .oc-chip {fill:#ffffff;stroke:#dbe3ec;stroke-width:1.2;}
#groupChartSvg .oc-line {stroke:#c7d2e0;stroke-width:2;fill:none;}
#groupChartSvg .oc-name {font-family:'Bricolage Grotesque',sans-serif; font-size:14px; font-weight:700; fill:#1a1a1a;}
#groupChartSvg .oc-role {font-family:'Inter Tight',sans-serif; font-size:12px; font-weight:500; fill:#64748b;}
#groupChartSvg .oc-chip-name {font-family:'Inter Tight',sans-serif; font-size:10.5px; font-weight:600; fill:#1a1a1a;}
#groupChartSvg .oc-cluster-label {font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; fill:#64748b;}

/* teamChartSvg */
#teamChartSvg .oc-box {fill:#ffffff;stroke:#dbe3ec;stroke-width:1.5;}
#teamChartSvg .oc-box.lead {fill:#EBF9FE;stroke:#00B8F5;}
#teamChartSvg .oc-box.div {fill:#FFFCEB;stroke:#DCBB00;}
#teamChartSvg .oc-box.brand {fill:#EBF9FE;stroke:#00A2D8;}
#teamChartSvg .oc-line {stroke:#c7d2e0;stroke-width:2;fill:none;}
#teamChartSvg .oc-name {font-family:'Bricolage Grotesque',sans-serif; font-size:15.5px; font-weight:700; fill:#1a1a1a;}
#teamChartSvg .oc-role {font-family:'Inter Tight',sans-serif; font-size:13px; font-weight:500; fill:#64748b;}
#teamChartSvg .oc-count {font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.03em; fill:#007399;}

/* ---------------- SPA additions ---------------- */
.nav-btn.sub[hidden], .tab[hidden]{display:none}
.card .file-meta{white-space:nowrap}

#main-content:focus{outline:none}
