/* Consent app — shared design system (2026-10-18). Loaded after each page's own <style>, so these tokens
   and component styles win; page-specific classes keep working and pick up the new tokens. */
:root{
  --navy:#12355B; --navy-2:#0B2440; --teal:#0E7C66; --teal-2:#0A6352; --ink:#14202B; --muted:#5A6A78;
  --bg:#F3F6F9; --surface:#FFFFFF; --line:#DCE3EA; --line-2:#C7D2DC;
  --good:#0E7C66; --good-bg:#E4F3EE; --warn:#8A5A00; --warn-bg:#FDF3DC; --bad:#B3261E; --bad-bg:#FCE8E6;
  --info:#1C4E89; --info-bg:#E6EEF8; --focus:#2F7DE1;
  --r-sm:8px; --r:12px; --r-lg:18px;
  --sh-1:0 1px 2px rgba(16,32,48,.06),0 1px 1px rgba(16,32,48,.04);
  --sh-2:0 4px 16px rgba(16,32,48,.08),0 1px 3px rgba(16,32,48,.06);
  --sh-3:0 18px 48px rgba(11,36,64,.18);
  --font:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,"Noto Sans","Nirmala UI","Noto Sans Bengali","Noto Sans Devanagari",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{max-width:1040px;margin:0 auto;padding:20px 16px 48px}
h1{font-size:22px;line-height:1.25;margin:.2em 0 .3em;letter-spacing:-.01em}
h2{font-size:16px;margin:.2em 0;color:var(--navy);letter-spacing:-.005em}
a{color:var(--info)}
.muted{color:var(--muted);font-size:13.5px}

/* buttons — 44px touch targets */
button,.btn{font:inherit;font-weight:600;font-size:15px;cursor:pointer;border:1px solid transparent;border-radius:var(--r-sm);
  min-height:44px;padding:9px 16px;background:var(--teal);color:#fff;box-shadow:var(--sh-1);transition:background .15s,box-shadow .15s,transform .05s;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
button:hover{background:var(--teal-2)}
button:active{transform:translateY(1px)}
button.sec,.btn.sec{background:#fff;color:var(--navy);border-color:var(--line-2);box-shadow:none}
button.sec:hover{background:#F4F7FA;border-color:var(--navy)}
button.bad{background:var(--bad)} button.bad:hover{background:#8F1D17}
button.ghost,a.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:none;min-height:36px;padding:6px 12px;border-radius:999px;text-decoration:none;font-weight:600;font-size:14px}
button.ghost:hover,a.ghost:hover{background:rgba(255,255,255,.12)}
button.link{background:none;border:none;box-shadow:none;color:var(--info);padding:0;min-height:0;font-weight:600}
button.link:hover{background:none;text-decoration:underline}
button:disabled{opacity:.5;cursor:not-allowed;transform:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}

/* inputs */
input,select,textarea{font:inherit;font-size:15.5px;color:var(--ink);padding:10px 12px;min-height:44px;border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;background:#fff;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:#9FB0C0}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px rgba(47,125,225,.18)}
textarea{min-height:72px;resize:vertical}
label{display:block;font-size:13px;font-weight:600;color:#3D4D5B;margin:12px 0 5px}

/* surfaces */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:14px 0;box-shadow:var(--sh-1)}
.listitem{border-radius:var(--r);border-color:var(--line);box-shadow:var(--sh-1);transition:border-color .15s,box-shadow .15s}
.listitem:hover{border-color:var(--teal);box-shadow:var(--sh-2)}
.chip{font-weight:700;letter-spacing:.01em}
.err{background:var(--bad-bg);color:var(--bad);border:1px solid #F3C3BE;border-radius:var(--r-sm);padding:10px 12px;font-size:14px}
.ok{background:var(--good-bg);color:var(--good);border:1px solid #BFE3D7;border-radius:var(--r-sm);padding:10px 12px;font-size:14px}
.tabs{gap:6px;background:#E9EEF3;padding:4px;border-radius:999px;display:inline-flex;flex-wrap:wrap}
.tab{border:none;border-radius:999px;background:transparent;color:var(--navy);padding:8px 16px;min-height:38px}
.tab.on{background:#fff;color:var(--navy);box-shadow:var(--sh-1)}

/* pilot / notice bar */
.banner{background:#FFF7E0;color:#6B4B00;border-bottom:1px solid #F1DFA6;font-family:var(--font);font-size:13px;padding:7px 16px;text-align:center}

/* ---------- app shell ---------- */
header.top,.ui-header{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--navy),var(--navy-2));color:#fff;box-shadow:0 2px 10px rgba(11,36,64,.25)}
.ui-header{display:flex;align-items:center;gap:14px;padding:10px 18px;min-height:60px}
.ui-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}
.ui-logo{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.14);display:grid;place-items:center;flex:none}
.ui-brand b{font-size:16px;letter-spacing:-.01em;white-space:nowrap}
.ui-brand small{display:block;font-size:11.5px;opacity:.75;font-weight:500;white-space:nowrap}
.ui-nav{display:flex;gap:4px;margin-left:8px;flex-wrap:wrap}
.ui-nav a{white-space:nowrap;color:rgba(255,255,255,.82);text-decoration:none;font-weight:600;font-size:14px;padding:8px 12px;border-radius:999px}
.ui-nav a:hover{background:rgba(255,255,255,.10);color:#fff}
.ui-nav a[aria-current=page]{background:#fff;color:var(--navy)}
.ui-sp{flex:1}
.ui-user{position:relative}
.ui-userbtn{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.25);box-shadow:none;min-height:40px;border-radius:999px;padding:4px 12px 4px 4px;gap:8px;font-size:14px}
.ui-userbtn:hover{background:rgba(255,255,255,.18)}
.ui-avatar{width:30px;height:30px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:800;font-size:13px;text-transform:uppercase}
.ui-badge{background:#F5B700;color:#2B1D00;border-radius:999px;font-size:11px;font-weight:800;padding:1px 7px;margin-left:2px}
.ui-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-3);min-width:240px;padding:6px;z-index:30}
.ui-menu .ui-menu-h{padding:10px 12px 8px;border-bottom:1px solid var(--line);margin-bottom:4px}
.ui-menu .ui-menu-h b{display:block}
.ui-menu button{width:100%;justify-content:flex-start;background:none;color:var(--ink);box-shadow:none;border:none;font-weight:500;border-radius:8px;min-height:40px}
.ui-menu button:hover{background:#F1F5F8}
@media (max-width:760px){.ui-nav{order:3;width:100%;margin:6px 0 0;overflow-x:auto;flex-wrap:nowrap}.ui-header{flex-wrap:wrap}.ui-brand small{display:none}}

/* ---------- sign-in ---------- */
.ui-auth{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:var(--bg)}
.ui-auth-side{background:radial-gradient(1200px 600px at -10% -10%,#1E5A8F 0,transparent 60%),linear-gradient(160deg,var(--navy),var(--navy-2));color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.ui-auth-side h2{color:#fff;font-size:30px;line-height:1.2;margin:18px 0 10px;letter-spacing:-.02em;max-width:460px}
.ui-auth-side p{opacity:.85;max-width:440px;margin:0}
.ui-auth-points{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px}
.ui-auth-points li{display:flex;gap:10px;align-items:flex-start;opacity:.92;font-size:14.5px}
.ui-auth-points svg{flex:none;margin-top:2px}
.ui-auth-main{display:grid;place-items:center;padding:32px 20px}
.ui-auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:30px}
.ui-auth-card h1{font-size:24px}
.ui-auth-foot{margin-top:18px;font-size:12.5px;color:var(--muted);text-align:center}
@media (max-width:860px){.ui-auth{grid-template-columns:1fr}.ui-auth-side{display:none}}

.ui-pw{position:relative}
.ui-pw input{padding-right:52px}
.ui-pw .ui-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:36px;width:42px;padding:0;background:transparent;color:var(--muted);box-shadow:none;border:none;border-radius:8px}
.ui-pw .ui-eye:hover{background:#EEF2F6;color:var(--navy)}
.ui-hint{font-size:12.5px;color:var(--warn);margin-top:6px;display:flex;gap:6px;align-items:center}
.ui-checks{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:4px;font-size:13px}
.ui-checks li{display:flex;gap:8px;align-items:center;color:var(--muted)}
.ui-checks li.on{color:var(--good)}
.ui-row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ui-full{width:100%}

/* ---------- dialogs ---------- */
.ui-scrim{position:fixed;inset:0;background:rgba(11,26,40,.48);display:grid;place-items:center;padding:16px;z-index:50;animation:uiFade .12s ease-out}
.ui-dialog{width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:24px}
.ui-dialog.wide{max-width:820px}
.ui-dialog-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
.ui-x{background:none;color:var(--muted);box-shadow:none;border:none;min-height:36px;width:36px;padding:0}
.ui-x:hover{background:#F1F5F8;color:var(--ink)}
.ui-table{width:100%;border-collapse:collapse;font-size:14px}
.ui-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;padding:8px;border-bottom:1px solid var(--line)}
.ui-table td{padding:10px 8px;border-bottom:1px solid #EEF2F5;vertical-align:middle}
.ui-secret{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:20px;letter-spacing:.06em;background:#F4F7FA;border:1px dashed var(--line-2);border-radius:var(--r-sm);padding:12px 14px;text-align:center;user-select:all}
.ui-empty{padding:18px;text-align:center;color:var(--muted);background:#F8FAFC;border-radius:var(--r-sm)}
@keyframes uiFade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{.ui-header,header.top,.banner{display:none}}

/* list rows: language status chips */
.langstat{display:inline-flex;align-items:center;gap:4px;margin-left:10px;white-space:nowrap}
@media (max-width:600px){
  .listitem{flex-wrap:wrap;align-items:flex-start}
  .listitem>div:last-child{flex-basis:100%;text-align:left!important}
  .langstat{margin:0 10px 0 0}
  .wrap{padding:14px 12px 40px}
  .banner{font-size:12px}
}

/* 2026-10-18 fix round: readable chips (WCAG AA at small sizes), notes, users & roles, mobile menu */
.chip.s-approved,.chip.s-SEALED{background:#DDF0E8;color:#075443}
.chip.s-draft,.chip.s-proposed,.chip.s-DISCLOSED,.chip.s-AWAITING_SIGN{background:#FCEFCF;color:#6B4400}
.chip.s-none,.chip.s-rejected,.chip.s-REFUSED,.chip.s-WITHDRAWN,.chip.s-EXPIRED,.chip.s-SUPERSEDED{background:#FBE3E1;color:#8E1C15}
.chip.s-DUE{background:#E2EBF7;color:#173F70}
.chip.s-DEFERRED{background:#FDE4D3;color:#7C2D0E}
.muted{color:#52616E}
.banner.ui-pilot{background:#FFF4D6;color:#5C3D00;font-family:var(--font);font-size:13px;padding:6px 16px;text-align:center;border-bottom:1px solid #F0D58A}
.ui-note{background:#EEF4FA;border-bottom:1px solid var(--line);color:#24476E;font-size:13.5px}
.ui-note .wrap{padding-top:8px;padding-bottom:8px}
.ui-ended{background:#FFF4D6;color:#5C3D00;text-align:center;padding:10px 16px;font-size:14px;border-bottom:1px solid #F0D58A}
.ui-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ui-table td{vertical-align:top}
.ui-actions{text-align:right;white-space:nowrap}
.ui-actions button{margin:2px 0}
.ui-confirm{white-space:normal;max-width:340px;margin-left:auto;text-align:left;background:#FFF8F7;border:1px solid #F3C3BE;border-radius:var(--r-sm);padding:8px 10px;font-size:13.5px}
.ui-confirm>div:last-child{text-align:right;margin-top:6px}
.ui-inline{border:1px solid transparent;background:transparent;padding:2px 4px;margin-top:2px;font-size:13px;min-height:28px;width:100%;max-width:220px}
.ui-inline:hover,.ui-inline:focus{border-color:var(--line-2);background:#fff}
.ui-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}
.ui-matrix td.c,.ui-matrix th{text-align:center}.ui-matrix td:first-child,.ui-matrix th:first-child{text-align:left}
.ui-yes{color:#075443;display:inline-flex}.ui-no{color:#8896A3}
.ui-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
button.bad-t{color:var(--bad)}
.ui-btnlink{display:inline-block;background:var(--teal);color:#fff;padding:9px 16px;border-radius:var(--r-sm);text-decoration:none;font-weight:600}
.ui-burger{display:none;background:transparent;color:#fff;border:none;box-shadow:none;font-size:22px;min-height:40px;padding:0 10px}
@media (max-width:760px){
  .ui-burger{display:inline-block}
  .ui-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--navy-2);padding:8px;z-index:30}
  .ui-nav.open{display:flex}
  .ui-uname{display:none}
  .ui-header{position:relative}
}
.wrap.wide{max-width:1100px}
.agrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 12px;margin-top:6px}
pre.pj{white-space:pre-wrap;word-break:break-word;font-size:12px;background:#F6F8FA;border-radius:8px;padding:8px;margin:0;max-width:520px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px}
.sgrid .span2{grid-column:1/-1}
fieldset.fs{border:1px solid var(--line);border-radius:var(--r);padding:6px 14px 12px;margin:12px 0}
fieldset.fs legend{font-weight:700;color:var(--navy);font-size:14px;padding:0 6px}
.logobox{width:150px;height:70px;border:1px dashed var(--line-2);border-radius:8px;display:grid;place-items:center;background:#fff;overflow:hidden}
.logobox img{max-width:100%;max-height:100%}
.ui-dialog.wide{max-width:1120px;width:calc(100vw - 32px)}
.ui-table select{min-width:185px;width:auto}
.ui-table td.nw{white-space:nowrap}
.ui-actions{white-space:normal;min-width:200px}
.ui-matrix tr.ui-grp td{background:#F3F6F9;font-weight:700;color:var(--navy);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
.ui-cb{width:20px;height:20px;accent-color:var(--teal);cursor:pointer;min-height:0}
.ui-inline.c{text-align:center;font-weight:700;max-width:150px}
.ui-savebar{position:sticky;bottom:-24px;background:#fff;border-top:1px solid var(--line);padding:12px 0;margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
button.link{background:none;border:none;box-shadow:none;color:var(--info);padding:2px 4px;min-height:0;font-weight:600;text-decoration:underline}
.ui-pill{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:#E9EEF3;color:#3E4C59;margin-left:4px}
.ui-pill.on{background:#DDF0E8;color:#075443}.ui-pill.warn{background:#FCEFCF;color:#6B4400}
.ui-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;background:#F6F8FA;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px}
.ui-codes code{font-size:15px;letter-spacing:.04em;text-align:center}
.ui-check{display:flex;gap:8px;align-items:center;margin-top:12px;font-size:14px;color:var(--ink)}.ui-check input{width:18px;height:18px;min-height:0}
.ui-steps{margin:6px 0 10px;padding-left:20px;font-size:14px}.ui-steps li{margin:3px 0}
.ui-qr{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:8px 0}.ui-qr img{border:1px solid var(--line);border-radius:8px;background:#fff}
.ui-key{display:inline-block;margin-top:4px;font-size:13px;word-break:break-all}
input.ui-otp{font-size:24px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}
.ui-branches{font-size:14px}.ui-branchlist{margin:4px 0 0 4px;max-height:180px;overflow:auto}
.err-t{color:var(--bad);font-weight:600}
.ok{color:#075443}
.help-toc{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.help-toc a{background:#EEF4FA;color:var(--navy);text-decoration:none;font-weight:600;font-size:13.5px;padding:6px 12px;border-radius:999px}
.help-toc a:hover{background:#DCE8F5}
.help-item{border-top:1px solid var(--line);padding:10px 2px}
.help-item:first-of-type{border-top:none}
.help-item summary{cursor:pointer;font-weight:600;color:var(--ink);font-size:15px;list-style-position:outside}
.help-item ol{margin:8px 0 4px;padding-left:22px}.help-item li{margin:4px 0}
.help-item p{margin:8px 0 4px}
.help section{scroll-margin-top:80px}

/* =====================================================================================================
   ConsentTrail "Aurora" theme (2026-10-18) — minimal, futuristic, calm.
   Deep-space navy chrome, white surfaces, one teal→indigo gradient used sparingly for action and focus.
   Colours chosen for WCAG AA: white on #0B7A80 and on #3048C8 both pass for normal text.
   Appended last so it overrides the earlier tokens and page styles without touching page code.
   ===================================================================================================== */
:root{
  --ink:#0F172A; --muted:#526071; --navy:#13224A; --navy-2:#0B1324;
  --bg:#F4F6FB; --surface:#FFFFFF; --line:#E3E8F0; --line-2:#CBD3DF;
  --brand:#0B7A80; --brand-2:#3048C8; --brand-ink:#0A6A70; --teal:#0B7A80; --teal-2:#09666B;
  --glow-a:rgba(34,211,238,.55); --glow-b:rgba(99,102,241,.55);
  --grad:linear-gradient(135deg,#0B7A80 0%,#2B5BC9 60%,#3048C8 100%);
  --grad-line:linear-gradient(90deg,#22D3EE,#6366F1 55%,#A78BFA);
  --focus:#3048C8; --info:#2B4BB8;
  --r-sm:10px; --r:16px; --r-lg:22px;
  --sh-1:0 1px 2px rgba(15,23,42,.05),0 1px 1px rgba(15,23,42,.03);
  --sh-2:0 10px 30px -12px rgba(15,23,42,.18),0 2px 6px rgba(15,23,42,.05);
  --sh-3:0 30px 80px -20px rgba(11,19,36,.35);
  --font:"Segoe UI Variable Text","Segoe UI","Inter",system-ui,-apple-system,Roboto,"Noto Sans","Nirmala UI","Noto Sans Bengali","Noto Sans Devanagari",sans-serif;
}
body{background:
  radial-gradient(900px 420px at 100% -120px,rgba(48,72,200,.07),transparent 70%),
  radial-gradient(800px 400px at -10% -160px,rgba(11,122,128,.08),transparent 70%),
  var(--bg);background-attachment:fixed;color:var(--ink)}
h1{font-weight:750;letter-spacing:-.022em}
h2{font-weight:700;color:var(--navy);letter-spacing:-.012em}
a{color:var(--info)}
::selection{background:rgba(48,72,200,.18)}

/* ---- buttons ---- */
button,.btn{border-radius:12px;font-weight:650;letter-spacing:.005em;background:var(--grad);background-size:140% 140%;background-position:0% 50%;
  box-shadow:0 8px 20px -10px rgba(48,72,200,.55),inset 0 1px 0 rgba(255,255,255,.18);transition:background-position .35s ease,box-shadow .2s,transform .08s}
button:hover{background:var(--grad);background-size:140% 140%;background-position:100% 50%;box-shadow:0 12px 26px -10px rgba(48,72,200,.6),inset 0 1px 0 rgba(255,255,255,.2)}
button:active{transform:translateY(1px) scale(.995)}
button.sec,.btn.sec{background:#fff;color:var(--navy);border:1px solid var(--line-2);box-shadow:var(--sh-1)}
button.sec:hover{background:#fff;border-color:var(--brand-2);color:var(--brand-2);box-shadow:0 0 0 4px rgba(48,72,200,.08)}
button.bad{background:#B42318;box-shadow:0 8px 20px -10px rgba(180,35,24,.6)} button.bad:hover{background:#912018}
button.link,button.ui-x,.ui-pw .ui-eye,.ui-menu button,.tab,.ui-burger{background:none;box-shadow:none}
button.link:hover,.ui-menu button:hover{background:none}
button:disabled{opacity:.45;box-shadow:none}
:focus-visible{outline:none;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--focus)!important;border-radius:10px}

/* ---- inputs ---- */
input,select,textarea{border-radius:12px;background:#FBFCFE;border-color:var(--line-2)}
input:hover,select:hover,textarea:hover{border-color:#AEB9C9}
input:focus,select:focus,textarea:focus{background:#fff;border-color:var(--brand-2);box-shadow:0 0 0 4px rgba(48,72,200,.12)}
input[type=checkbox]{accent-color:var(--brand-2)}
label{color:#334155;font-weight:650;letter-spacing:.01em}

/* ---- surfaces ---- */
.card{border-radius:var(--r);border-color:var(--line);box-shadow:var(--sh-1);animation:ctRise .32s cubic-bezier(.2,.7,.2,1) both}
.card:hover{box-shadow:var(--sh-2)}
.listitem{border-radius:14px;border:1px solid var(--line);background:#fff;transition:transform .15s,box-shadow .15s,border-color .15s}
.listitem:hover{transform:translateY(-1px);border-color:rgba(48,72,200,.45);box-shadow:var(--sh-2)}
.ok{border-radius:12px;border-color:#B6E2D3}
.err{border-radius:12px}
.ui-empty{border-radius:12px;background:#F7F9FC;border:1px dashed var(--line-2)}
@keyframes ctRise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---- tabs: segmented control ---- */
.tabs{background:#EEF1F7;border:1px solid var(--line);padding:4px;border-radius:14px;gap:4px}
.tab{color:#475569;border-radius:10px;font-weight:650}
.tab:hover{color:var(--navy)}
.tab.on{background:#fff;color:var(--brand-2);box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(48,72,200,.12)}

/* ---- chips: add a status dot ---- */
.chip{border-radius:999px;padding:3px 10px 3px 8px;display:inline-flex;align-items:center;gap:6px;font-weight:650}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}

/* ---- header: dark glass with an aurora hairline ---- */
header.top,.ui-header{background:rgba(11,19,36,.92);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);box-shadow:none;border-bottom:1px solid rgba(255,255,255,.06)}
.ui-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--grad-line);opacity:.7}
.ui-logo{background:var(--grad);border-radius:11px;box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 6px 18px -6px var(--glow-a)}
.ui-brand b{font-weight:750;letter-spacing:-.015em}
.ui-brand small{opacity:.62}
.ui-nav a{color:rgba(226,232,240,.78);font-weight:600;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s}
.ui-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.ui-nav a[aria-current=page]{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(34,211,238,.45);box-shadow:0 0 18px -6px var(--glow-a),inset 0 0 12px -8px var(--glow-a)}
.ui-userbtn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.ui-userbtn:hover{background:rgba(255,255,255,.12)}
.ui-avatar{background:var(--grad);color:#fff}
.ui-menu{border-radius:16px;border-color:var(--line);box-shadow:var(--sh-3);animation:ctRise .16s ease-out both}
.ui-menu button{color:var(--ink);font-weight:550}
.ui-menu button:hover{background:#F2F5FB}
@media (max-width:760px){.ui-nav{background:#0B1324}}

/* ---- sign-in: aurora field + fine grid ---- */
.ui-auth{background:var(--bg)}
.ui-auth-side{position:relative;overflow:hidden;background:#0B1324;isolation:isolate}
.ui-auth-side::before{content:"";position:absolute;inset:-30%;z-index:-2;
  background:radial-gradient(40% 35% at 25% 25%,rgba(34,211,238,.35),transparent 70%),
             radial-gradient(38% 32% at 75% 30%,rgba(99,102,241,.40),transparent 70%),
             radial-gradient(45% 40% at 55% 85%,rgba(11,122,128,.45),transparent 70%);
  filter:blur(10px);animation:ctAurora 22s ease-in-out infinite alternate}
.ui-auth-side::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:40px 40px;-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 30% 40%,#000 30%,transparent 75%)}
.ui-auth-side h2{font-size:34px;font-weight:750;letter-spacing:-.03em;background:linear-gradient(90deg,#fff,#C7D2FE 70%,#A5F3FC);-webkit-background-clip:text;background-clip:text;color:transparent}
.ui-auth-points li svg{color:#67E8F9}
@keyframes ctAurora{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(4%,-3%,0) rotate(8deg)}}
.ui-auth-card{border-radius:24px;border-color:var(--line);box-shadow:var(--sh-2);position:relative}
.ui-auth-card::before{content:"";position:absolute;left:24px;right:24px;top:0;height:3px;border-radius:0 0 4px 4px;background:var(--grad-line)}

/* ---- dialogs ---- */
.ui-scrim{background:rgba(11,19,36,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.ui-dialog{border-radius:24px;border:1px solid var(--line);animation:ctRise .2s ease-out both}

/* ---- tables ---- */
.ui-table th{color:#64748B;letter-spacing:.06em;border-bottom-color:var(--line)}
.ui-table tbody tr{transition:background .12s}
.ui-table tbody tr:hover{background:#F8FAFD}
.ui-matrix tr.ui-grp td{background:#F1F4FA;color:var(--navy)}
.ui-cb{accent-color:var(--brand-2)}

/* ---- dashboard tiles and bars ---- */
.kpi{position:relative;border-radius:16px;border:1px solid var(--line);background:#fff;padding:16px 16px 14px;box-shadow:var(--sh-1);overflow:hidden;transition:transform .15s,box-shadow .15s;animation:ctRise .32s cubic-bezier(.2,.7,.2,1) both}
.kpi::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad-line);opacity:.85}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.kpi .v{font-size:32px;font-weight:780;letter-spacing:-.03em;color:var(--navy)}
.kpi .l{color:#64748B;letter-spacing:.07em}
.kpi.good::before{background:linear-gradient(90deg,#10B981,#22D3EE)}.kpi.warn::before{background:linear-gradient(90deg,#F59E0B,#FB923C)}.kpi.bad::before{background:linear-gradient(90deg,#EF4444,#F472B6)}
.bartrack{border-radius:999px;background:#EEF1F7!important;overflow:hidden}
.barfill{background:var(--grad)!important;border-radius:999px}
.heatcell{border-radius:8px}

/* ---- consent wizard steps: a lit trail ---- */
.step{position:relative;border-left:2px solid var(--line);padding-left:18px}
.step::before{content:"";position:absolute;left:-6px;top:16px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--line-2)}
.step.active{border-left-color:var(--brand-2)}
.step.active::before{border-color:var(--brand-2);box-shadow:0 0 0 4px rgba(48,72,200,.15)}
.step.done{border-left-color:#10B981}
.step.done::before{background:#10B981;border-color:#10B981}
.tier{color:#64748B;letter-spacing:.08em}
.cat{color:#64748B;letter-spacing:.1em}
.blk{border-radius:12px}
.comp{border-radius:12px}

/* ---- notices ---- */
.ui-note{background:linear-gradient(90deg,rgba(11,122,128,.07),rgba(48,72,200,.06));border-bottom:1px solid var(--line);color:#1E3A8A}
.banner.ui-pilot{background:#FFF7E6;border-bottom-color:#F5D9A0}

/* ---- help ---- */
.help-toc a{background:#fff;border:1px solid var(--line);color:var(--navy)}
.help-toc a:hover{border-color:var(--brand-2);color:var(--brand-2);background:#fff}
.help-item summary::marker{color:var(--brand-2)}

/* thin, quiet scrollbars */
*{scrollbar-width:thin;scrollbar-color:#C3CBD8 transparent}
/* compact actions inside tables */
.ui-table td.ui-actions{text-align:right;white-space:normal;min-width:240px}
.ui-table td.ui-actions button{min-height:34px;padding:6px 12px;font-size:13.5px;border-radius:10px;margin:3px 0 3px 4px}
.ui-table td.ui-actions .ui-confirm{flex-basis:100%}
.ui-table td.ui-actions .ui-confirm button{min-height:34px}
.langstat .chip.s-none{background:#EEF1F5;color:#475569}
.ps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:12px}
.ps-box{border:1px solid var(--line);border-radius:14px;padding:14px;background:#FBFCFE}
.ps-box>b{color:var(--navy)}
.ui-check .muted{font-weight:400}

.ui-sso{display:block;text-align:center;padding:11px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;color:var(--ink);font-weight:600;text-decoration:none}.ui-sso:hover{border-color:var(--focus)}
/* Users & roles dialog (2026-10-20): the table scrolls inside the dialog, so its horizontal scrollbar is always on screen;
   header row and the first column stay in view while scrolling */
.ui-dialog .ui-tablewrap{max-height:calc(100vh - 300px);overflow:auto;border:1px solid var(--line);border-radius:12px}
.ui-dialog .ui-table thead th{position:sticky;top:0;z-index:2;background:#fff;box-shadow:0 1px 0 var(--line)}
.ui-dialog .ui-matrix td:first-child,.ui-dialog .ui-matrix th:first-child{position:sticky;left:0;z-index:1;background:#fff;min-width:240px;max-width:320px;white-space:normal}
.ui-dialog .ui-matrix thead th:first-child{z-index:3}
.ui-dialog .ui-matrix tr.ui-grp td:first-child{background:#F1F4FA}
.ui-dialog .ui-matrix th{min-width:96px}
.ui-dialog .ui-tablewrap::-webkit-scrollbar{height:12px;width:12px}
.ui-dialog .ui-tablewrap::-webkit-scrollbar-thumb{background:#B8C4CE;border-radius:8px;border:3px solid #fff}
.ui-dialog .ui-tablewrap::-webkit-scrollbar-track{background:#F1F4F7}
.ui-rolesel{max-width:210px}
.ui-ids{font-size:12.5px;color:var(--ink);margin-top:4px;max-width:300px}
tr.ui-editrow td{background:#F7F9FB}
.ui-idgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.ui-rolehd{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.25;white-space:normal;min-width:96px;max-width:130px;margin:0 auto}
.ui-dialog .ui-matrix tr.ui-grp td:first-child{position:static;max-width:none;min-width:0}
.ui-stick{position:sticky;left:12px}
.ui-scrollbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 6px}
.ui-scrollbar button{min-height:32px;padding:4px 12px}
