:root{--colour-page:#f5f6f8;--colour-panel:#fff;--colour-text:#1d2433;--colour-muted:#5b6475;--colour-border:#d7dbe3;--colour-brand:#0b5ea8;--colour-brand-text:#fff;--colour-ok-bg:#e7f5ec;--colour-ok-text:#1d6b3a;--colour-warn-bg:#fff6e0;--colour-warn-text:#7a5300;--colour-error-bg:#fdecec;--colour-error-text:#9b1c1c;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--radius:6px;color:var(--colour-text);background:var(--colour-page);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}.app-header{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--colour-brand);color:var(--colour-brand-text);flex-wrap:wrap;display:flex}.app-header a{color:inherit;text-decoration:none}.app-header__title{font-weight:700}.app-header__nav{gap:var(--space-3);flex:1;display:flex}.app-header__nav a.active{text-decoration:underline}.app-header__user{align-items:center;gap:var(--space-2);display:flex}.app-header__roles{opacity:.8}.app-main{max-width:880px;padding:var(--space-4) var(--space-3);margin:0 auto}.panel{background:var(--colour-panel);border:1px solid var(--colour-border);border-radius:var(--radius);padding:var(--space-4)}.panel h1{margin-top:0}.form{gap:var(--space-3);max-width:520px;display:grid}.field{gap:var(--space-1);display:grid}.field span{font-weight:600}.field small{color:var(--colour-muted)}.field input,.field select{font:inherit;padding:var(--space-2);border:1px solid var(--colour-border);border-radius:var(--radius)}.form__actions{gap:var(--space-2);display:flex}.button{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius);background:var(--colour-panel);color:var(--colour-text);cursor:pointer}.button:disabled{cursor:not-allowed;opacity:.6}.button--primary{background:var(--colour-brand);border-color:var(--colour-brand);color:var(--colour-brand-text)}.notice{padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.notice--ok{background:var(--colour-ok-bg);color:var(--colour-ok-text)}.notice--warn{background:var(--colour-warn-bg);color:var(--colour-warn-text)}.notice--error{background:var(--colour-error-bg);color:var(--colour-error-text)}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.spinner{width:1em;height:1em;margin-right:var(--space-2);border:2px solid var(--colour-border);border-top-color:var(--colour-brand);vertical-align:middle;border-radius:50%;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;margin-bottom:var(--space-3)}.table th,.table td{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--colour-border);vertical-align:top}.panel h2{margin-top:var(--space-4)}.banner{padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3)}.banner--paused{background:var(--colour-warn-bg);color:var(--colour-warn-text);border:1px solid var(--colour-warn-text)}.banner--error{background:var(--colour-error-bg);color:var(--colour-error-text);border:1px solid var(--colour-error-text)}.banner--success{background:var(--colour-ok-bg);color:var(--colour-ok-text);border:1px solid var(--colour-ok-text)}.banner--info{background:var(--colour-panel);border:1px solid var(--colour-border)}.muted{color:var(--colour-muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.page-heading h1{margin:0}.toolbar{gap:var(--space-2);display:flex}.state{padding:var(--space-3);color:var(--colour-muted);align-items:center;display:flex}.button--small{padding:var(--space-1) var(--space-2);font-size:.875rem}.button--danger{background:var(--colour-error-text);border-color:var(--colour-error-text);color:var(--colour-brand-text)}.table-scroll{background:var(--colour-panel);border:1px solid var(--colour-border);border-radius:var(--radius);overflow-x:auto}.actions-cell{text-align:right;white-space:nowrap}.chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.role-chip,.status-pill{padding:2px var(--space-2);white-space:nowrap;background:var(--colour-page);border:1px solid var(--colour-border);border-radius:999px;font-size:.8125rem;display:inline-block}.status-pill--user-active{background:var(--colour-ok-bg);color:var(--colour-ok-text)}.status-pill--user-invited{background:var(--colour-warn-bg);color:var(--colour-warn-text)}.status-pill--user-inviteExpired,.status-pill--user-disabled{background:var(--colour-error-bg);color:var(--colour-error-text)}.pager{align-items:center;gap:var(--space-3);margin-top:var(--space-3);display:flex}.menu{z-index:20;min-width:180px;padding:var(--space-1) 0;background:var(--colour-panel);border:1px solid var(--colour-border);border-radius:var(--radius);position:fixed;box-shadow:0 4px 16px #00000026}.menu__item{width:100%;padding:var(--space-2) var(--space-3);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:block}.menu__item:hover,.menu__item:focus{background:var(--colour-page)}.menu__item[aria-disabled=true]{color:var(--colour-muted);cursor:not-allowed}.menu__note{max-width:240px;margin:var(--space-1) var(--space-3);color:var(--colour-muted);font-size:.8125rem}.dialog-backdrop{z-index:30;padding:var(--space-3);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{width:100%;max-width:520px;max-height:100%;padding:var(--space-4);background:var(--colour-panel);border-radius:var(--radius);overflow-y:auto}.dialog h2{margin-top:0}.dialog__actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3);display:flex}.field--block{margin-bottom:var(--space-3)}.field-error{margin:var(--space-1) 0 0;color:var(--colour-error-text)}.role-fieldset{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius);margin:0;display:grid}.role-option{align-items:flex-start;gap:var(--space-2);display:flex}.role-option__name{font-weight:600;display:block}.role-option__description{color:var(--colour-muted);font-size:.875rem;display:block}.app-main--narrow{max-width:520px}.password-rules{margin:0 0 var(--space-3);color:var(--colour-muted);padding:0;list-style:none}.password-rule--met{color:var(--colour-ok-text)}
