:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#202a35;background:#f5f7fa;font-synthesis:none;--line:#dbe3ef;--muted:#647185;--accent:#2563eb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;padding:10px 15px;border:1px solid var(--line);background:#fff;border-radius:8px;color:inherit}button:hover:not(:disabled){border-color:var(--accent);background:#eff6ff}button:disabled{cursor:not-allowed;opacity:.5}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.danger{color:#aa2d3f;border-color:#d7a5ac}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}a{color:var(--accent)}.app{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}aside{background:#102a43;color:#dbeafe;padding:32px 22px;display:flex;flex-direction:column;gap:24px}aside .brand{font-size:28px;font-weight:750;letter-spacing:-1px;color:#fff;text-decoration:none}.brand span{color:#60a5fa}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;margin:0;color:var(--muted)}aside .eyebrow{color:#93c5fd}nav{display:grid;gap:8px}nav button{text-align:left;background:transparent;border-color:transparent;color:#cbd5e1}nav button[aria-current=page]{background:#1e40af;color:#fff;border-color:#60a5fa}nav button:hover:not(:disabled){background:#1e40af}.sidebar-note{font-size:13px;line-height:1.8;color:#9fb7d1;margin-top:auto}.hub-link{color:#bfdbfe;font-size:13px}.workspace{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 32px;border-bottom:1px solid var(--line);background:#fff;font-size:13px}.module-toolbar{display:flex;align-items:center;gap:12px;margin-right:auto;margin-left:4px}.module-toolbar a{font-size:13px}.module-toolbar button{padding:8px 12px;font-size:12px}main{padding:34px;max-width:1600px;margin:auto}h1{font-size:28px;letter-spacing:-.6px;margin:0 0 12px}h2{font-size:22px;margin:8px 0}h3{font-size:16px;margin:0 0 14px}p{line-height:1.65}.muted,small{color:var(--muted);font-size:13px}small{display:block;line-height:1.6;overflow-wrap:anywhere}.card,.user-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.card{margin:20px 0}.section-heading,.actions,.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px}.actions{justify-content:flex-start;flex-wrap:wrap}.filters{display:flex;gap:16px;align-items:end;margin:24px 0;flex-wrap:wrap}label{display:grid;gap:8px;font-size:13px;font-weight:550}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #ced7e0;border-radius:7px;background:#fff;color:inherit}textarea{min-height:80px;resize:vertical}.grow{flex:1;min-width:160px}.users-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.35fr);gap:24px;align-items:start}.user-list{display:grid;gap:8px}.user-row{display:flex;justify-content:space-between;text-align:left;gap:12px;padding:16px;align-items:flex-start;min-width:0}.user-row>span{min-width:0}.user-row strong{display:block;overflow-wrap:anywhere;font-size:14px;margin-bottom:4px}.user-row[aria-pressed=true]{border-color:var(--accent);background:#eff6ff}.badge{display:inline-block;font-size:10px;padding:4px 7px;border-radius:5px;background:#eef1f5;white-space:nowrap}.badge.active{background:#dbeafe;color:#1d4ed8}.badge.blocked{background:#f9e8eb;color:#9c3347}.user-card section{padding:24px 0;border-top:1px solid var(--line);margin-top:24px}.user-card section:last-child{padding-bottom:0}.user-card section>button{margin-top:14px}.empty{padding:70px 30px;border:1px dashed #ccd6df;border-radius:14px;text-align:center;color:var(--muted);font-size:14px;line-height:1.7}.pagination{margin-top:16px}.error{padding:12px 16px;background:#fcecef;color:#942c3e;border-radius:8px;line-height:1.6}.note{padding:12px;background:#f1f5f9;font-size:13px}.permission-list{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:8px}.permission{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border-bottom:1px solid var(--line)}.permission:last-child{border-bottom:0}.permission>span{min-width:0;overflow-wrap:anywhere}.permission select{width:150px;flex-shrink:0}.permission strong{font-size:12px;font-weight:550}.permission small{font-size:11px}.permission-editor .filters{margin:12px 0}.permission-editor .filters label{flex:1;min-width:120px}.stack{display:grid;gap:20px;max-width:760px}summary{cursor:pointer;font-weight:650}details form{padding-top:24px}dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;font-size:13px;line-height:1.6}dt{color:var(--muted)}dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.history{list-style:none;padding:0}.history li{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.login{max-width:600px;margin:70px auto}.admin-frame-shell{min-width:0;margin:-34px}.admin-frame-shell iframe{display:block;width:100%;height:calc(100vh - 126px);min-height:680px;border:0;border-radius:0;background:#fff}.admin-part{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.skip{position:absolute;left:-10000px}.skip:focus{left:16px;top:10px;background:#fff;padding:12px;z-index:5}@media(max-width:1100px){.app{grid-template-columns:190px minmax(0,1fr)}main{padding:24px}.admin-frame-shell{margin:-24px}.users-layout{grid-template-columns:1fr}.user-list{max-height:420px;overflow:auto}}@media(max-width:640px){.app{display:block}aside{padding:20px;gap:14px}.sidebar-note{display:none}nav{display:flex;flex-wrap:wrap}.topbar{padding:16px}main{padding:20px 14px}.admin-frame-shell{margin:-20px -14px}.card,.user-card{padding:18px}.section-heading{align-items:flex-start}.permission{align-items:flex-start;flex-direction:column}.permission select{width:100%}dl{grid-template-columns:1fr;gap:4px}dd{margin-bottom:10px}}.role-config-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.role-actions{display:flex;gap:8px;flex-wrap:wrap}.role-actions input,.role-config-toolbar input{display:none}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:4px 20px}.service-card{margin:0}.service-card .section-heading{align-items:flex-start}
