@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--primary:#4c69d8;--primary-hover:#354da8;--accent:#405bc4;--selected-surface:#eceffc;--focus-ring:#4c69d847;--ink:#202c4b;--muted:#586178;--subtle:#8791a4;--border:#e9edf4;--border-input:#cdd3de;--background:#f8fafc;--surface:#fff;--option-surface:#f1f3f7;--success:#287e68;--success-surface:#e7f7f0;--warning:#9a4d00;--warning-surface:#fff4e5;--danger:#b4233c;--danger-surface:#fff1f2;--danger-border:#fda4af;--danger-ink:#7f1d1d;--info:#405bc4;--info-surface:#eaf1fd;--text-display:28px;--lh-display:34px;--text-page:24px;--lh-page:30px;--text-headline:18px;--lh-headline:24px;--text-section:16px;--lh-section:22px;--text-body:14px;--lh-body:20px;--text-label:12px;--lh-label:18px;--text-overline:12px;--text-control-sm:13px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:8px;--r-tile:12px;--r-md:16px;--r-full:9999px;--control-h:40px;--control-h-sm:32px;--sidebar-w:256px;--topbar-h:64px;--sh-menu:0 8px 24px #202c4b1f;--sh-dialog:0 16px 40px #202c4b2e;--scrim:#202c4b5c;--disabled-opacity:.5;--color-primary:var(--primary);--color-primary-hover:var(--primary-hover);--color-background:var(--background);--color-surface:var(--surface);--color-text-primary:var(--ink);--color-text-muted:var(--muted);--color-supporting-blue:var(--accent);--color-supporting-gray:var(--muted);--color-supporting-blue-light:var(--primary);--color-error:var(--danger);--color-border:var(--border);--color-success:var(--success);--space-3:var(--sp-3);--space-5:var(--sp-5);--space-1:var(--sp-1);--space-2:var(--sp-2);--space-4:var(--sp-4);--space-6:var(--sp-6);--space-8:var(--sp-8);--radius-sm:var(--r-sm);--radius-md:var(--r-sm);--radius-lg:var(--r-md);--radius-full:var(--r-full)}*{box-sizing:border-box}html{font-size:var(--text-body);line-height:var(--lh-body);font-family:var(--font-sans);background:var(--color-background);color:var(--color-text-primary)}body{min-width:320px;min-height:100dvh;margin:0}button,input,select,textarea{font:inherit}a{color:inherit}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);background:var(--color-background);min-height:100dvh;display:grid}.sidebar{background:var(--surface);min-height:100dvh;color:var(--ink);border-right:1px solid var(--border);padding:var(--sp-5) var(--sp-3);flex-direction:column;align-self:start;display:flex;position:sticky;top:0}.sidebar__brand{align-items:center;gap:var(--space-2);font-size:var(--text-section);margin-bottom:var(--space-8);font-weight:700;display:flex}.sidebar__nav{gap:var(--space-1);display:grid}.sidebar__footer{gap:var(--space-2);padding-top:var(--sp-3);border-top:1px solid var(--border);margin-top:auto;display:grid}.profile-trigger--sidebar{color:#ffffffe6}.profile-trigger--sidebar:hover{background:#ffffff1f}.profile-trigger--sidebar .profile-trigger__avatar{color:#fff;background:#ffffff29}.profile-trigger--sidebar .profile-trigger__copy small{color:#ffffffa6}.sidebar__logout{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);min-height:44px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;padding:0 10px;font-weight:600;display:inline-flex}.sidebar__logout:hover{background:var(--background);color:var(--ink)}.sidebar__link{align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:0 var(--sp-3);border-radius:var(--radius-md);color:var(--ink);font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar__link:hover{background:var(--background)}.sidebar__link.active{background:var(--selected-surface);color:var(--accent);font-weight:600}.main-region{min-width:0}.topbar{min-height:var(--topbar-h);justify-content:space-between;align-items:center;gap:var(--space-4);padding:0 var(--space-8);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex}.topbar>div{gap:2px;display:grid}.topbar span{color:var(--color-supporting-gray);font-size:14px}.topbar__menu{display:none}.content{padding:var(--space-8)}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.page-header__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.page-header h1{margin:0 0 var(--space-1);font-size:var(--text-page);line-height:var(--lh-page)}.page-header p{color:var(--color-supporting-gray);margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);margin-bottom:var(--space-4)}.card__body{padding:var(--space-6)}.button{min-height:var(--control-h);justify-content:center;align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;border:1px solid #0000;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--color-primary-hover)}.button:disabled{opacity:.5;cursor:not-allowed}.button--secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--border-input)}.button--secondary:hover{background:var(--color-background);border-color:var(--subtle)}.icon-button{width:var(--control-h);height:var(--control-h);border-radius:var(--radius-md);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--option-surface);color:var(--ink)}.icon-button--danger:hover{color:var(--color-error);border-color:color-mix(in srgb, var(--color-error) 40%, var(--color-border))}.icon-button:disabled{opacity:.5;cursor:not-allowed}.input,.select{width:100%;min-height:var(--control-h);border:1px solid var(--border-input);border-radius:var(--radius-md);padding:0 var(--sp-3);color:var(--color-text-primary);background:var(--color-surface)}.textarea{min-height:96px;padding-top:var(--space-3);padding-bottom:var(--space-3);resize:vertical;line-height:1.5}.field{gap:var(--space-2);display:grid}.field label{font-weight:600;font-size:var(--text-body)}.form-grid{gap:var(--space-4);display:grid}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:760px}.table th,.table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:14px 16px}.table th{color:var(--color-supporting-gray);text-transform:uppercase;font-size:13px}.badge{min-height:var(--sp-6);border-radius:var(--radius-full);background:var(--option-surface);color:var(--muted);font-weight:700;font-size:var(--text-label);align-items:center;padding:0 10px;display:inline-flex}.badge--muted{background:var(--color-background);color:var(--color-supporting-gray)}.state{padding:var(--space-6);color:var(--color-supporting-gray)}.state strong{margin-bottom:var(--space-1);color:var(--color-text-primary);display:block}.state p,.muted{color:var(--color-supporting-gray);margin:0;line-height:1.6}.metric-grid{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metric{align-items:center;gap:var(--space-4);display:flex}.metric svg{color:var(--color-supporting-blue)}.metric span{color:var(--color-supporting-gray);font-size:14px;display:block}.metric strong{margin-top:2px;font-size:28px;line-height:1;display:block}.section-heading{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.section-heading h2{margin:0;font-size:18px}.auth-page{min-height:100dvh;padding:var(--space-4);background:linear-gradient(135deg, #506ee414, #6fccd814), var(--color-background);place-items:center;display:grid}.auth-panel{width:min(100%,420px);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.auth-panel__brand{align-items:center;gap:var(--space-2);color:var(--color-supporting-blue);font-weight:700;display:flex}.auth-panel h1{margin:var(--space-6) 0 var(--space-2)}.auth-panel p{margin:0 0 var(--space-6);color:var(--color-supporting-gray);line-height:1.6}@media (width<=1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;padding:var(--space-4);position:static}.sidebar__brand{margin-bottom:var(--space-4)}.sidebar__nav{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:var(--space-4)}.topbar__menu{display:inline-flex}.content{padding:var(--space-4)}.page-header{flex-direction:column;align-items:flex-start}}@media (width<=560px){.sidebar__nav,.metric-grid{grid-template-columns:1fr}.topbar{flex-wrap:wrap;align-items:flex-start}.topbar>div{order:3;width:100%}.topbar>.topbar__actions{order:initial;width:auto}.auth-panel{padding:var(--space-6)}}.count-pill{border-radius:var(--radius-full);min-width:32px;min-height:28px;color:var(--color-supporting-blue);font-variant-numeric:tabular-nums;background:#e8edff;justify-content:center;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}@media (width<=560px){.assignment-controls{flex-direction:column;align-items:stretch}.assignment-controls .field{max-width:none}}.state--error{color:var(--color-error)}.eyebrow{margin-bottom:var(--space-2);color:var(--color-supporting-gray);text-transform:uppercase;font-size:13px;font-weight:700}.table-link:hover{text-decoration:underline}.form-layout{gap:var(--space-4);display:grid}.form-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.field-help{color:var(--color-supporting-gray);font-size:13px;line-height:1.5}.search-field,.filter-field{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:44px;padding:0 var(--space-3);display:inline-flex}.search-field{flex:1;min-width:min(320px,100%)}.search-field input,.filter-field select{min-width:0;color:var(--color-text-primary);background:0 0;border:0;outline:0}.filter-field span{color:var(--color-supporting-gray);font-size:13px;font-weight:700}.import-toolbar{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.status-badge{gap:6px}.status-badge--success{color:#126b3a;background:#e8f6ee}.status-badge--warning{color:#7a4d00;background:#fff4d8}.status-badge--error{color:var(--color-error);background:#ffe9e9}.status-badge--info{color:var(--color-supporting-blue);background:#eef1ff}.skeleton-list{gap:var(--space-3);display:grid}.skeleton-row{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-background), color-mix(in srgb, var(--color-supporting-gray) 12%, var(--color-background)), var(--color-background));background-size:200% 100%;min-height:56px;animation:1.4s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.pagination-controls,.primary-action-row{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);display:flex}.pagination-controls>div{gap:var(--space-2);display:flex}.detail-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);display:grid}.definition-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.definition-grid div{min-width:0}.definition-grid dt{color:var(--color-supporting-gray);font-size:13px;font-weight:700}.definition-grid dd{overflow-wrap:anywhere;margin:4px 0 0}.inline-alert{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);line-height:1.5;display:flex}.inline-alert--success{background:var(--success-surface);color:var(--success)}.inline-alert--warning{background:var(--warning-surface);color:var(--warning)}.inline-alert--error{color:var(--color-error);background:#fff0f0}.inline-alert--info{background:var(--info-surface);color:var(--info)}.file-slot-list,.timeline,.issue-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.file-slot{justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-border);display:flex}.file-slot>div:first-child{gap:4px;min-width:0;display:grid}.file-slot span{color:var(--color-supporting-gray);overflow-wrap:anywhere}.file-slot__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.file-slot progress{width:160px;height:10px}.timeline li{padding-left:var(--space-4);border-left:3px solid var(--color-border);gap:3px;display:grid}.timeline span{color:var(--color-supporting-gray);font-size:14px}.issue-list li{align-items:flex-start;gap:var(--space-2);color:var(--color-supporting-gray);line-height:1.55;display:flex}.issue-list svg{color:currentColor;flex:none;margin-top:3px}.issue-list--compact{margin-top:var(--space-3)}.preview-workspace{gap:var(--space-4);display:grid}.preview-header{align-items:center;gap:var(--space-4);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.preview-header h1{margin:0;font-size:24px}.preview-header p{margin:var(--space-1) 0 0;color:var(--color-supporting-gray)}.preview-header__mobile-actions{gap:var(--space-2);display:none}.preview-layout{gap:var(--space-4);grid-template-columns:260px minmax(0,1fr) 320px;align-items:start;display:grid}.preview-pane,.reading-canvas{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.preview-pane{top:var(--space-4);padding:var(--space-4);max-height:calc(100dvh - 160px);position:sticky;overflow:auto}.preview-pane h2,.drawer h2{margin:0 0 var(--space-3);font-size:18px}.toc-list{gap:var(--space-2);display:grid}.toc-list a{border-radius:var(--radius-md);min-height:36px;color:var(--color-text-primary);align-items:center;text-decoration:none;display:flex}.toc-list a:hover{background:var(--color-background)}.reading-canvas{padding:clamp(var(--space-4), 4vw, var(--space-8))}.preview-cover{margin:0 0 var(--space-6);text-align:center}.preview-cover img,.preview-section img{border-radius:var(--radius-md);max-width:100%;height:auto}.preview-section{padding:var(--space-6) 0;border-top:1px solid var(--color-border)}.preview-section:first-child{border-top:0}.preview-section h2{margin:0 0 var(--space-3);font-size:22px}.preview-prose,.preview-section p{line-height:1.75}.preview-section figure{margin:var(--space-4) 0}.preview-section figcaption,.preview-cover figcaption{margin-top:var(--space-2);color:var(--color-supporting-gray);font-size:14px}.sticky-action-bar{bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex;position:sticky;box-shadow:0 12px 28px #0f172a1f}.sticky-action-bar span{color:var(--color-supporting-gray)}.drawer-backdrop{z-index:1000;background:#0f172a5c;display:none;position:fixed;inset:0}.drawer{width:min(88vw,380px);height:100%;padding:var(--space-4);background:var(--color-surface);margin-left:auto;overflow:auto}.drawer__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}@media (width<=1100px){.detail-grid,.preview-layout{grid-template-columns:1fr}.preview-pane--toc,.preview-pane--details{display:none}.preview-header{grid-template-columns:auto minmax(0,1fr)}.preview-header__mobile-actions{flex-wrap:wrap;grid-column:1/-1;display:flex}.drawer-backdrop{display:block}}@media (width<=640px){.import-toolbar,.file-slot,.sticky-action-bar,.pagination-controls{flex-direction:column;align-items:stretch}.search-field,.filter-field,.file-slot__actions,.sticky-action-bar .button,.pagination-controls .button{width:100%}.definition-grid,.preview-header{grid-template-columns:1fr}}.toolbar{gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.login-card{width:min(540px,100%)}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;position:static}.sidebar__nav{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.content,.topbar{padding-left:var(--space-4);padding-right:var(--space-4)}.page-header{flex-direction:column;align-items:stretch}}.topbar__actions{align-items:center;gap:var(--space-2);display:flex}.topbar>.topbar__actions{margin-left:auto;display:flex}.profile-trigger{border-radius:var(--radius-md);align-items:center;gap:10px;min-height:44px;padding:4px 10px 4px 4px;text-decoration:none;display:inline-flex}.profile-trigger:hover{background:var(--color-background)}.profile-trigger__avatar,.profile-avatar{color:var(--color-supporting-blue);background:#e8edff;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.profile-trigger__avatar{width:34px;height:34px}.profile-trigger__copy{gap:1px;display:grid}.profile-trigger__copy strong{font-size:13px}.profile-trigger__copy small{color:var(--color-supporting-gray);font-size:11px}.button--danger:hover{color:var(--color-error);border-color:var(--color-error)}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-layout,.form-layout--user{max-width:880px}.form-section{gap:var(--space-5);display:grid}.form-section__heading{justify-content:space-between;gap:var(--space-4);display:flex}.form-section__heading h2{margin:0;font-size:20px}.form-section+.role-assignment-picker{margin-top:var(--space-8)}.form-actions{margin-top:var(--space-4);padding-top:var(--sp-5);border-top:1px solid var(--border);justify-content:flex-end;display:flex}.form-helper{margin:var(--space-6) 0 0;color:var(--color-supporting-gray);font-size:14px}.form-helper--notice{border-radius:var(--radius-md);color:var(--color-text-primary);background:#f5f7ff;border:1px solid #d9e2ff;padding:12px}.permission-picker{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.permission-picker h2{margin:0;font-size:18px}.permission-checklist{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.permission-groups{gap:var(--space-4);display:grid}.permission-group{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.permission-group__header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);color:var(--color-text-primary);display:flex}.permission-group__header span{color:var(--color-supporting-gray);font-size:12px;font-weight:600}.permission-groups--summary{min-width:min(100%,480px)}.permission-summary-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.permission-summary{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-supporting-gray);padding:6px 9px;font-size:12px}.permission-check{align-items:flex-start;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;min-height:56px;padding:12px;display:flex}.permission-check:hover{border-color:var(--color-supporting-blue-light);background:#fafbff}.permission-check input{width:18px;height:18px;accent-color:var(--color-supporting-blue);margin:2px 0 0}.permission-check span{gap:3px;display:grid}.permission-check small{color:var(--color-supporting-gray);font-size:12px}.role-assignment-picker{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border);display:grid}.role-assignment-picker h2{margin:0;font-size:18px}.role-assignment-list{gap:var(--space-3);display:grid}.role-assignment-builder{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.role-assignment-picker>.role-assignment-builder{order:3}.role-assignment-builder__heading{gap:4px;display:grid}.role-assignment-builder__heading span{color:var(--color-supporting-gray);font-size:13px}.role-assignment-builder__controls{align-items:end;gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr)) auto;display:grid}.role-assignment-picker>.role-assignment-list__heading{order:1}.role-assignment-picker>.role-assignment-list{order:2}.role-assignment-list__heading{color:var(--color-text-primary);font-size:14px;font-weight:700}.role-assignment-global{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px;color:var(--color-supporting-gray);align-items:center;padding:0 12px;font-size:14px;display:flex}.role-assignment-empty{padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;margin:0}.role-assignment-row{align-items:center;gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(190px,280px);display:grid}.role-assignment-row__main{margin:0}.role-assignment-row__scope,.role-assignment-row__scope .select{width:100%}.user-role-summary{gap:var(--space-2);max-width:680px;display:grid}.user-role-summary__item{justify-content:space-between;gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);padding:10px 12px;display:flex}.user-role-summary__item span{color:var(--color-supporting-gray);text-align:right;font-size:13px}.form-error{color:var(--color-error);margin:0;font-size:14px}.table-link{color:var(--color-text-primary);font-weight:700;text-decoration:none}.table-link:hover{color:var(--color-supporting-blue);text-decoration:underline}.table-actions{gap:var(--space-2);display:flex}.search-field{align-items:center;gap:var(--space-2);min-width:min(360px,100%);min-height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-supporting-gray);display:flex}.search-field input{min-width:0;color:var(--color-text-primary);background:0 0;border:0;outline:0;flex:1}.toolbar__meta{color:var(--color-supporting-gray);font-size:14px}.eyebrow{margin:0 0 var(--space-2);color:var(--color-supporting-blue);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.detail-grid{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.detail-grid dt{color:var(--color-supporting-gray);margin-bottom:var(--space-1);font-size:13px;font-weight:700}.detail-grid dd{overflow-wrap:anywhere;margin:0;font-weight:600}.detail-grid__wide{grid-column:1/-1}.login-page{min-height:100dvh;padding:clamp(var(--space-4), 4vw, var(--space-8));background:linear-gradient(135deg, #506ee414, #168a5f0f), var(--color-background);place-items:center;display:grid}.login-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:minmax(280px,.85fr) minmax(360px,1fr);width:min(960px,100%);min-height:620px;display:grid;overflow:hidden;box-shadow:0 24px 80px #202c4b1f}.login-card__visual{justify-content:space-between;gap:var(--space-8);border-right:1px solid var(--color-border);background:#f3f6ff;flex-direction:column;padding:42px;display:flex}.login-card__form-panel{min-width:0;padding:clamp(var(--space-6), 5vw, 52px);flex-direction:column;justify-content:center;display:flex}.login-brand{align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-weight:700;display:flex}.login-brand__mark{background:var(--color-primary);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.login-visual-copy{gap:var(--space-3);display:grid}.login-visual-copy p{color:var(--color-supporting-blue);text-transform:uppercase;margin:0;font-size:13px;font-weight:800}.login-visual-copy strong{max-width:320px;color:var(--color-text-primary);font-size:34px;line-height:1.15;display:block}.login-visual-list{gap:var(--space-3);display:grid}.login-visual-list span{align-items:center;gap:var(--space-2);width:fit-content;min-height:44px;padding:0 var(--space-4);border:1px solid color-mix(in srgb, var(--color-supporting-blue) 18%, var(--color-border));border-radius:var(--radius-md);color:var(--color-text-primary);background:#ffffffb8;font-weight:700;display:inline-flex}.login-card__intro{margin:0 0 var(--space-6)}.login-card__intro h1{margin:0 0 var(--space-2);font-size:clamp(30px,4vw,40px);line-height:1.15}.login-card__intro p:last-child{color:var(--color-supporting-gray);margin:0;line-height:1.6}.login-assurance{align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);border-radius:var(--radius-md);color:var(--color-success);background:#f1fbf7;border:1px solid #cfeee1;padding:12px;font-size:13px;font-weight:700;display:flex}.login-form{gap:var(--space-4);display:grid}.segmented{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-background);grid-template-columns:1fr 1fr;display:grid}.segmented button{min-height:44px;color:var(--color-supporting-gray);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:inline-flex}.segmented button:hover{color:var(--color-text-primary)}.segmented button.active{background:var(--color-surface);color:var(--color-text-primary);box-shadow:0 2px 8px #202c4b14}.login-form .field{gap:10px}.login-form .field>span{color:var(--color-text-primary);font-size:14px;font-weight:800}.login-form .input{border-color:color-mix(in srgb, var(--color-border) 78%, var(--color-supporting-gray));background:#fff;min-height:52px}.login-submit{width:100%;min-height:52px;padding:0 var(--space-4) 0 var(--space-6);border-radius:var(--radius-md);touch-action:manipulation;justify-content:space-between;font-size:15px}.login-submit svg{flex:none}.login-submit span{overflow-wrap:anywhere;min-width:0}.otp-heading{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);display:flex}.otp-heading p{color:var(--color-supporting-gray);margin:4px 0 0;font-size:14px}.otp-icon{color:var(--color-success);background:#f1fbf7;border-radius:50%;padding:10px;display:inline-flex}.breadcrumbs{gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--text-overline);color:var(--muted);text-transform:uppercase;flex-wrap:wrap;font-weight:700;display:flex}.breadcrumbs a{color:var(--accent);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs span,.page-header h1{overflow-wrap:anywhere}.page-header p{max-width:64ch}.page-header{align-items:flex-start}.sidebar__brand{font-size:var(--text-section);line-height:var(--lh-section);padding:0 var(--sp-3)}.sidebar__mark{width:var(--sp-8);height:var(--sp-8);background:var(--primary);color:var(--surface);border-radius:var(--r-sm);flex:none;place-items:center;display:grid}.sidebar__link svg{color:var(--muted)}.sidebar__link.active svg{color:var(--accent)}.sidebar__link.active:before{content:"";left:calc(-1 * var(--sp-3));top:var(--sp-2);bottom:var(--sp-2);background:var(--primary);width:3px;position:absolute}.app-shell svg,.action-menu svg,.confirm-dialog svg{stroke-width:1.75px;flex-shrink:0}.app-shell .topbar{height:var(--topbar-h);flex-wrap:nowrap;align-items:center}.app-shell .topbar>div{order:initial;width:auto;min-width:0}.app-shell .topbar .profile-trigger__avatar{background:var(--primary);width:36px;height:36px;color:var(--surface);flex:none}.profile-trigger__avatar span{color:inherit}.app-shell .profile-trigger__copy strong{font-size:var(--text-body);line-height:var(--lh-label)}.app-shell .profile-trigger__copy small{font-size:var(--text-label);line-height:var(--lh-label)}.app-shell .profile-trigger{gap:var(--sp-2);padding:var(--sp-1) var(--sp-2)}.profile-trigger__copy{min-width:0}.profile-trigger__copy strong{text-overflow:ellipsis;white-space:nowrap;max-width:24ch;overflow:hidden}.navigation-dialog{width:var(--sidebar-w);background:var(--surface);border:0;max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0}.navigation-dialog::backdrop,.confirm-dialog::backdrop{background:var(--scrim)}.navigation-close{margin:var(--sp-2) var(--sp-2) 0 auto;display:flex}.navigation-dialog .sidebar__nav{grid-template-columns:1fr}.navigation-dialog .sidebar{min-height:calc(100dvh - var(--control-h) - var(--sp-2))}.button--danger-outline{color:var(--danger);border-color:var(--border-input);background:var(--surface)}.button--danger-outline:hover{background:var(--danger-surface);border-color:var(--danger-border)}.button--danger{background:var(--danger);color:var(--surface)}.button--danger:hover{background:var(--danger-ink);color:var(--surface)}.button--text{color:var(--accent);background:0 0}.button--text:hover{background:var(--selected-surface)}.button--small{min-height:var(--control-h-sm);padding-inline:var(--sp-3);font-size:var(--text-control-sm)}.resource-page .assignment-row .icon-button,.resource-page .role-assignment-row .icon-button{width:var(--control-h-sm);height:var(--control-h-sm);flex-shrink:0}.button:disabled,.icon-button:disabled{opacity:var(--disabled-opacity);pointer-events:none}.button svg,.icon-button svg{width:var(--sp-5);height:var(--sp-5)}.button .spinner{width:var(--sp-4);height:var(--sp-4)}.spinner{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.badge{gap:var(--sp-1);white-space:nowrap;flex-shrink:0}.badge--success{color:var(--success);background:var(--success-surface)}.badge--warning{color:var(--warning);background:var(--warning-surface)}.badge--neutral{color:var(--muted);background:var(--option-surface)}.badge-dot{border-radius:var(--r-full);background:currentColor;width:6px;height:6px}.input:hover,.select:hover{border-color:var(--subtle)}.input:focus-visible,.select:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.input:disabled,.select:disabled,.input[readonly]{color:var(--muted);background:var(--option-surface);border-color:var(--border);cursor:not-allowed}.input::placeholder{color:var(--muted)}.required-mark{color:var(--danger)}.field-error{align-items:center;gap:var(--sp-1);color:var(--danger);font-size:var(--text-label);line-height:var(--lh-label);display:flex}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger)}.input[aria-invalid=true]:focus-visible,.select[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px var(--danger-surface)}.field-help{font-size:var(--text-label);line-height:var(--lh-label);color:var(--muted);font-weight:500}.select-control{width:100%;min-width:0;display:block;position:relative}.select-control .select{appearance:none;padding-right:calc(var(--sp-3) * 2 + var(--sp-4))}.select-control>svg{right:var(--sp-3);width:var(--sp-4);height:var(--sp-4);color:var(--muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.field label>.field-help{margin-inline-start:var(--sp-1)}.resource-page .form-grid{gap:var(--sp-5)}.resource-page .section-heading h2{font-size:var(--text-headline);line-height:var(--lh-headline)}.resource-page .form-helper,.resource-page .form-error{font-size:var(--text-body);line-height:var(--lh-body)}.resource-page .role-assignment-builder__heading span,.resource-page .permission-check small,.resource-page .permission-group__header span{font-size:var(--text-label);line-height:var(--lh-label)}.resource-page .permission-check span,.resource-page .assignment-row>div{gap:var(--sp-1)}.resource-page .assignment-row{padding-block:var(--sp-3)}.resource-page .inline-alert{gap:var(--sp-3);line-height:var(--lh-body)}.resource-page .form-section__heading h2,.resource-page .role-assignment-picker h2{font-size:var(--text-section);line-height:var(--lh-section)}.resource-page .form-section{gap:var(--sp-4)}.resource-page .form-helper--notice{background:var(--info-surface);border-color:var(--border);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5)}.resource-page .permission-group,.resource-page .role-assignment-builder{padding:var(--sp-4) 0;background:0 0;border:0;border-radius:0}.resource-page .permission-check{border-radius:var(--r-sm);padding:var(--sp-2);border:0}.resource-page .permission-check input{appearance:none;border:1.5px solid var(--subtle);border-radius:var(--sp-1);background:var(--surface);cursor:pointer;flex:none;width:18px;height:18px;position:relative}.resource-page .permission-check input:checked{background:var(--primary);border-color:var(--primary)}.resource-page .permission-check input:checked:after{content:"";border:solid var(--surface);border-width:0 2px 2px 0;position:absolute;inset:2px 5px 4px;transform:rotate(45deg)}.resource-page .permission-check input:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}@media (forced-colors:active){.resource-page .permission-check input{appearance:auto}.resource-page .permission-check input:after{display:none}}.resource-detail-section h2{font-size:var(--text-headline);line-height:var(--lh-headline);margin:0}.resource-detail-section>p{margin:var(--sp-1) 0 var(--sp-4)}.resource-page .permission-summary{padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);font-size:var(--text-label);line-height:var(--lh-label)}.resource-page .user-role-summary__item{padding:var(--sp-3) 0;border:0;border-top:1px solid var(--border);border-radius:0}.resource-page .user-role-summary__item span{font-size:var(--text-label);line-height:var(--lh-label)}.resource-page .role-assignment-global{min-height:var(--control-h);padding-inline:var(--sp-3);font-size:var(--text-body)}.resource-page .permission-picker h2{font-size:var(--text-section);line-height:var(--lh-section)}.resource-page .permission-check:hover{background:var(--background)}.resource-page .role-assignment-row{border-top:1px solid var(--border);padding:var(--sp-3) 0;grid-template-columns:minmax(0,1fr) auto}.role-assignment-row>div{gap:var(--sp-1);overflow-wrap:anywhere;display:grid}.role-assignment-row>div>span{color:var(--muted);font-size:var(--text-label)}.resource-page .role-assignment-picker>*{order:initial}.resource-page .toolbar{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);gap:var(--sp-3);margin:0}.resource-page>.card>.card__body:has(>.toolbar){padding:0}.resource-page .card:has(.toolbar){overflow:hidden}.resource-page .search-field{min-width:0;max-width:100%;min-height:var(--control-h);padding:0 var(--sp-3);border-color:var(--border-input);flex:0 320px}.resource-page .search-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.resource-page .search-field svg{width:var(--sp-4);height:var(--sp-4)}.resource-page .toolbar__meta{font-size:var(--text-label);margin-left:auto}.resource-page .table{min-width:560px}.resource-page .table th{height:44px;padding:0 var(--sp-5);font-size:var(--text-overline);color:var(--muted);background:var(--option-surface);vertical-align:middle;font-weight:700}.resource-page .table td{height:60px;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);vertical-align:middle;border-bottom:0}.resource-page .table tbody tr:hover{background:var(--background)}.resource-page .table td:last-child{white-space:nowrap;width:1%}.resource-page .table-actions{justify-content:flex-end}.resource-page .table-link{font-weight:600}.cell-sub{color:var(--muted);font-size:var(--text-label);line-height:var(--lh-label);margin-top:var(--sp-1);overflow-wrap:anywhere;display:block}.resource-page .detail-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.resource-page .detail-grid>div{min-width:0;padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.resource-page .card:has(>.card__body>.detail-grid){background:0 0;border:0}.resource-page .card__body:has(>.detail-grid){padding:0}.resource-page .detail-grid dt{font-size:var(--text-overline);text-transform:uppercase}.resource-page .detail-grid dd{font-size:var(--text-headline);line-height:var(--lh-headline);font-weight:700}.resource-page .detail-grid__wide dd{font-size:var(--text-body)}.resource-page .assignment-controls .field{max-width:420px}.resource-page .assignment-row>div{overflow-wrap:anywhere;flex:1;min-width:0}.resource-page .assignment-row span{font-size:var(--text-label)}.assignment-icon{width:var(--sp-10);height:var(--sp-10);background:var(--selected-surface);color:var(--accent);border-radius:var(--r-tile);flex:none;place-items:center;display:grid}.assignment-icon svg{width:var(--sp-5);height:var(--sp-5)}.resource-page .assignment-icon{color:var(--accent)}.resource-page .count-pill{color:var(--ink);background:0 0;justify-content:flex-start;padding:0}.empty-state{align-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-10) var(--sp-6);flex-direction:column;display:flex}.empty-state strong{font-size:var(--text-section);line-height:var(--lh-section)}.empty-state__icon{width:var(--sp-12);height:var(--sp-12);border-radius:var(--r-tile);background:var(--option-surface);place-items:center;display:grid}.inline-alert--error{background:var(--danger-surface);color:var(--danger-ink);border-color:var(--danger-border)}.inline-alert svg{width:var(--sp-5);height:var(--sp-5);flex:none}.inline-alert p{margin:var(--sp-1) 0 0}.confirm-dialog{width:440px;max-width:calc(100% - var(--sp-8));padding:var(--sp-6);border-radius:var(--r-md);background:var(--surface);color:var(--ink);box-shadow:var(--sh-dialog);border:0}.confirm-dialog h2{font-size:var(--text-headline);line-height:var(--lh-headline);overflow-wrap:anywhere;margin:0}.confirm-dialog>p{margin:var(--sp-2) 0 var(--sp-6);color:var(--muted)}.dialog-actions{justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;display:flex}.action-menu{z-index:10;min-width:180px;padding:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-menu);position:fixed}.action-menu [role=menuitem]{align-items:center;gap:var(--sp-2);width:100%;min-height:36px;padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.action-menu [role=menuitem]:hover{background:var(--background)}.action-menu .danger{color:var(--danger)}.action-menu .danger:hover{background:var(--danger-surface)}.action-menu svg{width:var(--sp-4);height:var(--sp-4)}.action-menu [role=separator]{border-top:1px solid var(--border);margin:var(--sp-1) 0}@media (width>=900px){.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr)}.app-shell .topbar__menu{display:none}.app-shell .sidebar--desktop{min-height:100dvh;position:sticky}}@media (width<=899px){.sidebar--desktop{display:none}.app-shell .topbar__menu{flex:none;display:inline-flex}.resource-page .form-grid--two,.resource-page .role-assignment-builder__controls{grid-template-columns:1fr}.app-shell .topbar{padding:0 var(--sp-4)}}.otp-actions{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.text-button{min-height:44px;color:var(--color-supporting-blue);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:700;display:inline-flex}.text-button:disabled{color:var(--color-supporting-gray);cursor:not-allowed}.login-footer{margin:var(--space-6) 0 0;color:var(--color-supporting-gray);text-align:center;font-size:13px;line-height:1.6}.assignment-controls{align-items:flex-end;gap:var(--space-4);display:flex}.assignment-controls .field{flex:1;max-width:520px}.assignment-list{gap:var(--space-2);margin-top:var(--space-6);display:grid}.assignment-row{justify-content:space-between;align-items:center;gap:var(--space-4);border-top:1px solid var(--color-border);padding:12px 0;display:flex}.assignment-row>div{gap:3px;display:grid}.assignment-row span{color:var(--color-supporting-gray);font-size:13px}@media (width<=560px){.form-grid--two,.detail-grid{grid-template-columns:1fr}.app-shell .topbar{height:auto;min-height:var(--topbar-h);padding-block:var(--sp-2);gap:var(--sp-2);flex-wrap:wrap}.app-shell .topbar__workspace{flex:1}.app-shell .topbar__actions{justify-content:flex-end;width:100%}.profile-trigger__copy strong,.profile-trigger__copy small{white-space:normal;overflow-wrap:anywhere;max-width:none}.assignment-controls{flex-direction:column;align-items:stretch}.assignment-controls .field{max-width:none}.permission-checklist{grid-template-columns:1fr}.role-assignment-row{gap:var(--space-2);grid-template-columns:1fr}.role-assignment-builder,.role-assignment-builder__controls{grid-template-columns:1fr}.user-role-summary__item{flex-direction:column;align-items:flex-start;gap:4px}.user-role-summary__item span{text-align:left}}@media (width<=820px){.login-card{grid-template-columns:1fr;min-height:auto}.login-card__visual{padding:var(--space-6);border-right:0;border-bottom:1px solid var(--color-border)}.login-visual-copy,.login-visual-list{display:none}}@media (width<=560px){.login-page{padding:var(--space-4);place-items:stretch stretch}.login-card{border-radius:var(--radius-md);width:100%}.login-card__form-panel,.login-card__visual{padding:var(--space-6)}.login-card__intro h1{font-size:30px}.otp-actions{flex-direction:column}.text-button{justify-content:center}}
