*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f7;color:#1a1a2e}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#2d2d50)}.login-card{background:#fff;border-radius:12px;padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:0 8px 32px #00000040}.login-logo{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.login-logo-icon{font-size:1.6rem;color:#4f6ef7}.login-logo-text{font-weight:700;font-size:1.1rem;color:#1a1a2e}.login-title{font-size:1.1rem;font-weight:600;color:#333;margin-bottom:1.5rem}.login-error{background:#fff0f0;border:1px solid #ffcccc;color:#c0392b;border-radius:6px;padding:.6rem .9rem;font-size:.85rem;margin-bottom:1rem}.login-form{display:flex;flex-direction:column;gap:1rem;background:none;padding:0;box-shadow:none;margin-bottom:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.82rem;font-weight:600;color:#555}.field input{padding:.6rem .8rem;border:1px solid #d0d5dd;border-radius:6px;font-size:.9rem;transition:border-color .15s;min-width:unset;flex:unset}.field input:focus{outline:none;border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef71f}.login-btn{padding:.65rem;background:#4f6ef7;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s;margin-top:.25rem}.login-btn:hover:not(:disabled){background:#3a57d4}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-hint{font-size:.78rem;color:#888;text-align:center;margin-top:.5rem}.microsoft-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:#0078d4}.microsoft-btn:hover:not(:disabled){background:#006abc}.ms-icon{font-size:1rem}.link-btn{background:none;border:none;color:#4f6ef7;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline}.login-hint code{background:#f0f2f7;padding:1px 5px;border-radius:3px;font-family:monospace}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-header{background:#1a1a2e;height:56px;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.shell-body{display:flex;flex:1;overflow:hidden;min-height:calc(100vh - 56px)}.sidebar{width:200px;background:#1a1a2e;padding:1rem 0;display:flex;flex-direction:column;flex-shrink:0}.sidebar-link{display:flex;align-items:center;gap:.6rem;padding:.65rem 1.25rem;color:#aab4c8;text-decoration:none;font-size:.88rem;font-weight:500;transition:background .15s,color .15s;border-left:2px solid transparent}.sidebar-link:hover{background:#ffffff0f;color:#fff}.sidebar-link.active{background:#4f6ef726;color:#4f6ef7;border-left-color:#4f6ef7}.sidebar-icon{font-size:1rem}.sidebar-group{display:flex;flex-direction:column}.sidebar-group-toggle{display:flex;align-items:center;gap:.6rem;padding:.65rem 1.25rem;width:100%;background:none;border:none;border-left:2px solid transparent;color:#aab4c8;font-size:.88rem;font-weight:500;cursor:pointer;text-align:left;transition:background .15s,color .15s}.sidebar-group-toggle:hover{background:#ffffff0f;color:#fff}.sidebar-group-toggle.active{color:#4f6ef7;border-left-color:#4f6ef7;background:#4f6ef714}.sidebar-group-label{flex:1}.sidebar-group-chevron{font-size:.7rem;opacity:.7}.sidebar-submenu{display:flex;flex-direction:column;background:#00000026}.sidebar-sublink{display:flex;align-items:center;gap:.6rem;padding:.55rem 1.25rem .55rem 2rem;color:#8a96b0;text-decoration:none;font-size:.83rem;font-weight:500;border-left:2px solid transparent;transition:background .15s,color .15s}.sidebar-sublink:hover{background:#ffffff0f;color:#fff}.sidebar-sublink.active{background:#4f6ef726;color:#4f6ef7;border-left-color:#4f6ef7}.shell-main{flex:1;overflow-y:auto;background:#f0f2f7}.shell-brand{color:#fff;font-weight:700;font-size:1rem;letter-spacing:.01em}.shell-user{display:flex;align-items:center;gap:.75rem}.shell-user-name{color:#fff;font-size:.88rem;font-weight:500}.shell-user-role{color:#aab4c8;font-size:.78rem;background:#2d2d50;padding:2px 8px;border-radius:10px}.shell-logout{background:none;border:1px solid #444;color:#aab4c8;font-size:.82rem;padding:.3rem .75rem;border-radius:4px;cursor:pointer;transition:all .15s}.shell-logout:hover{border-color:#aab4c8;color:#fff}.dashboard{padding:2.5rem 2rem;max-width:1100px;margin:0 auto;width:100%}.dashboard-hero{margin-bottom:2rem}.dashboard-status{color:#888;font-size:.92rem;margin-top:1rem}.dashboard-hero h1{font-size:1.6rem;color:#1a1a2e;margin-bottom:.35rem}.dashboard-hero p{color:#666;font-size:.92rem}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.service-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px #00000012;display:flex;flex-direction:column;padding:1.5rem;border:1px solid #eef0f4;transition:box-shadow .15s,transform .15s}.service-card.active:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.service-card.coming-soon{opacity:.65}.service-card-icon{font-size:2rem;margin-bottom:1rem}.service-card-body{flex:1}.service-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.service-card-header h3{font-size:.98rem;font-weight:600;color:#1a1a2e}.service-card-body p{font-size:.84rem;color:#666;line-height:1.5}.service-card-footer{margin-top:1.25rem}.status-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.status-badge.active{background:#d4f7e0;color:#1e7a40}.status-badge.coming-soon{background:#f0f2f7;color:#888}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.disabled{background:#f8d7da;color:#842029}.launch-btn{display:inline-block;padding:.5rem 1.2rem;background:#4f6ef7;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s}.launch-btn:hover{background:#3a57d4}.launch-btn.disabled{background:#e8eaf0;color:#aaa;cursor:not-allowed}.settings-page{padding:2.5rem 2rem;max-width:1100px;margin:0 auto;width:100%}.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.settings-header h1{font-size:1.5rem;color:#1a1a2e;margin-bottom:.25rem}.settings-header p{color:#666;font-size:.88rem}.settings-actions{display:flex;gap:.75rem;flex-shrink:0}.btn-primary{padding:.55rem 1.1rem;background:#4f6ef7;color:#fff;border:none;border-radius:6px;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:#3a57d4}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.55rem 1.1rem;background:#fff;color:#444;border:1px solid #d0d5dd;border-radius:6px;font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.btn-secondary:hover:not(:disabled){border-color:#4f6ef7;color:#4f6ef7}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.sync-msg{font-size:.85rem;color:#1e7a40;background:#d4f7e0;border:1px solid #a8e6be;border-radius:6px;padding:.6rem 1rem;margin-bottom:1.25rem}.register-form-card{background:#fff;border:1px solid #eef0f4;border-radius:10px;padding:1.75rem;margin-bottom:1.75rem;box-shadow:0 1px 4px #00000012}.register-form-card h2{font-size:1.1rem;color:#1a1a2e;margin-bottom:1.25rem}.form-error{background:#fff0f0;border:1px solid #ffcccc;color:#c0392b;border-radius:6px;padding:.6rem .9rem;font-size:.85rem;margin-bottom:1rem}.form-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#888;margin:1.25rem 0 .75rem}.form-section-title:first-of-type{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem}.field-full{grid-column:1 / -1}.icon-selector{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.icon-option{background:#f0f2f7;border:2px solid transparent;border-radius:8px;cursor:pointer;font-size:1.4rem;padding:.3rem .5rem;transition:border-color .15s}.icon-option:hover{border-color:#7c6fcd}.icon-option.selected{border-color:#7c6fcd;background:#ede9ff}.required{color:#c0392b}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #eef0f4}.services-table-wrap{background:#fff;border:1px solid #eef0f4;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #00000012}.table-empty{padding:2rem;color:#888;font-size:.9rem;text-align:center}.services-table{width:100%;border-collapse:collapse;font-size:.875rem}.services-table th{background:#f8f9fc;padding:.65rem 1rem;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#888;border-bottom:1px solid #eef0f4}.services-table td{padding:.75rem 1rem;border-bottom:1px solid #f4f5f9;vertical-align:middle;color:#333}.services-table tr:last-child td{border-bottom:none}.services-table tr:hover td{background:#fafbff}.svc-icon{margin-right:.4rem}.svc-name{font-weight:600;color:#1a1a2e;margin-right:.4rem}.svc-id{font-size:.75rem;color:#999}.svc-actions{display:flex;gap:.4rem}.action-btn{padding:.25rem .65rem;border:none;border-radius:4px;font-size:.78rem;font-weight:600;cursor:pointer;transition:opacity .15s}.action-btn:hover{opacity:.8}.action-btn.activate{background:#d4f7e0;color:#1e7a40}.action-btn.disable{background:#fff3cd;color:#856404}.assigned-id-callout{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;background:#eef6ff;border:1px solid #bfdbfe;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem}.assigned-id-title{font-size:.85rem;font-weight:600;color:#1e40af;margin:0 0 .5rem}.assigned-id-fields{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.assigned-id-fields span{font-size:.82rem;color:#1e3a5f}.assigned-id-hint{font-size:.8rem;color:#374151;margin:0}.input-readonly{background:#f4f4f5;color:#71717a;cursor:default;border-color:#e4e4e7!important}.path-prefix-input{display:flex;align-items:stretch;border:1px solid #d1d5db;border-radius:6px;overflow:hidden}.path-prefix-input:focus-within{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.path-prefix-locked{padding:.45rem .75rem;background:#f4f4f5;color:#71717a;font-size:.875rem;font-family:monospace;border-right:1px solid #e4e4e7;white-space:nowrap;display:flex;align-items:center}.path-prefix-input input{flex:1;border:none!important;border-radius:0!important;box-shadow:none!important;padding:.45rem .75rem}.action-btn.delete{background:#f8d7da;color:#842029}.access-toggle{display:flex;gap:.75rem;margin-top:.25rem}.access-option{flex:1;display:flex;flex-direction:column;gap:.15rem;padding:.75rem 1rem;border:2px solid #e4e4e7;border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.access-option:hover{border-color:#b0b5c3}.access-option.selected{border-color:#4f6ef7;background:#f0f4ff}.access-option input[type=radio]{display:none}.access-option-label{font-size:.88rem;font-weight:600;color:#1a1a2e}.access-option-desc{font-size:.78rem;color:#888;line-height:1.4}.access-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.user-multiselect{position:relative;width:100%}.user-multiselect-trigger{display:flex;align-items:center;min-height:2.4rem;padding:.35rem .75rem;border:1px solid #d4d4d8;border-radius:8px;background:#fff;cursor:pointer;gap:.5rem;transition:border-color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.user-multiselect-trigger:hover,.user-multiselect-trigger.open{border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef71f}.user-multiselect-placeholder{color:#a1a1aa;font-size:.88rem;flex:1}.user-multiselect-chips{display:flex;flex-wrap:wrap;gap:.35rem;flex:1}.user-chip{display:inline-flex;align-items:center;gap:.25rem;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:999px;padding:2px 8px 2px 10px;font-size:.78rem;font-weight:500}.user-chip-remove{background:none;border:none;cursor:pointer;color:#6366f1;font-size:1rem;line-height:1;padding:0;display:flex;align-items:center}.user-chip-remove:hover{color:#dc2626}.user-multiselect-arrow{font-size:.65rem;color:#a1a1aa;flex-shrink:0;margin-left:auto}.user-multiselect-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #d4d4d8;border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:200;overflow:hidden}.user-multiselect-search{width:100%;border:none;border-bottom:1px solid #f0f0f0;padding:.55rem .85rem;font-size:.85rem;outline:none;background:#fafafa;box-sizing:border-box}.user-multiselect-list{list-style:none;margin:0;padding:.25rem 0;max-height:220px;overflow-y:auto}.user-multiselect-empty{padding:.6rem 1rem;font-size:.82rem;color:#a1a1aa}.user-multiselect-item{display:flex;align-items:center;gap:.65rem;padding:.5rem .85rem;cursor:pointer;transition:background .1s}.user-multiselect-item:hover{background:#f4f4f5}.user-multiselect-item.checked{background:#eef2ff}.user-multiselect-check{width:1rem;font-size:.8rem;color:#4f6ef7;font-weight:700;flex-shrink:0}.user-multiselect-info{display:flex;flex-direction:column;gap:1px}.user-multiselect-name{font-size:.85rem;font-weight:500;color:#1a1a2e}.user-multiselect-email{font-size:.75rem;color:#888}.access-badge.open{background:#d4f7e0;color:#1e7a40}.access-badge.restricted{background:#fff3cd;color:#856404}.dt-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.dt-search{flex:1;min-width:200px;padding:.55rem .85rem;border:1px solid #d0d5dd;border-radius:6px;font-size:.875rem;background:#fff;transition:border-color .15s}.dt-search:focus{outline:none;border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef71f}.dt-filter{padding:.55rem .75rem;border:1px solid #d0d5dd;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer}.dt-count{font-size:.82rem;color:#888;white-space:nowrap;margin-left:auto}.dt-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.dt-sortable:hover{color:#4f6ef7}.dt-name{font-weight:600;color:#1a1a2e}.dt-email{color:#555}.dt-role-select{padding:.3rem .6rem;border-radius:6px;border:1px solid #d0d5dd;background:#fff;color:#333;font-size:.82rem;cursor:pointer}.dt-role-select:focus{outline:none;border-color:#4f6ef7}.dt-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;flex-wrap:wrap;gap:.75rem}.dt-page-size{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:#666}.dt-page-size select{padding:.3rem .5rem;border:1px solid #d0d5dd;border-radius:4px;font-size:.82rem;background:#fff}.dt-page-nav{display:flex;align-items:center;gap:.25rem}.dt-page-nav button{padding:.35rem .6rem;border:1px solid #d0d5dd;border-radius:4px;background:#fff;font-size:.82rem;cursor:pointer;color:#333;transition:all .15s}.dt-page-nav button:hover:not(:disabled){border-color:#4f6ef7;color:#4f6ef7}.dt-page-nav button:disabled{opacity:.4;cursor:not-allowed}.dt-page-info{font-size:.82rem;color:#666;padding:0 .5rem;white-space:nowrap}.btn-sm{padding:.3rem .7rem;background:#4f6ef7;color:#fff;border:none;border-radius:5px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-sm:hover:not(:disabled){background:#3a57d4}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-sm.btn-ghost{background:transparent;color:#555;border:1px solid #d0d5dd}.btn-sm.btn-ghost:hover:not(:disabled){background:#f4f5f9;color:#1a1a2e;border-color:#b0b5c3}.btn-sm.btn-danger{background:#fee2e2;color:#991b1b;border:none}.btn-sm.btn-danger:hover:not(:disabled){background:#fecaca;color:#7f1d1d}.form-label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:#444}.form-input{padding:.55rem .8rem;border:1px solid #d0d5dd;border-radius:6px;font-size:.88rem;background:#fff;color:#1a1a2e;transition:border-color .15s,box-shadow .15s}.form-input:focus{outline:none;border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef71f}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a1980;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;width:100%;max-width:440px;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid #eef0f4}.modal-header h2{font-size:1rem;font-weight:700;color:#1a1a2e;margin:0}.modal-close{background:none;border:none;color:#888;font-size:1rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;line-height:1;transition:color .15s,background .15s}.modal-close:hover{background:#f0f2f7;color:#333}.modal-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid #eef0f4}.modal-lg{max-width:660px}.teams-table{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.teams-table-header{display:flex;align-items:center;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.055em;gap:8px}.teams-table-empty{padding:2rem;text-align:center;color:#94a3b8;font-size:.9rem}.teams-table-group{border-bottom:1px solid #e2e8f0}.teams-table-group:last-child{border-bottom:none}.teams-table-row{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s;background:#fff;font-size:.875rem}.teams-table-row:hover{background:#f8fafc}.teams-table-row.expanded{background:#f0f9ff}.teams-table-row:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.teams-expand-toggle{width:18px;flex-shrink:0;font-size:.65rem;color:#94a3b8;text-align:center;transition:color .1s}.teams-table-row.expanded .teams-expand-toggle,.teams-table-row:hover .teams-expand-toggle{color:#3b82f6}.teams-member-list{background:#f8fafc;border-top:1px solid #e2e8f0;padding:.5rem 0}.teams-member-empty{padding:.85rem 3.5rem;font-size:.82rem;color:#94a3b8}.teams-member-row{display:flex;align-items:center;gap:.75rem;padding:.45rem 3.5rem;font-size:.85rem;border-bottom:1px solid #f1f5f9}.teams-member-row:last-child{border-bottom:none}.teams-member-avatar{width:28px;height:28px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.teams-member-info{display:flex;flex-direction:column}.teams-member-name{font-weight:500;color:#1e293b}.teams-member-email{font-size:.75rem;color:#64748b}.team-members-section{margin-top:1.25rem;display:flex;flex-direction:column;gap:.6rem}.team-members-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.member-count-badge{display:inline-block;margin-left:.5rem;font-size:.7rem;font-weight:600;padding:1px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8}.member-picker{border:1px solid #e2e8f0;border-radius:8px;max-height:280px;overflow-y:auto}.member-picker-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .85rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .12s}.member-picker-row:last-child{border-bottom:none}.member-picker-row:hover{background:#f8fafc}.member-picker-row.selected{background:#eff6ff}.member-picker-row input[type=checkbox]{width:15px;height:15px;flex-shrink:0;accent-color:#3b82f6;cursor:pointer}.member-picker-info{display:flex;flex-direction:column;flex:1;min-width:0}.member-picker-name{font-size:.875rem;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-picker-email{font-size:.75rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-picker-other-team{font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:4px;background:#fef9c3;color:#854d0e;flex-shrink:0}.perm-badge-row{display:flex;flex-wrap:wrap;gap:.3rem}.perm-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 7px;border-radius:4px;background:#eef2ff;color:#3730a3;white-space:nowrap}.perm-badge.perm-wildcard{background:#fef9c3;color:#854d0e;border-radius:10px}.perm-badge.perm-more{background:#f1f5f9;color:#64748b}.perm-wildcard-notice{display:flex;align-items:center;gap:.6rem;background:#fef9c3;border:1px solid #fde68a;border-radius:8px;padding:.75rem 1rem;font-size:.85rem;color:#78350f}.perm-wildcard-notice code{background:#fde68a;padding:1px 5px;border-radius:3px;font-size:.8rem}.perm-groups{display:flex;flex-direction:column;gap:.85rem;margin-top:.5rem}.perm-group{background:#f8f9fc;border:1px solid #eef0f4;border-radius:8px;padding:.75rem 1rem}.perm-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.perm-group-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#888}.perm-check-grid{display:flex;flex-wrap:wrap;gap:.4rem}.perm-check{display:flex;align-items:center;gap:.3rem;padding:.3rem .65rem;background:#fff;border:1px solid #d0d5dd;border-radius:6px;cursor:pointer;font-size:.8rem;color:#444;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.perm-check input[type=checkbox]{width:13px;height:13px;accent-color:#4f6ef7;cursor:pointer;flex-shrink:0}.perm-check:hover{border-color:#4f6ef7;background:#f7f9ff}.perm-check.checked{background:#eef2ff;border-color:#4f6ef7;color:#3730a3}.perm-check-label{white-space:nowrap}.perm-count-hint{margin-top:.6rem;font-size:.78rem;color:#888}.svc-tab-bar{display:flex;align-items:stretch;background:#fff;border:1px solid #eef0f4;border-radius:10px;box-shadow:0 1px 4px #00000012;margin-bottom:1.5rem;overflow-x:auto;scrollbar-width:none}.svc-tab-bar::-webkit-scrollbar{display:none}.svc-tab{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:#666;white-space:nowrap;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.svc-tab+.svc-tab{border-left:1px solid #eef0f4}.svc-tab:hover{background:#f7f9ff;color:#4f6ef7}.svc-tab.active{color:#4f6ef7;font-weight:700;border-bottom-color:#4f6ef7;background:#f7f9ff}.svc-tab-name{letter-spacing:.01em}.svc-tab-badge{font-size:.68rem;font-weight:700;padding:1px 7px;border-radius:10px;text-transform:lowercase;letter-spacing:.02em}.svc-tab-badge.open{background:#d4f7e0;color:#1e7a40}.svc-tab-badge.restricted{background:#fff3cd;color:#856404}@media (max-width: 1024px){.shell-header{padding:0 1.25rem}.dashboard,.settings-page{padding:1.75rem 1.25rem}}.shell-hamburger{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:.4rem;margin-right:.5rem;border-radius:4px;transition:background .15s}.shell-hamburger:hover{background:#ffffff14}.shell-hamburger:focus-visible{outline:2px solid #4f6ef7;outline-offset:2px}.shell-hamburger-bars{display:inline-flex;flex-direction:column;justify-content:space-between;width:22px;height:16px}.shell-hamburger-bars span{display:block;height:2px;background:#fff;border-radius:2px}.sidebar-backdrop{display:none;position:fixed;top:56px;right:0;bottom:0;left:0;background:#0a0a1973;border:none;padding:0;cursor:pointer;z-index:40;opacity:0;transition:opacity .2s ease}@media (max-width: 768px){.shell-hamburger{display:inline-flex;align-items:center}.shell-body{overflow:visible;min-height:calc(100vh - 56px)}.sidebar{position:fixed;top:56px;left:0;bottom:0;width:240px;max-width:80vw;flex-direction:column;padding:1rem 0;z-index:50;transform:translate(-100%);transition:transform .22s ease;box-shadow:4px 0 16px #0000004d}.shell-body.drawer-open .sidebar{transform:translate(0)}.shell-body.drawer-open .sidebar-backdrop{display:block;opacity:1}.shell-main{overflow-y:visible;width:100%}.service-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.settings-header{flex-direction:column;align-items:stretch}.settings-actions{flex-wrap:wrap}.services-table-wrap{overflow-x:auto}.services-table{min-width:560px}.dt-count{margin-left:0;flex-basis:100%}.assigned-id-callout{flex-direction:column;align-items:stretch}}@media (max-width: 480px){.shell-header{height:auto;padding:.5rem 1rem;flex-wrap:wrap;gap:.5rem}.shell-user{gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.shell-user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-user-role{display:none}.dashboard,.settings-page{padding:1.25rem .85rem}.dashboard-hero h1{font-size:1.3rem}.service-grid,.form-grid{grid-template-columns:1fr}.register-form-card{padding:1.25rem}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions .btn-primary,.form-actions .btn-secondary{width:100%}.access-toggle{flex-direction:column}}
