:root {
  --bs-body-bg: #FAFAF7;
  --bs-body-color: #1A1F1C;
  --bs-body-font-family: 'Inter', sans-serif;
  --bs-body-font-size: 14px;
  --bs-body-line-height: 1.55;
  --safs-green:#1B4332; --safs-green-deep:#11342A; --safs-green-soft:#D6E0D9; --safs-green-tint:#EFF3F0;
  --safs-ochre:#B8763E; --safs-ochre-soft:#F2E2CF;
  --safs-cream:#FAFAF7; --safs-cream-deep:#F4F2EC; --safs-paper:#FFFFFF;
  --ink:#1A1F1C; --ink-mid:#4A5249; --ink-soft:#7B8378; --ink-faint:#B8BDB4;
  --safs-red:#B23A48; --safs-red-soft:#F4DBDE;
  --safs-gold:#C09E47; --safs-gold-soft:#F5EBC9;
  --safs-sage:#5C8A5C; --safs-sage-soft:#D9E5D9;
  --border:#E2E0D8; --border-strong:#C7C4B7; --divider:#EBE9E1;
  --bs-primary:#1B4332; --bs-primary-rgb:27,67,50;
  --bs-link-color:#1B4332; --bs-link-hover-color:#11342A;
  --bs-border-color:#E2E0D8;
}
html,body{background:var(--safs-cream);color:var(--ink);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased}
.serif{font-family:'Crimson Pro',Georgia,serif;font-feature-settings:'lnum' on}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
h1,h2,h3,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:'Crimson Pro',Georgia,serif;font-weight:400;letter-spacing:-.015em;line-height:1.15;color:var(--ink)}
h4,h5,h6{font-family:'Inter',sans-serif;font-weight:600;letter-spacing:-.005em}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.tabular{font-variant-numeric:tabular-nums}
.btn-primary{--bs-btn-bg:var(--safs-green);--bs-btn-border-color:var(--safs-green);--bs-btn-hover-bg:var(--safs-green-deep);--bs-btn-hover-border-color:var(--safs-green-deep);--bs-btn-active-bg:var(--safs-green-deep);font-weight:500}
.btn-outline-primary{--bs-btn-color:var(--safs-green);--bs-btn-border-color:var(--safs-green);--bs-btn-hover-bg:var(--safs-green);--bs-btn-hover-border-color:var(--safs-green)}
.card{background:var(--safs-paper);border:1px solid var(--border)}
.bg-cream{background:var(--safs-cream)}.bg-cream-deep{background:var(--safs-cream-deep)}.bg-paper{background:var(--safs-paper)}
.bg-green-tint{background:var(--safs-green-tint)}.text-safs-green{color:var(--safs-green)}.text-safs-ochre{color:var(--safs-ochre)}.text-safs-red{color:var(--safs-red)}
.text-mid{color:var(--ink-mid)}.text-soft{color:var(--ink-soft)}

.topbar{background:var(--safs-paper);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1030;backdrop-filter:blur(8px)}
.topbar .container-fluid{max-width:1640px}
.brand{display:inline-flex;align-items:center;gap:12px;font-family:'Crimson Pro',serif;font-weight:500;font-size:19px;letter-spacing:-.015em;color:var(--ink);text-decoration:none}
.brand:hover{color:var(--ink);text-decoration:none}
.brand-mark{width:34px;height:34px;background:var(--safs-green);border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Crimson Pro',serif;font-weight:600;font-size:18px;flex-shrink:0}
.brand-stack{display:flex;flex-direction:column;line-height:1.1}
.brand-stack small{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.brand-ctx{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);padding-left:16px;border-left:1px solid var(--border);margin-left:4px}
.role-switcher{display:inline-flex;background:var(--safs-cream-deep);border-radius:999px;padding:3px;border:1px solid var(--border)}
.role-btn{font-size:12px;font-weight:500;padding:7px 14px;border-radius:999px;color:var(--ink-mid);text-decoration:none;transition:all .18s}
.role-btn:hover{color:var(--ink);text-decoration:none}
.role-btn.active{background:var(--safs-green);color:#fff;font-weight:600}
.status-pill{display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mid);font-weight:500}
.dot{width:7px;height:7px;border-radius:50%;background:var(--safs-sage);flex-shrink:0}
.dot.live{animation:pulseDot 2.2s ease-in-out infinite}
.dot.warn{background:var(--safs-gold)}
.dot.alert{background:var(--safs-red);animation:pulseDot 1.4s ease-in-out infinite}
@keyframes pulseDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.75);opacity:.55}}
.icon-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:8px;color:var(--ink-mid);display:inline-flex;align-items:center;justify-content:center;background:var(--safs-paper);text-decoration:none}
.icon-btn:hover{color:var(--safs-green);border-color:var(--safs-green)}

.hero{position:relative;min-height:540px;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,#11342A 0%,#1B4332 55%,#2D5B43 100%);color:#fff}
.hero-bg{position:absolute;inset:0;background-image:url('https://images.unsplash.com/photo-1500595046743-cd271d694d30?w=1920&q=80');background-size:cover;background-position:center;opacity:.22;z-index:0}
.hero-grain{position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");z-index:1;opacity:.6}
.hero-inner{position:relative;z-index:2;padding:80px 0 100px}
.hero .eyebrow{color:rgba(255,255,255,.7)}
.hero h1{color:#fff;font-size:64px;font-weight:300;margin:16px 0 24px;line-height:1.05;max-width:920px}
.hero h1 .em{font-style:italic;color:#E9C893}
.hero .lede{font-size:17px;color:rgba(255,255,255,.82);max-width:640px;margin-bottom:32px;line-height:1.6}
.hero-cta .btn{padding:12px 24px;font-size:14px;font-weight:500}
.hero-cta .btn-light{background:#fff;color:var(--safs-green-deep);border-color:#fff}
.hero-cta .btn-light:hover{background:var(--safs-cream)}
.hero-cta .btn-outline-light{border-color:rgba(255,255,255,.4);color:#fff}
.hero-cta .btn-outline-light:hover{background:rgba(255,255,255,.1);border-color:#fff}

.stats-strip{background:var(--safs-paper);border-bottom:1px solid var(--border);padding:36px 0}
.stat-item{padding:0 8px}
.stat-item .v{font-family:'Crimson Pro',serif;font-size:44px;font-weight:400;letter-spacing:-.02em;line-height:1;color:var(--safs-green);font-variant-numeric:tabular-nums}
.stat-item .v .unit{font-size:22px;color:var(--ink-soft);margin-left:4px}
.stat-item .l{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}

.section{padding:80px 0}
.section-eyebrow{margin-bottom:12px}
.section-title{font-size:38px;font-weight:400;letter-spacing:-.02em;margin-bottom:14px;max-width:720px}
.section-lede{font-size:16px;color:var(--ink-mid);max-width:640px;margin-bottom:48px;line-height:1.6}

.role-card-lg{background:var(--safs-paper);border:1px solid var(--border);border-radius:14px;padding:28px 24px;height:100%;text-decoration:none;color:inherit;transition:all .22s ease;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}
.role-card-lg:hover{border-color:var(--safs-green);transform:translateY(-3px);box-shadow:0 16px 40px rgba(17,52,42,.08);color:inherit;text-decoration:none}
.role-card-lg .ico{width:42px;height:42px;border-radius:10px;background:var(--safs-green-tint);color:var(--safs-green);display:flex;align-items:center;justify-content:center;font-size:20px}
.role-card-lg.amber .ico{background:var(--safs-gold-soft);color:var(--safs-gold)}
.role-card-lg.ochre .ico{background:var(--safs-ochre-soft);color:var(--safs-ochre)}
.role-card-lg.sage .ico{background:var(--safs-sage-soft);color:var(--safs-sage)}
.role-card-lg h3{font-family:'Crimson Pro',serif;font-size:24px;font-weight:500;line-height:1.15;margin:0}
.role-card-lg p{font-size:13px;color:var(--ink-mid);line-height:1.55;margin:0}
.role-card-lg .more{margin-top:auto;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--safs-green);display:inline-flex;align-items:center;gap:6px}

.flow-diagram{background:var(--safs-paper);border:1px solid var(--border);border-radius:14px;padding:48px 32px}
.flow-step{text-align:center;padding:0 16px}
.flow-step .num{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--safs-green-tint);color:var(--safs-green);font-family:'Crimson Pro',serif;font-weight:600;font-size:18px;margin-bottom:16px}
.flow-step h5{font-size:15px;margin-bottom:6px}
.flow-step p{font-size:12px;color:var(--ink-soft);line-height:1.55}
.flow-arrow{display:flex;align-items:center;justify-content:center;color:var(--ink-faint)}
@media (max-width:768px){.flow-arrow{transform:rotate(90deg);padding:12px 0}}

.landing-footer{background:var(--safs-paper);border-top:1px solid var(--border);padding:48px 0 32px;color:var(--ink-soft);font-size:12px}
.landing-footer .brand-mark{width:28px;height:28px;font-size:15px;border-radius:6px}
.landing-footer a{color:var(--ink-mid)}

.workspace{padding:24px 0 40px}
.workspace .container-fluid{max-width:1640px}
.page-header h1{font-size:34px;margin-bottom:6px}
.page-header .lede{font-size:14px;color:var(--ink-mid);max-width:720px;line-height:1.6;margin:0}
code{color:var(--safs-green);background:var(--safs-green-tint);padding:2px 6px;border-radius:3px;font-family:'JetBrains Mono',monospace;font-size:.9em}

.loadbar{position:fixed;top:0;left:0;right:0;height:2px;background:var(--safs-green);transform:scaleX(0);transform-origin:left;transition:transform .3s;z-index:9999}
.loadbar.go{transform:scaleX(.7);transition:transform 1.2s ease}
.loadbar.done{transform:scaleX(1);opacity:0;transition:transform .2s,opacity .4s .2s}

@media (max-width:991px){.hero h1{font-size:46px}.stat-item .v{font-size:34px}}
@media (max-width:575px){.brand-stack small,.brand-ctx{display:none}}
