/* ==========================================================================
   Aegis — shared design system (client lens: forest green)
   Used across sign-in, onboarding, assessment, dashboard and later lenses.
   ========================================================================== */
:root{
  /* surfaces */
  --canvas:#F7F5F0; --surface:#FFFFFF; --surface-2:#FBFAF6;
  --ink:#1A1D1A; --muted:#5C615C; --faint:#8A8F8A;
  --hair:#E4E1D8; --hair2:#EFEDE6;
  /* client accent — forest green */
  --accent:#1E4D3A; --accent-deep:#163A2C; --accent-tint:#E8F0EC; --accent-ink:#163A2C;
  /* internal/expert accent — slate (Finden + CAM lenses, later) */
  --slate:#33506E; --slate-deep:#284057; --slate-tint:#E7ECF2;
  /* status — low saturation, constant across every lens */
  --ok:#2E7D5B; --ok-bg:#E6F1EC; --ok-ink:#2E5C45;
  --warn:#B5832E; --warn-bg:#F7EEDC; --warn-ink:#7A5618;
  --bad:#A84432; --bad-bg:#F6E5E1; --bad-ink:#7E2E22;
  --na:#8A8F8A; --na-bg:#EFEEE9;
  /* shape */
  --r:12px; --r-sm:8px; --r-lg:16px;
  --shadow:0 1px 2px rgba(26,29,26,.04), 0 10px 30px rgba(26,29,26,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--canvas);color:var(--ink);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.serif{font-family:'Fraunces',Georgia,serif}
a{color:inherit;text-decoration:none}
.muted{color:var(--muted)} .faint{color:var(--faint)}
.hide{display:none!important}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;
  border-radius:var(--r-sm);font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--hair);
  background:var(--surface);color:var(--ink);transition:.14s ease;font-family:inherit}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.btn.block{width:100%}
.btn.lg{padding:13px 20px;font-size:14.5px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn i{font-size:17px}

/* ---- form fields ---- */
.field{margin-bottom:15px}
.field > label{display:block;font-size:12.5px;font-weight:500;color:var(--ink);margin-bottom:6px}
.field .hint{font-size:11.5px;color:var(--faint);font-weight:400;margin-top:5px}
input[type=text],input[type=email],input[type=password],select,textarea{
  width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface);
  border:1px solid var(--hair);border-radius:var(--r-sm);padding:11px 13px;transition:.14s;outline:none}
input::placeholder,textarea::placeholder{color:var(--faint)}
textarea{resize:vertical;min-height:82px;line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
select{appearance:none;cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235C615C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 11px center}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);cursor:pointer;line-height:1.5}
.check input{width:16px;height:16px;margin-top:1px;accent-color:var(--accent);flex:none}

/* ---- pills ---- */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:3px 10px;border-radius:999px;font-weight:500}
.pill i{font-size:13px}
.p-ok{background:var(--ok-bg);color:var(--ok-ink)} .p-warn{background:var(--warn-bg);color:var(--warn-ink)}
.p-bad{background:var(--bad-bg);color:var(--bad-ink)} .p-accent{background:var(--accent-tint);color:var(--accent-ink)}

/* ---- brand lockup ---- */
.brand{display:flex;align-items:center;gap:11px}
.brand .logo{width:34px;height:34px;border-radius:9px;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:19px;flex:none}
.brand b{font-size:18px;font-weight:600;letter-spacing:.2px;display:block;line-height:1.1}
.brand small{display:block;color:var(--muted);font-size:11px;font-weight:400;letter-spacing:.02em}

/* ==========================================================================
   AUTH (sign-in / request access)
   ========================================================================== */
.auth{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}
.auth-brand{background:var(--accent);color:#EAF2EC;padding:46px 50px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.auth-brand::after{content:"";position:absolute;right:-90px;bottom:-90px;width:300px;height:300px;border-radius:50%;
  background:rgba(255,255,255,.035)}
.auth-brand .brand .logo{background:#fff;color:var(--accent)}
.auth-brand .brand b{color:#fff} .auth-brand .brand small{color:#A9C6B7}
.auth-brand .lead{margin-top:auto;font-size:31px;line-height:1.22;font-weight:500;color:#fff;max-width:15ch;position:relative}
.auth-brand .sub{margin-top:16px;font-size:14px;line-height:1.65;color:#C5D8CC;max-width:40ch;position:relative}
.trust{margin-top:30px;display:flex;flex-direction:column;gap:13px;position:relative}
.trust .ti{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:#D7E5DC}
.trust .ti i{font-size:18px;color:#9DC4AD;margin-top:0;flex:none}
.cobrand{margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:12px;color:#A9C6B7;line-height:1.7;position:relative}
.cobrand b{font-weight:500;color:#D7E5DC}

.auth-form{display:flex;align-items:center;justify-content:center;padding:40px 32px;background:var(--canvas)}
.auth-card{width:100%;max-width:392px}
.auth-card h1{font-size:23px;font-weight:600;margin-bottom:5px}
.auth-card .desc{color:var(--muted);font-size:13.5px;margin-bottom:22px;line-height:1.5}

.seg{display:flex;background:var(--hair2);border-radius:var(--r-sm);padding:3px;margin-bottom:24px}
.seg button{flex:1;border:none;background:transparent;font-family:inherit;font-size:13px;font-weight:500;
  color:var(--muted);padding:8px;border-radius:6px;cursor:pointer;transition:.14s}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.07)}

.divider{display:flex;align-items:center;gap:12px;margin:15px 0;color:var(--faint);font-size:12px}
.divider::before,.divider::after{content:"";height:1px;background:var(--hair);flex:1}
.auth-foot{margin-top:18px;font-size:12.5px;color:var(--muted);text-align:center;line-height:1.6}
.link{color:var(--accent);font-weight:500;cursor:pointer}

.note{display:flex;gap:13px;padding:17px 18px;border-radius:var(--r);background:var(--accent-tint);
  color:var(--accent-ink);font-size:13px;line-height:1.6}
.note i{font-size:21px;flex:none;margin-top:1px;color:var(--accent)}
.note b{font-weight:600}

@media(max-width:860px){
  .auth{grid-template-columns:1fr}
  .auth-brand{padding:30px 26px;min-height:auto}
  .auth-brand .lead{margin-top:22px;font-size:24px}
  .auth-brand .sub{margin-bottom:4px}
  .trust{display:none}
}

/* ==========================================================================
   ONBOARDING (org profile)
   ========================================================================== */
.ob-top{display:flex;align-items:center;justify-content:space-between;padding:15px 28px;
  background:var(--surface);border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:5}
.ob-top .who{display:flex;align-items:center;gap:11px}
.av{width:34px;height:34px;border-radius:50%;background:var(--accent-tint);color:var(--accent-ink);
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12.5px;flex:none}
.ob-wrap{max-width:680px;margin:0 auto;padding:38px 28px 64px}
.ob-steps{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);font-weight:500;margin-bottom:24px}
.ob-steps .dot{width:7px;height:7px;border-radius:50%;background:var(--hair);flex:none}
.ob-steps .dot.on{background:var(--accent)}
.ob-head h1{font-size:28px;font-weight:600;margin-bottom:9px;letter-spacing:-.01em}
.ob-head p{color:var(--muted);font-size:14.5px;line-height:1.55;max-width:54ch}
.sec-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:30px 0 13px}
.card-soft{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:4px 20px}

.signal{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 2px;border-bottom:1px solid var(--hair2)}
.signal:last-child{border-bottom:none}
.signal .q{font-size:14px;font-weight:500}
.signal .q .hint{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:3px;max-width:48ch}
.seg3{display:inline-flex;background:var(--hair2);border-radius:var(--r-sm);padding:3px;flex:none}
.seg3 button{border:none;background:transparent;font-family:inherit;font-size:12.5px;font-weight:500;color:var(--muted);
  padding:7px 13px;border-radius:6px;cursor:pointer;transition:.14s;white-space:nowrap}
.seg3 button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.07)}
.seg3 button.on.yes{color:var(--accent-ink)}

.summary{background:var(--accent-tint);border-radius:var(--r);padding:18px 20px;margin-top:26px}
.summary .st{font-size:11px;font-weight:600;color:var(--accent-ink);text-transform:uppercase;letter-spacing:.05em;
  display:flex;align-items:center;gap:7px;margin-bottom:12px}
.summary .st i{font-size:15px}
.summary .chips{display:flex;flex-wrap:wrap;gap:8px}
.schip{background:var(--surface);border:1px solid #D4E2DA;color:var(--accent-ink);
  font-size:12.5px;font-weight:500;padding:5px 11px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}
.schip i{font-size:14px;color:var(--accent)}
.ob-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:32px}
.ob-foot .note-t{font-size:12px;color:var(--faint)}

@media(max-width:560px){
  .field-2{grid-template-columns:1fr}
  .signal{flex-direction:column;align-items:flex-start;gap:11px}
  .ob-foot{flex-direction:column-reverse;align-items:stretch}
  .ob-foot .btn{width:100%}
}

/* ==========================================================================
   ASSESSMENT WIZARD
   ========================================================================== */
.wiz{display:grid;grid-template-columns:210px 1fr;gap:32px}
.steps{list-style:none;position:sticky;top:96px;align-self:start}
.steps li{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--r-sm);color:var(--muted);font-size:13px}
.steps li .n{width:23px;height:23px;border-radius:50%;border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;font-size:11px;flex:none}
.steps li.done{color:var(--ink)} .steps li.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.steps li.cur{color:var(--accent-deep);font-weight:600} .steps li.cur .n{background:var(--accent);border-color:var(--accent);color:#fff}
.progressbar{height:5px;background:var(--hair2);border-radius:999px;overflow:hidden;margin-bottom:22px}
.progressbar>div{height:100%;background:var(--accent);transition:.3s;width:0}
.qcard{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:26px 28px}
.qh{font-size:12px;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}
.qcard h2{font-size:22px;font-weight:600;margin-bottom:7px;line-height:1.3}
.qcard .qhint{color:var(--muted);font-size:13.5px;margin-bottom:22px;line-height:1.5}
.opt{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--hair);border-radius:var(--r-sm);margin-bottom:9px;cursor:pointer;font-size:14px;transition:.12s}
.opt:hover{border-color:var(--muted)}
.opt.sel{border-color:var(--accent);background:var(--accent-tint)}
.opt .box{width:19px;height:19px;border-radius:5px;border:1.5px solid var(--hair);flex:none;display:flex;align-items:center;justify-content:center}
.opt.sel .box{background:var(--accent);border-color:var(--accent);color:#fff}
.opt .box i{font-size:13px;opacity:0}.opt.sel .box i{opacity:1}
.opt .tag-hi{margin-left:auto;font-size:11px;font-weight:500;color:var(--warn-ink);background:var(--warn-bg);padding:2px 9px;border-radius:999px}
.why{background:var(--accent-tint);border-radius:var(--r-sm);padding:13px 15px;font-size:12.5px;color:var(--accent-deep);margin-top:20px;display:flex;gap:9px;line-height:1.55}
.why i{font-size:16px;flex:none;margin-top:1px}
.wizfoot{display:flex;justify-content:space-between;align-items:center;margin-top:24px}

/* sharing · recipients */
.recip{display:flex;align-items:center;gap:13px;padding:13px 14px;border:1px solid var(--hair);border-radius:var(--r-sm);margin-bottom:10px;flex-wrap:wrap}
.recip .rname{font-weight:500;font-size:14px;flex:1;min-width:150px}
.recip .rname small{display:block;color:var(--muted);font-size:11.5px;font-weight:400;margin-top:2px}
.recip select.mini{font-size:12.5px;padding:7px 28px 7px 10px;min-width:128px;width:auto}
.recip .loc{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--na-bg);color:var(--muted);font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.recip .loc.out{background:var(--warn-bg);color:var(--warn-ink)}
.dpa{display:inline-flex;background:var(--hair2);border-radius:var(--r-sm);padding:3px}
.dpa button{border:none;background:transparent;font-family:inherit;font-size:11.5px;font-weight:500;color:var(--muted);padding:6px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:.12s}
.dpa button.on{background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.07);color:var(--ink)}
.dpa button.on.ok{color:var(--ok-ink)} .dpa button.on.warn{color:var(--warn-ink)} .dpa button.on.bad{color:var(--bad-ink)}
.recip-add{font-size:13px;color:var(--accent);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:4px}
.dpa-lbl{font-size:11px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.04em;width:100%;margin:2px 0 -2px}

/* review map */
.rev-map{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px}
.rev-cell{border:1px solid var(--hair);border-radius:var(--r-sm);padding:14px 16px}
.rev-cell h5{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:9px;font-weight:600}
.rev-cell .v{font-size:13px;line-height:1.85}
.rev-cell .v .row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rev-flags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}

@media(max-width:760px){
  .wiz{grid-template-columns:1fr}
  .steps{position:static;display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
  .rev-map{grid-template-columns:1fr}
  .recip{gap:10px}
}

/* ==========================================================================
   APP SHELL (sidebar + topbar) — workspace screens
   ========================================================================== */
.app{display:flex;min-height:100vh}
.side{width:250px;background:var(--surface);border-right:1px solid var(--hair);padding:22px 16px;
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:2px;flex:none;overflow-y:auto}
.nav-client{padding:7px 11px;font-size:13px;font-weight:500}
.nav-client .cdot{width:8px;height:8px;border-radius:50%;flex:none;margin:0 6px 0 5px}
.cdot.ok{background:var(--ok)} .cdot.warn{background:var(--warn)} .cdot.bad{background:var(--bad)} .cdot.na{background:var(--na)}
.side .brand{padding:4px 8px 14px}
.navlbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:14px 10px 6px;font-weight:600}
.nav{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--r-sm);color:var(--muted);
  cursor:pointer;font-size:13.5px;font-weight:500;border:1px solid transparent}
.nav i{font-size:18px}
.nav:hover{background:var(--hair2);color:var(--ink)}
.nav.active{background:var(--accent-tint);color:var(--accent-deep)}
.nav .pill{margin-left:auto;font-size:11px;background:var(--bad-bg);color:var(--bad-ink);padding:1px 7px;border-radius:999px;font-weight:500}
.nav .soon{margin-left:auto;font-size:10px;color:var(--faint);font-weight:500;letter-spacing:.02em}
.side .who{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid var(--hair2)}
.main{flex:1;min-width:0}
.top{border-bottom:1px solid var(--hair);background:var(--surface);position:sticky;top:0;z-index:5}
.top-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;max-width:1060px;margin:0 auto}
.top h1{font-size:19px;font-weight:600}
.top .sub{color:var(--muted);font-size:12.5px;margin-top:2px}
.top-actions{display:flex;gap:10px;align-items:center}
.bell{position:relative;width:38px;height:38px;border-radius:var(--r-sm);border:1px solid var(--hair);background:var(--surface);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}
.bell:hover{border-color:var(--muted);color:var(--ink)} .bell i{font-size:19px}
.bell .badge{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;border-radius:999px;background:var(--bad);
  color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--surface)}
.wrap{padding:26px 32px;max-width:1060px;margin:0 auto}

/* cards / grid / metrics */
.grid{display:grid;gap:16px}
.cols-2{grid-template-columns:1.35fr 1fr}
.cols-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:20px 22px}
.sec-h{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:30px 0 12px;font-weight:600}
.metric{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:16px 18px}
.metric .lbl{font-size:12px;color:var(--muted);margin-bottom:7px;display:flex;align-items:center;gap:6px}
.metric .lbl i{font-size:15px}
.metric .val{font-size:27px;font-weight:600;line-height:1}
.metric .val small{font-size:13px;color:var(--muted);font-weight:400}

/* donut */
.donut{position:relative;width:128px;height:128px;flex:none}
.donut .num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut .num b{font-size:30px;font-weight:600}
.donut .num span{font-size:11px;color:var(--muted)}

/* obligation list */
.olist{display:flex;flex-direction:column}
.orow{display:flex;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--hair2)}
.orow:last-child{border-bottom:none}
.orow .dot{width:8px;height:8px;border-radius:50%;flex:none}
.orow .nm{font-weight:500;font-size:13.5px}
.orow .meta{color:var(--muted);font-size:12px;margin-top:2px}
.orow .right{margin-left:auto;display:flex;align-items:center;gap:14px}

/* whose-court banner */
.court{display:flex;align-items:center;gap:14px;background:var(--accent);color:#EAF2EC;border-radius:var(--r);padding:15px 20px;margin-bottom:20px}
.court .lead-ic{font-size:23px;color:#fff;flex:none}
.court .ct{font-size:13.5px;line-height:1.5} .court .ct b{color:#fff;font-weight:600}
.court .btn{margin-left:auto;background:#fff;color:var(--accent-deep);border-color:#fff;white-space:nowrap}

/* path to certification */
.path-step{display:flex;align-items:flex-start;gap:12px}
.path-step .pic{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.path-step .pt{font-weight:500;font-size:13.5px} .path-step .pm{color:var(--muted);font-size:12px;margin-top:2px}
.pic.ok{background:var(--ok-bg);color:var(--ok-ink)} .pic.cur{background:var(--warn-bg);color:var(--warn-ink)} .pic.lock{background:var(--na-bg);color:var(--muted)}
.path-line{height:13px;width:2px;background:var(--hair2);margin:2px 0 2px 12px;border-radius:2px}

/* recent activity */
.act{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px solid var(--hair2)}
.act:last-child{border:none}
.who-chip{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;flex:none;margin-top:1px}
.wc-cam{background:#F0E9EE;color:#63324E} .wc-finden{background:#E7ECF2;color:#33506E} .wc-you{background:var(--accent-tint);color:var(--accent-ink)}
.act .at{font-size:13px;line-height:1.4} .act .am{color:var(--faint);font-size:11.5px;margin-top:2px}

@media(max-width:900px){.cols-2{grid-template-columns:1fr}.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.side{display:none}}

/* ==========================================================================
   DATA MAP
   ========================================================================== */
.map-note{color:var(--muted);font-size:13px;margin-bottom:4px;line-height:1.55}
.mapwrap{position:relative}
.mapcols{display:grid;grid-template-columns:repeat(4,1fr);gap:46px;position:relative;z-index:2}
.mapcol h4{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:14px;font-weight:600;text-align:center}
.mapnode{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-sm);padding:10px 12px;font-size:12.5px;
  margin-bottom:11px;position:relative;transition:.15s;font-weight:500}
.mapnode small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px;font-weight:400}
.mapnode .htag{position:absolute;top:-8px;right:8px;font-size:9px;font-weight:600;background:var(--warn-bg);color:var(--warn-ink);
  padding:1px 6px;border-radius:999px;letter-spacing:.02em}
.mapnode.out{border-color:#E4C77F;background:var(--warn-bg)}
.mapnode.out small{color:var(--warn-ink)}
.maplines{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}
.maplines path{fill:none;stroke:var(--hair);stroke-width:1.5;transition:opacity .15s,stroke .15s,stroke-width .15s}
.maplines path.out{stroke:#E0B65A}
.mapnode.dim{opacity:.32} .maplines path.dim{opacity:.1}
.mapnode.hot{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.mapnode.hot.out{border-color:var(--warn);box-shadow:0 0 0 3px #F3E4C6}
.maplines path.hot{stroke:var(--accent);stroke-width:2.5;opacity:1}
.maplines path.hot.out{stroke:var(--warn)}
.map-legend{display:flex;gap:18px;margin-top:20px;padding-top:16px;border-top:1px solid var(--hair2);font-size:12px;color:var(--muted);align-items:center;flex-wrap:wrap}
.map-legend .lg{display:inline-flex;align-items:center;gap:7px}
@media(max-width:760px){.mapcols{gap:18px}}

/* ==========================================================================
   MY TASKS / REMEDIATION
   ========================================================================== */
.prog-card{margin-bottom:24px}
.prog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.prog-top .pt-l{font-size:14px;font-weight:500}
.prog-top .pt-r{font-size:13px;color:var(--muted)}
.prog-bar{height:8px;background:var(--hair2);border-radius:999px;overflow:hidden}
.prog-bar>div{height:100%;background:var(--accent);border-radius:999px}
.prog-gate{font-size:12.5px;color:var(--muted);margin-top:13px;display:flex;align-items:center;gap:8px}
.prog-gate i{font-size:16px;color:var(--warn)}

.tgroup{margin-bottom:26px}
.tgroup-h{display:flex;align-items:baseline;gap:9px;margin-bottom:13px}
.tgroup-h b{font-size:13.5px;font-weight:600}
.tgroup-h .gc{font-size:11px;font-weight:600;color:var(--muted);background:var(--hair2);padding:1px 8px;border-radius:999px}
.tgroup-h .gs{font-size:12px;color:var(--faint);margin-left:2px}

.task{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:15px 18px;margin-bottom:11px;
  display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.task.you{border-left:3px solid var(--accent)}
.task.finden{border-left:3px solid var(--slate)}
.task.done{background:var(--surface-2)}
.task .tmain{flex:1;min-width:0}
.task .ttag{font-size:11px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.task .tt{font-size:14px;font-weight:500;line-height:1.4;margin-bottom:10px}
.task.done .tt{color:var(--muted)}
.task .tmeta{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.task .tmeta .due{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.tprio{font-size:11px;font-weight:500;padding:2px 9px;border-radius:999px}
.tprio.hi{background:var(--bad-bg);color:var(--bad-ink)} .tprio.md{background:var(--warn-bg);color:var(--warn-ink)}
.tprio.sdf{background:var(--accent-tint);color:var(--accent-ink)}
.task .tact{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:8px;white-space:nowrap}
.pill-slate{background:var(--slate-tint);color:var(--slate-deep)}
@media(max-width:680px){.task{flex-direction:column}.task .tact{align-items:flex-start}}

/* evidence upload: states + modal */
.t-foot{width:100%;margin-top:13px;padding-top:13px;border-top:1px solid var(--hair2)}
.t-note-warn{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--r-sm);padding:11px 13px;font-size:12.5px;line-height:1.5;margin-bottom:10px}
.ev-files{display:flex;flex-direction:column;gap:6px;margin-bottom:7px}
.ev-chip{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.ev-chip i{color:var(--accent);font-size:15px}
.ev-note{font-size:12px;color:var(--muted);font-style:italic;margin-bottom:7px}
.demo-row{font-size:11.5px;color:var(--faint);display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-top:1px dashed var(--hair);padding-top:9px;margin-top:9px}
.demo-row i{font-size:14px}.demo-row a{color:var(--accent);font-weight:500;cursor:pointer}
.modal-overlay{position:fixed;inset:0;background:rgba(26,29,26,.42);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}
.modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:524px;max-height:90vh;overflow:auto;box-shadow:0 24px 64px rgba(0,0,0,.28)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 2px}
.modal-head h3{font-size:17px;font-weight:600;margin-top:4px;line-height:1.35}
.m-tag{font-size:11px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.m-x{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:20px;padding:4px;border-radius:6px;line-height:1}
.m-x:hover{background:var(--hair2);color:var(--ink)}
.modal-body{padding:14px 24px 4px}
.m-hint{background:var(--accent-tint);color:var(--accent-ink);border-radius:var(--r-sm);padding:12px 14px;font-size:12.5px;line-height:1.5;margin-bottom:18px;display:flex;gap:9px}
.m-hint i{font-size:16px;flex:none;margin-top:1px}
.dropzone{border:1.5px dashed var(--hair);border-radius:var(--r-sm);padding:22px;text-align:center;cursor:pointer;transition:.14s;color:var(--muted);font-size:13px}
.dropzone:hover{border-color:var(--accent);background:var(--accent-tint)}
.dropzone i{font-size:25px;display:block;margin-bottom:7px;color:var(--faint)}
.dropzone b{color:var(--accent);font-weight:500}
.filelist{margin-top:11px;display:flex;flex-direction:column;gap:7px}
.filechip{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r-sm);padding:8px 11px;font-size:12.5px}
.filechip i{color:var(--accent)}.filechip .fx{margin-left:auto;cursor:pointer;color:var(--faint);font-size:15px}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 22px;border-top:1px solid var(--hair2);margin-top:16px}

/* ==========================================================================
   OBLIGATION DETAIL DRAWER
   ========================================================================== */
.orow.clickable{cursor:pointer;border-radius:8px;transition:background .12s;padding-left:8px;padding-right:8px;margin:0 -8px}
.orow.clickable:hover{background:var(--surface-2)}
.drawer-scrim{position:fixed;inset:0;background:rgba(26,29,26,.34);z-index:40;opacity:0;visibility:hidden;transition:.2s}
.drawer-scrim.open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;height:100vh;width:444px;max-width:92vw;background:var(--surface);
  box-shadow:-14px 0 44px rgba(0,0,0,.16);z-index:41;transform:translateX(100%);transition:transform .24s ease;display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer-head{padding:20px 24px 18px;border-bottom:1px solid var(--hair2);display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.drawer-head h3{font-size:17px;font-weight:600;margin-bottom:9px;line-height:1.3}
.drawer-body{padding:20px 24px;overflow:auto;flex:1}
.drawer-foot{padding:14px 24px;border-top:1px solid var(--hair2)}
.dsec{margin-bottom:22px}
.dsec:last-child{margin-bottom:0}
.dsec h5{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);font-weight:600;margin-bottom:8px}
.dsec p{font-size:13px;line-height:1.6;color:var(--ink)}
.dprov{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:10px;
  background:var(--surface-2);border:1px solid var(--hair);padding:5px 11px 5px 6px;border-radius:999px}
.dev{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--accent);font-weight:500}
.dtask{border:1px solid var(--hair);border-radius:var(--r-sm);padding:13px 14px;margin-top:10px}
.dtask.you{border-left:3px solid var(--accent)} .dtask.finden{border-left:3px solid var(--slate)}
.dtask .dt-t{font-size:13px;font-weight:500;margin-bottom:10px;line-height:1.4}
.dtask .dt-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ==========================================================================
   DOCUMENTS
   ========================================================================== */
.aibar{display:flex;align-items:center;gap:14px;background:var(--accent-tint);border:1px solid #D4E2DA;border-radius:var(--r);padding:15px 18px;margin-bottom:24px}
.aibar .ai-ic{width:38px;height:38px;border-radius:9px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.aibar .ai-t{font-size:13.5px;font-weight:600;color:var(--accent-ink)}
.aibar .ai-d{font-size:12.5px;color:var(--accent-ink);opacity:.82;margin-top:2px;line-height:1.45}
.aibar .btn{margin-left:auto;white-space:nowrap}
.doctable-wrap{overflow-x:auto;border:1px solid var(--hair);border-radius:var(--r);background:var(--surface)}
.doctable{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.doctable th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:600;padding:14px 16px 11px;border-bottom:1px solid var(--hair)}
.doctable td{padding:13px 16px;border-bottom:1px solid var(--hair2);vertical-align:middle}
.doctable tr:last-child td{border-bottom:none}
.doctable tbody tr:hover td{background:var(--surface-2)}
.doc-nm{display:flex;align-items:center;gap:11px;font-weight:500}
.doc-nm i{font-size:19px;color:var(--muted);flex:none}
.doc-nm small{display:block;color:var(--faint);font-size:11px;font-weight:400;margin-top:1px}
.doc-act{color:var(--muted);cursor:pointer;font-size:18px}
.doc-act:hover{color:var(--accent)}
.tplgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tplcard{border:1px solid var(--hair);border-radius:var(--r);padding:16px 18px;background:var(--surface);display:flex;flex-direction:column}
.tplcard .tic{width:34px;height:34px;border-radius:8px;background:var(--accent-tint);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:12px}
.tplcard h4{font-size:13.5px;font-weight:600;margin-bottom:4px}
.tplcard p{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:13px;flex:1}
.tpl-foot{display:flex;align-items:center;justify-content:space-between}
.tpl-cam{font-size:10.5px;font-weight:600;color:#63324E;background:#F0E9EE;padding:2px 8px;border-radius:999px}
.tpl-dl{font-size:12.5px;color:var(--accent);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
@media(max-width:900px){.tplgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.tplgrid{grid-template-columns:1fr}}

/* ==========================================================================
   UPDATES / REGULATORY RADAR
   ========================================================================== */
.radar-head{color:var(--muted);font-size:13.5px;line-height:1.6;margin-bottom:18px;max-width:74ch}
.radar-head b{color:var(--ink);font-weight:500}
.seg.seg-inline{display:inline-flex;width:auto;margin-bottom:22px}
.seg.seg-inline button{flex:0 0 auto;padding:8px 16px}
.upd{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:18px 20px;margin-bottom:14px}
.upd.affects{border-left:3px solid var(--accent)}
.upd-top{display:flex;align-items:center;gap:10px;margin-bottom:11px;flex-wrap:wrap}
.src-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;background:var(--surface-2);border:1px solid var(--hair);color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.src-badge i{font-size:14px}
.upd-date{font-size:12px;color:var(--faint)}
.upd-new{font-size:10px;font-weight:600;color:#fff;background:var(--bad);padding:1px 7px;border-radius:999px;letter-spacing:.03em}
.affects-badge{margin-left:auto;font-size:11.5px;font-weight:500;padding:4px 11px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink);display:inline-flex;align-items:center;gap:6px}
.affects-badge i{font-size:14px}
.affects-badge.general{background:var(--na-bg);color:var(--muted)}
.upd h3{font-size:15px;font-weight:600;margin-bottom:7px;line-height:1.35}
.upd-sum{font-size:13px;color:var(--ink);line-height:1.6;margin-bottom:14px}
.cam-read{display:flex;gap:11px;background:#F4ECF0;border:1px solid #E6D4DE;border-radius:var(--r-sm);padding:12px 14px;margin-bottom:14px}
.cam-read .who-chip{align-self:flex-start;margin-top:1px}
.cam-read .crl{font-size:10.5px;font-weight:600;color:#63324E;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.cam-read .crt{font-size:12.5px;line-height:1.55;color:#5A2A42}
.upd-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--hair2);padding-top:13px;flex-wrap:wrap}
.upd-obs{display:flex;gap:7px;flex-wrap:wrap}
.ob-tag{font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--hair);padding:2px 9px;border-radius:999px}
.upd-action{font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.upd-action.task{color:var(--accent)} .upd-action.none{color:var(--faint)}

/* ==========================================================================
   ACTIVITY / AUDIT LOG
   ========================================================================== */
.audit-strip{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r-sm);padding:11px 15px;margin-bottom:20px}
.audit-strip i{font-size:18px;color:var(--accent);flex:none}
.audit-strip b{color:var(--ink);font-weight:500}
.fchips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.fchip{font-size:12.5px;font-weight:500;padding:6px 13px;border-radius:999px;border:1px solid var(--hair);background:var(--surface);color:var(--muted);cursor:pointer;transition:.12s}
.fchip:hover{border-color:var(--muted)}
.fchip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.wc-system{background:var(--na-bg);color:var(--muted)}
.tl-day{font-size:12px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.05em;margin:22px 0 13px}
.tl{position:relative}
.tl-item{position:relative;padding-left:28px;padding-bottom:20px}
.tl-item::before{content:'';position:absolute;left:5px;top:4px;bottom:-4px;width:2px;background:var(--hair2)}
.tl-item:last-child::before{display:none}
.tl-dot{position:absolute;left:0;top:2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);z-index:1}
.tl-dot.you{background:var(--accent)} .tl-dot.finden{background:var(--slate)} .tl-dot.cam{background:#63324E} .tl-dot.system{background:var(--faint)}
.tl-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.tl-time{font-size:11.5px;color:var(--faint)}
.tl-txt{font-size:13px;line-height:1.5;color:var(--ink)}
.tl-txt b{font-weight:500}
.tl-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.tl-tag{font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--hair);padding:1px 8px;border-radius:999px}
.tl-rules{font-size:11px;color:var(--accent-ink);background:var(--accent-tint);padding:1px 8px;border-radius:999px;font-weight:500;display:inline-flex;align-items:center;gap:4px}
.tl-tag.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:transparent}
.tl-tag.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:transparent}
.tl-tag.bad{background:var(--bad-bg);color:var(--bad-ink);border-color:transparent}
.tl-card{padding:8px 22px}
.tl-card .tl-day:first-child{margin-top:14px}

/* ==========================================================================
   CERTIFICATE
   ========================================================================== */
.certbar{display:flex;align-items:center;gap:13px;border-radius:var(--r);padding:14px 20px;margin-bottom:24px;font-size:13.5px;line-height:1.45}
.certbar.locked{background:var(--warn-bg);color:var(--warn-ink)}
.certbar.issued{background:var(--ok-bg);color:var(--ok-ink)}
.certbar .cb-ic{font-size:20px;flex:none}
.certbar b{font-weight:600}
.cert-toggle{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12.5px;cursor:pointer;white-space:nowrap}
.cert-toggle input{width:16px;height:16px;accent-color:var(--accent)}
.lock-hero{width:60px;height:60px;border-radius:50%;background:var(--na-bg);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 16px}
.cert{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;max-width:720px;margin:0 auto;box-shadow:var(--shadow)}
.cert .band{height:6px;background:var(--accent)}
.cert .cbody{padding:36px 42px}
.cert .seal{width:56px;height:56px;border-radius:50%;background:var(--accent-tint);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:29px;margin-bottom:18px}
.cert h2{font-size:25px;font-weight:500;margin-bottom:6px}
.cert .lede{color:var(--muted);font-size:14px;max-width:520px;margin-bottom:24px;line-height:1.65}
.cert .lede b{color:var(--ink);font-weight:500}
.cert .fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px;border-top:1px solid var(--hair2);border-bottom:1px solid var(--hair2);padding:22px 0;margin-bottom:22px}
.cert .f .k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:4px}
.cert .f .v{font-size:14px;font-weight:500}
.cert .verify{display:flex;align-items:center;gap:18px}
.qr{width:84px;height:84px;flex:none;border:1px solid var(--hair);border-radius:8px;padding:6px;background:#fff}
.cert .disc{font-size:11.5px;color:var(--faint);margin-top:22px;line-height:1.55}
@media(max-width:620px){.cert .cbody{padding:26px 24px}.cert .fields{grid-template-columns:1fr;gap:16px}}

/* ==========================================================================
   INTERNAL LENS (Finden / CAM) — slate accent via body.lens-internal
   Status colours stay constant; only the lens accent changes.
   ========================================================================== */
body.lens-internal{--accent:#33506E;--accent-deep:#284057;--accent-tint:#E7ECF2;--accent-ink:#284057}
.role-badge{margin:2px 8px 12px;font-size:11px;font-weight:600;color:#63324E;background:#F0E9EE;padding:4px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:6px;align-self:flex-start}
.role-badge i{font-size:14px}
.role-badge.slate{color:var(--slate-deep);background:var(--slate-tint)}

/* CAM · review queue */
.qrow{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:15px 18px;margin-bottom:12px}
.qrow .qtype{width:40px;height:40px;border-radius:10px;background:var(--accent-tint);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.qrow.high .qtype{background:var(--bad-bg);color:var(--bad-ink)}
.qrow.med .qtype{background:var(--warn-bg);color:var(--warn-ink)}
.qmain{flex:1;min-width:0}
.qhd{display:flex;align-items:center;gap:9px;margin-bottom:4px;flex-wrap:wrap}
.qhd b{font-size:14px;font-weight:600}
.qsec{font-size:12px;color:var(--muted)}
.qbadge{font-size:11px;font-weight:500;color:var(--muted);background:var(--surface-2);border:1px solid var(--hair);padding:1px 8px;border-radius:999px}
.qneed{font-size:12.5px;color:var(--muted);line-height:1.5}
.qright{display:flex;align-items:center;gap:14px;flex:none}
.qage{font-size:12px;color:var(--faint);white-space:nowrap}
@media(max-width:720px){.qrow{flex-wrap:wrap}.qright{width:100%;justify-content:flex-end}}

/* CAM · audit workspace */
.aud-gate{display:flex;align-items:center;gap:13px;border-radius:var(--r);padding:14px 20px;margin-bottom:20px;font-size:13.5px;line-height:1.45}
.aud-gate.open{background:var(--ok-bg);color:var(--ok-ink)}
.aud-gate.locked{background:var(--warn-bg);color:var(--warn-ink)}
.aud-gate i{font-size:20px;flex:none}
.aud-prog{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.aud-prog .ap-l{font-size:13.5px;font-weight:500}
.ap-demo{font-size:12px;color:var(--accent);font-weight:500;cursor:pointer}
.aud{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:16px 18px;margin-bottom:12px}
.aud.signed{background:var(--surface-2)}
.aud-hd{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.aud-hd b{font-size:14px;font-weight:600}
.aud-signed{margin-left:auto;font-size:11.5px;color:var(--ok-ink);display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:500}
.aud-signed.cond{color:var(--warn-ink)} .aud-signed.fail{color:var(--bad-ink)}
.aud-row{font-size:12.5px;line-height:1.55;margin-bottom:6px;color:var(--ink)}
.aud-k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:600;margin-right:7px}
.aud-ev{color:var(--accent);font-weight:500;display:inline-flex;align-items:center;gap:4px}
.aud-foot{display:flex;align-items:center;gap:10px;margin-top:13px;padding-top:13px;border-top:1px solid var(--hair2);flex-wrap:wrap}
.verdict-seg{display:inline-flex;background:var(--hair2);border-radius:var(--r-sm);padding:3px;flex:none}
.verdict-seg button{border:none;background:transparent;font-family:inherit;font-size:12px;font-weight:500;color:var(--muted);padding:6px 12px;border-radius:6px;cursor:pointer;white-space:nowrap}
.verdict-seg button.on{background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.07)}
.verdict-seg button.on.pass{color:var(--ok-ink)} .verdict-seg button.on.cond{color:var(--warn-ink)} .verdict-seg button.on.fail{color:var(--bad-ink)}
.aud-note{flex:1;min-width:150px;font-size:12.5px;padding:7px 11px}
.aud-bounce{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--r-sm);padding:9px 12px;font-size:12px;margin-top:10px;display:flex;align-items:center;gap:7px;line-height:1.45}
.aud-files{margin-top:5px;display:flex;flex-direction:column;gap:7px}
.aud-file{display:flex;align-items:center;gap:9px;font-size:12.5px}
.aud-file > i{font-size:17px;color:var(--muted);flex:none}
.aud-file .fn{font-weight:500;color:var(--ink)}
.aud-file .facts{margin-left:auto;display:flex;gap:4px}
.aud-file .fact{font-size:11.5px;color:var(--accent);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px}
.aud-file .fact:hover{background:var(--accent-tint)}
.aud-finden{display:flex;gap:10px;background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r-sm);padding:10px 13px;margin-top:11px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.aud-finden .who-chip{align-self:flex-start;margin-top:1px}
.aud-finden b{color:var(--ink);font-weight:500}
.rev-form{margin-top:13px;padding-top:13px;border-top:1px solid var(--hair2)}
.rev-to{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);margin-bottom:11px;flex-wrap:wrap}
.rev-comment{width:100%;font-size:12.5px;min-height:60px;margin-bottom:11px}
.rev-actions{display:flex;justify-content:flex-end;gap:9px}
.rev-sent{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--warn-ink);background:var(--warn-bg);border-radius:var(--r-sm);padding:10px 12px;line-height:1.5;flex:1}
.rev-sent i{margin-top:1px;flex:none}

/* CAM · clients table */
.rbar{width:72px;height:6px;background:var(--hair2);border-radius:999px;overflow:hidden;display:inline-block;vertical-align:middle}
.rbar>div{height:100%;background:var(--accent);border-radius:999px}
.rnum{font-size:12.5px;font-weight:500;color:var(--ink);margin-left:8px;vertical-align:middle}

/* CAM · certificate issuance */
.certcard{background:var(--surface);border:1px solid var(--hair);border-left:3px solid var(--hair);border-radius:var(--r);padding:18px 20px;margin-bottom:14px}
.certcard.valid{border-left-color:var(--ok)} .certcard.ready{border-left-color:var(--accent)}
.certcard.review{border-left-color:var(--warn)} .certcard.revoked{border-left-color:var(--bad);opacity:.82}
.cc-hd{display:flex;align-items:center;gap:11px;margin-bottom:14px;flex-wrap:wrap}
.cc-hd b{font-size:15px;font-weight:600}
.cc-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 24px;margin-bottom:14px}
.cc-f .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);margin-bottom:3px}
.cc-f .v{font-size:13px;font-weight:500}
.cc-verify{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted);margin-bottom:14px;padding:9px 12px;background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r-sm);flex-wrap:wrap}
.cc-verify .vid{font-family:ui-monospace,monospace;font-weight:500;color:var(--ink)}
.cc-note{font-size:12.5px;color:var(--warn-ink);background:var(--warn-bg);border-radius:var(--r-sm);padding:9px 12px;margin-bottom:14px;display:flex;gap:8px;line-height:1.5}
.cc-actions{display:flex;gap:9px;flex-wrap:wrap;border-top:1px solid var(--hair2);padding-top:14px}
.cc-hist{font-size:12px;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:7px;line-height:1.4}
.cc-hist i{font-size:15px;color:var(--accent);flex:none}
.cc-hist b{color:var(--ink);font-weight:500}
.vbadge{font-size:11px;font-weight:500;color:var(--accent-ink);background:var(--accent-tint);padding:2px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:5px}
.vbadge i{font-size:13px}

/* CAM · materiality */
.mat-head{color:var(--muted);font-size:13px;line-height:1.6;margin-bottom:18px;max-width:78ch}
.mat-head b{color:var(--ink);font-weight:500}
.mat{background:var(--surface);border:1px solid var(--hair);border-left:3px solid var(--hair);border-radius:var(--r);padding:18px 20px;margin-bottom:14px}
.mat.material{border-left-color:var(--bad)} .mat.grey{border-left-color:var(--warn)} .mat.minor{border-left-color:var(--na)}
.mat-hd{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.mat-hd b{font-size:14.5px;font-weight:600} .mat-hd .qsec{font-size:12px;color:var(--muted)}
.trig{font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;display:inline-flex;align-items:center;gap:5px}
.trig i{font-size:13px}
.trig.change{background:var(--slate-tint);color:var(--slate-deep)}
.trig.mandate{background:#F0E9EE;color:#63324E}
.cand{margin-left:auto;font-size:11.5px;font-weight:500;padding:3px 10px;border-radius:999px;white-space:nowrap}
.cand.material{background:var(--bad-bg);color:var(--bad-ink)} .cand.grey{background:var(--warn-bg);color:var(--warn-ink)} .cand.minor{background:var(--na-bg);color:var(--muted)}
.mat-what{font-size:13.5px;line-height:1.5;margin-bottom:11px}
.mat-affects{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.mat-tag{font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--hair);padding:2px 9px;border-radius:999px}
.mat-why{display:flex;gap:10px;background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r-sm);padding:11px 13px;font-size:12.5px;line-height:1.5;color:var(--muted);margin-bottom:14px}
.mat-why i{font-size:16px;color:var(--accent);flex:none;margin-top:1px}
.mat-rule{font-family:ui-monospace,monospace;font-size:11px;color:var(--ink);background:var(--hair2);padding:1px 6px;border-radius:4px;white-space:nowrap}
.mat-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-top:1px solid var(--hair2);padding-top:14px}
.mat-decided{font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:7px;line-height:1.4}
.mat-decided.material{color:var(--bad-ink)} .mat-decided.minor{color:var(--ok-ink)} .mat-decided.info{color:var(--warn-ink)}

/* CAM · radar authoring */
.tagpick{display:flex;gap:8px;flex-wrap:wrap}
.tagpick .tp{font-size:12.5px;font-weight:500;padding:6px 12px;border-radius:999px;border:1px solid var(--hair);background:var(--surface);color:var(--muted);cursor:pointer;transition:.12s}
.tagpick .tp:hover{border-color:var(--muted)}
.tagpick .tp.on{background:var(--accent);border-color:var(--accent);color:#fff}
.impact{display:flex;align-items:center;gap:11px;background:var(--accent-tint);border-radius:var(--r-sm);padding:13px 15px;font-size:13px;color:var(--accent-ink);margin:18px 0;line-height:1.45}
.impact i{font-size:19px;color:var(--accent);flex:none}
.impact b{font-weight:600}
.compose-foot{display:flex;justify-content:flex-end;gap:10px}
.pub{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:14px 18px;margin-bottom:11px}
.pub-main{flex:1;min-width:0}
.pub-main .pt{font-weight:500;font-size:13.5px;margin-bottom:4px}
.pub-main .pm{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pub-impact{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap;flex:none}
.pub-impact b{color:var(--ink);font-weight:600}
.dl-file{font-size:12px;color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dl-file i{color:var(--accent);font-size:15px;flex:none}
.dl-file .ff{color:var(--accent);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:3px}
.dl-file .ff i{font-size:14px}

/* CAM · templates */
.ver{font-family:ui-monospace,monospace;font-size:11.5px;font-weight:500;color:var(--muted);background:var(--hair2);padding:2px 7px;border-radius:5px}
.t-acts{display:inline-flex;gap:11px;align-items:center}

/* CAM · map validation */
.mv-gate{display:flex;align-items:center;gap:13px;background:var(--accent-tint);color:var(--accent-ink);border-radius:var(--r);padding:14px 20px;margin-bottom:22px;font-size:13.5px;line-height:1.45}
.mv-gate i{font-size:20px;color:var(--accent);flex:none}
.lbrow{border:1px solid var(--hair);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:10px}
.lbrow.confirmed{background:var(--surface-2)}
.lb-hd{display:flex;align-items:center;gap:10px;margin-bottom:7px;flex-wrap:wrap}
.lb-hd b{font-size:13.5px;font-weight:600}
.lb-basis{font-size:11.5px;font-weight:500;padding:2px 9px;border-radius:999px;background:var(--accent-tint);color:var(--accent-ink)}
.lb-data{font-size:12.5px;color:var(--muted);margin-bottom:11px}
.lb-data .lk{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:600;margin-right:6px}
.lb-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-top:1px solid var(--hair2);padding-top:11px}
.lb-status{font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.lb-status.ok{color:var(--ok-ink)} .lb-status.flag{color:var(--warn-ink)}
.lb-flagnote{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--r-sm);padding:9px 12px;font-size:12px;margin-top:10px;line-height:1.5}
.lb-note{width:100%;font-size:12.5px;min-height:52px;margin-bottom:10px}

/* Finden · evidence review */
.evrow{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:16px 18px;margin-bottom:12px}
.evrow.verified{background:var(--surface-2);display:flex;align-items:center;gap:12px}
.ev-hd{display:flex;align-items:center;gap:9px;margin-bottom:5px;flex-wrap:wrap}
.ev-hd b{font-size:14px;font-weight:600}
.ev-obtag{font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--hair);padding:2px 9px;border-radius:999px}
.evrow.verified .ev-obtag{background:var(--surface)}
.ev-t{font-size:13px;color:var(--muted);margin-bottom:11px}
.ev-note{font-size:12.5px;color:var(--muted);font-style:italic;background:var(--surface-2);border-left:2px solid var(--hair);padding:8px 12px;border-radius:0 4px 4px 0;margin:11px 0}
.ev-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-top:1px solid var(--hair2);padding-top:12px}
.ev-changes{width:100%;font-size:12.5px;min-height:52px;margin-bottom:10px}
.ev-meta{margin-left:auto;font-size:12px;color:var(--faint);white-space:nowrap}

/* Finden · remediation kanban */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
.kcol{background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r);padding:12px}
.kcol-h{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:11px;padding:0 3px}
.kcol-h .kc{background:var(--hair2);color:var(--muted);font-size:11px;padding:1px 7px;border-radius:999px}
.kcard{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-sm);padding:12px;margin-bottom:9px}
.kcard:last-child{margin-bottom:0}
.kcard .ktag{font-size:10.5px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}
.kcard .ktitle{font-size:12.5px;font-weight:500;line-height:1.35;margin-bottom:10px}
.kcard .kmeta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.kdue{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:3px}
.kadv{margin-left:auto;color:var(--faint);cursor:pointer;font-size:16px}
.kadv:hover{color:var(--accent)}
@media(max-width:900px){.kanban{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.kanban{grid-template-columns:1fr}}

/* Finden · ready for CAM */
.ho-check{display:flex;align-items:center;gap:11px;padding:11px 4px;border-bottom:1px solid var(--hair2)}
.ho-check:last-child{border:none}
.ho-check .ci{color:var(--ok);font-size:18px;flex:none}
.ho-check .cn{font-size:13.5px;font-weight:500}
.ho-check .cm{font-size:12px;color:var(--muted);margin-left:auto;display:inline-flex;align-items:center;gap:5px}

/* Finden · data inventory (RoPA) */
.cls{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.cls.personal{background:var(--slate-tint);color:var(--slate-deep)}
.cls.high{background:var(--warn-bg);color:var(--warn-ink)}

/* ==========================================================================
   LANDING / ROLE SWITCHER
   ========================================================================== */
.land{max-width:940px;margin:0 auto;padding:60px 28px 40px;min-height:100vh;display:flex;flex-direction:column}
.land-hd{text-align:center;margin-bottom:38px}
.land-hd .brand{justify-content:center;margin-bottom:26px}
.land-hd h1{font-size:34px;font-weight:600;letter-spacing:-.015em;margin-bottom:11px}
.land-hd p{color:var(--muted);font-size:15px;max-width:54ch;margin:0 auto;line-height:1.6}
.lensgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px}
.lenscard{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:24px;transition:.15s ease}
.lenscard:hover{border-color:var(--muted);box-shadow:var(--shadow);transform:translateY(-2px)}
.lenscard .lic{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:16px;color:#fff}
.lenscard .role{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:6px}
.lenscard h3{font-size:17px;font-weight:600;margin-bottom:8px}
.lenscard p{font-size:13px;color:var(--muted);line-height:1.55;flex:1;margin-bottom:16px}
.lenscard .enter{font-size:13px;font-weight:500;color:var(--accent);display:inline-flex;align-items:center;gap:6px}
.land-foot{text-align:center;color:var(--faint);font-size:12.5px;line-height:1.7;margin-top:auto;padding-top:20px}
.land-foot b{color:var(--muted);font-weight:500}
@media(max-width:760px){.lensgrid{grid-template-columns:1fr}.land{padding-top:36px}}
@media(max-width:620px){.cc-fields{grid-template-columns:1fr 1fr}}
