.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eceff4,#d8dee9);position:relative}.login-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(94,129,172,.08) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(163,190,140,.08) 0%,transparent 50%);pointer-events:none}.login-card{background:var(--bg-white);padding:2.5rem;border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:420px;border:1px solid var(--border-color);position:relative;z-index:1}.login-card h1{margin-bottom:.5rem;color:var(--primary-color);font-size:2rem;font-weight:700}.login-card .subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:.95rem}.form-group input{width:100%}.error-message{background:#fee5e7;color:var(--accent-color);padding:.875rem;border-radius:6px;margin-bottom:1rem;border-left:3px solid var(--accent-color);font-size:.9rem}.login-card form button{width:100%;padding:.875rem;font-size:1rem;font-weight:600;margin-top:.5rem}.auth-separator{position:relative;text-align:center;margin:1.75rem 0 1.5rem}.auth-separator:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-color)}.auth-separator span{position:relative;display:inline-block;padding:0 1rem;background:var(--bg-white);color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.microsoft-signin-button{display:block;width:100%;padding:.875rem;font-size:1rem;font-weight:600;text-align:center;text-decoration:none;color:#fff;background:#0078d4;border:2px solid #0078D4;border-radius:6px;cursor:pointer;transition:all .2s ease}.microsoft-signin-button:hover{background:#106ebe;border-color:#106ebe;box-shadow:0 2px 8px #0078d440}.microsoft-signin-button:focus{outline:2px solid #0078D4;outline-offset:2px}.microsoft-signin-button:active{background:#005a9e;border-color:#005a9e;transform:translateY(1px)}.quick-login{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.quick-login p{font-size:.85rem;color:var(--text-muted);margin-bottom:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.quick-login-buttons{display:flex;gap:.625rem}.quick-login-buttons button{flex:1;font-size:.85rem;padding:.625rem .75rem}.error-notification{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:1000;max-width:600px;width:90%;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.error-notification-content{background-color:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:1rem 1.25rem;display:flex;align-items:flex-start;gap:.75rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.error-notification-icon{flex-shrink:0;color:#dc2626;margin-top:2px}.error-notification-message{flex:1;margin:0;color:#991b1b;font-size:.9375rem;line-height:1.5}.error-notification-close{flex-shrink:0;background:none;border:none;padding:.25rem;cursor:pointer;color:#dc2626;border-radius:4px;transition:background-color .15s ease;margin-top:-2px}.error-notification-close:hover{background-color:#dc26261a}.error-notification-close:focus{outline:2px solid #dc2626;outline-offset:2px}.error-notification-close:focus:not(:focus-visible){outline:none}.error-notification-close:focus-visible{outline:2px solid #dc2626;outline-offset:2px}.org-switcher{position:relative;display:inline-block}.org-switcher-single{padding:.5rem 1rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:6px;font-weight:600;color:var(--text-primary)}.org-switcher-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-white);border:1px solid var(--border-color);border-radius:6px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.org-switcher-btn:hover{background:var(--bg-secondary);border-color:var(--text-muted)}.org-switcher-btn .org-name{font-size:.95rem}.org-switcher-btn .dropdown-arrow{font-size:.75rem;color:var(--text-muted)}.org-dropdown{position:absolute;top:calc(100% + .5rem);left:0;min-width:200px;background:var(--bg-white);border:1px solid var(--border-color);border-radius:6px;box-shadow:var(--shadow-lg);z-index:1000;overflow:hidden}.org-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;background:none;border:none;border-bottom:1px solid var(--bg-secondary);text-align:left;cursor:pointer;transition:background .2s ease}.org-option:last-child{border-bottom:none}.org-option:hover{background:var(--bg-secondary)}.org-option.active{background:var(--bg-secondary);font-weight:600}.org-option .tenant-name{font-size:.95rem;color:var(--text-primary)}.org-option .checkmark{color:var(--secondary-color);font-weight:700}.page-header{background:var(--bg-white);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.page-header-content{max-width:1400px;margin:0 auto;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:2rem}.page-header-left{flex:1;min-width:0;margin:0;padding:0}.page-title-container{display:flex;align-items:center;gap:.75rem;min-width:0}.page-header-icon{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.page-title-text{min-width:0;flex:1}.page-title{margin:0;padding:0;font-size:1.5rem;font-weight:700;color:var(--primary-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-description{margin:.25rem 0 0;padding:0;font-size:.9rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-right{display:flex;align-items:center;gap:1rem;flex-shrink:0}.user-name{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.header-divider{color:var(--border-color);font-weight:300}.logout-button{padding:.5rem 1rem;font-size:.9rem;white-space:nowrap}.dashboard{min-height:100vh;background:var(--bg-primary);display:flex;flex-direction:column}.header-left{display:flex;align-items:center;gap:1rem}.header-content h1{font-size:1.75rem;font-weight:700;color:var(--primary-color)}.tenant-badge{display:inline-block;padding:.375rem .875rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;font-weight:600;color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:1rem}.user-info{color:var(--text-muted);font-size:.9rem;font-weight:500}.dashboard-toolbar{background:var(--bg-white);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:20;box-shadow:var(--shadow-sm)}.toolbar-content{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.dashboard-main{flex:1;max-width:1400px;margin:0 auto;padding:2.5rem 2rem;width:100%;box-sizing:border-box}.services-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.services-header h2{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.service-card{background:var(--bg-white);padding:1.75rem;border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--border-color);cursor:pointer;transition:all .2s ease}.service-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--secondary-color)}.service-card.archived{opacity:.65;background:var(--bg-secondary)}.service-card.archived:hover{opacity:.8}.service-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.service-card h3{margin:0;color:var(--primary-color);font-weight:700;font-size:1.15rem;flex:1}.service-card .edit-btn{background:transparent;border:none;cursor:pointer;padding:.15rem .4rem;font-size:.8rem;opacity:1;color:var(--text-muted);font-family:Source Code Pro,monospace;letter-spacing:.1em;flex-shrink:0}.service-card .edit-btn:hover{color:var(--text-secondary);box-shadow:none}.service-card p{color:var(--text-secondary);font-size:.95rem;margin-bottom:1.25rem;line-height:1.5}.service-meta{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--bg-secondary)}.service-slug{font-family:Source Code Pro,monospace;font-size:.8rem;color:var(--text-muted);background:var(--bg-secondary);padding:.375rem .625rem;border-radius:4px}.loading,.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state p{font-size:1rem;margin-bottom:.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.75rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary);font-size:.9rem}.service-icon-container{display:flex;justify-content:center;align-items:center;margin-bottom:1rem}.service-icon{width:48px;height:48px;border-radius:8px;object-fit:cover;box-shadow:var(--shadow-sm)}.service-icon-placeholder{width:48px;height:48px;border-radius:8px;background:var(--secondary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;margin:0 auto 1rem;box-shadow:var(--shadow-sm)}.file-input{margin-top:.25rem;padding:.5rem;border:2px dashed var(--border-color);border-radius:6px;cursor:pointer;transition:border-color .2s ease}.file-input:hover{border-color:var(--secondary-color)}.icon-preview{margin-top:.75rem;padding:1rem;background:var(--bg-primary);border-radius:6px;display:flex;justify-content:center;align-items:center}.icon-preview img{width:64px;height:64px;border-radius:8px;object-fit:cover;box-shadow:var(--shadow)}.services-list{width:100%;background:var(--bg-white);border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--border-color);overflow:hidden}.services-table{width:100%;border-collapse:collapse}.services-table thead{background:var(--bg-secondary);border-bottom:2px solid var(--border-color)}.services-table th{padding:1rem 1.25rem;text-align:left;font-weight:700;font-size:.9rem;color:var(--primary-color);text-transform:uppercase;letter-spacing:.05em}.services-table tbody tr{border-bottom:1px solid var(--border-color);transition:all .2s ease}.services-table tbody tr:hover{background:var(--bg-secondary)}.services-table tbody tr.archived{opacity:.65;background:var(--bg-secondary)}.services-table tbody tr.archived:hover{opacity:.8}.services-table td{padding:1rem 1.25rem;font-size:.95rem;color:var(--text-secondary);vertical-align:middle}.service-list-icon{width:32px;height:32px;border-radius:6px;object-fit:cover;box-shadow:var(--shadow-sm)}.service-list-icon-placeholder{width:32px;height:32px;border-radius:6px;background:var(--secondary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;box-shadow:var(--shadow-sm)}.dashboard-footer{background:var(--bg-white);border-top:1px solid var(--border-color);box-shadow:0 -2px 4px #0000000d;margin-top:auto}.footer-content{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;gap:1rem}.footer-link{background:transparent;color:var(--text-secondary);border:none;padding:.5rem 1rem;font-size:.9rem;font-weight:600;font-family:Source Sans Pro,sans-serif;cursor:pointer;transition:all .2s ease;border-radius:6px}.footer-link:hover{background:var(--bg-secondary);color:var(--primary-color)}.rich-text-editor{border:1px solid var(--border-color);border-radius:4px;overflow:hidden}.editor-toolbar{display:flex;gap:.25rem;padding:.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.toolbar-btn{background:#fff;border:1px solid var(--border-color);border-radius:3px;padding:.35rem .75rem;cursor:pointer;font-size:.85rem;color:var(--text-primary);transition:all .2s ease}.toolbar-btn:hover{background:var(--bg-primary);border-color:var(--secondary-color)}.toolbar-btn strong,.toolbar-btn em{font-size:.9rem}.editor-content{min-height:100px;padding:.75rem;font-size:.95rem;line-height:1.6;outline:none;background:#fff}.editor-content:empty:before{content:"Enter description...";color:var(--text-muted)}.editor-content a{color:var(--secondary-color);text-decoration:underline}.editor-content strong{font-weight:700}.editor-content em{font-style:italic}.catalog-view{min-height:100vh;background:var(--bg-primary)}.catalog-header{background:var(--bg-white);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.catalog-header .header-content{max-width:100%;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:1.5rem}.catalog-service-icon{width:32px;height:32px;border-radius:6px;object-fit:cover;box-shadow:var(--shadow-sm)}.back-button{background:var(--bg-white);color:var(--text-primary);padding:.625rem 1.125rem;border-radius:6px;text-decoration:none;font-weight:600;border:1px solid var(--border-color);transition:all .2s ease}.back-button:hover{background:var(--bg-secondary);border-color:var(--text-muted)}.catalog-header h1{font-size:1.75rem;font-weight:700;color:var(--primary-color);margin-bottom:.25rem}.service-description{color:var(--text-secondary);font-size:.95rem}.catalog-toolbar{background:var(--bg-white);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:20;box-shadow:var(--shadow-sm)}.toolbar-content>*:first-child{margin-left:0}.search-input{flex:1;min-width:250px;max-width:400px;padding:.625rem 1rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;font-family:Source Sans Pro,sans-serif;color:var(--text-primary);background:var(--bg-white);transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #2196f31a}.search-input::placeholder{color:var(--text-muted);font-style:italic}.view-toggle{display:flex;gap:0;border:1px solid var(--border-color);border-radius:6px;overflow:hidden;background:var(--bg-white)}.view-toggle-btn{background:var(--bg-white);color:var(--text-secondary);padding:.625rem 1.25rem;border:none;font-size:.95rem;font-weight:600;font-family:Source Sans Pro,sans-serif;cursor:pointer;transition:all .2s ease;border-right:1px solid var(--border-color)}.view-toggle-btn:last-child{border-right:none}.view-toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.view-toggle-btn.active{background:var(--primary-color);color:#fff;font-weight:700}.view-toggle-btn.active:hover{background:var(--primary-color);color:#fff}a.button{display:inline-block;text-decoration:none;font-family:Source Sans Pro,sans-serif;cursor:pointer;border:none;padding:.625rem 1.25rem;border-radius:6px;font-size:.95rem;font-weight:600;transition:all .2s ease}a.button.secondary{background:var(--bg-white);color:var(--text-primary);border:1px solid var(--border-color)}a.button.secondary:hover{background:var(--bg-secondary);border-color:var(--text-muted)}a.button:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.catalog-main{padding:2rem;overflow-x:auto;box-sizing:border-box}.catalog-grid-container{background:var(--bg-white);border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--border-color);overflow-x:auto}.catalog-grid{min-width:1200px;table-layout:fixed}.catalog-grid th{position:sticky;top:0;background:var(--bg-secondary);z-index:10}.category-header{min-width:400px;width:400px;text-align:left;position:sticky;left:0;background:var(--bg-secondary);z-index:11}.description-header{display:none}.aspect-cell{min-width:400px;width:400px;position:sticky;left:0;background:var(--bg-white);z-index:3;padding:.75rem 1rem;vertical-align:top}.description-cell{display:none}.bucket-header{min-width:150px;width:150px;text-align:center;font-size:.85rem;font-weight:600;white-space:nowrap;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em}.category-row{background:var(--bg-secondary)}.category-cell{padding:1rem 1.25rem;font-weight:700;color:var(--primary-color);font-size:.95rem;letter-spacing:.02em;text-transform:capitalize}.category-header-content{display:flex;align-items:center;gap:.75rem}.edit-btn{background:transparent;border:none;cursor:pointer;padding:.1rem .3rem;font-size:.65rem;opacity:1;color:var(--text-muted);font-family:Source Code Pro,monospace;letter-spacing:.05em}.edit-btn:hover{color:var(--text-secondary);box-shadow:none}.add-aspect-btn{background:var(--bg-white);color:var(--secondary-color);border:1px solid var(--secondary-color);cursor:pointer;padding:.35rem .75rem;border-radius:4px;font-size:.8rem;font-weight:600;font-family:Source Sans Pro,sans-serif;transition:all .2s ease;white-space:nowrap}.add-aspect-btn:hover{background:var(--secondary-color);color:#fff;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.aspect-row:hover,.aspect-row:hover .aspect-cell,.aspect-row:hover .availability-cell{background:#fafbfc}.aspect-row.private-aspect,.aspect-row.private-aspect .aspect-cell,.aspect-row.private-aspect .availability-cell{background:#f9f6f3}.aspect-row.private-aspect:hover,.aspect-row.private-aspect:hover .aspect-cell,.aspect-row.private-aspect:hover .availability-cell{background:#f5f0ea}.aspect-row[draggable=true]{cursor:move}.aspect-row.dragging{opacity:.4}.aspect-row.drag-over{background:#e8f4f8;border-top:2px solid var(--secondary-color);border-bottom:2px solid var(--secondary-color)}.category-row.drag-over{background:#e8f4f8;border-left:3px solid var(--secondary-color)}.aspect-title{font-weight:600;margin-bottom:.375rem;display:flex;align-items:center;gap:.625rem;text-transform:capitalize;color:var(--text-primary)}.aspect-title span.clickable{cursor:pointer;transition:color .2s ease;border-bottom:1px solid transparent}.aspect-title span.clickable:hover{color:var(--secondary-color);border-bottom-color:var(--secondary-color)}.private-badge{background:var(--warning-color);color:var(--primary-color);font-size:.7rem;padding:.2rem .5rem;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.aspect-description{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin-top:.5rem}.aspect-description a{color:var(--secondary-color);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease}.aspect-description a:hover{border-bottom-color:var(--secondary-color)}.aspect-description strong{font-weight:700;color:var(--text-primary)}.aspect-description em{font-style:italic}.availability-cell{min-width:150px;width:150px;text-align:center;font-size:.9rem;vertical-align:middle;color:var(--text-secondary)}.availability-cell.editable{cursor:pointer;transition:background-color .15s ease}.availability-cell.editable:hover{background:#e8f4f8;color:var(--secondary-color)}.empty-category{text-align:center;color:var(--text-muted);font-style:italic;padding:2rem;background:#fafbfc}.modal-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem}.templates{margin:1.75rem 0;padding:1.25rem;background:var(--bg-primary);border-radius:6px}.templates label{display:block;margin-bottom:.875rem;font-weight:600;font-size:.85rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.template-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.template-btn{background:var(--bg-white);color:var(--text-primary);padding:.5rem .875rem;border-radius:6px;font-size:.85rem;border:1px solid var(--border-color);transition:all .15s ease}.template-btn:hover{background:var(--secondary-color);color:#fff;border-color:var(--secondary-color);transform:translateY(-1px)}.delete-btn{background:#d32f2f;color:#fff;padding:.625rem 1.25rem;border-radius:6px;font-size:.95rem;font-weight:600;border:1px solid #d32f2f;cursor:pointer;transition:all .2s ease}.delete-btn:hover{background:#b71c1c;border-color:#b71c1c;transform:translateY(-1px);box-shadow:0 4px 8px #d32f2f4d}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}.modal-actions-right{display:flex;gap:.75rem;align-items:center}.current-view{display:flex;flex-direction:column;gap:2rem}.current-category{background:var(--bg-white);border-radius:8px;border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.current-category-header{background:var(--bg-secondary);padding:1.25rem 1.5rem;display:flex;align-items:center;gap:.75rem;border-bottom:1px solid var(--border-color)}.current-category-header h2{font-size:1.125rem;font-weight:700;color:var(--primary-color);margin:0;text-transform:capitalize;letter-spacing:.02em}.current-aspects-list{padding:1rem;display:flex;flex-direction:column;gap:1rem}.current-aspect{background:var(--bg-white);border:1px solid var(--border-color);border-radius:6px;padding:1.25rem 1.5rem;transition:all .2s ease}.current-aspect:hover{box-shadow:var(--shadow);border-color:var(--text-muted)}.current-aspect.private-aspect{background:#f9f6f3;border-color:#e8ddd0}.current-aspect.private-aspect:hover{background:#f5f0ea;border-color:#d4c4b0}.current-aspect-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:.75rem}.current-aspect-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;flex:1;text-transform:capitalize}.current-aspect-header h3.clickable{cursor:pointer;transition:color .2s ease;border-bottom:1px solid transparent}.current-aspect-header h3.clickable:hover{color:var(--secondary-color);border-bottom-color:var(--secondary-color)}.current-availability{background:var(--bg-secondary);color:var(--text-primary);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:600;border:1px solid var(--border-color);white-space:nowrap;text-align:center;min-width:120px}.current-aspect-description{font-size:.9rem;color:var(--text-secondary);line-height:1.6}.current-aspect-description a{color:var(--secondary-color);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease}.current-aspect-description a:hover{border-bottom-color:var(--secondary-color)}.current-aspect-description strong{font-weight:700;color:var(--text-primary)}.current-aspect-description em{font-style:italic}.settings-view{min-height:100vh;background:var(--bg-primary)}.settings-header{background:var(--bg-white);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.settings-header .header-content{max-width:100%;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center}.settings-service-icon{width:32px;height:32px;border-radius:6px;object-fit:cover;box-shadow:var(--shadow-sm)}.settings-header h1{font-size:1.75rem;font-weight:700;color:var(--primary-color);margin-bottom:.25rem}.settings-main{max-width:900px;margin:0 auto;padding:2.5rem 2rem;box-sizing:border-box}.settings-section{background:var(--bg-white);border-radius:8px;padding:2rem;box-shadow:var(--shadow);border:1px solid var(--border-color);margin-bottom:2rem}.section-header h2{font-size:1.5rem;font-weight:700;color:var(--primary-color);margin:0}.tags-container{display:flex;flex-wrap:wrap;gap:.625rem;margin-bottom:1.25rem;min-height:2rem}.tag{display:inline-flex;align-items:center;gap:.5rem;background:#f0f4f8;border:1px solid #d0dae5;border-radius:20px;padding:.4rem .75rem;font-size:.9rem;transition:all .2s ease}.tag:hover{background:#e6ecf2;border-color:#b8c5d3}.tag-text{color:var(--text-primary);line-height:1.2}.tag-delete{background:transparent;border:none;color:#6b7785;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.tag-delete:hover{background:#d32f2f;color:#fff;transform:scale(1.1)}.add-tag-form{display:flex;gap:.75rem;align-items:flex-start;margin-top:1rem}.add-tag-input{flex:1;padding:.625rem 1rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;font-family:inherit;transition:all .2s ease}.add-tag-input:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #2196f31a}.add-tag-input::placeholder{color:var(--text-muted)}.add-tag-button{background:var(--secondary-color);color:#fff;padding:.625rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:600;border:1px solid var(--secondary-color);cursor:pointer;transition:all .2s ease;white-space:nowrap}.add-tag-button:hover{background:#1976d2;border-color:#1976d2;transform:translateY(-1px);box-shadow:0 4px 8px #2196f34d}.add-tag-button:active{transform:translateY(0)}.error-message{background:#fdecea;color:#d32f2f;padding:.75rem 1rem;border-radius:6px;border:1px solid #f5c6cb;font-size:.9rem;margin-top:.75rem}.assignments-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.assignments-table thead{background:var(--bg-secondary)}.assignments-table th{text-align:left;padding:.875rem 1rem;font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em;border-bottom:2px solid var(--border-color)}.assignments-table td{padding:.875rem 1rem;border-bottom:1px solid var(--bg-secondary);color:var(--text-primary);font-size:.95rem}.assignments-table tbody tr:hover{background:var(--bg-secondary)}.assignments-table tbody tr:last-child td{border-bottom:none}.role-select{padding:.4rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;font-family:inherit;background:#fff;cursor:pointer;transition:all .2s ease}.role-select:hover{border-color:var(--secondary-color)}.role-select:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #2196f31a}.delete-button{background:transparent;border:none;color:#6b7785;font-size:1.5rem;line-height:1;cursor:pointer;padding:.25rem;margin:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.delete-button:hover{background:#d32f2f;color:#fff;transform:scale(1.1)}.add-assignment-form{display:flex;gap:.75rem;align-items:flex-start;margin-top:1rem}.user-select{flex:1;padding:.625rem 1rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;font-family:inherit;background:#fff;cursor:pointer;transition:all .2s ease}.user-select:hover{border-color:var(--secondary-color)}.user-select:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #2196f31a}.add-button{background:var(--secondary-color);color:#fff;padding:.625rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:600;border:1px solid var(--secondary-color);cursor:pointer;transition:all .2s ease;white-space:nowrap}.add-button:hover{background:#1976d2;border-color:#1976d2;transform:translateY(-1px);box-shadow:0 4px 8px #2196f34d}.add-button:active{transform:translateY(0)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:2rem;max-width:600px;width:90%;box-shadow:0 10px 25px #0000004d}.modal h2{margin-top:0;margin-bottom:1rem;color:var(--primary-color);font-size:1.5rem}.modal p{margin-bottom:1rem;color:var(--text-secondary);line-height:1.5}.settings-toolbar{background:var(--bg-white);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:20;box-shadow:var(--shadow-sm)}.toolbar-content{max-width:100%;padding:1rem 2rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.back-button{padding:.5rem 1rem;font-size:.95rem;border:1px solid var(--border-color);background:#fff;color:var(--text-primary);border-radius:4px;cursor:pointer;transition:all .2s ease}.back-button:hover{background:var(--bg-secondary)}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.settings-tabs{background:var(--bg-white);border-bottom:2px solid var(--border-color);position:sticky;top:61px;z-index:19}.tabs-container{max-width:100%;padding:0 2rem;display:flex;gap:0}.tab-button{padding:1rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;font-family:Source Sans Pro,sans-serif}.tab-button:hover{color:var(--primary-color);background:var(--bg-secondary)}.tab-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:transparent}button .material-symbols-outlined,a .material-symbols-outlined{vertical-align:middle;font-size:1.25rem;margin-right:.375rem;display:inline-block;line-height:1}button,.secondary,.primary{display:inline-flex;align-items:center;justify-content:center;gap:.375rem}.role-select{width:auto;min-width:180px;max-width:100%}.super-admin-panel{min-height:100vh;background:var(--bg-primary)}.admin-header{background:var(--bg-white);border-bottom:1px solid var(--border-color);padding:1.5rem 2rem;box-shadow:var(--shadow-sm)}.admin-header .header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.admin-header h1{color:var(--primary-color);font-size:1.75rem;margin:0}.admin-header .header-actions{display:flex;align-items:center;gap:1rem}.admin-header .user-info{font-size:.9rem;color:var(--text-muted);font-weight:600}.admin-main{max-width:1400px;margin:0 auto;padding:2rem;box-sizing:border-box}.admin-section{background:var(--bg-white);border-radius:8px;padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow)}.admin-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-section h2{color:var(--text-primary);font-size:1.5rem;margin:0}.impersonation-status{padding:.5rem 1rem;background:#fff3e0;border:1px solid #FFB74D;border-radius:6px;font-size:.9rem;color:#e65100}.impersonation-status strong{font-weight:700}.search-box{margin-bottom:1.5rem}.search-input{width:100%;max-width:400px;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem}.admin-table code{background:var(--bg-secondary);padding:.25rem .5rem;border-radius:4px;font-family:Source Code Pro,monospace;font-size:.875rem}.role-badge.viewer{background:#e8f5e9;color:#388e3c}.user-group-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.user-group-badge.manual{background:#f5f5f5;color:#616161}.user-group-badge.entra_auto{background:#e1f5fe;color:#0277bd}.muted-text{color:var(--text-muted);font-style:italic}.form-group input,.form-group textarea{width:100%}.tenant-modal{max-width:600px;width:90%}.tenant-modal-user-info{background:var(--bg-secondary);border-radius:6px;padding:1rem 1.25rem;margin-bottom:1.5rem}.tenant-modal-user-info .user-name{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.tenant-modal-user-info .user-email{font-size:.9rem;color:var(--text-muted)}.section-label{display:block;font-weight:600;color:var(--text-primary);margin-bottom:.75rem;font-size:.95rem}.tenant-list{max-height:350px;overflow-y:auto;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-white)}.tenant-checkbox-item{display:flex;align-items:center;padding:.875rem 1.25rem;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--bg-secondary)}.tenant-checkbox-item:last-child{border-bottom:none}.tenant-checkbox-item:hover{background:var(--bg-primary)}.tenant-checkbox{width:18px;height:18px;margin:0;margin-right:1rem;cursor:pointer;flex-shrink:0}.tenant-info{display:flex;align-items:center;flex:1;min-width:0;gap:.75rem}.tenant-name{font-size:.95rem;color:var(--text-primary);flex:1;min-width:0;word-break:break-word}.primary-badge{display:inline-block;padding:.25rem .625rem;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap;flex-shrink:0}.help-text{margin-top:.75rem;padding:.75rem 1rem;background:#f5f5f5;border-radius:6px;font-size:.875rem;color:var(--text-muted);line-height:1.5}.admin-table tbody tr.archived-row{background:#f5f5f5;opacity:.7}.admin-table tbody tr.archived-row:hover{background:#eee;opacity:.8}.archived-badge{display:inline-block;padding:.25rem .625rem;background:#bdbdbd;color:#424242;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.active-badge{display:inline-block;padding:.25rem .625rem;background:#c8e6c9;color:#2e7d32;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}button.warning{background:#ff9800;color:#fff;border:none;padding:.625rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s ease}button.warning:hover{background:#f57c00}button.warning.small{padding:.375rem .75rem;font-size:.875rem}.delete-confirm-modal{max-width:600px}.delete-warning{background:#fff3e0;border:2px solid #FF9800;border-radius:6px;padding:1.25rem;margin-bottom:1.5rem}.delete-warning p{margin:.5rem 0;line-height:1.5}.delete-warning ul{margin:1rem 0;padding-left:1.5rem}.delete-warning li{margin:.375rem 0;line-height:1.4}.tenant-delete-name{font-size:1.25rem;color:#d32f2f;margin:1rem 0!important;padding:.75rem;background:#ffebee;border-radius:6px;text-align:center}.danger-text{color:#d32f2f;font-size:1rem;margin-top:1rem!important;padding-top:1rem;border-top:1px solid #FFAB91}.delete-confirm-modal .form-group input{font-family:Source Code Pro,monospace;font-size:1rem;text-align:center;text-transform:uppercase;letter-spacing:2px}.delete-confirm-modal button.danger:disabled{background:#bdbdbd;cursor:not-allowed;opacity:.6}.tenant-settings{min-height:100vh;background:var(--bg-primary)}.settings-header{background:var(--bg-white);border-bottom:1px solid var(--border-color);padding:1.5rem 2rem;box-shadow:var(--shadow-sm)}.settings-header .header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.settings-header h1{color:var(--primary-color);font-size:1.75rem;margin:0}.settings-header .header-actions{display:flex;align-items:center;gap:1rem}.settings-header .user-info{font-size:.9rem;color:var(--text-muted);font-weight:600}.settings-main{max-width:1400px;margin:0 auto;padding:2rem;box-sizing:border-box}.settings-section{background:var(--bg-white);border-radius:8px;padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow)}.settings-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.settings-section h2{color:var(--text-primary);font-size:1.5rem;margin:0}.admin-table{width:100%;border-collapse:collapse;font-size:.95rem}.admin-table thead{background:var(--bg-secondary)}.admin-table th{padding:.875rem 1rem;text-align:left;font-weight:700;color:var(--text-primary);border-bottom:2px solid var(--border-color)}.admin-table td{padding:.875rem 1rem;border-bottom:1px solid var(--bg-secondary)}.admin-table tbody tr:hover{background:var(--bg-primary)}.admin-table .actions{display:flex;gap:.5rem}.admin-table button.small{padding:.375rem .75rem;font-size:.875rem}.admin-table button:disabled{opacity:.5;cursor:not-allowed}.admin-table button:disabled:hover{transform:none;box-shadow:none}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:capitalize}.role-badge.admin{background:#e3f2fd;color:#1976d2}.role-badge.editor{background:#f3e5f5;color:#7b1fa2}.role-badge.reader{background:#e8f5e9;color:#388e3c}.auth-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.auth-badge.local{background:#e3f2fd;color:#1976d2}.auth-badge.entra{background:#e8f5e9;color:#388e3c}.empty-state{text-align:center;padding:2rem;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.modal{background:var(--bg-white);padding:2rem;border-radius:8px;max-width:500px;width:90%;box-shadow:var(--shadow-lg)}.modal h2{margin:0 0 1.5rem;color:var(--text-primary)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%}.form-group small{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.875rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:600}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.checkbox-label span{-webkit-user-select:none;user-select:none}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.impersonation-banner{position:sticky;top:0;width:100%;background:linear-gradient(135deg,#ffa726,#fb8c00);border-bottom:1px solid #F57C00;z-index:9999;box-shadow:0 1px 5px #fb8c004d}.banner-content{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.45rem .9rem;max-width:1200px;margin:0 auto}.banner-icon{font-size:1rem}.banner-text{font-size:.8rem;color:#fff;font-weight:500;flex:1;text-align:center}.banner-text strong{font-weight:700;text-decoration:underline}.stop-impersonation-btn{padding:.3rem .6rem;background:#fffffff2;color:#f57c00;border:none;border-radius:4px;font-weight:700;font-size:.75rem;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000001a}.stop-impersonation-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 3px 6px #00000026}.stop-impersonation-btn:active{transform:translateY(0)}@font-face{font-family:Source Sans Pro;src:url(/fonts/SourceSansPro-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Source Sans Pro;src:url(/fonts/SourceSansPro-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Source Code Pro;src:url(/fonts/SourceCodePro-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Source Code Pro;src:url(/fonts/SourceCodePro-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #4E3A79;--secondary-color: #2F4888;--accent-color: #D32D7D;--success-color: #A3BE8C;--warning-color: #EBCB8B;--bg-primary: #E5E8E8;--bg-secondary: #D1D1D3;--bg-white: #FFFFFF;--border-color: #BBBDBF;--text-primary: #4E3A79;--text-secondary: #6E6E70;--text-muted: #929496;--shadow-sm: 0 1px 3px rgba(78, 58, 121, .06);--shadow: 0 2px 6px rgba(78, 58, 121, .08);--shadow-lg: 0 4px 12px rgba(78, 58, 121, .1)}body{font-family:Source Sans Pro,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}button{font-family:Source Sans Pro,sans-serif;cursor:pointer;border:none;padding:.625rem 1.25rem;border-radius:6px;font-size:.95rem;font-weight:600;transition:all .2s ease;letter-spacing:.01em}button:hover{transform:translateY(-1px);box-shadow:var(--shadow)}button:active{transform:translateY(0)}button.primary{background:var(--secondary-color);color:#fff}button.primary:hover{background:#4c6a8f}button.secondary{background:var(--bg-white);color:var(--text-primary);border:1px solid var(--border-color)}button.secondary:hover{background:var(--bg-secondary);border-color:var(--text-muted)}button.danger{background:var(--accent-color);color:#fff}button.danger:hover{background:#a5535a}button.success{background:var(--success-color);color:#fff}button.success:hover{background:#8fa877}input,textarea,select{font-family:Source Sans Pro,sans-serif;padding:.625rem .875rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;background:var(--bg-white);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--secondary-color);box-shadow:0 0 0 3px #5e81ac1a}input::placeholder,textarea::placeholder{color:var(--text-muted)}table{width:100%;border-collapse:collapse;background:var(--bg-white)}th,td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--bg-secondary)}th{background:var(--bg-secondary);font-weight:600;color:var(--text-primary);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}tr:last-child td{border-bottom:none}.card{background:var(--bg-white);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#2e344080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bg-white);border-radius:12px;padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-color)}code,pre{font-family:Source Code Pro,monospace;font-size:.9em}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--text-primary);line-height:1.3}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--secondary-color);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none}.service-card:focus-visible{outline:3px solid var(--secondary-color);outline-offset:2px;box-shadow:0 4px 12px #2f488833}*:focus{outline:2px solid var(--secondary-color);outline-offset:2px}*:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-40px;left:0;background:var(--secondary-color);color:#fff;padding:8px 16px;text-decoration:none;border-radius:0 0 4px;font-weight:600;z-index:10000;transition:top .2s ease}.skip-link:focus{top:0;outline:3px solid var(--primary-color);outline-offset:2px}.current-view{padding:0}.current-table{width:100%;border-collapse:collapse;background:var(--bg-white);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.current-table thead{background:var(--primary-color);color:#fff}.current-table th{text-align:left;padding:1rem;font-weight:600;font-size:.95rem}.current-table tbody tr{border-bottom:1px solid var(--border-color)}.current-table tbody tr:last-child{border-bottom:none}.current-category-row{background:var(--bg-secondary)}.current-category-row td{padding:.75rem 1rem;font-size:1.1rem;color:var(--primary-color)}.current-aspect-title{padding:1rem;width:35%;vertical-align:top;font-weight:600;color:var(--text-primary)}.current-availability-text{margin-top:.5rem;font-size:.9rem;font-weight:400;color:var(--text-secondary)}.current-aspect-description{padding:1rem;vertical-align:top;color:var(--text-secondary)}.current-aspect-description p{margin:.5rem 0}.current-aspect-description p:first-child{margin-top:0}.current-aspect-description p:last-child{margin-bottom:0}.current-table .private-aspect{background-color:#d32d7d0d}.current-table .empty-category{padding:1rem;text-align:center;color:var(--text-muted);font-style:italic}
