@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;450;500;550;600;650;700&family=Geist+Mono:wght@400;500&display=swap');
:root {
  color-scheme: light; --bg:#f5f5f1; --surface:#fdfdfa; --ink:#292b25; --muted:#676c61;
  --line:#2c352017; --accent:#236044; --accent-ink:#fff; --soft:#eaf2e9; --warn:#835b1b;
  --sidebar:#22291f; --sidebar-muted:#b4c0ae; --danger:#a93630;
  --text-xs:clamp(.75rem,.73rem + .08vw,.8rem); --text-sm:clamp(.875rem,.86rem + .06vw,.92rem);
  --text-base:clamp(1rem,.97rem + .1vw,1.04rem); --text-lg:clamp(1.125rem,1.05rem + .3vw,1.3rem); --text-xl:clamp(1.5rem,1.25rem + .7vw,1.95rem);
  --font-body:'Geist',sans-serif; --font-display:'Geist',sans-serif; --mono:'Geist Mono',monospace;
}
[data-theme=dark] { color-scheme:dark; --bg:#191d18; --surface:#22271f; --ink:#eff1e9; --muted:#b3bdad; --line:#f0ffe31c; --accent:#9ad5a7; --accent-ink:#172a1c; --soft:#2a3c2b; --warn:#edc78a; --sidebar:#141912; --danger:#f09f96; }
* {box-sizing:border-box} [hidden] {display:none!important}
body {margin:0; background:var(--bg); color:var(--ink); font:var(--text-sm)/1.55 var(--font-body); -webkit-font-smoothing:antialiased}
button,input,select {font:inherit} button,a,input,select,summary {touch-action:manipulation}
button {cursor:pointer; min-height:44px; border:0; border-radius:6px; padding:10px 16px; font-weight:550; transition:background .15s,box-shadow .15s}
button:disabled {opacity:.55; cursor:wait} button:hover {filter:brightness(.95)} a {color:var(--accent); text-underline-offset:3px}
:focus-visible {outline:3px solid var(--accent); outline-offset:3px}
input:not([type=checkbox]),select {min-height:44px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); padding:10px 12px; max-width:100%}
input:not([type=checkbox]) {width:100%} input:read-only {background:var(--bg); color:var(--muted)}
label {display:block; font-weight:550; margin:18px 0 7px}
h1,h2,p {margin:0} h1 {font:650 var(--text-xl)/1.25 var(--font-display); letter-spacing:-.035em; margin:7px 0 10px}
h2 {font-size:var(--text-lg); letter-spacing:-.02em; font-weight:600} p {color:var(--muted)}
svg {width:36px; height:36px; flex-shrink:0} .primary {background:var(--accent);color:var(--accent-ink)} .secondary {border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.subtle {background:transparent;color:inherit;text-align:left;padding-left:0} .wide {width:100%;margin-top:24px}
.eyebrow,.nav-label {font-size:var(--text-xs);letter-spacing:.12em;font-weight:600}
.eyebrow {color:var(--muted)} .mono,code {font-family:var(--mono);font-size:var(--text-xs)}
.skip {position:fixed;left:12px;top:-60px;z-index:100;background:var(--surface);padding:10px}.skip:focus {top:12px}
.sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.app-shell {display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}
.sidebar {background:var(--sidebar);color:#f1f5ee;padding:32px 20px 20px;display:flex;flex-direction:column;min-height:100vh}
.brand,.login-brand {display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit;font-size:var(--text-lg);font-weight:650;letter-spacing:.12em}
.brand {margin:0 4px 50px}.brand small,.login-brand small {display:block;font-size:var(--text-xs);letter-spacing:.17em;font-weight:450;opacity:.7}
.nav-label {color:var(--sidebar-muted);margin:0 12px 13px;letter-spacing:.1em}
nav {display:flex;flex-direction:column;gap:7px}.nav-item {display:flex;align-items:center;gap:10px;background:none;color:#bcc6b7;text-align:left;padding:11px 12px}
.nav-item.active {background:#ffffff12;color:#fff}.nav-symbol {font-size:var(--text-lg);width:18px;line-height:1}
.nav-count {margin-left:auto;font-size:var(--text-xs);color:#c7dbc2}
.sidebar-note {margin:36px 12px 20px;font-size:var(--text-xs);color:#d5e3ce}.sidebar-note p {color:var(--sidebar-muted);margin:10px 0 0}
.sidebar-bottom {margin-top:auto;padding:12px;border-top:1px solid #ffffff18;color:var(--sidebar-muted);font-size:var(--text-xs)}
.sidebar-bottom>a.muted-link {color:var(--sidebar-muted);margin:0;min-height:44px;display:flex;align-items:center}
.identity {display:flex;gap:10px;align-items:center;margin:13px 0}.identity strong {display:block;color:#fff;font-size:var(--text-sm);font-weight:500}.identity small {display:block}
.avatar {width:34px;height:34px;background:#f4faed19;display:grid;place-items:center;border-radius:50%;color:#f1f5ee}
.workspace {min-width:0}.topbar {min-height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:var(--text-xs);color:var(--muted)}
.topbar strong {color:var(--ink);font-weight:500}.workspace-label {letter-spacing:.1em}
main {padding:40px 42px 55px;max-width:1510px;margin:auto}
.page-heading {display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}
.page-heading p {font-size:var(--text-sm)}.page-heading .primary {white-space:nowrap}.page-heading .primary span {font-size:var(--text-lg);margin-right:6px}
.summary {display:flex;align-items:center;flex-wrap:wrap;gap:26px;margin:0 0 26px;font-size:var(--text-sm);color:var(--muted)}
.summary>span {display:flex;align-items:center;gap:7px}.summary strong {color:var(--ink);font-weight:600}.summary-note {margin-left:auto;font-size:var(--text-xs)}
.status-dot {display:inline-block;width:6px;height:6px;border-radius:50%;background:#619f68;vertical-align:middle;margin-right:4px}
.panel {border:1px solid var(--line);border-radius:9px;background:var(--surface);overflow:hidden}
.toolbar {display:flex;align-items:center;gap:10px;padding:19px 22px;border-bottom:1px solid var(--line)}
.toolbar label {margin:0}.search-label {flex:1;max-width:360px;margin-right:auto!important}
.toolbar select {min-width:135px}.toolbar input {background:var(--bg)}
table {width:100%;border-collapse:collapse;text-align:left}th {font-size:var(--text-xs);font-weight:500;color:var(--muted);background:var(--bg);padding:13px 22px;border-bottom:1px solid var(--line)}
td {padding:20px 22px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td {border:0}
.client-name {font-weight:600;font-size:var(--text-sm)}.client-id {display:block;font:var(--text-xs)/1.5 var(--mono);color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
.client-cell {display:flex;align-items:center;gap:12px}.client-mark {height:35px;width:35px;border:1px solid var(--line);background:var(--bg);border-radius:6px;display:grid;place-items:center;flex-shrink:0;font-size:var(--text-xs);color:var(--muted)}
.pill {display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:4px;font-size:var(--text-xs);font-weight:500;background:var(--soft);color:var(--accent);white-space:nowrap}
.pill.disabled {color:var(--muted);background:var(--bg)}.pill.pending {color:var(--warn);background:var(--bg)}.subline {display:block;color:var(--muted);font-size:var(--text-xs);margin-top:5px}
.actions {display:flex;justify-content:flex-end;gap:5px;white-space:nowrap}.actions button {font-size:var(--text-xs);padding:8px 11px;background:transparent;color:var(--accent)}
.actions button:hover {background:var(--soft)}.table-footer {padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:var(--text-xs);color:var(--muted)}
.onboarding {margin-top:33px}.section-heading {display:flex;gap:16px;align-items:baseline;margin-bottom:15px}.section-heading h2 {font-size:var(--text-base)}.section-heading p {font-size:var(--text-xs)}
.pending-row {display:flex;align-items:center;gap:16px;padding:17px 0;border-top:1px solid var(--line)}.pending-row>div {flex:1}.pending-row strong {font-weight:550}.pending-row button {background:transparent;color:var(--accent)}
.policy-note {font-size:var(--text-xs);color:var(--muted);padding:19px 0;max-width:850px;line-height:1.8}.policy-note strong {color:var(--ink);font-weight:550}
.fineprint {font-size:var(--text-xs);margin:20px 0;line-height:1.8}.loading,.empty {padding:46px 24px;text-align:center;color:var(--muted)}
.feedback {padding:12px 16px;border:1px solid var(--line);border-radius:6px;background:var(--soft);color:var(--accent);margin-bottom:22px}
.error {background:var(--surface);color:var(--danger)}.login-shell {max-width:440px;margin:10vh auto;padding:24px}.login-brand {margin-bottom:45px;color:var(--accent)}
.login-card {padding:30px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.login-card h1 {font-size:var(--text-xl);margin:12px 0}.login-card p {line-height:1.7}.login-card .feedback {margin:16px 0 0}
.muted-link {display:block;margin-top:18px;font-size:var(--text-xs);color:var(--muted)}.login-foot {font-size:var(--text-xs);margin-top:24px}
dialog {border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:28px;max-width:620px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;box-shadow:0 20px 80px #101b1833}
dialog::backdrop {background:#10191188;backdrop-filter:blur(2px)}.dialog-heading {display:flex;justify-content:space-between;align-items:center;gap:18px}.dialog-heading h2 {margin-top:5px}
.close {padding:4px 12px;font-size:var(--text-lg)}.steps {display:flex;gap:18px;list-style:none;padding:18px 0;margin:12px 0 20px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-xs)}
.steps .current {color:var(--accent);font-weight:650}.step-intro {font-size:var(--text-sm);line-height:1.7;margin-bottom:20px}
.form-grid {display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-help {font-size:var(--text-xs);margin-top:8px}.check-row {display:flex;align-items:center;gap:12px;font-weight:400;padding:10px 0;cursor:pointer;min-height:44px}
.check-row input {accent-color:var(--accent);width:18px;height:18px;flex-shrink:0}.check-row strong {font-weight:550;display:block}.check-row small {display:block;color:var(--muted);font-size:var(--text-xs)}
.dialog-footer {display:flex;gap:15px;align-items:center;justify-content:space-between;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.dialog-footer span {margin-right:auto;font-size:var(--text-xs);color:var(--muted)}
.permissions {border-top:1px solid var(--line);margin-top:24px;padding-top:14px;font-size:var(--text-xs)}summary {cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:550}
.permissions code {display:block;line-height:1.9;overflow-wrap:anywhere}.permissions p {margin:8px 0}.audit-row,.admin-row {padding:22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:18px}.audit-row:last-child,.admin-row:last-child {border:0}
.audit-row time {font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.admin-row strong {font-weight:550}.test-result {display:flex;gap:16px;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line)}.test-result p {font-size:var(--text-xs);margin-top:4px}
.boot {min-height:100vh;display:grid;place-items:center;color:var(--muted)}#preview-banner {padding:10px 20px;background:#eee2c4;color:#604613;font-size:var(--text-xs);font-weight:550;text-align:center}
.test-result .pill {align-self:flex-start}.admin-row {align-items:center}
@media(max-width:1150px){.summary>.summary-note{display:none}}
@media(min-width:1700px){main{padding-top:55px}}
@media(max-width:1150px){.app-shell{grid-template-columns:210px minmax(0,1fr)}main{padding:28px 24px}.topbar{padding:0 24px}td,th{padding:17px 14px}.client-mark{display:none}.sidebar{padding-inline:12px}.summary-note{display:none}.approver-column{display:none}}
@media(max-width:720px){.app-shell{display:block}.sidebar{min-height:auto;padding:18px 20px}.brand{margin:0 0 18px}.brand svg{width:28px;height:28px}.brand small{display:inline;margin-left:10px}.brand{font-size:var(--text-base)}.nav-label,.sidebar-note,.identity{display:none}nav{flex-direction:row;gap:5px}.nav-item{padding:8px 10px;font-size:var(--text-xs);flex:1;justify-content:center}.nav-symbol,.nav-count{display:none}.sidebar-bottom{border:0;padding:0;display:flex;justify-content:space-between;margin-top:8px}.sidebar-bottom button{min-height:36px}.topbar{min-height:50px;padding:0 20px}.workspace-label{display:none}main{padding:27px 18px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:22px}.page-heading .primary{padding:9px 12px;font-size:var(--text-xs);margin-top:26px}.summary{gap:15px;font-size:var(--text-xs)}.toolbar{padding:14px;flex-wrap:wrap}.search-label{flex-basis:100%;max-width:none}.toolbar select{min-width:0}.toolbar label:has(select){flex:1}.toolbar select{width:100%}table,tbody,tr,td{display:block}thead{display:none}tr{padding:17px 15px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px}td{padding:0;border:0}.client-identity{grid-column:1/-1}.client-cell{gap:10px}.client-mark{display:grid}.access-cell{display:flex;gap:10px;align-items:center}.access-cell .subline{margin:0}.actions{align-items:center;gap:0}.actions button{padding:8px}.table-footer{flex-direction:column;gap:4px}.pending-row{gap:8px}.pending-row .pill{display:none}.section-heading{display:block}.section-heading p{margin-top:5px}.form-grid{grid-template-columns:1fr}.steps{gap:13px}dialog{padding:21px}.audit-row{flex-direction:column;gap:8px}.login-shell{margin:4vh auto}.login-card{padding:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(max-width:720px){.sidebar-bottom{flex-wrap:wrap}.sidebar-bottom>a.muted-link{flex-basis:100%}}
