/* AssuranceLane Consulting — shared stylesheet */
:root{
  --ink-1:#1F2933; --ink-2:#4A5560; --ink-3:#6D7883; --ink-4:#A7B0B7;
  --border:#E6EAED; --surface:#F5F7F8; --accent:#3E6F9E;
  --accent-hover:#396689; --accent-active:#345D7D;
  --bg:#FFFFFF; --fg:var(--ink-1);
  --rule-1:#1F2933; --rule-2:#6D7883; --rule-3:#A7B0B7; --rule-4:#D1D6DB;
  --ok-bg:#E6F4EA; --ok-fg:#1E6B3A; --ok-br:#BFE3CB;
  --att-bg:#FFF4DB; --att-fg:#8A5A00; --att-br:#F3DFA3;
  --crit-bg:#FDE8E8; --crit-fg:#9B2C2C; --crit-br:#F4BFBF;
  --text-xs:12px; --text-sm:13px; --text-base:16px; --text-lg:18px;
  --text-xl:22px; --text-2xl:28px; --text-4xl:56px;
  --radius-sm:4px; --radius-md:8px;
  --measure:62ch; --gutter:clamp(20px,5vw,72px); --lane:12px;
  --shell:1120px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#141B23; --fg:#E6EAED; --ink-1:#E6EAED; --ink-2:#B8C0C7; --ink-3:#8F99A3; --ink-4:#6E7A85;
    --border:#2E3943; --surface:#1A222B;
    --rule-1:#E6EAED; --rule-2:#A7B0B7; --rule-3:#6E7A85; --rule-4:#3A4650;
    --ok-bg:#173A26; --ok-fg:#7FD3A0; --ok-br:#255C3C;
    --att-bg:#3A2E10; --att-fg:#E8C46B; --att-br:#5C4A1C;
    --crit-bg:#3B1D1D; --crit-fg:#F0A3A3; --crit-br:#5E2E2E;
  }
}
:root[data-theme="dark"]{
  --bg:#141B23; --fg:#E6EAED; --ink-1:#E6EAED; --ink-2:#B8C0C7; --ink-3:#8F99A3; --ink-4:#6E7A85;
  --border:#2E3943; --surface:#1A222B;
  --rule-1:#E6EAED; --rule-2:#A7B0B7; --rule-3:#6E7A85; --rule-4:#3A4650;
  --ok-bg:#173A26; --ok-fg:#7FD3A0; --ok-br:#255C3C;
  --att-bg:#3A2E10; --att-fg:#E8C46B; --att-br:#5C4A1C;
  --crit-bg:#3B1D1D; --crit-fg:#F0A3A3; --crit-br:#5E2E2E;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{
  background:var(--bg); color:var(--fg);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:var(--text-base); line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  font-variant-numeric:tabular-nums;
}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
img,svg{max-width:100%;display:block}
.wrap{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:#fff;padding:10px 16px;border-radius:0 0 var(--radius-sm) 0;font-weight:500}
.skip:focus{left:0;color:#fff;text-decoration:none}

/* header */
header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--border)}
.hdr{display:flex;align-items:center;justify-content:space-between;height:68px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;color:var(--fg);font-weight:600;font-size:var(--text-lg);letter-spacing:-.01em}
.brand:hover{text-decoration:none;color:var(--fg)}
.brand small{display:block;font-weight:400;font-size:var(--text-sm);color:var(--ink-3);letter-spacing:0}
.mark{width:36px;height:36px;flex:none}
nav ul{display:flex;gap:4px;list-style:none;align-items:center}
nav a{display:inline-block;padding:8px 12px;border-radius:var(--radius-sm);color:var(--ink-2);font-size:15px;font-weight:500}
nav a:hover{color:var(--fg);background:var(--surface);text-decoration:none}
nav a[aria-current="page"]{color:var(--fg);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}
.nav-cta{margin-left:8px;background:var(--accent)!important;color:#fff!important;border-radius:var(--radius-sm)}
.nav-cta:hover{background:var(--accent-hover)!important}
@media (max-width:820px){
  .hdr{height:auto;flex-direction:column;align-items:flex-start;gap:8px;padding-top:12px;padding-bottom:12px}
  nav{width:100%;overflow-x:auto}
  nav ul{gap:2px}
  .nav-cta{margin-left:auto}
}

/* hero */
.hero{padding:clamp(56px,9vw,116px) 0 clamp(40px,6vw,72px)}
.hero .wrap{display:grid;grid-template-columns:var(--lane) 1fr;gap:clamp(24px,4vw,56px)}
.lane{background:var(--accent);border-radius:2px;align-self:stretch}
.hero-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,96px);align-items:center}
h1{font-size:clamp(34px,5.2vw,var(--text-4xl));line-height:1.06;letter-spacing:-.025em;font-weight:600;max-width:17ch;text-wrap:balance}
.lede{margin-top:24px;font-size:var(--text-lg);line-height:1.5;color:var(--ink-2);max-width:var(--measure)}
.cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;height:44px;padding:0 20px;border-radius:var(--radius-sm);font-weight:500;font-size:15px;border:1px solid transparent;transition:background .12s,color .12s,border-color .12s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover);color:#fff;text-decoration:none}
.btn-primary:active{background:var(--accent-active)}
.btn-quiet{color:var(--fg);border-color:var(--border);background:var(--bg)}
.btn-quiet:hover{border-color:var(--ink-4);text-decoration:none;color:var(--fg)}
.rules rect{transform-origin:left center}
@media (prefers-reduced-motion: no-preference){
  .rules rect{transform:scaleX(0);animation:draw .7s cubic-bezier(.2,.7,.2,1) forwards}
  .rules rect:nth-child(1){animation-delay:.05s}
  .rules rect:nth-child(2){animation-delay:.17s}
  .rules rect:nth-child(3){animation-delay:.29s}
  .rules rect:nth-child(4){animation-delay:.41s}
  @keyframes draw{to{transform:scaleX(1)}}
}
@media (max-width:860px){.hero-body{grid-template-columns:1fr}.rules{max-width:420px}}

/* interior page header */
.page-head{background:var(--surface);border-bottom:1px solid var(--border);padding:clamp(40px,6vw,72px) 0}
.page-head .wrap{display:grid;grid-template-columns:var(--lane) 1fr;gap:clamp(24px,4vw,56px)}
.page-head h1{max-width:20ch;font-size:clamp(30px,4.4vw,44px)}
.page-head p{margin-top:18px;font-size:var(--text-lg);color:var(--ink-2);max-width:var(--measure)}
.crumb{font-size:var(--text-sm);color:var(--ink-3);margin-bottom:14px}
.crumb a{color:var(--ink-3)}

/* credential strip */
.creds{border-bottom:1px solid var(--border);background:var(--surface)}
.creds .wrap{display:flex;flex-wrap:wrap;gap:10px 26px;padding-top:18px;padding-bottom:18px;align-items:center}
.creds span{font-size:var(--text-sm);color:var(--ink-2);font-weight:500}
.creds .label{color:var(--ink-3);font-weight:400}

section{padding:clamp(52px,7vw,92px) 0;border-top:1px solid var(--border)}
section.first{border-top:0}
.sec-head{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:clamp(24px,5vw,72px);align-items:start}
h2{font-size:var(--text-2xl);line-height:1.2;letter-spacing:-.02em;font-weight:600;max-width:15ch}
.sec-head p{color:var(--ink-2);max-width:var(--measure);font-size:17px}
.sec-head p + p{margin-top:14px}
@media (max-width:760px){.sec-head{grid-template-columns:1fr}}

/* services */
.services{margin-top:44px;border-top:1px solid var(--border)}
.svc{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:clamp(24px,5vw,72px);padding:32px 0;border-bottom:1px solid var(--border)}
.svc h3{font-size:var(--text-xl);font-weight:600;letter-spacing:-.01em;line-height:1.25}
.svc p{color:var(--ink-2);max-width:var(--measure)}
.svc p + p{margin-top:12px}
.svc .fits{margin-top:14px;font-size:var(--text-sm);color:var(--ink-3)}
.tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:var(--text-xs);color:var(--ink-2);border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:3px 8px}
@media (max-width:760px){.svc{grid-template-columns:1fr;gap:10px}}

/* steps */
.steps{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink-1);counter-reset:step;list-style:none}
.step{padding:24px 24px 0 0;border-right:1px solid var(--border);counter-increment:step}
.step:last-child{border-right:0}
.step:not(:first-child){padding-left:24px}
.step::before{content:counter(step,decimal-leading-zero);display:block;font-size:var(--text-sm);font-weight:600;color:var(--accent);margin-bottom:12px}
.step h3{font-size:var(--text-lg);font-weight:600;margin-bottom:8px}
.step p{color:var(--ink-2);font-size:15px}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}.step{border-right:0;border-bottom:1px solid var(--border);padding:24px 0}.step:not(:first-child){padding-left:0}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* platform */
.tinted{background:var(--surface)}
.plat-lead{margin-top:40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.plat-lead p{color:var(--ink-2);max-width:var(--measure)}
.plat-lead p + p{margin-top:14px}
.grid-mock{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);overflow:hidden;font-size:var(--text-sm)}
.grid-mock .bar{display:flex;gap:8px;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);color:var(--ink-3);font-size:var(--text-xs)}
.grid-mock .scroll{overflow-x:auto}
.grid-mock table{width:100%;border-collapse:collapse}
.grid-mock th{font-weight:500;color:var(--ink-3);font-size:var(--text-xs);text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface);white-space:nowrap}
.grid-mock td{padding:9px 12px;border-bottom:1px solid var(--border);color:var(--ink-2);white-space:nowrap}
.grid-mock tr:last-child td{border-bottom:0}
.grid-mock td:first-child{color:var(--fg);font-weight:500}
.pill{display:inline-block;padding:1px 8px;border-radius:9999px;font-size:var(--text-xs);font-weight:500;border:1px solid transparent}
.pill.ok{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-br)}
.pill.att{background:var(--att-bg);color:var(--att-fg);border-color:var(--att-br)}
.pill.crit{background:var(--crit-bg);color:var(--crit-fg);border-color:var(--crit-br)}
.pill.neu{background:var(--surface);color:var(--ink-3);border-color:var(--border)}
@media (max-width:860px){.plat-lead{grid-template-columns:1fr}}

.modules{margin-top:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}
.mod{background:var(--bg);padding:24px}
.mod h3{font-size:var(--text-lg);font-weight:600;margin-bottom:8px}
.mod p{color:var(--ink-2);font-size:15px}
@media (max-width:860px){.modules{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.modules{grid-template-columns:1fr}}

.spec{margin-top:44px;border-top:1px solid var(--border)}
.spec dl{display:grid;grid-template-columns:minmax(0,220px) 1fr}
.spec dt{padding:14px 0;border-bottom:1px solid var(--border);font-weight:600;font-size:15px}
.spec dd{padding:14px 0;border-bottom:1px solid var(--border);color:var(--ink-2);font-size:15px}
@media (max-width:620px){.spec dl{grid-template-columns:1fr}.spec dt{border-bottom:0;padding-bottom:0}}

.prose p{max-width:var(--measure);color:var(--ink-2);font-size:17px}
.prose p + p{margin-top:16px}

/* contact band */
.contact{border-top:1px solid var(--border)}
.contact .wrap{display:grid;grid-template-columns:var(--lane) 1fr;gap:clamp(24px,4vw,56px)}
.contact h2{max-width:20ch}
.contact .mail{display:inline-block;margin-top:20px;font-size:clamp(20px,3vw,var(--text-2xl));font-weight:500;letter-spacing:-.01em}
.contact p{margin-top:16px;color:var(--ink-2);max-width:var(--measure)}

footer{border-top:1px solid var(--border);padding:44px 0 32px;font-size:var(--text-sm);color:var(--ink-3);background:var(--surface)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;padding-bottom:28px;border-bottom:1px solid var(--border)}
.foot-grid h3{font-size:var(--text-xs);font-weight:600;color:var(--ink-2);margin-bottom:10px}
.foot-grid ul{list-style:none;display:grid;gap:7px}
.foot-grid a{color:var(--ink-3)}
.foot-grid a:hover{color:var(--fg)}
.foot-brand p{margin-top:12px;max-width:44ch;color:var(--ink-3)}
.foot-end{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px}
@media (max-width:700px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}

@media print{
  header,footer,.cta,.skip{display:none}
  body{font-size:11pt;color:#000;background:#fff}
  section{page-break-inside:avoid;border-top:1px solid #ccc}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}

/* ---------- application views ---------- */
.appshot{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:#FFFFFF;color:#1F2933;box-shadow:0 1px 2px rgba(31,41,51,.06)}
.as-top{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#F5F7F8;border-bottom:1px solid #E6EAED}
.as-dot{width:9px;height:9px;border-radius:9999px;background:#D1D6DB;flex:none}
.as-url{font-size:11px;color:#6D7883;background:#FFFFFF;border:1px solid #E6EAED;border-radius:9999px;padding:2px 10px;margin-left:6px}
.as-body{display:grid;grid-template-columns:150px 1fr;min-height:0}
.as-side{background:#1F2933;padding:14px 10px;display:grid;gap:14px;align-content:start}
.as-brand{display:flex;align-items:center;gap:7px;color:#FFFFFF;font-size:12px;font-weight:600;white-space:nowrap}
.as-brand svg{width:16px;height:16px;flex:none}
.as-group{display:grid;gap:5px}
.as-group b{font-size:9px;font-weight:600;color:#8F99A3;letter-spacing:.04em}
.as-group span{font-size:11px;color:#B8C0C7;padding:4px 7px;border-radius:4px}
.as-group span.on{background:#3E6F9E;color:#FFFFFF;font-weight:500}
.as-main{min-width:0}
.as-crumb{display:flex;align-items:center;gap:7px;padding:9px 14px;border-bottom:1px solid #E6EAED;font-size:11px;color:#6D7883}
.as-tabs{display:flex;gap:16px;padding:0 14px;border-bottom:1px solid #E6EAED}
.as-tabs span{font-size:11px;color:#6D7883;padding:8px 0}
.as-tabs span.on{color:#1F2933;font-weight:600;box-shadow:inset 0 -2px 0 #3E6F9E}
.as-pad{padding:14px}
.as-h{font-size:15px;font-weight:600;margin-bottom:12px}
.as-scroll{overflow-x:auto}
.as-grid{width:100%;border-collapse:collapse;font-size:11px;min-width:560px}
.as-grid th{background:#F5F7F8;color:#6D7883;font-weight:500;text-align:left;padding:7px 9px;border-bottom:1px solid #E6EAED;border-right:1px solid #E6EAED;white-space:nowrap}
.as-grid td{padding:7px 9px;border-bottom:1px solid #E6EAED;border-right:1px solid #E6EAED;color:#4A5560;vertical-align:top}
.as-grid td:nth-last-child(-n+3){white-space:nowrap}
.as-grid td:first-child,.as-grid th:first-child{background:#F5F7F8;color:#1F2933;font-weight:500;text-align:right;width:34px}
.as-grid tr:last-child td{border-bottom:0}
.as-grid .id{color:#1F2933;font-weight:600;white-space:nowrap}
.as-pill{display:inline-block;padding:1px 7px;border-radius:9999px;font-size:10px;font-weight:500;border:1px solid;white-space:nowrap}
.as-pill.ok{background:#E6F4EA;color:#1E6B3A;border-color:#BFE3CB}
.as-pill.att{background:#FFF4DB;color:#8A5A00;border-color:#F3DFA3}
.as-pill.crit{background:#FDE8E8;color:#9B2C2C;border-color:#F4BFBF}
.as-pill.neu{background:#F5F7F8;color:#6D7883;border-color:#E6EAED}
.as-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.as-kpi{border:1px solid #E6EAED;border-radius:6px;padding:10px}
.as-kpi.sel{border-color:#3E6F9E;box-shadow:0 0 0 1px #3E6F9E}
.as-kpi small{display:block;font-size:10px;color:#6D7883;margin-bottom:5px}
.as-kpi b{display:block;font-size:22px;font-weight:600;line-height:1.1}
.as-kpi > i{display:block;font-style:normal;font-size:10px;color:#6D7883;margin-top:3px}
.as-meter{display:block;height:4px;border-radius:9999px;background:#E6EAED;margin-top:9px;overflow:hidden}
.as-meter > i{display:block;height:100%;border-radius:9999px;background:#3E6F9E;margin:0}
.as-panels{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.as-panel{border:1px solid #E6EAED;border-radius:6px;padding:11px}
.as-panel h4{font-size:11px;font-weight:600;margin-bottom:2px}
.as-panel p{font-size:10px;color:#6D7883;margin-bottom:9px}
.as-row{display:grid;grid-template-columns:8px minmax(0,1fr) 44px 58px;align-items:center;gap:7px;font-size:10px;color:#4A5560;margin-bottom:7px}
.as-row em{width:6px;height:6px;border-radius:9999px;display:block}
.as-row .bar{height:5px;border-radius:9999px;background:#E6EAED;overflow:hidden}
.as-row .bar i{display:block;height:100%;border-radius:9999px}
.as-row u{text-decoration:none;text-align:right;color:#6D7883;white-space:nowrap}
.as-row span:not(.bar){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-cap{margin-top:10px;font-size:var(--text-sm);color:var(--ink-3)}
@media (max-width:640px){
  .as-body{grid-template-columns:1fr}
  .as-side{display:none}
  .as-kpis{grid-template-columns:repeat(2,1fr)}
  .as-panels{grid-template-columns:1fr}
}
