:root{--bg:#f4f5f7;--ink:#17202a;--muted:#66717e;--line:#dfe3e8;--blue:#174b84;--blue-soft:#eaf1f8;--green:#19744b;--green-soft:#e7f5ed;--amber:#9a6013;--amber-soft:#fff3d8;--red:#a63d31;--red-soft:#fbeae7;color:var(--ink);background:var(--bg);font-family:Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box;letter-spacing:0}[hidden]{display:none!important}body{background:var(--bg);min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:18px;min-height:70px;padding:10px max(18px,50vw - 590px);display:flex}.brand,.top-actions{align-items:center;gap:11px;display:flex}.brand>a{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);border-radius:6px;place-items:center;font-size:21px;text-decoration:none;display:grid}.brand small,.overline{color:#6f7984;text-transform:uppercase;font-size:9px;font-weight:800}.brand h1{margin:1px 0 0;font-size:19px}.top-actions span{color:var(--muted);font-size:11px}.tabs{z-index:5;border-bottom:1px solid var(--line);background:#fff;justify-content:center;display:flex;position:sticky;top:0}.tabs button{min-height:48px;color:var(--muted);background:#fff;border:0;border-bottom:2px solid #0000;padding:0 22px;font-size:12px;font-weight:750}.tabs button.active{border-color:var(--blue);color:var(--blue)}main{width:min(1180px,100% - 28px);margin:auto;padding:30px 0 70px}.panel{border:1px solid var(--line);background:#fff;border-radius:7px;box-shadow:0 6px 22px #1926320d}.state{color:var(--muted);text-align:center;padding:38px 20px}.state h2,.state h3{color:var(--ink)}.heading{justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px;display:flex}.heading h2{margin:3px 0 6px;font-size:27px}.heading p:last-child{color:var(--muted);margin:0;font-size:11px}.button{min-height:42px;color:var(--blue);background:#fff;border:1px solid #b9c6d2;border-radius:6px;justify-content:center;align-items:center;padding:8px 13px;font-weight:750;text-decoration:none;display:inline-flex}.button.primary{border-color:var(--blue);background:var(--blue);color:#fff}.button.danger{color:var(--red)}.button:disabled{cursor:not-allowed;opacity:.5}.search{margin-bottom:10px;display:block}.search input,input,select,textarea{background:#fff;border:1px solid #c9d2da;border-radius:6px;outline:none;width:100%;min-height:46px;padding:10px 12px}.search input{min-height:52px}.list-meta{color:var(--muted);margin:0 2px 9px;font-size:10px}.user-list,.assignment-list,.audit-list{gap:9px;display:grid}.user-row{border:1px solid var(--line);background:#fff;border-radius:7px;grid-template-columns:minmax(240px,1.2fr) minmax(220px,1fr) 150px 90px;align-items:center;gap:14px;padding:14px 16px;display:grid}.identity{align-items:center;gap:10px;min-width:0;display:flex}.identity>span{background:var(--blue-soft);width:42px;height:42px;color:var(--blue);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.identity>div{gap:2px;min-width:0;display:grid}.identity small{color:var(--muted);text-overflow:ellipsis;font-size:10px;overflow:hidden}.role-tags{flex-wrap:wrap;gap:4px;display:flex}.role-tags span{background:var(--blue-soft);color:var(--blue);border-radius:999px;padding:4px 7px;font-size:9px;font-weight:750}.role-tags i{color:var(--muted);font-size:10px}.account-states{gap:3px;font-size:10px;display:grid}.account-states b{color:var(--green)}.account-states b.disabled,.account-states span.rejected{color:var(--red)}.account-states span.pending{color:var(--amber)}.event-select{max-width:620px;margin-bottom:16px}.assignment-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:16px;display:grid}.assignment-form{gap:14px;padding:19px;display:grid}.assignment-form h3{margin:0}.assignment-row{border:1px solid var(--line);background:#fff;border-radius:7px;grid-template-columns:minmax(0,1fr) 130px 70px;align-items:center;gap:12px;padding:14px;display:grid}.assignment-row>div{gap:2px;min-width:0;display:grid}.assignment-row small{color:var(--muted);text-overflow:ellipsis;font-size:10px;overflow:hidden}.assignment-row>span{color:var(--blue);font-size:11px;font-weight:750}.audit-filters{grid-template-columns:1.2fr 1fr 1fr 150px 150px auto;gap:10px;margin-bottom:14px;padding:14px;display:grid}.audit-row{border-bottom:1px solid var(--line);grid-template-columns:130px minmax(0,1fr) 210px;align-items:center;gap:14px;padding:13px 4px;display:grid}.audit-row time,.audit-row small,.audit-row span{color:var(--muted);font-size:10px}.audit-row>div{gap:3px;display:grid}.pagination{justify-content:center;align-items:center;gap:14px;margin-top:18px;display:flex}.pagination span{color:var(--muted);font-size:11px}.error-banner{background:var(--red-soft);color:var(--red);border:1px solid #e0aaa3;border-radius:6px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px;padding:13px;display:flex}.error-banner div{gap:2px;display:grid}.error-banner span{font-size:10px}dialog{border:0;border-radius:8px;width:min(690px,100% - 28px);max-height:calc(100vh - 28px);padding:0;overflow:auto;box-shadow:0 24px 70px #131d274d}dialog::backdrop{background:#141c258f}dialog form{gap:16px;padding:22px;display:grid}.dialog-head,.dialog-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.dialog-head{border-bottom:1px solid var(--line);padding-bottom:13px}.dialog-head h2{margin:2px 0 0}.icon-button{border:1px solid var(--line);background:#fff;border-radius:5px;place-items:center;width:40px;height:40px;font-size:23px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}label{color:#3e4955;gap:6px;font-size:11px;font-weight:700;display:grid}.role-options{border:1px solid var(--line);border-radius:6px;padding:13px}.role-options legend{color:var(--muted);padding:0 5px;font-size:10px}.role-options>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.role-options label{background:#f5f7f9;border-radius:5px;align-items:start;gap:8px;padding:8px;display:flex}.role-options input{flex:none;width:18px;min-height:18px}.role-options label span{gap:2px;display:grid}.role-options small{color:var(--muted);font-size:8px;font-weight:400}.warning{border-left:3px solid var(--amber);background:var(--amber-soft);color:#765019;margin:0;padding:9px 11px;font-size:10px}.form-error{background:var(--red-soft);color:var(--red);margin:0;padding:9px 11px;font-size:10px}.dialog-actions{border-top:1px solid var(--line);justify-content:flex-end;padding-top:14px}.toast{z-index:20;background:var(--ink);color:#fff;border-radius:6px;padding:13px 17px;font-size:12px;position:fixed;bottom:16px;right:16px}.toast[data-error=true]{background:var(--red)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=760px){.topbar{min-height:64px;padding:9px 12px}.brand small,.top-actions span{display:none}.top-actions{gap:5px}.top-actions .button{min-height:44px;padding:7px 9px;font-size:11px}.tabs{justify-content:flex-start;overflow-x:auto}.tabs button{min-width:max-content;min-height:50px;padding:0 16px}main{width:calc(100% - 24px);padding-top:22px}.heading{flex-direction:column;align-items:stretch}.heading h2{font-size:24px}.heading .button{width:100%;min-height:48px}.user-row{grid-template-columns:1fr auto;gap:10px;padding:13px}.identity,.role-tags{grid-column:1/-1}.account-states{align-self:center}.user-row>.button{min-height:44px}.assignment-layout{grid-template-columns:1fr}.assignment-form .button{min-height:48px}.assignment-row{grid-template-columns:1fr auto}.assignment-row>span{grid-row:2}.assignment-row>.button{grid-area:1/2/3;min-height:44px}.audit-filters{grid-template-columns:1fr 1fr}.audit-filters label:nth-child(-n+3){grid-column:1/-1}.audit-filters .button{grid-column:1/-1;min-height:48px}.audit-row{grid-template-columns:1fr}.audit-row time{font-weight:750}.form-grid,.role-options>div{grid-template-columns:1fr}dialog form{padding:18px}.dialog-actions .button{flex:1;min-height:48px}.error-banner{align-items:stretch}.toast{bottom:12px;left:12px;right:12px}}.button.destructive{border-color:#d7aaa4;margin-right:auto}
