:root{--clr-primary:       #4F46E5;--clr-primary-dark:  #3730a3;--clr-primary-light: #ede9fe;--clr-secondary:     #7C3AED;--clr-success:       #16a34a;--clr-success-light: #dcfce7;--clr-danger:        #dc2626;--clr-danger-light:  #fee2e2;--clr-warning:       #d97706;--clr-warning-light: #fef3c7;--clr-info:          #0891b2;--clr-info-light:    #cffafe;--clr-text:          #1e293b;--clr-muted:         #64748b;--clr-subtle:        #94a3b8;--clr-border:        #e2e8f0;--clr-surface:       #f8fafc;--clr-surface-hover: #f8f7ff;--clr-white:         #ffffff;--clr-role-admin:    var(--clr-primary);--clr-role-admin-bg: var(--clr-primary-light);--clr-role-tech:     var(--clr-info);--clr-role-tech-bg:  var(--clr-info-light);--clr-role-client:   var(--clr-muted);--clr-role-client-bg:#f1f5f9;--nav-bg-start: #1e1b4b;--nav-bg-end:   #312e81;--r-sm:   6px;--r-md:   8px;--r-lg:   10px;--r-xl:   12px;--r-2xl:  14px;--r-full: 9999px;--shadow-card:  0 1px 3px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.05);--shadow-hover: 0 4px 16px rgba(79,70,229,.13), 0 8px 32px rgba(0,0,0,.08);--shadow-drop:  0 8px 24px rgba(0,0,0,.12);--icon-sm: 36px;--icon-md: 44px;--icon-lg: 48px;--text-xs:  .72rem;--text-sm:  .85rem;--text-base: 1rem}body{background-color:var(--clr-surface);min-height:100vh}.navbar-sso{background:linear-gradient(135deg, var(--nav-bg-start) 0%, var(--nav-bg-end) 100%);box-shadow:0 2px 12px rgba(0,0,0,0.25);padding:.6rem 0}.navbar-sso .navbar-brand{font-weight:700;font-size:1rem;letter-spacing:.01em;color:#fff !important;display:flex;align-items:center;gap:.5rem}.nav-brand-icon{width:34px;height:34px;background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-sso .nav-link{color:rgba(255,255,255,0.75) !important;font-size:var(--text-sm);padding:.4rem .75rem;border-radius:var(--r-sm);transition:background .15s, color .15s}.navbar-sso .nav-link:hover{color:#fff !important;background:rgba(255,255,255,0.1)}.navbar-sso .nav-link.active{color:#fff !important;background:rgba(255,255,255,0.15)}.subnav{background:var(--clr-white);border-bottom:1px solid var(--clr-border);padding:0}.subnav .container{display:flex;gap:0}.subnav-link{display:flex;align-items:center;gap:.4rem;padding:.65rem 1rem;font-size:.84rem;font-weight:500;color:var(--clr-muted);text-decoration:none;border-bottom:2px solid transparent;transition:color .15s, border-color .15s;white-space:nowrap}.subnav-link:hover{color:var(--clr-primary);border-bottom-color:var(--clr-primary-light)}.subnav-link.active{color:var(--clr-primary);border-bottom-color:var(--clr-primary);font-weight:600}.user-badge{width:34px;height:34px;border-radius:var(--r-full);background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));color:#fff;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar{border-radius:var(--r-full);background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar-sm{width:var(--icon-sm);height:var(--icon-sm);font-size:.75rem}.avatar-md{width:var(--icon-md);height:var(--icon-md);font-size:.85rem}.avatar-lg{width:56px;height:56px;font-size:1.2rem}.card{border:none;box-shadow:var(--shadow-card);border-radius:var(--r-2xl);transition:box-shadow .18s, transform .18s}.card-hover:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card-accent{border-left:4px solid var(--clr-muted)}.card-accent-primary{border-left:4px solid var(--clr-primary)}.card-accent-info{border-left:4px solid var(--clr-info)}.card-accent-success{border-left:4px solid var(--clr-success)}.card-accent-warning{border-left:4px solid var(--clr-warning)}.icon-box{border-radius:var(--r-xl);display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon-box-sm{width:var(--icon-sm);height:var(--icon-sm)}.icon-box-md{width:var(--icon-md);height:var(--icon-md)}.icon-box-lg{width:var(--icon-lg);height:var(--icon-lg);border-radius:var(--r-xl)}.icon-box-primary{background:var(--clr-primary-light)}.icon-box-info{background:var(--clr-info-light)}.icon-box-success{background:var(--clr-success-light)}.icon-box-warning{background:var(--clr-warning-light)}.icon-box-neutral{background:#f1f5f9}.role-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .6rem;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:700;line-height:1;background:#f1f5f9;color:#475569}.role-badge-super-admin{background:#fef3c7;color:#d97706}.role-badge-administrator{background:var(--clr-role-admin-bg);color:var(--clr-role-admin)}.role-badge-technician{background:var(--clr-role-tech-bg);color:var(--clr-role-tech)}.role-badge-client{background:var(--clr-role-client-bg);color:var(--clr-role-client)}.sso-label{font-size:var(--text-xs);color:var(--clr-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.sso-text{color:var(--clr-text)}.btn-primary-gradient{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));color:#fff;border:none;border-radius:var(--r-lg);font-weight:600;transition:opacity .15s, transform .1s}.btn-primary-gradient:hover{opacity:.92;color:#fff;transform:translateY(-1px)}.dashboard-entity-card{cursor:pointer;transition:box-shadow .15s, transform .1s}.dashboard-entity-card:hover{box-shadow:0 6px 18px rgba(0,0,0,0.08);transform:translateY(-2px)}.table-clickable tbody tr{cursor:pointer;transition:background .12s}.table-clickable tbody tr:hover{background:var(--clr-surface-hover)}.action-cards-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));gap:1rem}.main-content{padding:2rem 0}.alert-autodismiss{animation:sso-fadeout .5s ease 4s forwards}@keyframes sso-fadeout{to{opacity:0;pointer-events:none;max-height:0;padding:0;margin:0;overflow:hidden}}.sso-dt{font-size:.8rem;color:var(--clr-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.ux-section{margin-bottom:2.5rem}.ux-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--clr-subtle);border-bottom:1px solid var(--clr-border);padding-bottom:.4rem;margin-bottom:1rem}.ux-example{background:#f8fafc;border:1px dashed var(--clr-border);border-radius:var(--r-lg);padding:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.ux-code{font-size:.78rem;background:#1e293b;color:#94a3b8;border-radius:var(--r-md);padding:.2rem .5rem;font-family:monospace}.sso-suggestion{cursor:pointer;font-size:.875rem;border-bottom:1px solid #f1f5f9}.sso-suggestion:hover{background:#f8fafc}[data-theme="dark"]{--clr-text:          #e2e8f0;--clr-muted:         #94a3b8;--clr-subtle:        #64748b;--clr-border:        #334155;--clr-surface:       #0f172a;--clr-surface-hover: #1e293b;--clr-white:         #1e293b;--nav-bg-start:      #020617;--nav-bg-end:        #0f172a;--shadow-card:       0 1px 3px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--shadow-hover:      0 4px 16px rgba(79,70,229,.2), 0 8px 32px rgba(0,0,0,.4);--bs-border-color:   #334155}[data-theme="dark"] body{background-color:var(--clr-surface);color:var(--clr-text)}[data-theme="dark"] .card{background:#1e293b}[data-theme="dark"] .subnav{background:#0f172a;border-color:var(--clr-border)}[data-theme="dark"] .dropdown-menu{background:#1e293b}[data-theme="dark"] .dropdown-item{color:var(--clr-text)}[data-theme="dark"] .dropdown-item:hover{background:var(--clr-surface-hover)}[data-theme="dark"] .dropdown-divider{border-color:var(--clr-border)}[data-theme="dark"] .table{--bs-table-bg: transparent;--bs-table-border-color: var(--clr-border);color:var(--clr-text)}[data-theme="dark"] .table-light{--bs-table-bg: #1e293b;--bs-table-border-color: var(--clr-border);--bs-table-color: var(--clr-text)}[data-theme="dark"] .form-control,[data-theme="dark"] .form-select{background-color:#1e293b;border-color:var(--clr-border);color:var(--clr-text)}[data-theme="dark"] .form-control::placeholder{color:var(--clr-subtle)}[data-theme="dark"] .form-label,[data-theme="dark"] .form-check-label{color:var(--clr-text)}[data-theme="dark"] .form-text{color:var(--clr-muted)}[data-theme="dark"] .border-light{border-color:var(--clr-border) !important}[data-theme="dark"] .pagination .page-link{background:#1e293b;border-color:var(--clr-border);color:var(--clr-text)}[data-theme="dark"] .page-item.active .page-link{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}[data-theme="dark"] .page-item.disabled .page-link{background:#0f172a;color:var(--clr-subtle)}[data-theme="dark"] .ux-example{background:#0f172a}[data-theme="dark"] .alert-autodismiss{background:#1e293b}[data-theme="dark"] .text-muted{color:var(--clr-muted) !important}:root{--text-70:  .7rem;--text-80:  .8rem;--text-875: .875rem;--text-90:  .9rem;--text-65:  .65rem}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-70{font-size:var(--text-70)}.text-80{font-size:var(--text-80)}.text-875{font-size:var(--text-875)}.text-90{font-size:var(--text-90)}.text-65{font-size:var(--text-65)}.clr-primary{color:var(--clr-primary)}.clr-secondary{color:var(--clr-secondary)}.clr-info{color:var(--clr-info)}.clr-success{color:var(--clr-success)}.clr-warning{color:var(--clr-warning)}.clr-danger{color:var(--clr-danger)}.clr-muted{color:var(--clr-muted)}.clr-subtle{color:var(--clr-subtle)}.clr-slate{color:#475569}.clr-light-slate{color:#cbd5e1}.badge-primary{background:var(--clr-primary-light);color:var(--clr-primary);font-weight:700}.badge-info{background:var(--clr-info-light);color:var(--clr-info);font-weight:700}.badge-success{background:var(--clr-success-light);color:var(--clr-success);font-weight:700}.badge-warning{background:var(--clr-warning-light);color:var(--clr-warning);font-weight:700}.badge-danger{background:var(--clr-danger-light);color:var(--clr-danger);font-weight:700}.badge-neutral{background:#f1f5f9;color:#475569;font-weight:700}.btn-variant-primary{background:var(--clr-secondary);color:#fff !important;border-radius:var(--r-md)}.btn-variant-info{background:var(--clr-info);color:#fff !important;border-radius:var(--r-md)}.btn-variant-success{background:var(--clr-success);color:#fff !important;border-radius:var(--r-md)}.btn-variant-warning{background:var(--clr-warning);color:#fff !important;border-radius:var(--r-md)}.btn-variant-neutral{background:var(--clr-muted);color:#fff !important;border-radius:var(--r-md)}.fs-icon{font-size:1rem}.fs-icon-md{font-size:1.2rem}.fs-icon-lg{font-size:1.3rem}.fs-icon-xl{font-size:1.75rem}.fs-icon-2x{font-size:2rem}.fs-icon-3x{font-size:2.5rem}.icon-fw{width:16px;text-align:center}.avatar-xl{width:72px;height:72px;font-size:1.4rem}.icon-box-xl{width:72px;height:72px;border-radius:18px}.icon-box-96{width:96px;height:96px;border-radius:24px}.icon-box-gradient{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));color:#fff}.swatch{width:32px;height:32px;border-radius:var(--r-md);flex-shrink:0}.swatch-primary{background:var(--clr-primary)}.swatch-secondary{background:var(--clr-secondary)}.swatch-info{background:var(--clr-info)}.swatch-success{background:var(--clr-success)}.swatch-warning{background:var(--clr-warning)}.swatch-danger{background:var(--clr-danger)}.swatch-text{background:var(--clr-text)}.swatch-muted{background:var(--clr-muted)}.sso-surface{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-lg)}.btn-nav-pill{background:rgba(255,255,255,0.1) !important;border:1px solid rgba(255,255,255,0.2) !important;border-radius:20px !important;color:#fff !important}.btn-nav-pill:hover{background:rgba(255,255,255,0.18) !important}.icon-super-admin{color:#f59e0b}.form-control,.form-select{border-radius:var(--r-lg)}.alert{border-radius:var(--r-lg)}.breadcrumb{font-size:var(--text-sm);background:none;padding:0;margin:0}.dropdown-menu{border-radius:var(--r-xl) !important;border:none !important;box-shadow:var(--shadow-drop) !important}.auth-body{background:linear-gradient(135deg, var(--clr-primary) 0%, var(--clr-secondary) 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:440px;border-radius:20px !important;box-shadow:0 25px 60px rgba(0,0,0,0.35) !important;border:none !important;padding:2.5rem}.auth-icon{width:72px;height:72px;background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;box-shadow:0 8px 24px rgba(79,70,229,0.4)}.auth-title{font-size:1.1rem;font-weight:700;color:var(--clr-text);text-align:center;margin-bottom:.25rem}.auth-subtitle{font-size:var(--text-875);color:var(--clr-muted);text-align:center;margin-bottom:2rem}.btn-sso{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border:none;border-radius:var(--r-lg);padding:.75rem;font-weight:600;font-size:.95rem;letter-spacing:.02em;width:100%;color:#fff;display:block;text-align:center;transition:opacity .2s, transform .1s}.btn-sso:hover{opacity:.92;transform:translateY(-1px);color:#fff}.btn-sso:active{transform:translateY(0)}.auth-links{text-align:center;margin-top:1.5rem;font-size:var(--text-sm)}.auth-links a{color:var(--clr-primary);text-decoration:none;font-weight:500}.auth-links a:hover{text-decoration:underline}.form-check-input:checked{background-color:var(--clr-primary);border-color:var(--clr-primary)}.min-vh-60{min-height:60vh}.mw-400{max-width:400px}.text-meta{font-size:.8rem;color:var(--clr-subtle)}.icon-box-info-gradient{background:linear-gradient(135deg, var(--clr-primary-light), #dbeafe)}.sso-autocomplete-dropdown{z-index:1000;max-height:220px;overflow-y:auto;margin-top:4px}.mini-map{width:116px;height:116px;border-radius:var(--r-lg);overflow:hidden;position:relative;flex-shrink:0;background:var(--clr-primary-light)}.mini-map img{width:100%;height:100%;display:block;opacity:0;transition:opacity .35s ease}.mini-map.is-loaded img{opacity:1}[data-theme="dark"] .mini-map img{filter:brightness(0.82) saturate(0.85)}.mini-map-pin{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--clr-primary);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,0.35);transform:translate(-50%, -50%);left:50%;top:50%}.mini-map-credit{position:absolute;right:2px;bottom:1px;font-size:8px;line-height:1.4;padding:0 3px;border-radius:3px;background:rgba(255,255,255,0.65);color:#555}.live-search-loading{opacity:.5;pointer-events:none;transition:opacity .1s}.row-clickable{cursor:pointer;transition:box-shadow 0.12s ease}.row-clickable:hover{box-shadow:0 4px 14px rgba(79,70,229,0.15)}.sector-app-card{border:2px solid var(--clr-primary, #4f46e5);transition:box-shadow 0.12s ease}.sector-app-card:hover{box-shadow:0 8px 24px rgba(79,70,229,0.18)}
