
:root{--identity-shadow:0 18px 46px rgba(24,35,52,.12)}
.identity-page{min-height:100vh;background:radial-gradient(circle at 80% -10%,#e8f1ff 0,transparent 33rem),linear-gradient(145deg,#f7f9fd,#edf2f9)}.identity-shell{width:min(1440px,100%);margin:0 auto;padding:26px clamp(16px,4vw,56px) 64px}.identity-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;min-height:74px}.identity-brand{display:inline-flex;align-items:center;gap:10px;color:var(--green-dark);font-size:12px;font-weight:900;letter-spacing:.14em;text-decoration:none;width:max-content}.identity-brand .brand-mark{margin:0;border-radius:10px;clip-path:none;background:linear-gradient(135deg,#2f80ed,#0b5ed7);box-shadow:0 7px 18px #0b5ed733}.identity-header-copy{text-align:center}.identity-header-copy .eyebrow{margin-bottom:3px}.identity-header h1{margin:0;font:800 24px/1.1 Inter,ui-sans-serif,system-ui;letter-spacing:-.035em}.identity-header-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.identity-link,.identity-logout{border:1px solid var(--line);background:var(--white);color:var(--ink);padding:9px 12px;border-radius:10px;text-decoration:none;font-weight:700;cursor:pointer}.identity-logout{color:var(--green)}.identity-status{min-height:0;margin:0;color:var(--red);font-weight:700}.identity-status:not(:empty){padding:12px 14px;margin:12px 0;border:1px solid #f1c8cb;background:#fff5f5;border-radius:12px}.identity-intro{margin:22px 0;padding:30px 32px;color:#fff;background:linear-gradient(115deg,#0b3d91,#0d6efd 130%);border-radius:22px;box-shadow:0 20px 46px #0b5ed724;display:flex;align-items:end;justify-content:space-between;gap:24px}.identity-intro .eyebrow{color:#cfe2ff}.identity-intro h2{margin:0 0 8px;font:800 30px/1.15 Inter,ui-sans-serif,system-ui;letter-spacing:-.045em}.identity-intro p:last-child{max-width:680px;margin:0;color:#dbeafe}.identity-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 10px;border-radius:999px;background:#e9f2ff;color:#0b5ed7;font-size:11px;font-weight:800}.identity-intro .identity-badge{background:#ffffff18;color:#e9f2ff;border:1px solid #ffffff24}.identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.identity-card{min-width:0;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 16px #18233b0a}.identity-wide{grid-column:1/-1}.identity-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.identity-card h2{margin:0;font:800 19px/1.2 Inter,ui-sans-serif,system-ui;letter-spacing:-.025em}.identity-card h3{margin:0 0 14px;font:800 16px/1.2 Inter,ui-sans-serif,system-ui}.identity-card .muted{margin:0 0 18px}.identity-form{display:grid;gap:14px}.identity-form label,.identity-filters label{display:grid;gap:6px;color:var(--ink);font-size:12px;font-weight:750}.identity-form label span{color:var(--muted);font-weight:500}.identity-form input,.identity-form select,.identity-filters input,.identity-filters select{width:100%;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#f7faf8;outline:none}.identity-form input:focus,.identity-form select:focus,.identity-filters input:focus,.identity-filters select:focus{border-color:var(--green);box-shadow:0 0 0 3px #0d6efd1c}.identity-form .primary,.identity-filters .primary{width:max-content;padding:10px 14px}.identity-divider{height:1px;margin:24px 0;background:var(--line)}.identity-form-wide{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.identity-form-wide fieldset,.identity-form-wide .identity-actions{grid-column:1/-1}.identity-actions{display:flex;gap:9px}.identity-actions button:not(.primary),.identity-more{border:1px solid var(--line);background:var(--white);color:var(--ink);padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}.identity-check{grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}.identity-check input{width:auto}.identity-form fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;max-height:260px;overflow:auto;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f7faf8}.identity-form fieldset legend{padding:0 6px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.identity-form fieldset label{grid-template-columns:auto 1fr;align-items:center;gap:8px;font-weight:600}.identity-form fieldset input{width:auto}.identity-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}.identity-filters .primary{align-self:end;min-height:40px}.identity-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px}.identity-table-wrap:empty{display:none}.identity-table-wrap table{width:100%;min-width:720px;border-collapse:collapse;text-align:left}.identity-table-wrap th{padding:11px 14px;color:var(--muted);background:#f7faf8;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.identity-table-wrap td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.identity-table-wrap td:last-child>div{display:flex;flex-wrap:wrap;gap:6px}.identity-table-wrap button{border:0;background:#e9f2ff;color:var(--green);padding:7px 9px;border-radius:8px;font-size:12px;font-weight:750;cursor:pointer}.identity-table-wrap button:last-child{color:#b02a37;background:#fff0f0}.identity-more{margin-top:14px}.identity-dialog{width:min(460px,calc(100% - 28px));border:1px solid var(--line);border-radius:18px;padding:28px;color:var(--ink);background:var(--white);box-shadow:var(--identity-shadow)}.identity-dialog::backdrop{background:rgba(7,18,38,.62);backdrop-filter:blur(3px)}.identity-dialog h2{margin:0 0 10px;font:800 22px Inter,ui-sans-serif,system-ui}.identity-dialog pre{overflow:auto;padding:12px;border-radius:10px;background:#f7faf8;border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}html[data-theme="dark"] .identity-page{background:var(--bg)}html[data-theme="dark"] .identity-card,html[data-theme="dark"] .identity-dialog,html[data-theme="dark"] .identity-link,html[data-theme="dark"] .identity-logout,html[data-theme="dark"] .identity-actions button:not(.primary),html[data-theme="dark"] .identity-more,html[data-theme="dark"] .identity-form input,html[data-theme="dark"] .identity-form select,html[data-theme="dark"] .identity-filters input,html[data-theme="dark"] .identity-filters select,html[data-theme="dark"] .identity-form fieldset{background:var(--surface);color:var(--ink);border-color:var(--line)}@media(max-width:760px){.identity-shell{padding:16px 14px 34px}.identity-header{grid-template-columns:1fr auto}.identity-header-copy{grid-column:1/-1;grid-row:2;order:3;text-align:left}.identity-header-actions{gap:6px}.identity-link,.identity-logout{padding:8px 9px;font-size:12px}.identity-intro{padding:23px 20px;border-radius:17px;align-items:flex-start;flex-direction:column}.identity-intro h2{font-size:25px}.identity-grid{grid-template-columns:1fr;gap:12px}.identity-wide{grid-column:auto}.identity-card{padding:17px;border-radius:15px}.identity-form-wide,.identity-filters{grid-template-columns:1fr}.identity-form .primary,.identity-filters .primary{width:100%;min-height:42px}.identity-actions{display:grid;grid-template-columns:1fr}.identity-form fieldset{grid-template-columns:1fr;max-height:220px}.identity-table-wrap{margin-inline:-2px;width:calc(100% + 4px)}.identity-table-wrap th,.identity-table-wrap td{padding:10px}}


/* Admin uses the same blue design tokens and persisted mode as the dashboard. */
.identity-page{background:radial-gradient(circle at 84% -8%,#e3edff 0,transparent 32rem),linear-gradient(145deg,#f8faff,#edf2f9)}
.identity-brand{color:var(--green-dark)}
.identity-header-actions{flex-wrap:wrap}
.identity-link,.identity-logout,.identity-theme-toggle{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:9px 13px;background:var(--surface);color:var(--ink);font-size:13px;line-height:1;font-weight:700;text-decoration:none;box-shadow:var(--bb-shadow);cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}
.identity-link:hover,.identity-logout:hover,.identity-theme-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--surface-quiet)}
.identity-link{background:var(--green);border-color:var(--green);color:#fff}
.identity-link:hover{background:var(--green-dark);border-color:var(--green-dark)}
.identity-logout{color:var(--danger)}
.identity-theme-toggle{min-width:40px;padding-inline:11px}.theme-toggle-icon{font-size:18px;line-height:1}
.identity-intro{background:linear-gradient(118deg,#0d6efd,#0b5ed7 75%,#084298);box-shadow:0 18px 42px rgba(13,110,253,.21)}
.identity-intro .eyebrow{color:#dbeafe}.identity-intro .identity-badge{color:#e9f2ff}.identity-badge{background:var(--mint);color:var(--green)}
.identity-card{background:var(--surface);box-shadow:var(--bb-shadow)}
.identity-form input,.identity-form select,.identity-filters input,.identity-filters select,.identity-form fieldset,.identity-table-wrap th,.identity-dialog pre{background:var(--surface-quiet)}
.identity-form input:focus,.identity-form select:focus,.identity-filters input:focus,.identity-filters select:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}
.identity-form .primary,.identity-filters .primary{border-radius:8px;background:var(--green)}.identity-table-wrap button{background:var(--mint);color:var(--green)}.identity-dialog::backdrop{background:rgba(5,12,28,.66)}
html[data-theme="dark"] .identity-page{background:radial-gradient(circle at 84% -8%,rgba(38,74,132,.26) 0,transparent 31rem),var(--bg)}
html[data-theme="dark"] .identity-intro{background:linear-gradient(118deg,#274b82,#1b345e)}
html[data-theme="dark"] .identity-card,html[data-theme="dark"] .identity-dialog,html[data-theme="dark"] .identity-link,html[data-theme="dark"] .identity-logout,html[data-theme="dark"] .identity-theme-toggle,html[data-theme="dark"] .identity-actions button:not(.primary),html[data-theme="dark"] .identity-more,html[data-theme="dark"] .identity-form input,html[data-theme="dark"] .identity-form select,html[data-theme="dark"] .identity-filters input,html[data-theme="dark"] .identity-filters select,html[data-theme="dark"] .identity-form fieldset,html[data-theme="dark"] .identity-table-wrap th,html[data-theme="dark"] .identity-dialog pre{background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .identity-form input,html[data-theme="dark"] .identity-form select,html[data-theme="dark"] .identity-filters input,html[data-theme="dark"] .identity-filters select,html[data-theme="dark"] .identity-form fieldset,html[data-theme="dark"] .identity-table-wrap th,html[data-theme="dark"] .identity-dialog pre{background:var(--surface-quiet)}
html[data-theme="dark"] .identity-link{background:var(--green);border-color:var(--green);color:#fff}html[data-theme="dark"] .identity-logout{color:var(--danger)}
html[data-theme="dark"] .identity-table-wrap button{background:var(--mint);color:#b9d3ff}html[data-theme="dark"] .identity-table-wrap button:last-child{background:#3a252b;color:#ffabb1}
@media(max-width:760px){.identity-header-actions{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:7px}.identity-theme-toggle{min-width:0}.identity-link,.identity-logout,.identity-theme-toggle{min-height:38px;padding-inline:10px}.theme-toggle-label{display:none}}

/* Roles use grouped, plain-language permissions instead of an undifferentiated code list. */
.identity-form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.identity-form-heading h3{margin-bottom:5px}.identity-form-heading .muted{max-width:720px;margin:0}.identity-selection{flex:none;white-space:nowrap;padding:7px 10px;border-radius:999px;background:var(--mint);color:var(--green);font-size:12px;font-weight:800}.role-access-summary{display:grid;gap:3px;min-width:210px}.role-access-summary strong{font-size:13px}.role-access-summary span{color:var(--muted);font-size:12px;line-height:1.35}.identity-form #rolePermissions{display:block;max-height:none;overflow:visible;padding:12px;background:var(--surface-quiet)}.identity-form #rolePermissions>legend{margin-bottom:10px}.permission-group{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.permission-group+.permission-group{margin-top:9px}.permission-group summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;cursor:pointer;list-style:none;user-select:none}.permission-group summary::-webkit-details-marker{display:none}.permission-group summary::after{content:'+';order:3;color:var(--muted);font-size:18px;font-weight:500}.permission-group[open] summary{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--mint) 45%,var(--surface))}.permission-group[open] summary::after{content:'–'}.permission-group-copy{display:grid;gap:2px}.permission-group-copy strong{font-size:13px}.permission-group-copy small{color:var(--muted);font-size:11px;font-weight:500}.identity-form .permission-group-all{display:flex;align-items:center;gap:6px;color:var(--green);font-size:11px;font-weight:800;white-space:nowrap}.identity-form .permission-group-all input{margin:0}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}.identity-form .permission-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:11px 12px;background:var(--surface);cursor:pointer;transition:background .14s ease}.identity-form .permission-option:hover{background:var(--surface-quiet)}.identity-form .permission-option input{margin-top:3px}.permission-option-copy{display:grid;gap:2px;min-width:0}.permission-option-copy strong{font-size:12px;line-height:1.25}.permission-option-copy small{color:var(--muted);font-size:11px;line-height:1.35;font-weight:500}.permission-option-copy code{width:max-content;max-width:100%;margin-top:3px;padding:2px 5px;border-radius:4px;background:var(--surface-quiet);color:var(--muted);font:10px ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden;text-overflow:ellipsis}.identity-form .permission-option:has(input:checked){background:color-mix(in srgb,var(--mint) 52%,var(--surface))}.identity-form .permission-option:has(input:focus-visible){outline:2px solid var(--green);outline-offset:-2px}@media(max-width:760px){.identity-form-heading{display:grid;gap:10px}.identity-selection{width:max-content}.permission-list{grid-template-columns:1fr}.permission-group summary{align-items:flex-start}.permission-group-copy small{max-width:220px}}

/* Separate management sections with a persistent navigation. */
.identity-context{margin:26px 0 20px}.identity-context h2{font-size:26px;margin:0 0 6px}.identity-context p{margin:0}
.identity-workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:start}
.identity-navigation{position:sticky;top:20px;display:grid;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.identity-navigation button{min-height:48px;text-align:left;padding:12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-weight:650;cursor:pointer}
.identity-navigation button:hover{background:var(--surface-quiet)}.identity-navigation button.active{background:var(--mint);color:var(--green)}
.identity-grid{grid-template-columns:minmax(0,1fr)}.identity-card[hidden],.identity-navigation button[hidden]{display:none!important}
.identity-app-menu summary{display:none}.identity-app-menu>.identity-header-actions{display:flex}.identity-app-menu{justify-self:end}
.identity-card:has(#userForm[hidden]) #userHeading,.identity-card:has(#userForm[hidden]) .identity-divider,.identity-card:has(#roleForm[hidden]) .identity-form-heading,.identity-card:has(#roleForm[hidden]) .identity-divider{display:none}
@media(max-width:1024px){
 .identity-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.identity-header-copy{display:none}
 .identity-app-menu{position:relative}.identity-app-menu summary{display:block;list-style:none;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-weight:700;cursor:pointer;min-height:44px}
 .identity-app-menu:not([open])>.identity-header-actions{display:none}
 .identity-app-menu[open]>.identity-header-actions{position:absolute;right:0;top:calc(100% + 8px);z-index:30;display:grid;grid-template-columns:1fr;min-width:200px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--bb-shadow)}
 .identity-workspace{grid-template-columns:minmax(0,1fr);gap:14px}.identity-navigation{position:static;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;gap:6px}.identity-navigation button{font-size:13px;text-align:center;overflow-wrap:anywhere}
 .identity-context{margin-top:20px}.identity-context h2{font-size:23px}.identity-card{padding:16px}.identity-form-wide,.identity-filters{grid-template-columns:1fr}
 .identity-form-heading{flex-wrap:wrap}.identity-actions{flex-wrap:wrap}.identity-actions button{flex:1;min-height:44px}
}

@media(max-width:1024px){.identity-header{display:flex!important}.identity-app-menu{margin-left:auto}.identity-header-actions .identity-theme-toggle{width:100%;justify-content:center}}
.identity-table-wrap button:last-child{color:var(--green);background:var(--mint)}
.identity-table-wrap button.identity-danger{color:var(--danger,#b02a37);background:color-mix(in srgb,var(--danger,#b02a37) 12%,var(--surface))}
