:root{font-family:Segoe UI,system-ui,sans-serif;color:#111827;background:#f3f4f6;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit}button{font:inherit}.shell{min-height:100vh;display:flex;flex-direction:column;background:#f3f4f6}.shell.logout-pending{pointer-events:none}header{height:82px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #d8dee7}.brand{display:flex;gap:14px;align-items:center;min-width:0}.brand-logo{width:62px;height:52px;object-fit:contain;flex:none}.brand>span{display:grid;gap:2px;min-width:0}.brand strong{color:#111827;display:block;font-size:1.1rem;letter-spacing:-.01em;white-space:nowrap}.brand small{color:#6b7280;display:block;font-size:.76rem;white-space:nowrap}.brand-compact .brand-logo{width:42px;height:36px}.account{display:flex;align-items:center;gap:11px;color:#374151;font-size:.92rem}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:#2083f8;font-size:.78rem;font-weight:700}button{border:0;background:transparent;color:#1668cc;cursor:pointer}.text-button{padding:8px 0;font-weight:700}.content{width:min(1040px,calc(100% - 40px));margin:0 auto;flex:1;padding:74px 0 48px}.intro{max-width:720px;margin-bottom:34px}.eyebrow{color:#1668cc;text-transform:uppercase;letter-spacing:.11em;font-size:.68rem;font-weight:700}h1{margin:9px 0 10px;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.04em}.intro p{color:#6b7280;font-size:1.08rem;margin:0}.modules{display:grid;gap:16px}.module-card{display:grid;grid-template-columns:58px 1fr auto;gap:18px;align-items:center;padding:24px;background:#fff;border:1px solid #d8dee7;border-radius:18px;box-shadow:0 10px 28px #1118270f}.module-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:15px;background:#e5f7ff;color:#1668cc;font-weight:800;font-size:.85rem}.module-copy h2{margin:4px 0 6px;font-size:1.25rem}.module-copy p{margin:0;color:#6b7280;line-height:1.45}.module-action,.primary{display:inline-flex;align-items:center;justify-content:center;padding:11px 19px;border-radius:10px;background:#2083f8;color:#fff;text-decoration:none;font-weight:700;font-size:.9rem;box-shadow:0 6px 16px #2083f833}.module-action:hover,.primary:hover{background:#1668cc}.disabled-action{background:#e5e7eb;color:#6b7280;pointer-events:none;box-shadow:none}.status{display:flex;gap:10px;margin-top:24px;padding:14px 17px;border-radius:11px;background:#e7f8ef;color:#216b50;font-size:.88rem}.status span{color:#537865}.empty-state{display:grid;gap:8px;padding:28px;border:1px dashed #aab5c5;border-radius:16px;background:#ffffff9e;color:#4b5563}.empty-state strong{color:#111827;font-size:1.05rem}.permissions-panel{display:grid;gap:18px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.panel-heading h2{margin:5px 0 6px;font-size:2rem;letter-spacing:-.03em}.panel-heading p,.selection-note{margin:0;color:#6b7280}.user-picker{display:grid;gap:7px;max-width:560px;color:#374151;font-size:.85rem;font-weight:700}.user-picker select{min-height:42px;padding:8px 11px;border:1px solid #cfd7e3;border-radius:9px;background:#fff;color:#111827;font:inherit;font-weight:400}.permissions-panel h3{margin:13px 0 -6px;font-size:1.1rem}.permission-list{display:grid;gap:9px}.permission-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#fff;border:1px solid #d8dee7;border-radius:12px}.permission-row div{display:grid;gap:4px;min-width:0}.permission-row strong{color:#111827}.permission-row small{color:#6b7280;overflow-wrap:anywhere}.permission-row button{padding:8px 11px;border-radius:8px;font-size:.82rem;font-weight:700;white-space:nowrap}.permission-row button:disabled{cursor:wait;opacity:.6}.grant-on{background:#e7f8ef;color:#216b50}.grant-off{background:#eef1f5;color:#4b5563}.panel-error{margin:0;padding:10px 12px;border-radius:8px;background:#fff0f0;color:#a12626}footer{padding:22px clamp(20px,5vw,72px);border-top:1px solid #d8dee7;color:#6b7280;font-size:.78rem}.center{min-height:100vh;display:grid;place-items:center;padding:clamp(24px,6vw,72px);background:radial-gradient(circle at 8% 8%,rgba(0,227,254,.18),transparent 31%),linear-gradient(135deg,#eff6ff,#f3f4f6 52%,#e8f8ff);position:relative;overflow:hidden}.center:before{content:"";position:absolute;width:44vw;height:44vw;min-width:360px;min-height:360px;right:-17vw;top:-20vw;border-radius:50%;background:linear-gradient(145deg,#2083f821,#00e3fe0d)}.login-card{position:relative;width:min(520px,100%);padding:clamp(30px,5vw,48px);background:#fffffff5;border:1px solid rgba(216,222,231,.95);border-radius:24px;box-shadow:0 24px 60px #11182724}.login-card .brand-logo{width:92px;height:76px}.login-card h1{margin:40px 0 12px;font-size:clamp(2rem,4vw,2.7rem);color:#111827}.login-card p{color:#4b5563;line-height:1.6;margin:0 0 28px;max-width:420px}.login-card .primary{width:100%;min-height:48px}.login-note{display:block;color:#6b7280;line-height:1.5;margin-top:18px}.loading{display:grid;gap:22px;justify-items:center;color:#6b7280}.tabs{display:flex;gap:4px;border-bottom:1px solid #d8dee7;flex-wrap:wrap}.tab-button{padding:10px 16px;font-weight:700;color:#6b7280;border-radius:8px 8px 0 0}.tab-button:hover{color:#1668cc;background:#f3f4f6}.tab-button.tab-active{color:#1668cc;background:#e5f7ff}.tab-button:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #1668cc;outline-offset:2px}select,input[type=text],input[type=search],textarea{min-height:40px;padding:8px 11px;border:1px solid #cfd7e3;border-radius:9px;background:#fff;color:#111827;font:inherit}textarea{min-height:74px;resize:vertical}.user-select-row{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.empty-note{color:#6b7280;padding:12px 0}.empty-note-inline{color:#6b7280;font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}code{font-size:.82em;background:#f3f4f6;padding:1px 5px;border-radius:5px}.app-access-list{display:grid;gap:16px}.app-access-card{background:#fff;border:1px solid #d8dee7;border-radius:16px;padding:18px 20px;display:grid;gap:12px}.app-access-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.app-access-header h3{margin:0;font-size:1.15rem}.app-access-controls label{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:#374151}.scope-note{margin:0;color:#6b7280;font-size:.85rem}.scope-note a{color:#1668cc;font-weight:700;text-decoration:none}.scope-note a:hover{text-decoration:underline}.role-chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-chip-label{font-size:.82rem;color:#6b7280;font-weight:700}.role-chip{display:inline-flex;align-items:center;gap:6px;background:#e5f7ff;color:#1668cc;padding:5px 6px 5px 12px;border-radius:999px;font-size:.82rem;font-weight:700}.role-chip button{color:#1668cc;font-weight:800;padding:0 4px;line-height:1}.role-chip button:hover{color:#a12626}.capability-groups{display:grid;gap:6px}.capability-group{border:1px solid #e5e9f0;border-radius:10px;overflow:hidden}.capability-group-sensitive{border-color:#f3c1c1;background:#fff7f7}.capability-group-toggle{width:100%;text-align:left;padding:10px 14px;font-weight:700;color:#374151;background:#f8fafc;display:flex;gap:8px}.capability-group-sensitive .capability-group-toggle{color:#a12626;background:#fdeeee}.capability-rows{display:grid;gap:1px;background:#eef1f5}.capability-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;background:#fff}.capability-row-label{display:grid;gap:2px;min-width:0}.capability-row-label small{color:#6b7280}.capability-row-control{display:flex;align-items:center;gap:8px;text-align:right}.capability-row-control small{color:#6b7280;white-space:nowrap}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:grid;place-items:center;padding:20px;z-index:40}.dialog-card{background:#fff;border-radius:16px;padding:22px 24px;width:min(520px,100%);box-shadow:0 24px 60px #11182740;display:grid;gap:14px}.dialog-card h3{margin:0}.dialog-body{display:grid;gap:10px;color:#374151}.dialog-body ul{margin:0;padding-left:20px}.dialog-field{font-weight:700;font-size:.85rem;color:#374151}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.field-hint{margin:0;color:#a12626;font-size:.82rem}.danger-button{background:#a12626;color:#fff;padding:9px 16px;border-radius:8px;font-weight:700}.roles-tab{display:grid;gap:16px}.roles-matrix-wrap{overflow-x:auto;border:1px solid #d8dee7;border-radius:12px}.roles-matrix{border-collapse:collapse;width:100%;font-size:.86rem}.roles-matrix th,.roles-matrix td{border-bottom:1px solid #eef1f5;padding:8px 12px;text-align:left;vertical-align:top}.roles-matrix thead th{background:#f8fafc;position:sticky;top:0}.roles-matrix-role-header{display:grid;gap:4px}.roles-matrix-role-header small{color:#6b7280;font-weight:400}.roles-matrix-actions{display:flex;gap:8px}.roles-matrix-group-row th{background:#eef4fb;color:#1668cc;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.roles-matrix-group-sensitive th{background:#fdeeee;color:#a12626}.roles-matrix td{text-align:center}.roles-matrix td:first-child,.roles-matrix th[scope=row]{text-align:left}.role-edit-form{display:grid;gap:12px;max-width:480px;background:#fff;border:1px solid #d8dee7;border-radius:12px;padding:16px 18px}.role-edit-form label{display:grid;gap:6px;font-weight:700;font-size:.85rem;color:#374151}.audit-tab{display:grid;gap:14px}.audit-filters{display:flex;gap:14px;flex-wrap:wrap}.audit-filters label{display:grid;gap:6px;font-size:.85rem;font-weight:700;color:#374151}.audit-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.audit-row{background:#fff;border:1px solid #d8dee7;border-radius:12px;padding:12px 16px}.audit-row-head{display:flex;justify-content:space-between;gap:12px;font-size:.92rem}.audit-row-meta{margin:4px 0 0;color:#6b7280;font-size:.82rem;overflow-wrap:anywhere}.audit-diff{margin:8px 0 0;padding-left:18px;color:#374151;font-size:.84rem}.holders-tab{display:grid;gap:14px}.capability-search-results{list-style:none;margin:0;display:grid;gap:4px;max-height:260px;overflow-y:auto;border:1px solid #d8dee7;border-radius:12px;padding:6px}.capability-search-item{width:100%;text-align:left;padding:8px 10px;border-radius:8px}.capability-search-item:hover{background:#f3f4f6}.capability-search-item-active{background:#e5f7ff;color:#1668cc}.capability-search-item small{display:block;color:#6b7280}.holders-result{background:#fff;border:1px solid #d8dee7;border-radius:12px;padding:16px 18px}.holders-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.holders-list li{padding:8px 12px;border-radius:10px;background:#f8fafc}.holder-allowed{border-left:3px solid #216b50}.holder-denied{border-left:3px solid #a12626}.holders-list div{color:#6b7280;font-size:.84rem;margin-top:2px}.groups-tab,.ad-groups-list{display:grid;gap:16px}.ad-group-card{background:#fff;border:1px solid #d8dee7;border-radius:16px;padding:18px 20px;display:grid;gap:12px}.ad-group-header h3{margin:0}.ad-group-member-count{margin:0;color:#374151}.ad-group-mappings{border-collapse:collapse;width:100%;font-size:.86rem}.ad-group-mappings th,.ad-group-mappings td{border-bottom:1px solid #eef1f5;padding:8px 12px;text-align:left;vertical-align:top}.ad-group-mappings thead th{background:#f8fafc}.ad-group-mapping-form{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;background:#f8fafc;border-radius:12px;padding:14px 16px}.ad-group-mapping-form label{display:grid;gap:6px;font-weight:700;font-size:.85rem;color:#374151}.ad-group-mapping-form button{grid-column:1 / -1;justify-self:start}.hint-note{margin:0;color:#6b7280;font-size:.82rem;grid-column:1 / -1}.warning-note{margin:6px 0 0;padding:10px 12px;border-radius:8px;background:#fff8e6;border:1px solid #f2c94c;color:#92620a;font-weight:700;font-size:.85rem;grid-column:1 / -1}@media (max-width: 650px){header{height:auto;padding:18px 20px;gap:14px;align-items:flex-start}.account>span:not(.avatar){display:none}.content{padding-top:48px}.module-card{grid-template-columns:48px 1fr}.module-icon{width:48px;height:48px}.module-action{grid-column:2;justify-self:start}.panel-heading{display:grid}.permission-row{align-items:flex-start}.permission-row button{margin-top:1px}.login-card .brand-logo{width:78px;height:65px}}
