@charset "UTF-8";:root{--font-sans: Inter, sans-serif;--radius: 8px;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 28px;--primary: #2563EB;--primary-dark: #1D4ED8;--primary-light: #60A5FA;--primary-hover: #3B82F6;--bg-sidebar: #FFFFFF;--bg-sidebar-hover: #F3F4F6;--sidebar-active-bg: #EFF6FF;--sidebar-border: #cccccc;--sidebar-text: #111827;--sidebar-text-muted: #6B7280;--bg-main: #F9FAFB;--bg-card: #FFFFFF;--bg-secondary: #FFFFFF;--bg--search-color:#F3F4F6;--bg--disabled-color:#F3F4F6;--text-primary: #111827;--text-secondary: #6B7280;--text-light: #9CA3AF;--text-muted: #9CA3AF;--text-white: #FFFFFF;--border-color: #cccccc;--border-light: #cccccc;--success: #10B981;--success-bg: #D1FAE5;--success-text: #065F46;--danger: #EF4444;--danger-bg: #FEE2E2;--danger-text: #991B1B;--warning: #F59E0B;--warning-bg: #FEF3C7;--warning-text: #92400E;--info: #3B82F6;--info-bg: #DBEAFE;--info-text: #1E40AF;--badge-blue-bg: rgba(37, 99, 235, .1);--badge-blue-text: #2563EB;--badge-green-bg: rgba(16, 185, 129, .1);--badge-green-text: #10B981;--badge-gray-bg: rgba(100, 116, 139, .1);--badge-gray-text: #64748B;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}[data-theme=dark]{--primary: #3B82F6;--primary-dark: #2563EB;--primary-light: #60A5FA;--primary-hover: #60A5FA;--bg-sidebar: #0B1120;--bg-sidebar-hover: #1A2332;--sidebar-active-bg: #1A2332;--sidebar-border: rgba(255, 255, 255, .1);--sidebar-text: #E2E8F0;--sidebar-text-muted: #94A3B8;--bg-main: #0F1419;--bg-card: #1A1F2E;--bg-secondary: #252B3A;--bg--search-color:#252B3A;--bg--disabled-color:#252B3A;--text-primary: #E2E8F0;--text-secondary: #94A3B8;--text-light: #64748B;--text-muted: #94A3B8;--text-white: #FFFFFF;--border-color: rgba(255, 255, 255, .12);--border-light: rgba(255, 255, 255, .08);--success: #10B981;--success-bg: rgba(16, 185, 129, .15);--success-text: #34D399;--danger: #EF4444;--danger-bg: rgba(239, 68, 68, .15);--danger-text: #F87171;--warning: #F59E0B;--warning-bg: rgba(245, 158, 11, .15);--warning-text: #FBBF24;--info: #3B82F6;--info-bg: rgba(59, 130, 246, .15);--info-text: #60A5FA;--badge-blue-bg: rgba(59, 130, 246, .2);--badge-blue-text: #60A5FA;--badge-green-bg: rgba(16, 185, 129, .2);--badge-green-text: #34D399;--badge-gray-bg: rgba(148, 163, 184, .2);--badge-gray-text: #94A3B8;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-main);color:var(--text-primary);margin:0;min-height:100vh;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}*{scrollbar-width:thin;scrollbar-color:var(--text-muted) var(--bg-secondary)}@media(max-width:768px){::-webkit-scrollbar{width:4px;height:4px}}@media(max-width:768px){input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],select,textarea{font-size:16px}}*{-webkit-tap-highlight-color:transparent}@supports (padding: max(0px)){body{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}}@media(max-width:1024px){.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}}@media(max-width:768px){.grid-auto-fit,.grid-auto-fill{grid-template-columns:1fr!important}.flex-row-to-col,.btn-group{flex-direction:column!important}.btn-group .btn,.btn-group button{width:100%!important}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],select,textarea{max-width:100%!important}.card,.container,.section{padding:16px!important}h1{font-size:22px!important}h2{font-size:20px!important}h3{font-size:18px!important}table{font-size:12px!important}th{font-size:11px!important;padding:10px 12px!important}td{padding:12px!important}.badge{font-size:11px!important;padding:3px 8px!important}}@media(max-width:480px){.card,.container,.section{padding:12px!important}h1{font-size:20px!important}h2{font-size:18px!important}h3{font-size:16px!important}table{font-size:11px!important}th{font-size:10px!important;padding:8px 10px!important}td{padding:10px!important}.btn{font-size:12px!important;padding:8px 14px!important}.badge{font-size:10px!important;padding:2px 6px!important}}.mobile-hide{display:block}.mobile-show{display:none}@media(max-width:768px){.mobile-hide{display:none!important}.mobile-show{display:block!important}.mobile-show-flex{display:flex!important}}@media(max-width:768px){.text-sm-left{text-align:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}}@media(max-width:768px){button,a,input[type=button],input[type=submit],.btn,.btn-icon{min-height:44px}.btn-icon{min-width:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center}.action-buttons{display:flex;gap:8px;flex-wrap:wrap}button,.btn,.btn-icon{-webkit-tap-highlight-color:rgba(0,0,0,.1);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}body{overflow-x:hidden;-webkit-overflow-scrolling:touch}*{-webkit-overflow-scrolling:touch}img{max-width:100%;height:auto;display:block}.table-container,.scroll-container{overflow-x:auto;-webkit-overflow-scrolling:touch}:is(.table-container,.scroll-container)::-webkit-scrollbar{height:6px}:is(.table-container,.scroll-container)::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}table thead th{position:sticky;top:0;z-index:10;background:var(--bg-card)}}@media(max-width:768px)and (orientation:landscape){.header{height:52px}.modal-content{max-height:85vh}}@media(max-width:360px){.btn{font-size:11px!important;padding:7px 12px!important}.card,.container,.section{padding:10px!important}h1{font-size:18px!important}h2{font-size:16px!important}h3{font-size:14px!important}}.toast{display:flex;align-items:center;gap:12px;min-width:300px;max-width:500px;padding:16px;border-radius:8px;box-shadow:var(--shadow-lg);background:var(--bg-card);border-left:4px solid;animation:slideIn .3s ease-out;position:relative}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--info)}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-warning .toast-icon{color:var(--warning)}.toast-info .toast-icon{color:var(--info)}.toast-message{flex:1;font-size:14px;color:var(--text-primary);line-height:1.5}.toast-close{flex-shrink:0;background:none;border:none;padding:4px;cursor:pointer;color:var(--text-light);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.toast-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast-container .toast{pointer-events:auto}.toast-password{background:#fef3c7;border-left:4px solid #f59e0b;color:#78350f;min-width:400px;padding:16px}.toast-password .toast-icon{color:#f59e0b}.toast-content-password{flex:1;display:flex;flex-direction:column;gap:12px}.toast-message-password{font-weight:500;font-size:14px;color:#78350f}.toast-password-display{display:flex;align-items:center;gap:8px;background:#fff;padding:8px 12px;border-radius:6px;border:1px solid #fbbf24}.password-code-toast{flex:1;font-family:Courier New,monospace;font-size:16px;font-weight:600;color:#d97706;letter-spacing:1px}.toast-copy-btn{background:#f59e0b;border:none;color:#fff;padding:6px 10px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.toast-copy-btn:hover{background:#d97706;transform:scale(1.05)}.toast-copy-btn:active{transform:scale(.95)}@media(max-width:480px){.toast-container{top:12px;left:12px;right:12px}.toast,.toast-password{min-width:0;max-width:100%;width:100%}}.access-denied-container{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:40px 20px}.access-denied-content{text-align:center;max-width:500px;background:#fff;padding:60px 40px;border-radius:12px;box-shadow:0 4px 20px #0000001a}.access-denied-icon{color:#fc8181;margin-bottom:24px}.access-denied-content h1{font-size:32px;font-weight:700;color:#1a202c;margin:0 0 16px}.access-denied-content p{color:#4a5568;font-size:16px;line-height:1.6;margin:0 0 12px}.access-denied-hint{font-size:14px;color:#718096;margin-bottom:32px}.access-denied-content .btn-primary{background:#667eea;color:#fff;border:none;padding:12px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.access-denied-content .btn-primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 8px 16px #667eea4d}@media(max-width:480px){.access-denied-content{padding:40px 20px}.access-denied-content h1{font-size:24px}.access-denied-content p{font-size:15px}}.server-error-overlay{position:fixed;inset:0;background:#374151c7;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:999999;animation:server-error-fade-in .16s ease-out;padding:20px}@keyframes server-error-fade-in{0%{opacity:0}to{opacity:1}}.server-error-card{background:#fff;color:#1f2937;border-radius:14px;padding:40px 56px;text-align:center;box-shadow:0 20px 50px #00000059;max-width:420px;width:100%}.server-error-icon{width:88px;height:88px;margin:0 auto 18px;border-radius:50%;background:#fee2e2;color:#dc2626;display:flex;align-items:center;justify-content:center}.server-error-title{font-size:1.75rem;font-weight:700;margin:0 0 8px;color:#111827}.server-error-subtitle{font-size:1rem;margin:0 0 24px;color:#6b7280}.server-error-retry{appearance:none;border:none;background:#2563eb;color:#fff;padding:10px 28px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .12s ease}.server-error-retry:hover{background:#1d4ed8}.server-error-retry:active{transform:translateY(1px)}.server-error-retry:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}@media(prefers-color-scheme:dark){.server-error-card{background:#1f2937;color:#f3f4f6}.server-error-title{color:#f9fafb}.server-error-subtitle{color:#9ca3af}}.sidebar{width:240px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);position:fixed;left:0;top:64px;bottom:0;display:flex;flex-direction:column;z-index:100;transition:width .28s cubic-bezier(.4,0,.2,1);will-change:width;overflow:hidden}.sidebar.collapsed{width:70px}.sidebar-top-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-color);flex-shrink:0;min-height:48px;transition:padding .28s cubic-bezier(.4,0,.2,1)}.sidebar.collapsed .sidebar-top-bar{justify-content:center;padding:10px 0}.sidebar-top-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;overflow:hidden}.sidebar-top-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .2s ease,color .2s ease}.sidebar-top-toggle:hover{background:var(--bg-sidebar-hover);color:var(--primary)}.sidebar-top-toggle:active{background:#2563eb1a;color:var(--primary)}.sidebar-top-toggle:disabled,.sidebar-top-toggle.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.sidebar-top-toggle:disabled:hover,.sidebar-top-toggle.disabled:hover{background:transparent;color:var(--text-secondary)}.sidebar-nav{flex:1;min-height:0;padding:8px 0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.sidebar-nav::-webkit-scrollbar{display:none;width:0;height:0}.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 16px;margin:2px 10px;color:var(--text-primary);text-decoration:none;transition:background .2s ease,color .2s ease,padding .28s cubic-bezier(.4,0,.2,1),margin .28s cubic-bezier(.4,0,.2,1);font-size:14px;font-weight:500;border-radius:var(--radius);white-space:nowrap}.sidebar.collapsed .sidebar-link{justify-content:center;padding:11px 0;margin:2px 8px}.sidebar-link:hover{background-color:var(--bg-sidebar-hover);color:var(--sidebar-text)}.sidebar-link.active{background-color:var(--primary);color:#fff}.sidebar-link.active svg{color:#fff}.sidebar-link.active:hover{background-color:var(--primary-dark);color:#fff}.sidebar-link svg{flex-shrink:0}.sidebar-link span{overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .sidebar-link span{display:none}@media(max-width:768px){.sidebar{transform:translate(-100%);z-index:200;width:240px;box-shadow:var(--shadow-lg)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{transform:translate(-100%)}.sidebar.collapsed.mobile-open{width:240px;transform:translate(0)}.sidebar.mobile-open .sidebar-link span{display:block}.sidebar.mobile-open .sidebar-link{justify-content:flex-start;padding:11px 16px;margin:2px 10px}.sidebar.mobile-open .sidebar-top-bar{justify-content:space-between;padding:10px 12px}.sidebar-top-toggle{display:none}}.sidebar-group{margin:2px 0}.sidebar-group-header{display:flex;align-items:center;gap:12px;padding:11px 16px;margin:2px 10px;color:var(--text-primary);background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;border-radius:var(--radius);white-space:nowrap;width:calc(100% - 20px);text-align:left;transition:background .2s ease,color .2s ease,padding .28s cubic-bezier(.4,0,.2,1),margin .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1)}.sidebar-group-header:hover{background-color:var(--bg-sidebar-hover);color:var(--sidebar-text)}.sidebar-group-header.open{color:var(--primary)}.sidebar-group-label{flex:1;overflow:hidden;text-overflow:ellipsis}.sidebar-group-chevron{display:flex;align-items:center;flex-shrink:0;color:var(--text-secondary);transition:transform .25s cubic-bezier(.4,0,.2,1),color .2s ease;transform:rotate(0)}.sidebar-group-header.open .sidebar-group-chevron{color:var(--primary);transform:rotate(180deg)}.sidebar-group-items{overflow:hidden}.sidebar-sublink{padding:9px 16px!important;margin:1px 10px 1px 42px!important;font-size:13px!important}.sidebar-sublink svg{flex-shrink:0}.sidebar.collapsed .sidebar-group-header{justify-content:center;padding:11px 0;margin:2px 8px;width:calc(100% - 16px)}.sidebar-group-items-collapsed{display:flex;flex-direction:column}.sidebar-footer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 12px;border-top:1px solid var(--border-color);flex-shrink:0}.sidebar-footer-label{font-size:10px;font-weight:500;letter-spacing:.4px;color:var(--text-secondary);text-transform:uppercase;line-height:1}.sidebar-footer-logo{height:18px;width:auto;max-width:130px;display:block;object-fit:contain}.sidebar.collapsed .sidebar-footer{padding:10px 4px}.sidebar.collapsed .sidebar-footer-logo{max-width:54px;height:16px}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar-overlay{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-overlay.active{display:block;opacity:1;pointer-events:auto}}.modal-overlay{position:fixed;inset:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.modal-content-xxlarge{max-width:800px!important}.modal-content-wide{max-width:1000px!important}.modal-content-form900{max-width:900px!important}.modal-content-detail{max-width:500px!important}.modal-content-notifications{max-width:740px!important}.modal-content{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-light);width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .3s ease-out;box-sizing:border-box}.modal-content::-webkit-scrollbar{display:none}.modal-content{-ms-overflow-style:none;scrollbar-width:none}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:10px 24px;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-content>form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.modal-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.modal-close{background:transparent;border:none;font-size:24px;color:var(--text-light);cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease}.modal-close:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:16px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.modal-body::-webkit-scrollbar{display:none}.modal-footer{padding:16px 35px;border-top:1px solid var(--border-light);background:var(--bg-secondary);display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}.form-group{margin-bottom:10px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text-primary);font-size:.9rem}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-card);color:var(--text-primary);font-size:.95rem;transition:all .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-group input::placeholder{color:var(--text-light)}.form-group small{display:block;margin-top:3px;color:var(--text-light);font-size:.85rem}.btn{padding:10px 20px;border:none;border-radius:6px;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}.btn-secondary{background-color:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-secondary)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.error-message{background-color:var(--danger-bg);color:var(--danger-text);padding:12px;border-radius:6px;margin-bottom:10px;font-size:.9rem}@media(max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.modal-content{width:100%;max-width:none;margin:0;max-height:95vh;border-radius:16px 16px 0 0;animation:slideUpMobile .3s ease-out}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{padding:18px 16px}.modal-title{font-size:18px}.modal-close{width:40px;height:40px}.modal-body{padding:12px;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-footer{padding:16px;flex-direction:column-reverse;gap:10px}.modal-footer .btn{width:100%;justify-content:center;min-height:48px}.form-group{margin-bottom:10px}.form-group label{font-size:15px;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{padding:12px 14px;font-size:16px;min-height:48px;border-radius:8px;-webkit-appearance:none;appearance:none}.form-group textarea{min-height:100px;resize:vertical}.form-group small{font-size:13px;margin-top:4px}}@media(max-width:480px){.modal-content{width:100%;margin:.5rem;max-height:calc(100vh - 1rem);border-radius:8px}.modal-header{padding:12px}.modal-title{font-size:16px}.modal-body,.modal-footer{padding:12px}.form-group{margin-bottom:10px}.form-group label{font-size:.8125rem}.form-group input,.form-group select{padding:8px 10px;font-size:.8125rem}.btn{padding:9px 16px;font-size:.875rem}.error-message{font-size:.8125rem;padding:10px}}.modal-content:has(.change-password-form){max-width:500px}.change-password-form{display:flex;flex-direction:column;gap:10px}.form-description{color:var(--text-secondary);font-size:14px;margin-bottom:8px}.form-group label{font-size:14px;font-weight:500;color:var(--text-primary)}.password-input-wrapper input{width:100%;padding:10px 40px 10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background-color:var(--bg-card);color:var(--text-primary);transition:all .2s}.password-input-wrapper input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.password-input-wrapper input.error{border-color:var(--danger)}.password-input-wrapper input.error:focus{box-shadow:0 0 0 3px #ef44441a}.password-input-wrapper input:disabled{background-color:var(--bg-secondary);cursor:not-allowed}.password-toggle{position:absolute;right:12px;background:none;border:none;padding:4px;cursor:pointer;color:var(--text-light);display:flex;align-items:center;justify-content:center;transition:color .2s}.password-toggle:hover{color:var(--text-secondary)}.password-toggle:focus{outline:none}.error-message{color:var(--danger-text);font-size:13px;margin-top:4px}.password-requirements{margin-top:8px;padding:12px;background-color:var(--danger-bg);border-radius:6px;border-left:3px solid var(--danger)}.password-requirements .requirements-title{font-size:13px;font-weight:500;color:var(--danger-text);margin-bottom:8px}.password-requirements .requirements-title.success{color:var(--success-text);border-left-color:var(--success)}.requirements-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.requirement-item{font-size:13px;color:var(--danger-text);padding-left:16px;position:relative}.requirement-item:before{content:"✗";position:absolute;left:0;color:var(--danger);font-weight:700}.requirement-item.success:before{content:"✓";color:var(--success)}.password-requirements.success{background-color:var(--success-bg);border-left-color:var(--success)}@media(max-width:768px){.password-input-wrapper input{font-size:16px}}.notification-filters{display:flex;flex-wrap:nowrap;align-items:center;gap:.75rem;margin-bottom:.35rem;padding:.2rem .75rem;background:var(--bg-secondary, #f8f9fa);border-radius:8px}.filter-select,.filter-input,.filter-datetime{padding:.5rem .75rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;font-size:.875rem;background:var(--bg-card, white);color:var(--text-primary, #212529);min-width:0}.notification-filters .filter-select{flex:.65 1 0}.notification-filters .filter-input{flex:2 1 0}.notification-filters .btn-filter{flex:1 1 0;justify-content:center}.notification-filters .notification-status-checks{flex:1 1 0}.notification-status-checks{display:flex;align-items:center;justify-content:center;gap:.85rem}.status-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.825rem;color:var(--text-primary, #212529);cursor:pointer;white-space:nowrap}.status-check input{width:15px;height:15px;cursor:pointer;accent-color:var(--primary, #4a90e2)}.notification-date-filter{display:flex;align-items:center;gap:.75rem;margin-bottom:.35rem;padding:.4rem .75rem;background:var(--bg-secondary, #f8f9fa);border-radius:8px;flex-wrap:nowrap}.date-filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.date-filter-btn{display:flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border:1px solid var(--border-color, #e0e0e0);background:var(--bg-card, white);border-radius:6px;font-size:.825rem;font-weight:500;color:var(--text-secondary, #4b5563);cursor:pointer;transition:all .15s}.date-filter-btn:hover{border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6);background:var(--info-bg, #eff6ff)}.date-filter-btn.active{background:var(--primary, #3b82f6);color:#fff;border-color:var(--primary, #3b82f6)}.date-filter-inputs{display:flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0}.date-filter-label{font-size:.825rem;font-weight:500;color:var(--text-secondary, #6b7280)}.date-filter-input{padding:.4rem .6rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;font-size:.825rem;color:var(--text-primary, #1f2937);background:var(--bg-card, white);flex:1 1 0;min-width:0;max-width:180px}.date-filter-input:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.filter-select:focus,.filter-input:focus,.filter-datetime:focus{outline:none;border-color:var(--primary, #4a90e2);box-shadow:0 0 0 2px #4a90e21a}.btn-filter{padding:.5rem 1rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.btn-primary{background:var(--primary, #4a90e2);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--primary-dark, #357abd)}.btn-secondary{background:var(--secondary, #6c757d);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.btn-secondary:hover:not(:disabled){background:var(--secondary-dark, #5a6268)}.notification-sort{display:flex;align-items:center;gap:.75rem;margin-bottom:.35rem;padding:.4rem .75rem;background:var(--bg-secondary, #f8f9fa);border-radius:8px}.sort-select{padding:.5rem .75rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;font-size:.875rem;background:var(--bg-card, white);color:var(--text-primary, #212529);flex:1}.sort-select:focus{outline:none;border-color:var(--primary, #4a90e2)}.notification-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto;padding:0}.notification-content{min-height:52vh;display:flex;flex-direction:column;position:relative}.notification-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff9;border-radius:8px;z-index:2}[data-theme=dark] .notification-loading-overlay{background:#0006}.notification-spinner{width:36px;height:36px;border:3px solid var(--border-color, #e0e0e0);border-top-color:var(--primary, #4a90e2);border-radius:50%;animation:notif-spin .7s linear infinite}@keyframes notif-spin{to{transform:rotate(360deg)}}.notification-content .loading-state,.notification-content .empty-state{flex:1;justify-content:center}.notification-table-wrap{max-height:52vh;overflow:auto;border:1px solid var(--border-color, #e0e0e0);border-radius:8px}.notification-table{width:100%;border-collapse:collapse;font-size:.825rem}.notification-table thead th{position:sticky;top:0;z-index:1;background:var(--bg-secondary, #f8f9fa);text-align:left;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #6c757d);padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #e0e0e0);white-space:nowrap}.sort-header-btn{background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:inherit;font-weight:700;color:var(--primary, #1d4ed8);text-transform:uppercase;letter-spacing:inherit;padding:0;white-space:nowrap;transition:color .15s ease}.sort-header-btn:hover{color:var(--primary-dark, #1e40af)}.notification-table tbody td{padding:.5rem .75rem;border-bottom:1px solid var(--border-light, #eef0f2);color:var(--text-primary, #212529);vertical-align:middle}.notification-table tbody tr:last-child td{border-bottom:none}.notification-row{transition:background .15s}.notification-row:hover{background:var(--bg-secondary, #f8f9fa)}.notification-row.unread{background:var(--info-bg, #f0f7ff)}.notification-row.unread td:first-child{box-shadow:inset 3px 0 0 var(--primary, #4a90e2)}.notification-row.read{color:var(--text-secondary, #6c757d)}.notification-table .cell-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.notification-row.unread .cell-name{font-weight:700}.notification-table .cell-room{color:var(--text-secondary, #6c757d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.notification-table .cell-time{color:var(--text-secondary, #6c757d);white-space:nowrap}.notification-table .cell-alert-type{white-space:nowrap}.alert-type-icon{width:34px;height:34px;object-fit:contain;display:block}.notification-table .cell-action{width:1%;text-align:center;white-space:nowrap}.notification-table .cell-action .btn-icon{padding:.3rem}.notification-item{background:var(--bg-card, white);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:.75rem;transition:all .2s;position:relative}.notification-item.unread{background:var(--info-bg, #f0f7ff);border-left:4px solid var(--primary, #4a90e2)}.notification-item.read{opacity:.7}.notification-item:hover{box-shadow:0 2px 8px #0000001a}.notification-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.notification-icon{width:32px;height:32px;border-radius:50%;background:var(--primary-light, #e3f2fd);display:flex;align-items:center;justify-content:center;color:var(--primary, #4a90e2)}.notification-meta{display:flex;gap:.75rem;align-items:center;flex:1;justify-content:flex-end}.notification-time{font-size:.75rem;color:var(--text-secondary, #6c757d)}.notification-type-badge{padding:.25rem .75rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.notification-type-badge.type-missing-person{background:#ef444426;color:#dc2626}.notification-type-badge.type-unsafe-area{background:#f59e0b26;color:#d97706}.notification-type-badge.type-fall{background:#dc262626;color:#b91c1c}.notification-type-badge.type-help{background:#7c3aed26;color:#7c3aed}.severity-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.severity-badge.severity-medium{background:var(--warning-bg, #fff3cd);color:var(--warning-text, #856404)}.severity-badge.severity-high{background:#ef444426;color:var(--danger-text, #d14)}.severity-badge.severity-critical{background:var(--danger-bg, #f8d7da);color:var(--danger-text, #721c24)}.notification-body{margin-bottom:.5rem}.notification-title{font-weight:600;font-size:1rem;margin-bottom:.5rem;color:var(--text-primary, #212529)}.notification-details{font-size:.875rem;color:var(--text-secondary, #6c757d);display:grid;gap:.25rem}.notification-details strong{color:var(--text-primary, #212529);font-weight:600;margin-right:.5rem}.notification-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-icon{padding:.5rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--bg-card, white);color:var(--text-primary, #212529);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover{background:var(--bg-secondary, #f8f9fa);border-color:var(--primary, #4a90e2);color:var(--primary, #4a90e2)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--text-secondary, #6c757d);text-align:center}.empty-state svg{color:var(--text-disabled, #adb5bd);margin-bottom:1rem}.notification-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color, #e0e0e0)}.pagination-info{font-size:.875rem;color:var(--text-secondary, #6c757d)}.pagination-controls{display:flex;gap:.5rem;align-items:center}.pagination-btn{width:32px;height:32px;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--bg-card, white);color:var(--text-primary, #212529);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s}.pagination-btn:hover:not(:disabled){background:var(--primary, #4a90e2);color:#fff;border-color:var(--primary, #4a90e2)}.pagination-current{font-size:.875rem;color:var(--text-primary, #212529);padding:0 .75rem}@media(max-width:768px){.notification-filters{flex-direction:column}.filter-select,.filter-input,.filter-datetime{width:100%;min-width:unset}.notification-filters .filter-select,.notification-filters .filter-input,.notification-filters .btn-filter,.notification-filters .notification-status-checks{flex:none;width:100%}.notification-status-checks{justify-content:flex-start}.btn-filter{width:100%;justify-content:center}.notification-date-filter{flex-wrap:wrap}.date-filter-inputs{flex-basis:100%}.date-filter-input{max-width:none}.notification-pagination{flex-direction:column;gap:1rem}.notification-list{max-height:50vh}}.header-wrapper{background:var(--bg-card);padding:0;flex-shrink:0;z-index:150;position:fixed;top:0;left:0;right:0;width:100%;border-bottom:1px solid var(--border-color)}[data-theme=dark] .header-wrapper{background:var(--bg-card);border-bottom:1px solid var(--border-color)}.header{height:64px;background:transparent;display:flex;align-items:center;padding:0 20px;border-bottom:none;box-shadow:none;z-index:150;width:100%;box-sizing:border-box;border-radius:0}.header-search{position:relative;width:400px}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.search-input{width:100%;padding:10px 48px;border:1px solid var(--border-color);border-radius:var(--radius);background-color:var(--bg-secondary);font-size:14px;outline:none;transition:all .2s ease;color:var(--text-primary)}.header-search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all .2s ease}.header-search-clear:hover{background:var(--bg-secondary);color:var(--text-primary)}.search-input:focus{background-color:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.search-input::placeholder{color:var(--text-light)}.header-actions{display:flex;align-items:center;gap:8px}.header-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.header-brand-logo{width:40px;height:40px;object-fit:contain;flex-shrink:0;border-radius:8px}.header-brand-icon{color:var(--primary);flex-shrink:0}[data-theme=dark] .header-brand-icon{color:#60a5fa}.header-brand-text{display:flex;flex-direction:column;gap:1px;white-space:nowrap}.header-brand-title{font-size:14px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:.3px;text-transform:uppercase;line-height:1.3}[data-theme=dark] .header-brand-title{color:#fff}.header-brand-subtitle{font-size:11px;font-weight:500;color:var(--text-secondary);line-height:1.3}[data-theme=dark] .header-brand-subtitle{color:#ffffffa6}.header-brand-subtitle-logo{height:20px;width:auto;max-width:120px;display:block;object-fit:contain}.header-spacer{flex:1}.header-icon-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);width:42px;height:42px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.header-icon-btn:hover,.header-icon-btn.header-icon-active{border-color:var(--primary);color:var(--primary)}[data-theme=dark] .header-icon-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.18);color:#ffffffd9}[data-theme=dark] .header-icon-btn:hover{background:#ffffff38;border-color:#fff6;color:#fff}[data-theme=dark] .header-icon-btn.header-icon-active{background:#ffffff40;border-color:#ffffff80;color:#fff}.header-user-section{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;cursor:pointer;border-radius:var(--radius);transition:all .2s ease;margin-left:4px;background:var(--bg-card);border:1px solid var(--border-color)}.header-user-section:hover{border-color:var(--primary)}.header-user-section.dropdown-open{border-radius:var(--radius);border-color:var(--primary)}[data-theme=dark] .header-user-section{background:#ffffff1f;border:1px solid rgba(255,255,255,.18)}[data-theme=dark] .header-user-section:hover{background:#fff3;border-color:#ffffff59}[data-theme=dark] .header-user-section.dropdown-open{background:#ffffff38;border-color:#fff6}.header-user-avatar{width:40px;height:40px;border-radius:var(--radius);background:var(--primary);overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;flex-shrink:0}.header-user-info{display:flex;flex-direction:column;gap:1px}.header-user-name{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.3}[data-theme=dark] .header-user-name{color:#fff}.header-user-role{color:var(--text-secondary);font-size:12px;font-weight:500;line-height:1.3}[data-theme=dark] .header-user-role{color:#ffffffa6}.header-user-chevron{color:var(--text-secondary);flex-shrink:0;margin-left:2px}[data-theme=dark] .header-user-chevron{color:#ffffffb3}.mobile-menu-btn{display:none;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius);width:40px;height:40px;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.mobile-menu-btn:hover{background:var(--bg-secondary);border-color:var(--primary);color:var(--primary)}@media(max-width:1024px){.header{padding:0 1.5rem}.header-search{width:300px}}@media(max-width:768px){.header-wrapper{padding:8px 12px}.header{padding:0 1rem;height:50px;border-radius:var(--radius)}.mobile-menu-btn{display:flex}.header-search{flex:1;max-width:none;width:auto;margin:0 .75rem}.search-input{font-size:13px;padding:8px 40px}.header-user-info,.header-user-chevron{display:none}.header-user-section{padding:6px 8px;margin-right:0;border-right:none}.header-user-avatar{width:36px;height:36px;font-size:14px}.header-actions{gap:8px}.header-icon-btn{width:36px;height:36px}.header-brand-text,.header-icon-btn.mobile-hide{display:none}}@media(max-width:480px){.header{padding:0 .75rem;height:56px}.header-search{margin:0 .5rem}.search-input{font-size:12px;padding:7px 36px}.search-icon{left:12px}.header-search-clear{right:8px}.header-actions{gap:6px}.header-icon-btn{width:32px;height:32px}.header-user-avatar{width:32px;height:32px;font-size:12px}.notification-badge{font-size:9px;min-width:16px;height:16px;top:4px;right:4px}}.header-profile-dropdown{position:relative}.header-user-chevron.chevron-open{transform:rotate(180deg);transition:transform .2s ease}.header-user-chevron{transition:transform .2s ease}.profile-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:0 12px 32px #0f17292e,0 4px 12px #2563eb1f;min-width:240px;padding:8px;z-index:1000;animation:profileDropDown .2s ease-out}@keyframes profileDropDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-dropdown-header{display:flex;align-items:center;gap:12px;padding:10px 8px 12px}.profile-dropdown-avatar-wrap{position:relative;flex-shrink:0}.profile-dropdown-avatar{width:52px;height:52px;border-radius:var(--radius);background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;font-weight:600}.profile-dropdown-avatar img{width:100%;height:100%;object-fit:cover}.profile-dropdown-camera-btn{position:absolute;bottom:0;right:0;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;border:2px solid var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;padding:0}.profile-dropdown-camera-btn:hover{background:var(--primary-hover)}.profile-dropdown-camera-btn:disabled{opacity:.5;cursor:not-allowed}.profile-dropdown-camera-btn.is-remove{background:var(--danger)}.profile-dropdown-camera-btn.is-remove:hover{background:#dc2626}.profile-dropdown-info{display:flex;flex-direction:column;gap:3px;min-width:0}.profile-dropdown-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-dropdown-email{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-dropdown-divider{height:1px;background:var(--border-light);margin:6px 0}.profile-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;background:transparent;border:none;border-radius:8px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease;text-align:left}.profile-dropdown-item:hover{background:var(--bg-secondary)}.profile-dropdown-item svg{flex-shrink:0;color:var(--text-secondary)}.profile-dropdown-logout{color:var(--danger)}.profile-dropdown-logout svg{color:var(--danger)}.profile-dropdown-logout:hover{background:var(--danger-bg)}.profile-dropdown-avatar-row{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px 10px}.profile-dropdown-avatar-role{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.profile-dropdown-remove-btn{position:absolute;top:0;right:0;width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;border:2px solid var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;padding:0}.profile-dropdown-remove-btn:hover{background:#dc2626}.profile-dropdown-remove-btn:disabled{opacity:.5;cursor:not-allowed}.profile-field{display:flex;flex-direction:column;gap:3px;padding:4px 6px}.profile-field-label{font-size:10px;font-weight:700;color:var(--text-secondary);letter-spacing:.06em}.profile-field-input{width:100%;padding:7px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);font-size:13px;color:var(--text-primary);outline:none;transition:border-color .15s ease;box-sizing:border-box}.profile-field-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.profile-field-actions{display:flex;gap:6px;padding:4px 6px 6px}.profile-save-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease}.profile-save-btn:hover{background:var(--primary-hover)}.profile-save-btn:disabled{opacity:.6;cursor:not-allowed}.profile-cancel-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.profile-cancel-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.profile-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.org-switcher{position:relative;flex-shrink:0}.header-brand--switchable{cursor:pointer;border-radius:var(--radius);padding:4px 8px 4px 4px;margin:-4px -8px -4px -4px;transition:background .18s ease}.header-brand--switchable:hover,.header-brand--open{background:var(--bg-secondary)}[data-theme=dark] .header-brand--switchable:hover,[data-theme=dark] .header-brand--open{background:#ffffff1a}.org-switcher-chevron{flex-shrink:0;color:var(--text-secondary);transition:transform .2s ease;margin-left:2px}[data-theme=dark] .org-switcher-chevron{color:#fff9}.org-switcher-chevron--open{transform:rotate(180deg)}.org-switcher-dropdown{position:absolute;top:calc(100% + 10px);left:0;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:0 12px 32px #0f17292e,0 4px 12px #2563eb1a;min-width:220px;padding:6px;z-index:1001;animation:profileDropDown .2s ease-out}.org-switcher-dropdown-label{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;padding:6px 10px 4px}.org-switcher-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:8px;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease;text-align:left}.org-switcher-item:hover{background:var(--bg-secondary)}.org-switcher-item--active{color:var(--primary);font-weight:600;cursor:default}.org-switcher-item--active:hover{background:transparent}.org-switcher-check{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border-color);flex-shrink:0;color:transparent;background:transparent;transition:all .15s ease}.org-switcher-check--visible{background:var(--primary);border-color:var(--primary);color:#fff}.org-switcher-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-btn{position:relative}.notification-badge{position:absolute;top:4px;right:6px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg-card)}.layout{display:flex;flex-direction:column;min-height:100vh;background-color:var(--bg-main);overflow-x:hidden;padding-top:64px}.layout-body{display:flex;flex:1}.layout-main{flex:1;margin-left:240px;display:flex;flex-direction:column;transition:margin-left .28s cubic-bezier(.4,0,.2,1);will-change:margin-left;width:100%;max-width:100%;min-width:0}.layout-main.sidebar-collapsed{margin-left:70px}.layout-content{flex:1;min-height:0;display:flex;flex-direction:column;padding:20px;background-color:var(--bg-main);width:100%;max-width:100%;box-sizing:border-box}@media(max-width:1024px){.layout-content{padding:24px 32px}}@media(max-width:768px){.layout{padding-top:66px}.layout-main,.layout-main.sidebar-collapsed{margin-left:0}.layout-content{padding:1rem 1.25rem}}@media(max-width:480px){.layout{padding-top:72px}.layout-content{padding:.75rem 1rem}}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.375em;border-bottom-right-radius:.375em}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper--header-middle[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper--header-bottom[data-placement^=bottom] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker-popper--header-bottom[data-placement^=top] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select,.react-datepicker__header--middle,.react-datepicker__header--bottom){border-top-right-radius:.3rem}.react-datepicker__header--middle{border-top:1px solid #aeaeae;border-radius:0;margin-top:4px}.react-datepicker__header--bottom{border-bottom:none;border-top:1px solid #aeaeae;border-radius:0 0 .3rem .3rem}.react-datepicker__header-wrapper{position:relative}.react-datepicker__header-wrapper .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:2px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__month-select,.react-datepicker__year-select,.react-datepicker__month-year-select{background-color:transparent;border:1px solid #aeaeae;border-radius:.3rem;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;margin-top:5px;padding:2px 5px}.react-datepicker__month-select:focus-visible,.react-datepicker__year-select:focus-visible,.react-datepicker__month-year-select:focus-visible{outline:auto 1px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.5em;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:5em;margin:2px}.react-datepicker__month{margin:.5em;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:5em;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.375em;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.375em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.375em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + 1.0625em);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:2.125em;line-height:2.125em;text-align:center;margin:.208em}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{text-align:center;white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:2.125em;line-height:2.125em;text-align:center;margin:.208em}.react-datepicker__day-name--disabled,.react-datepicker__day--disabled,.react-datepicker__time-name--disabled{cursor:default;color:#ccc}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.625em;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__children-container{width:17.25em;margin:.5em;padding-right:.25em;padding-left:.25em;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}.react-datepicker-popper-offset{margin-top:-.7em}.map-visualization-container{position:relative;width:100%;height:100%;z-index:1;overflow:hidden}@keyframes room-heartbeat{0%,to{fill-opacity:.2;stroke-width:2}14%{fill-opacity:.65;stroke-width:4}28%{fill-opacity:.3;stroke-width:2}42%{fill-opacity:.6;stroke-width:3.5}70%{fill-opacity:.2;stroke-width:2}}.room-heartbeat{animation:room-heartbeat 1.4s ease-in-out infinite}@keyframes legend-heartbeat{0%,to{opacity:.35;border-width:2px}14%{opacity:.9;border-width:3px}28%{opacity:.45;border-width:2px}42%{opacity:.85;border-width:3px}70%{opacity:.35;border-width:2px}}.legend-heartbeat{animation:legend-heartbeat 1.4s ease-in-out infinite}.map-visualization-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;height:100%;width:100%;background:#f8f9fa;color:#6c757d;font-size:.95rem}.map-vis-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:#2563eb;border-radius:50%;animation:map-vis-spin .7s linear infinite}@keyframes map-vis-spin{to{transform:rotate(360deg)}}.map-loading-overlay{position:absolute;inset:0;z-index:99999;background-color:#c9d1e9!important;backdrop-filter:none;-webkit-backdrop-filter:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;opacity:1;pointer-events:all;transition:none}.map-loading-overlay--ready{opacity:0;pointer-events:none;transition:opacity .45s ease}.map-loading-spinner-ring{width:52px;height:52px;border:4px solid rgba(37,99,235,.18);border-top-color:#2563eb;border-radius:50%;animation:map-vis-spin .75s linear infinite}.map-loading-text{margin:0;font-size:.9rem;font-weight:500;color:#475569;letter-spacing:.02em}.leaflet-container{font-family:var(--font-sans);z-index:auto!important}.map-legend{position:absolute;bottom:20px;right:20px;background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 8px #00000026;z-index:1000;min-width:150px}.legend-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.map-legend h4{margin:0;font-size:14px;font-weight:600;color:#2c3e50}.legend-close-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;border-radius:4px;cursor:pointer;color:#7f8c8d;transition:all .2s ease}.legend-close-btn:hover{background:#f0f0f0;color:#e74c3c}.map-legend-toggle-btn{position:absolute;top:12px;left:12px;z-index:1000;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:8px;cursor:pointer;color:#334155;transition:all .2s ease;box-shadow:0 2px 10px #0000001f}.map-legend-toggle-btn.with-fullscreen{top:12px}.map-legend-toggle-btn:hover{background:#f1f5f9;color:#1e293b}.map-legend-toggle-btn:active{background:#e2e8f0}.map-legend-toggle-btn svg{flex-shrink:0}.legend-item{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;color:#34495e}.legend-item:last-child{margin-bottom:0}.legend-color{width:20px;height:20px;border-radius:2px}.legend-circle{width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 4px #0000004d}.custom-anchor-marker{background:transparent!important;border:none!important}.anchor-icon-wrapper{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 2px 6px #0003}.anchor-icon-wrapper.anchor-active{background:#3b82f6;color:#fff}.anchor-icon-wrapper.anchor-inactive{background:#94a3b8;color:#fff}.anchor-triangle{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid #3b82f6;filter:drop-shadow(0 1px 3px rgba(0,0,0,.3))}.anchor-triangle.anchor-active{border-bottom-color:#3b82f6}.anchor-triangle.anchor-inactive{border-bottom-color:#94a3b8}.custom-tag-marker{background:transparent!important;border:none!important}.tag-icon-wrapper{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 2px 6px #0003}.tag-icon-wrapper.tag-active{background:#16a34a;color:#fff}.tag-icon-wrapper.tag-lost{background:#ef4444;color:#fff}.tag-circle{width:12px;height:12px;border-radius:50%;box-shadow:0 0 4px #0000004d;border:2px solid #fff}.tag-circle.tag-active{background:#16a34a}.tag-circle.tag-lost{background:#ef4444}.legend-icon{box-shadow:0 1px 3px #00000026}.legend-icon.anchor-active{background:#3b82f6;color:#fff}.legend-icon.tag-active{background:#16a34a;color:#fff}.legend-icon.tag-lost{background:#ef4444;color:#fff}.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 4px 20px #00000026;padding:0}.leaflet-popup-content{margin:0;font-size:12px;line-height:1.4;min-width:180px}.leaflet-popup-content strong{color:#1e293b;font-size:13px}.tag-popup-content{padding:10px 12px}.tag-popup-mac{font-size:12px;font-weight:700;color:#1e293b;margin-bottom:6px;font-family:monospace;letter-spacing:.3px}.tag-popup-details{display:flex;flex-direction:column;gap:3px}.tag-popup-row{display:flex;align-items:center;gap:6px}.tag-popup-label{font-size:11px;color:#64748b;font-weight:500;white-space:nowrap}.tag-popup-value{font-size:12px;color:#1e293b;font-weight:600}.tag-popup-status-text{font-size:12px;font-weight:600}.tag-popup-status-text.active{color:#16a34a}.tag-popup-status-text.offline{color:#ef4444}.tag-popup-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:8px}.tag-popup-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;background:transparent;text-transform:uppercase;letter-spacing:.5px}.tag-popup-badge.lost{color:#ef4444;border:1.5px solid #ef4444}.tag-popup-badge.active{color:#16a34a;border:1.5px solid #16a34a}.tag-popup-track-btn{padding:4px 16px;font-size:12px;font-weight:600;color:#fff;background:var(--primary, #3b82f6);border:none;border-radius:20px;cursor:pointer;transition:background .2s ease}.tag-popup-track-btn:hover{background:#2563eb}.leaflet-top.leaflet-left .leaflet-control-zoom{display:none}.leaflet-top.leaflet-right .leaflet-control-zoom{border:none;border-radius:30px;box-shadow:0 2px 10px #0000001f;overflow:hidden;margin-top:12px;margin-right:12px;background:#fff}.leaflet-control-zoom a{width:40px;height:40px;line-height:40px;font-size:18px;font-weight:400;border:none!important;border-radius:0;color:#334155;background:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none}.leaflet-control-zoom a:first-child{border-bottom:1px solid var(--border-color)!important}.leaflet-control-zoom a:hover{background:#f1f5f9;color:#1e293b}@media(max-width:768px){.map-legend{bottom:10px;right:10px;padding:10px;min-width:120px}.legend-header{margin-bottom:8px}.map-legend h4{font-size:12px}.legend-close-btn{width:18px;height:18px}.legend-close-btn svg{width:12px;height:12px}.legend-item{font-size:11px;gap:8px;margin-bottom:6px}.legend-color{width:16px;height:16px}.legend-circle{width:10px;height:10px}.map-legend-toggle-btn{width:24px;height:24px}.map-legend-toggle-btn svg{width:12px;height:12px}}.map-fullscreen-btn{position:absolute;top:46px;left:12px;z-index:1000;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:4px;cursor:pointer;color:#333;transition:all .2s ease;box-shadow:0 1px 5px #00000026}.map-fullscreen-btn:hover{background:#f4f4f4;color:#000}.map-fullscreen-btn:active{background:#e0e0e0}.map-fullscreen-btn svg{flex-shrink:0}.map-location-info{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#fff;padding:10px 20px;border-radius:30px;box-shadow:0 2px 12px #00000026;z-index:1000;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;color:#2c3e50;border:1px solid rgba(0,0,0,.08)}.location-info-building,.location-info-floor{display:flex;align-items:center;gap:6px}.location-info-building svg,.location-info-floor svg{color:#3b82f6;flex-shrink:0}.location-info-separator{color:#cbd5e1;font-size:12px;font-weight:400}.map-view-mode-toggle{position:absolute;top:12px;right:60px;z-index:1001;display:flex;align-items:center;background:#fff;border-radius:30px;box-shadow:0 2px 10px #0000001f;overflow:hidden;border:1px solid var(--border-color)}.map-view-mode-btn{padding:0 14px;height:32px;font-size:12px;font-weight:600;color:#64748b;background:transparent;border:none;cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.map-view-mode-btn:hover{background:#f1f5f9;color:#1e293b}.map-view-mode-btn.active{background:#3b82f6;color:#fff}.map-view-mode-btn:first-child{border-right:1px solid var(--border-color)}.floor-plan-grid-overlay{position:absolute;inset:0;z-index:900;background:#f8fafc;overflow-y:auto;padding:20px 24px 24px}.floor-plan-grid-loading{text-align:center;color:#64748b;font-size:13px;padding:12px 0}.floor-plan-building-section{margin-bottom:28px}.floor-plan-building-title{font-size:14px;font-weight:700;color:#1e293b;margin:0 0 12px;display:flex;align-items:center;gap:6px}.floor-plan-building-title:before{content:"";display:inline-block;width:3px;height:14px;background:#3b82f6;border-radius:2px}.floor-plan-no-floors{font-size:13px;color:#94a3b8;font-style:italic;margin:0}.floor-plan-floor-cards{display:flex;flex-wrap:wrap;gap:12px}.floor-plan-floor-card{width:140px;background:#fff;border:1px solid var(--border-color);border-radius:10px;overflow:hidden;cursor:default;transition:box-shadow .15s ease,transform .15s ease;box-shadow:0 1px 4px #0000000f}.floor-plan-floor-card:hover{box-shadow:0 4px 14px #0000001f;transform:translateY(-1px)}.floor-plan-floor-thumbnail{width:100%;height:100px;background:#f1f5f9;overflow:hidden}.floor-plan-thumb-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#94a3b8;font-size:11px}.floor-plan-floor-info{padding:8px 10px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border-color)}.floor-plan-floor-name{font-size:12px;font-weight:700;color:#1e293b}.floor-plan-floor-rooms{font-size:11px;color:#64748b}.floor-plan-floor-card{cursor:pointer}.fdm-overlay{position:fixed;inset:0;z-index:9000;background:#0000008c;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.fdm-modal{width:90vw;height:88vh;background:#fff;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 60px #0000004d}.fdm-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-color);background:#f8fafc;flex-shrink:0}.fdm-title-group{display:flex;align-items:center;gap:6px}.fdm-title-building{font-size:15px;font-weight:700;color:#1e293b}.fdm-title-sep{font-size:14px;color:#94a3b8;font-weight:400}.fdm-title{font-size:15px;font-weight:600;color:#64748b}.fdm-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;color:#64748b;transition:background .15s ease,color .15s ease}.fdm-close:hover{background:#fee2e2;color:#ef4444;border-color:#fca5a5}.fdm-body{flex:1;position:relative;overflow:hidden}.fdm-no-plan{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#94a3b8;font-size:14px}.fdm-legend{position:absolute;bottom:16px;left:16px;z-index:1000;background:#fffffff2;border:1px solid var(--border-color);border-radius:10px;padding:10px 14px;box-shadow:0 2px 10px #0000001a;display:flex;flex-direction:column;gap:6px}.fdm-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;white-space:nowrap}.fdm-legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}.rcard-tooltip.leaflet-tooltip{background:transparent;border:none;box-shadow:none;padding:0}.rcard-tooltip.leaflet-tooltip:before{display:none}.map-vis-root{position:relative;width:100%;height:100%}.map-vis-tooltip-layer{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:10001}.rcard-fixed-overlay{position:absolute;pointer-events:auto}.rcard-container{display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 10px 24px rgba(0,0,0,.24)) drop-shadow(0 2px 6px rgba(0,0,0,.12))}.rcard{width:clamp(220px,30vw,340px);max-height:70vh;overflow-y:auto;border-radius:12px;box-shadow:0 8px 24px #00000038;font-family:inherit;background:#fff;-webkit-user-select:text;user-select:text;border:1px solid rgba(37,99,235,.1)}.rcard-header{background:linear-gradient(135deg,#1d4ed8,#2563eb 60%,#3b82f6);color:#fff;font-weight:800;font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:10px 10px 10px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:0;z-index:2}.rcard-close{background:none;border:none;cursor:pointer;padding:3px;display:flex;align-items:center;justify-content:center;color:#ffffffbf;border-radius:4px;flex-shrink:0;transition:color .15s,background .15s}.rcard-close:hover{color:#fff;background:#ffffff38}.rcard-phone-link{color:#22c55e;text-decoration:none;font-weight:600;cursor:pointer}.rcard-phone-link:hover{text-decoration:underline}.rcard-body{display:flex;align-items:flex-start;gap:13px;padding:14px 16px}.rcard-body--sep{border-top:1px solid var(--border-color)}.rcard-empty{font-size:12px;color:#94a3b8;font-style:italic;padding:14px 16px}.rcard-photo{width:62px;height:62px;border-radius:50%;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,#dbeafe,#e0f2fe);border:1px solid #2563eb;box-shadow:0 2px 8px #2563eb2e;display:flex;align-items:center;justify-content:center}.rcard-photo-img{width:100%;height:100%;object-fit:cover}.rcard-photo-svg{width:34px;height:34px;color:#60a5fa}.rcard-info{flex:1;min-width:0;padding-top:2px}.rcard-name-row{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap}.rcard-name{font-weight:800;font-size:15px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.2px}.rcard-badge{font-size:10px;font-weight:700;color:#fff;border-radius:20px;padding:2px 10px;white-space:nowrap;flex-shrink:0;letter-spacing:.3px;text-transform:uppercase}.rcard-badge--tracked{background:#16a34a}.rcard-badge--away{background:#d97706}.rcard-badge--unsafe{background:#dc2626}.rcard-badge--offline{background:#94a3b8}.rcard-badge--lost{background:#ef4444}.rcard-badge--fallen{background:#d97706;animation:rcard-badge-fallen-blink .8s ease-in-out infinite}.rcard-badge--help{background:#7c3aed;animation:rcard-badge-help-blink .8s ease-in-out infinite}@keyframes rcard-badge-fallen-blink{0%,to{background:#d97706}50%{background:#92400e}}@keyframes rcard-badge-help-blink{0%,to{background:#7c3aed}50%{background:#4c1d95}}.rcard-resolve-btn{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:2px 9px;font-size:10px;font-weight:700;border-radius:5px;border:none;background:#16a34a;color:#fff;cursor:pointer;letter-spacing:.4px;transition:background .15s;flex-shrink:0}.rcard-resolve-btn:hover{background:#15803d}.rcard-detail{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#475569;margin-top:4px;line-height:1.4}.rcard-detail strong{color:#1e293b;font-weight:600}.rcard-icon{width:14px;height:14px;flex-shrink:0;color:#94a3b8}.rcard-icon--tag{color:#7c3aed}.rcard-icon--pin{color:#ef4444}.stat-card{background:var(--bg-card);border-radius:16px;padding:15px;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);transition:all .2s ease;min-height:0;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-color)}.stat-card-content{display:flex;flex-direction:column;gap:8px}.stat-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.stat-card-title{font-size:15px;color:var(--text-primary);margin:0;font-weight:500;letter-spacing:0;text-transform:none;padding-top:4px}.stat-card-middle{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:-15px}.stat-card-bottom{display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap}.stat-card-value{font-size:28px;font-weight:700;color:var(--text-primary);margin:0;line-height:1;flex-shrink:0}.stat-card-subtitle{font-size:13px;color:var(--text-secondary);margin:0;font-weight:400}.stat-card-subtitle-centered{font-size:13px;color:var(--text-secondary);margin:0;font-weight:400;text-align:center}.stat-card-icon{width:44px;height:44px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.stat-card-badges{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;margin-top:4px}.stat-card-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:12px;background:var(--badge-blue-bg);color:var(--badge-blue-text);white-space:nowrap}@media(max-width:1024px){.stat-card{padding:16px}.stat-card-value{font-size:24px}.stat-card-icon{width:40px;height:40px}}@media(max-width:768px){.stat-card{padding:14px}.stat-card-title{font-size:13px}.stat-card-value{font-size:22px}.stat-card-subtitle{font-size:12px}.stat-card-icon{width:36px;height:36px}.stat-card-badge{font-size:13px;padding:3px 10px}}@media(max-width:480px){.stat-card{padding:12px}.stat-card-title{font-size:12px}.stat-card-value{font-size:20px}.stat-card-subtitle{font-size:11px}.stat-card-icon{width:32px;height:32px}.stat-card-badge{font-size:12px;padding:3px 8px}.stat-card-bottom,.stat-card-badges{flex-wrap:wrap}}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);overflow:hidden;transition:all .2s ease}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:12px 20px;border-bottom:1px solid var(--border-light);background:var(--bg-card)}.card-content{padding:16px 20px}.card-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}@media(max-width:1024px){.card-header{padding:10px 18px}.card-content{padding:14px 18px}.card-title{font-size:17px}}@media(max-width:768px){.card{border-radius:var(--radius)}.card-header{padding:10px 16px}.card-content{padding:12px 16px}.card-title{font-size:16px}}@media(max-width:480px){.card{border-radius:var(--radius)}.card-header{padding:8px 14px}.card-content{padding:10px 14px}.card-title{font-size:15px}}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.heatmap-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.heatmap-modal{background:#fff;border-radius:var(--radius);width:90vw;max-width:1200px;height:85vh;max-height:800px;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;overflow:hidden}.heatmap-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border-color);background:#fff;flex-wrap:wrap}.heatmap-header-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex:1;min-width:0}.heatmap-modal-title{margin:0;font-size:20px;font-weight:700;color:#1e293b;white-space:nowrap}.heatmap-single-floor{font-size:13px;color:#64748b;font-weight:500;white-space:nowrap}.heatmap-floor-tabs{display:flex;gap:6px;flex-wrap:wrap}.heatmap-floor-tab{padding:5px 14px;border-radius:var(--radius);border:1.5px solid var(--border-color);background:#f8fafc;color:#475569;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;line-height:1.4}.heatmap-floor-tab:hover{border-color:#3b82f6;color:#2563eb;background:#eff6ff}.heatmap-floor-tab.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.floor-tab-building{font-size:11px;opacity:.82}.heatmap-modal-subtitle{font-size:14px;color:#64748b;font-weight:500;font-family:monospace}.heatmap-header-legend{display:flex;flex-direction:column;align-items:center;gap:4px;margin-right:8px}.heatmap-header-legend-title{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.heatmap-header-gradient-bar{width:120px;height:10px;border-radius:5px;background:linear-gradient(to right,gold,orange 40%,tomato,#d20a0a)}.heatmap-header-gradient-labels{display:flex;justify-content:space-between;width:120px}.heatmap-header-gradient-labels span{font-size:10px;color:#94a3b8;font-weight:500}.heatmap-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:8px;cursor:pointer;color:#64748b;transition:all .2s ease}.heatmap-modal-close:hover{background:#f1f5f9;color:#1e293b}.heatmap-modal-body{flex:1;overflow:hidden;position:relative}.heatmap-loading,.heatmap-error,.heatmap-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:#64748b}.heatmap-loading .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.heatmap-error{color:#ef4444}.heatmap-container{position:relative;width:100%;height:100%}.heatmap-container .leaflet-container{height:100%;width:100%}.heatmap-unmapped-list{position:absolute;bottom:12px;left:12px;z-index:1000;background:#fffffff5;border:1px solid var(--border-color);border-radius:var(--radius);padding:10px 12px;max-width:260px;max-height:180px;overflow-y:auto;box-shadow:0 2px 8px #0000001f}.heatmap-unmapped-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:6px}.heatmap-unmapped-rows{display:flex;flex-direction:column;gap:4px}.heatmap-unmapped-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.82rem}.heatmap-unmapped-room{color:#374151;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heatmap-unmapped-duration{color:#6b7280;white-space:nowrap;flex-shrink:0}.heatmap-legend{position:absolute;bottom:20px;right:20px;background:#fff;padding:16px;border-radius:var(--radius);box-shadow:0 4px 16px #00000026;z-index:1000;min-width:200px}.heatmap-legend-header{margin-bottom:12px}.heatmap-legend-header h4{margin:0;font-size:14px;font-weight:600;color:#1e293b}.heatmap-legend-gradient{margin-bottom:12px}.heatmap-gradient-bar{height:20px;border-radius:4px;background:linear-gradient(to right,#ff0,orange 40%,tomato,red);margin-bottom:6px}.heatmap-gradient-labels{display:flex;justify-content:space-between;font-size:11px;color:#64748b;font-weight:500}.heatmap-stats{padding-top:12px;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px}.heatmap-stat{display:flex;justify-content:space-between;align-items:center}.heatmap-stat-label{font-size:12px;color:#64748b;font-weight:500}.heatmap-stat-value{font-size:13px;color:#1e293b;font-weight:600}.heatmap-point-tooltip.leaflet-tooltip{background:#0f172ae0;border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;padding:5px 11px;box-shadow:0 4px 12px #00000040;white-space:nowrap}.heatmap-point-tooltip.leaflet-tooltip:before{border-top-color:#0f172ae0}.heatmap-viewing-history-label{font-size:13px;color:#64748b;font-weight:500;white-space:nowrap}.heatmap-history-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.heatmap-history-topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.heatmap-back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#f1f5f9;border:1px solid var(--border-color);border-radius:8px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.heatmap-back-btn:hover{background:#e2e8f0;border-color:var(--border-color)}.heatmap-room-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;font-size:13px;font-weight:600;color:#1d4ed8;white-space:nowrap}.heatmap-history-filters{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;flex-wrap:wrap}.heatmap-history-filter-btns{display:flex;gap:6px;flex-wrap:wrap}.heatmap-date-filter-btn{display:inline-flex;align-items:center;padding:5px 12px;background:#f8fafc;border:1.5px solid var(--border-color);border-radius:var(--radius);font-size:12px;font-weight:500;color:#475569;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.heatmap-date-filter-btn:hover{border-color:#3b82f6;color:#2563eb;background:#eff6ff}.heatmap-date-filter-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.heatmap-history-date-inputs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.heatmap-date-label{font-size:12px;color:#6b7280;font-weight:500;white-space:nowrap}.heatmap-date-input{padding:4px 8px;border:1px solid var(--border-color);border-radius:var(--radius);font-size:12px;color:#374151;outline:none;background:#fff}.heatmap-date-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.heatmap-history-count{font-size:12px;color:#6b7280;font-weight:500;white-space:nowrap}.heatmap-history-table-wrap{flex:1;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 4px}.heatmap-history-table{width:100%;border-collapse:collapse;font-size:13px}.heatmap-history-table thead tr{background:#f8fafc;border-bottom:2px solid var(--border-color)}.heatmap-history-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;white-space:nowrap}.heatmap-history-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.heatmap-history-table tbody tr:hover{background:#f8fafc}.heatmap-history-table td{padding:10px 14px;color:#374151;vertical-align:middle}.heatmap-here-badge{display:inline-block;padding:2px 8px;background:#dcfce7;color:#15803d;border-radius:4px;font-size:11px;font-weight:600}.heatmap-history-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--border-color);flex-shrink:0;flex-wrap:wrap;gap:8px}.heatmap-pagination-info{font-size:13px;color:#6b7280}.heatmap-pagination-btns{display:flex;align-items:center;gap:6px}.heatmap-page-btn{padding:4px 8px;border:1px solid var(--border-color);background:#fff;border-radius:4px;font-size:13px;color:#374151;cursor:pointer;transition:background .1s,border-color .1s}.heatmap-page-btn:hover:not(:disabled){background:#f1f5f9;border-color:var(--border-color)}.heatmap-page-btn:disabled{opacity:.4;cursor:not-allowed}.heatmap-page-label{font-size:13px;color:#6b7280;font-weight:500;padding:0 4px;white-space:nowrap}.heatmap-unmapped-row-clickable{cursor:pointer;border-radius:4px;padding:2px 4px;transition:background .12s}.heatmap-unmapped-row-clickable:hover{background:#eff6ff}@media(max-width:768px){.heatmap-modal{width:95vw;height:90vh;border-radius:var(--radius)}.heatmap-modal-header{padding:16px}.heatmap-modal-title{font-size:18px}.heatmap-modal-subtitle{font-size:12px}.heatmap-legend{bottom:10px;right:10px;padding:12px;min-width:160px}.heatmap-legend-header h4{font-size:12px}.heatmap-gradient-labels,.heatmap-stat-label,.heatmap-stat-value{font-size:10px}}.dashboard{max-width:100%;width:100%;flex:1;min-height:0;display:flex;flex-direction:column}.page-header{margin-bottom:16px;flex-shrink:0}.dashboard-main-area{display:flex;gap:8px;flex:1;min-height:0;position:relative}.dashboard-main-area>.dashboard-content-left{align-self:stretch}.dashboard-content-left{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.dashboard-tracking-sidebar{width:280px;flex-shrink:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, var(--border-color));border-radius:12px;display:flex;flex-direction:column;align-self:stretch;max-height:calc(100vh - 64px);position:sticky;top:0;overflow:hidden;transition:width .28s cubic-bezier(.4,0,.2,1);will-change:width}.dashboard-tracking-sidebar.is-collapsed{width:0;min-width:0;padding:0;border-width:0;opacity:0;pointer-events:none}.dashboard-tracking-sidebar.is-collapsed>*{visibility:hidden}.tracking-sidebar-toggle{position:absolute;top:20px;right:-20px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--bg-card, #fff);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;padding:0;z-index:10;transition:color .15s ease,border-color .15s ease,background .15s ease}.tracking-sidebar-toggle:hover{color:var(--primary);border-color:var(--primary)}.tracking-sidebar-toggle svg{transition:transform .28s cubic-bezier(.4,0,.2,1)}.tracking-sidebar-toggle svg{transform:rotate(0)}.tracking-sidebar-toggle.is-collapsed svg{transform:rotate(180deg)}@media(max-width:1024px){.dashboard-main-area{flex-direction:column}.dashboard-main-area>.dashboard-content-left{align-self:stretch}.dashboard-tracking-sidebar{width:100%;position:static;max-height:none;height:auto;align-self:stretch;border-radius:12px}.dashboard-tracking-sidebar.is-collapsed{width:100%;min-width:0;padding:revert;border-width:1px;opacity:1;pointer-events:auto}.dashboard-tracking-sidebar.is-collapsed>*{visibility:visible}.tracking-sidebar-toggle{display:none}}.page-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);margin:0 0 8px;margin-bottom:-20px!important}.page-subtitle{font-size:var(--text-base);color:var(--text-secondary);margin:0;font-weight:500}.dashboard .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:16px;flex-shrink:0}.dashboard-date-range{display:inline-flex;flex-direction:row-reverse;align-items:center;gap:10px;padding:10px 18px;background:var(--bg-card);border-radius:50px;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:10px;border:1px solid var(--border-color);width:fit-content;max-width:260px}.dashboard-date-range svg{color:var(--text-secondary);flex-shrink:0}.dashboard-date-range .react-datepicker-wrapper{width:180px;flex-shrink:0}.date-range-input{border:none;outline:none;background:transparent;font-size:14px;font-weight:500;color:var(--text-primary);cursor:pointer;width:180px}.date-range-input::placeholder{color:var(--text-secondary)}.dashboard-cards-row{display:grid;grid-template-columns:63fr 37fr;grid-template-rows:1fr 1fr;gap:8px;margin-bottom:0;flex:1;min-height:0;align-items:stretch}.dash-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:8px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.dash-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(6px,.9vh,12px);flex-shrink:0}.dash-card-title-group{display:flex;align-items:center;gap:10px}.dash-card-icon{flex-shrink:0;background-color:#eeebeb;padding:7px;border-radius:50px}.dash-card-icon.tracking-icon{color:#5cdbd3}.dash-card-icon.device-icon{color:#4f6bed}.dash-card-icon.alert-icon{color:#f50bb7}.dash-card-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin:0}.dash-card-link{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);cursor:pointer;text-decoration:underline}.dash-card-link:hover{color:var(--primary)}.dash-card-body{flex:1;display:flex;align-items:center;min-height:0;overflow:hidden}.tracking-rate-content{width:100%;text-align:center}.tracking-rate-value-row{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.tracking-rate-value{font-size:40px;font-weight:800;color:var(--text-primary);line-height:1}.tracking-rate-change{font-size:14px;font-weight:700;color:#10b981}.gauge-container{width:100%;max-width:260px;margin:0 auto}.gauge-svg{width:100%;height:auto}.device-status-content{width:100%}.device-status-total{font-size:40px;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:14px}.device-status-legend{display:flex;align-items:center;gap:18px;margin-bottom:16px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-dot.assigned{background:#4f6bed}.legend-dot.unassigned{background:#a5b4fc}.legend-dot.maintenance{background:#d4dafb}.device-status-numbers{display:flex;gap:4px;margin-bottom:6px}.device-num-col{display:flex;align-items:center;justify-content:center}.device-num-col:nth-child(1){flex:7}.device-num-col:nth-child(2){flex:3}.device-num-col:nth-child(3){flex:2}.device-num{font-size:18px;font-weight:800;color:var(--text-primary)}.device-status-bars{display:flex;gap:4px;height:32px;border-radius:8px;overflow:hidden}.device-bar{border-radius:8px}.device-bar.assigned{background:#4f6bed}.device-bar.unassigned{background:#a5b4fc}.device-bar.maintenance{background:#d4dafb}.alerts-content{width:100%;display:flex;justify-content:center}.donut-chart-container{position:relative;width:100%;max-width:320px;aspect-ratio:1}.donut-svg{width:100%;height:100%}.donut-labels{position:absolute;inset:0;pointer-events:none}.donut-label{position:absolute;font-size:10px;font-weight:500;color:var(--text-secondary);line-height:1.3}.donut-label-value{position:absolute;font-size:13px;font-weight:800;color:var(--text-primary)}.donut-label-line{display:none}.donut-label-unauthorized{top:14%;left:4%}.donut-val-unauthorized{top:22%;left:33%}.donut-label-missing{top:10%;right:0%;text-align:right}.donut-val-missing{top:26%;right:26%}.donut-label-expired{bottom:22%;left:2%}.donut-val-expired{bottom:30%;left:28%}.donut-label-overdue{bottom:10%;right:0%;text-align:right}.donut-val-overdue{bottom:25%;right:26%}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:24px}.status-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.status-item:last-child{border-bottom:none}.status-indicator{width:12px;height:12px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.status-indicator.active{background:var(--success);box-shadow:0 0 0 3px var(--success-bg)}.status-indicator.inactive{background:var(--danger);box-shadow:0 0 0 3px var(--danger-bg)}.placeholder-text{color:var(--text-light);text-align:center;padding:40px 20px;margin:0}.quick-stats{display:flex;flex-direction:column;gap:12px}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border-light)}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-secondary);font-size:14px;font-weight:500}.stat-value{font-weight:700;font-size:16px;color:var(--primary)}@media(max-width:1024px){.dashboard .stats-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:28px}.dashboard-cards-row{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:16px}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px}}@media(max-width:768px){.page-header{margin-bottom:24px}.page-title{font-size:24px}.page-subtitle{font-size:13px}.dashboard .stats-grid{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.dashboard-cards-row{grid-template-columns:1fr;grid-template-rows:auto;gap:16px}.dashboard-cards-row .dash-card:first-child{grid-row:auto}.dashboard-grid{grid-template-columns:1fr;gap:16px}.stat-row{padding:12px 0}.stat-label{font-size:13px}.stat-value{font-size:15px}.status-item{padding:10px 0}.placeholder-text{padding:32px 16px;font-size:14px}.building-dropdown{width:100%}.building-dropdown-btn{min-width:0;width:100%}.sh-anchor-tooltip{max-width:min(260px,90vw)}}@media(max-width:480px){.page-header{margin-bottom:20px}.page-title{font-size:22px;margin-bottom:6px}.page-subtitle{font-size:12px}.dashboard .stats-grid{gap:14px;margin-bottom:20px}.dashboard-grid{gap:14px}.stat-row{padding:10px 0}.stat-label{font-size:12px}.stat-value{font-size:14px}.status-item{padding:8px 0;gap:10px}.status-indicator{width:10px;height:10px}.placeholder-text{padding:24px 12px;font-size:13px}}.floor-plan-section{margin-top:24px;width:100%}.floor-plan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.building-selector{display:flex;align-items:center;gap:16px}.view-all-buildings-link{background:transparent;border:none;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;text-decoration:underline;transition:color .2s ease;padding:0}.view-all-buildings-link:hover{color:var(--primary)}.building-dropdown{position:relative}.building-dropdown-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .3s ease;min-width:200px;justify-content:space-between}.building-dropdown-btn:hover{border-color:var(--primary);background:var(--bg-hover)}.building-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:100;max-height:300px;overflow-y:auto}.building-dropdown-item{padding:10px 16px;font-size:14px;color:var(--text-primary);cursor:pointer;transition:all .3s ease}.building-dropdown-item:hover{background:var(--bg-hover)}.building-dropdown-item.active{background:#4f6bed1a;color:var(--primary);font-weight:600}.floor-scroll-btns{display:flex;gap:8px}.floor-scroll-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);transition:all .2s ease}.floor-scroll-btn:hover{background:var(--bg-hover);border-color:var(--primary);color:var(--primary)}.floor-plans-container{display:flex;gap:20px;overflow-x:auto;scroll-behavior:smooth;padding-bottom:10px;scrollbar-width:none;-ms-overflow-style:none}.floor-plans-container::-webkit-scrollbar{display:none}.floor-plan-card{background:var(--bg-card);border-radius:12px;border:1px solid var(--border-color);min-width:280px;max-width:320px;flex:1 1 280px;overflow:hidden;transition:all .3s ease,opacity .4s ease;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.floor-plan-card:hover{box-shadow:0 4px 12px #00000014}.floor-plan-card-header{display:flex;align-items:center;gap:10px;padding:16px 20px;background:var(--bg-card)}.floor-icon{display:flex;align-items:center;justify-content:center;color:var(--primary)}.floor-title{font-size:16px;font-weight:700;color:var(--text-primary)}.floor-plan-card-body{padding:0;height:260px;display:flex;align-items:center;justify-content:center;background:#fff;position:relative;overflow:hidden;border-radius:0 0 12px 12px}.floor-plan-map-wrapper{width:100%;height:100%;position:relative}.floor-plan-map-wrapper canvas{width:100%!important;height:100%!important}.floor-plan-thumbnail-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff}.floor-plan-thumbnail-img{width:100%;height:100%;object-fit:contain;display:block}.floor-plan-image-wrapper{width:100%;height:100%;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.floor-plan-image{width:100%;height:100%;object-fit:cover;padding:0}.floor-plan-not-uploaded{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);text-align:center;height:100%}.floor-plan-not-uploaded p{font-size:14px;font-weight:500;margin:0;color:var(--text-secondary)}.no-floors-message{width:100%;padding:60px 20px;text-align:center;color:var(--text-secondary)}.no-floors-message p{font-size:14px;margin:0}.floor-plan-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.floor-plan-modal{background:var(--bg-card);border-radius:16px;width:90%;max-width:1200px;height:90vh;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.floor-plan-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-color)}.floor-plan-modal-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.floor-plan-modal-close{background:#f3f4f6;border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:50%;transition:all .3s ease}.floor-plan-modal-close:hover{background:#e5e7eb;color:var(--text-primary);transform:scale(1.05)}.floor-plan-modal-body{flex:1;display:flex;flex-direction:column;padding:16px;overflow:hidden;position:relative;min-height:0}.floor-plan-modal-controls{position:absolute;top:30px;right:30px;display:flex;flex-direction:column;gap:8px;z-index:10}.floor-plan-zoom-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);transition:all .2s ease;box-shadow:0 2px 8px #0000001a}.floor-plan-zoom-btn:hover{background:var(--bg-hover);border-color:var(--primary);color:var(--primary)}.floor-plan-modal-map{flex:1;background:#fff;border-radius:12px;overflow:hidden;margin-bottom:16px;position:relative;min-height:0}.floor-plan-modal-map .map-visualization-container{width:100%;height:100%}.floor-plan-modal-map .leaflet-container{width:100%!important;height:100%!important;background:#f8f9fa}.floor-plan-modal-map canvas{width:100%!important;height:100%!important}.floor-plan-modal-legend{display:flex;align-items:center;justify-content:flex-start;gap:32px;padding:16px;background:var(--bg-secondary);border-radius:12px}.floor-plan-modal-legend .legend-item{display:flex;align-items:center;gap:8px}.floor-plan-modal-legend .legend-color{width:16px;height:16px;border-radius:4px}.floor-plan-modal-legend .legend-label{font-size:14px;font-weight:500;color:var(--text-primary)}@media(max-width:768px){.floor-plan-header{flex-direction:column;gap:12px;align-items:stretch}.building-selector,.floor-scroll-btns{justify-content:center}.floor-plan-card{min-width:240px;max-width:280px;flex:1 1 240px}.floor-plan-card-body{height:220px}.floor-plan-modal{width:95%;max-height:95vh}.floor-plan-modal-header{padding:16px 20px}.floor-plan-modal-title{font-size:18px}.floor-plan-modal-body{padding:16px;height:calc(95vh - 120px)}.floor-plan-modal-map{min-height:400px}.floor-plan-modal-legend{flex-direction:column;gap:12px}.floor-plan-modal-controls{top:20px;right:20px}.floor-plan-zoom-btn{width:36px;height:36px}}.sh-list{display:flex;flex-direction:column;gap:0;width:100%;flex:1;min-height:0;align-self:stretch;justify-content:space-between}.sh-row{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;flex:1;min-height:0;gap:3px;padding:clamp(3px,.5vh,6px) 0;border-bottom:1px solid var(--border-color)}.sh-row:last-child{border-bottom:none}.sh-row-head{display:flex;align-items:center;gap:7px}.sh-row-label{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.sh-row-content{display:flex;align-items:center;gap:8px;padding-left:22px}.sh-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:var(--text-sm);font-weight:600;white-space:nowrap}.sh-badge--green{background:#dcfce7;color:#166534}.sh-badge--red{background:#fee2e2;color:#991b1b}.sh-badge--amber{background:#fef9c3;color:#854d0e}.sh-badge--orange{background:#ffedd5;color:#9a3412}.tk-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;flex:1;min-height:0}.tk-col{display:flex;flex-direction:column;min-height:0;justify-content:space-between}.tk-section-head{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding-bottom:clamp(4px,.7vh,10px);margin-bottom:2px;border-bottom:1px solid var(--border-color);flex-shrink:0}.tk-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-primary);padding:clamp(3px,.6vh,7px) 0;border-bottom:1px solid #f8fafc}.tk-row:last-child{border-bottom:none}.tk-num{margin-left:auto;font-weight:700;font-size:12px;color:var(--text-primary);background:var(--border-light);border-radius:10px;padding:1px 9px;min-width:26px;text-align:center}.tk-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tk-dot--green{background:#22c55e}.tk-dot--amber{background:#f59e0b}.tk-dot--red{background:#ef4444}.tk-dot--purple{background:#7c3aed}.tk-dot--orange{background:#f97316}.tk-dot--pulse{box-shadow:0 0 #7c3aed80;animation:tk-dot-pulse 1.4s ease-in-out infinite}@keyframes tk-dot-pulse{0%{box-shadow:0 0 #7c3aed8c}70%{box-shadow:0 0 0 5px #7c3aed00}to{box-shadow:0 0 #7c3aed00}}.tk-alert-row{margin-top:clamp(6px,1vh,14px);padding-top:clamp(6px,1vh,14px);border-top:1px solid var(--border-color);width:100%;flex-shrink:0}.tk-alert-pills{display:flex;gap:12px}.tk-alert-pill{display:inline-flex;align-items:center;padding:clamp(4px,.6vh,6px) 12px;border-radius:20px;font-size:12px;font-weight:600;gap:4px}.tk-alert-pill--orange{background:#ffedd5;color:#9a3412}.tk-alert-pill--purple{background:#f5f3ff;color:#5b21b6}.tk-alert-count{margin-left:6px;background:#0000001a;border-radius:10px;padding:0 7px;font-size:12px}.sh-split-bar{display:flex;width:100%;border-radius:7px;overflow:hidden;height:clamp(22px,2.8vh,30px);margin-top:clamp(3px,.5vh,6px);flex-shrink:0}.sh-split-seg{display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;padding:0 10px;white-space:nowrap;transition:flex .35s ease}.sh-split-seg--green{background:#16a34a;color:#fff}.sh-split-seg--red{background:#dc2626;color:#fff}.sh-split-seg--amber{background:#d97706;color:#fff}.sh-anchor-tooltip{position:absolute;top:calc(100% + 6px);z-index:100;background:#1e293b;color:#f1f5f9;border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.4;box-shadow:0 4px 16px #0000004d;min-width:160px;max-width:260px;max-height:220px;overflow-y:auto}.sh-anchor-tooltip:before{content:"";position:absolute;top:-6px;left:0;right:0;height:6px}.sh-anchor-tooltip--online{left:0}.sh-anchor-tooltip--offline{right:0}.sh-anchor-tooltip-title{font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin-bottom:5px}.sh-anchor-tooltip-item{padding:2px 0;border-bottom:1px solid rgba(255,255,255,.08)}.sh-anchor-tooltip-item:last-child{border-bottom:none}.sh-anchor-tooltip-room{opacity:.65;font-size:10px;margin-left:4px}[data-theme=dark] .sh-anchor-tooltip{background:#0f172a;box-shadow:0 4px 16px #00000080}.tk-row--in-room,.tk-row--away,.tk-row--lost,.tk-row--restricted{border-radius:6px;padding:5px 8px;margin:1px -4px;border-bottom:none!important}.tk-row--in-room{background:#22c55e1a}.tk-row--away{background:#f59e0b1f}.tk-row--lost{background:#ef44441a}.tk-row--restricted{background:#7c3aed1a}.tk-num--away{background:#f59e0b;color:#fff;border-radius:10px;padding:1px 9px;min-width:auto}.tk-num-total{font-weight:500;opacity:.8;font-size:11px}[data-theme=dark] .dash-card-icon{background-color:var(--bg-secondary)}[data-theme=dark] .sh-row{border-bottom-color:var(--border-color)}[data-theme=dark] .sh-row-label{color:var(--text-secondary)}[data-theme=dark] .sh-badge--green{background:#16653440;color:#34d399}[data-theme=dark] .sh-badge--red{background:#991b1b40;color:#f87171}[data-theme=dark] .sh-badge--amber{background:#854d0e40;color:#fbbf24}[data-theme=dark] .sh-badge--orange{background:#9a341240;color:#fb923c}[data-theme=dark] .tk-section-head{color:var(--text-secondary);border-bottom-color:var(--border-color)}[data-theme=dark] .tk-row{color:var(--text-primary);border-bottom-color:var(--border-color)}[data-theme=dark] .tk-num{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=dark] .tk-alert-row{border-top-color:var(--border-color)}[data-theme=dark] .tk-alert-pill--orange{background:#9a341233;color:#fb923c}[data-theme=dark] .tk-alert-pill--purple{background:#5b21b633;color:#c4b5fd}[data-theme=dark] .tk-alert-count{background:#ffffff1a}[data-theme=dark] .dashboard-tracking-sidebar{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .sh-split-seg--green{background:#15803d}[data-theme=dark] .sh-split-seg--red{background:#b91c1c}[data-theme=dark] .sh-split-seg--amber{background:#b45309}[data-theme=dark] .tk-row--in-room{background:#22c55e1f}[data-theme=dark] .tk-row--away{background:#f59e0b26}[data-theme=dark] .tk-row--lost{background:#ef44441f}[data-theme=dark] .tk-row--restricted{background:#7c3aed1f}[data-theme=dark] .tk-num--away{background:#b45309}.sunburst-chart-container{position:relative;width:100%;flex:1;min-height:0;display:flex;flex-direction:column}.sunburst-svg-wrap{flex:1;min-height:0;width:min(100%,560px);aspect-ratio:1;margin:0 auto;overflow:hidden}@media(min-width:1440px){.sunburst-svg-wrap{width:min(100%,680px)}}@media(max-width:1280px){.sunburst-svg-wrap{width:min(100%,500px)}}@media(max-width:1024px){.sunburst-svg-wrap{width:min(100%,440px)}}@media(max-width:768px){.sunburst-svg-wrap{width:min(88vw,420px)}}@media(max-width:480px){.sunburst-svg-wrap{width:min(95vw,340px)}}.patient-tracking-container{width:100%;height:100%;position:relative}.live-tracking{max-width:100%;height:calc(100vh - 134px);display:grid;grid-template-columns:1fr 280px;grid-template-rows:auto auto 1fr;column-gap:16px;overflow:visible;position:relative;transition:grid-template-columns .28s cubic-bezier(.4,0,.2,1),column-gap .28s cubic-bezier(.4,0,.2,1)}.live-tracking.is-sidebar-collapsed{grid-template-columns:1fr 0;column-gap:0}.live-tracking>.tracking-content:not(.fullscreen-mode)>.tracking-sidebar{transition:opacity .18s ease,padding .28s cubic-bezier(.4,0,.2,1),border-width .28s cubic-bezier(.4,0,.2,1)}.live-tracking.is-sidebar-collapsed>.tracking-content:not(.fullscreen-mode)>.tracking-sidebar{opacity:0;padding:0;border-width:0;pointer-events:none;visibility:hidden}.live-tracking>.tracking-header{grid-column:1 / -1;grid-row:1}.live-tracking>.tracking-controls{grid-column:1;grid-row:2}.live-tracking>.tracking-content:not(.fullscreen-mode){display:contents}.live-tracking>.tracking-content:not(.fullscreen-mode)>.tracking-main{grid-column:1;grid-row:3;min-height:0;overflow:hidden}.live-tracking>.tracking-content:not(.fullscreen-mode)>.tracking-sidebar{grid-column:2;grid-row:2 / 4;width:auto;min-height:0}.layout-content:has(.live-tracking){overflow:hidden}.live-tracking-toggle{position:absolute;top:90px;right:-20px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--bg-card, #fff);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;padding:0;z-index:10;transition:color .15s ease,border-color .15s ease,background .15s ease}.live-tracking-toggle:hover{color:var(--primary);border-color:var(--primary)}.live-tracking-toggle svg{transition:transform .28s cubic-bezier(.4,0,.2,1);transform:rotate(0)}.live-tracking-toggle.is-collapsed svg{transform:rotate(180deg)}@media(max-width:1024px){.live-tracking-toggle{display:none}.live-tracking.is-sidebar-collapsed{grid-template-columns:1fr 280px;column-gap:16px}.live-tracking.is-sidebar-collapsed>.tracking-content:not(.fullscreen-mode)>.tracking-sidebar{opacity:1;padding:12px;border-width:1px;pointer-events:auto;visibility:visible}}.tracking-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-shrink:0}.header-left{display:flex;flex-direction:column;gap:2px}.tracking-title{font-size:26px;font-weight:700;color:var(--text-primary);margin:0;line-height:1.2}.tracking-subtitle{font-size:14px;color:var(--text-secondary);margin:0}.header-right{display:flex;align-items:center;gap:24px}.live-indicator{display:flex;align-items:center;gap:8px;background:var(--success-bg);padding:6px 12px;border-radius:20px}.live-dot{width:8px;height:8px;background:var(--success);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.live-text{font-size:13px;font-weight:600;color:var(--success-text)}.update-time{font-size:13px;color:var(--text-secondary)}.tracking-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:16px;flex-shrink:0}.controls-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.controls-search{position:relative;width:280px;flex-shrink:0;margin-left:auto}.controls-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none;z-index:1}.searchIcon{background:var(--bg--search-color);padding:7px;border-radius:var(--radius);left:5px!important}.controls-search-input{width:100%;padding:12px 16px 12px 42px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-secondary);outline:none;font-size:14px;color:var(--text-primary);transition:all .2s ease;box-sizing:border-box;box-shadow:0 1px 3px #0000000f}.controls-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.controls-search-input::placeholder{color:var(--text-secondary)}.view-toggle{display:flex;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.toggle-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-card);border:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;border-right:1px solid var(--border-color)}.toggle-btn:last-child{border-right:none}.toggle-btn:hover{background:var(--bg-secondary)}.toggle-btn.active{background:var(--primary);color:#fff}.toggle-btn svg{width:18px;height:18px}.selector-group{display:flex;align-items:center;gap:8px}.selector-label{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap}.custom-select{position:relative;min-width:200px}.select-input{width:100%;padding:10px 36px 10px 16px;background-color:var(--bg-secondary)!important;background-image:none!important;border:1px solid var(--border-color);border-radius:var(--radius);font-size:14px!important;color:var(--text-primary)!important;cursor:pointer;appearance:none;outline:none;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;font-family:var(--font-sans)!important;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;text-indent:0px!important;text-align:left!important;direction:ltr!important;box-shadow:0 1px 3px #0000000f}.select-input option{color:#000;background:#fff;padding:8px}.select-input:hover{border-color:var(--primary-light)}.select-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.select-input:disabled{background:var(--bg--disabled-color)!important;color:var(--text-light)!important;cursor:not-allowed;opacity:1}.select-input:not([value=""]){color:var(--text-primary)!important;font-weight:500}.select-icon{position:absolute;right:5px;top:50%;transform:translateY(-50%);color:var(--text-primary);pointer-events:none;background-color:var(--bg--search-color);padding:7px;border-radius:var(--radius)}.tracking-content{display:flex;gap:16px;flex:1;min-height:0;overflow:hidden}.tracking-sidebar{width:280px;flex-shrink:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, var(--border-color));border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:14px;overflow:hidden}.sidebar-search{position:relative;width:100%}.sidebar-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-secondary);flex-shrink:0;pointer-events:none}.search-input{width:100%;padding:10px 12px 10px 40px;border:1px solid var(--border-color);border-radius:24px;background:var(--bg-secondary);outline:none;font-size:14px;color:var(--text-primary);transition:all .2s ease;box-sizing:border-box}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.search-input::placeholder{color:var(--text-secondary)}.tracking-list-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:2px 2px 6px;border-bottom:1px solid var(--border-color, var(--border-color))}.tracking-list-title{font-size:13px;font-weight:600;color:var(--text-primary)}.tracking-list-counts{display:flex;gap:6px}.count-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.count-badge.count-lost{background:#fee2e2;color:#b91c1c}.count-badge.count-active{background:#dcfce7;color:#15803d}.tags-list{flex:1;min-height:0;overflow-y:auto;padding:0 4px}.no-floor-message{text-align:center;color:var(--text-secondary);font-size:14px;padding:40px 20px}.tag-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.tag-list-track-btn{flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:600;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.tag-list-track-btn:hover{background:#2563eb;color:#fff;border-color:#2563eb}.tag-list-track-btn{width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center}.tag-item{padding:10px 12px;border:1.5px solid #15803d;border-radius:10px;margin-bottom:8px;background:#dcfce7;transition:box-shadow .2s ease,transform .2s ease}.tag-item:hover{box-shadow:0 2px 8px #15803d2e;transform:translateY(-1px)}.tag-item.tag-offline{background:#fee2e2;border-color:#dc2626}.tag-item.tag-offline:hover{box-shadow:0 2px 8px #dc262626}.tag-item.tag-away{background:#ffedd5;border-color:#c2410c}.tag-item.tag-away:hover{box-shadow:0 2px 8px #c2410c26}.tag-item.tag-dual-alert{background:linear-gradient(135deg,#fde68a 50%,#ede9fe 50%);border-color:#7c3aed;animation:tag-dual-blink .8s ease-in-out infinite}@keyframes tag-dual-blink{0%,to{border-color:#7c3aed}50%{border-color:#92400e}}.dual-alert-dropdown{margin-top:6px}.dual-alert-toggle{width:100%;display:flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid #c4b5fd;border-radius:7px;background:#f5f3ff;cursor:pointer;font-size:11px;font-weight:600;color:#4c1d95;transition:background .15s,border-color .15s}.dual-alert-toggle:hover,.dual-alert-toggle.open{background:#ede9fe;border-color:#7c3aed}.dual-alert-icons{display:flex;align-items:center;gap:4px;font-size:12px}.dual-alert-label{flex:1;text-align:left}.dual-alert-chevron{font-size:9px;color:#7c3aed}.dual-alert-menu{margin-top:4px;border:1px solid var(--border-color);border-radius:7px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #00000014}.dual-alert-menu-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px}.dual-alert-menu-item:not(:last-child){border-bottom:1px solid var(--border-color)}.tag-item.tag-fallen{background:#fde68a;border-color:#92400e;animation:tag-fallen-blink .8s ease-in-out infinite}@keyframes tag-fallen-blink{0%,to{border-color:#92400e;background:#fde68a}50%{border-color:#78350f;background:#fbbf24}}.tag-item.tag-help{background:#ede9fe;border-color:#6d28d9;animation:tag-help-blink .8s ease-in-out infinite}@keyframes tag-help-blink{0%,to{border-color:#6d28d9;background:#ede9fe}50%{border-color:#4c1d95;background:#ddd6fe}}.tag-item.tag-unsafe{background:#fca5a5;border-color:#7f1d1d;animation:tag-unsafe-blink .9s ease-in-out infinite}@keyframes tag-unsafe-blink{0%,to{border-color:#7f1d1d;background:#fca5a5}50%{border-color:#450a0a;background:#fecaca}}.tag-info{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.tag-info strong{font-size:13px;font-weight:600;color:var(--text-primary)}.tag-alert-row{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.tag-status-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.6px}.tag-status-badge.offline{background:#7f1d1d;color:#fef2f2}.tag-status-badge.away{background:#c2410c;color:#fff7ed}.tag-status-badge.fallen{background:#d97706;color:#fff;animation:badge-fallen-blink .8s ease-in-out infinite}@keyframes badge-fallen-blink{0%,to{background:#d97706}50%{background:#92400e}}.tag-status-badge.unsafe{background:#dc2626;color:#fff;animation:badge-unsafe-blink .9s ease-in-out infinite}@keyframes badge-unsafe-blink{0%,to{background:#dc2626}50%{background:#991b1b}}.tag-status-badge.help{background:#7c3aed;color:#fff;animation:badge-help-blink .8s ease-in-out infinite}@keyframes badge-help-blink{0%,to{background:#7c3aed}50%{background:#4c1d95}}.resolve-alert-btn{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:3px 10px;font-size:10px;font-weight:700;border-radius:5px;border:none;background:#16a34a;color:#fff;cursor:pointer;letter-spacing:.4px;transition:background .15s}.resolve-alert-btn:hover{background:#15803d}.tag-assigned-room{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280;margin-bottom:3px}.tag-assigned-room svg{color:#6b7280;flex-shrink:0}.tag-location{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);margin-bottom:3px}.tag-location svg{color:#15803d;flex-shrink:0}.tag-offline .tag-location svg{color:#dc2626}.tag-away .tag-location svg{color:#c2410c}.tag-unsafe .tag-location svg{color:#7f1d1d}.tag-fallen .tag-location svg{color:#92400e}.tag-time{font-size:11px;color:var(--text-secondary)}.siren-mute-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:none;cursor:pointer;transition:background .2s,transform .15s;flex-shrink:0}.siren-mute-btn.siren-active{background:#fee2e2;color:#7f1d1d;animation:siren-btn-pulse 1.2s ease-in-out infinite}.siren-mute-btn.siren-muted{background:#f1f5f9;color:#64748b}.siren-mute-btn:hover{transform:scale(1.15)}@keyframes siren-btn-pulse{0%,to{background:#fee2e2}50%{background:#fecaca}}.fall-siren-btn.fall-siren-active{background:#fef3c7;color:#92400e;animation:fall-btn-pulse .8s ease-in-out infinite}@keyframes fall-btn-pulse{0%,to{background:#fef3c7}50%{background:#fde68a}}.stats-section{padding:16px;border-top:1px solid var(--border-color);background:var(--bg-secondary);border-radius:0 0 12px 12px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:6px}.stat-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;font-weight:600}.stat-value{font-size:28px;font-weight:700;color:var(--text-primary)}.counts-section{border-top:1px solid var(--border-color);padding-top:16px;display:flex;justify-content:space-between;gap:16px}.count-row{flex:1;text-align:center}.count-value{font-size:28px;font-weight:700;color:var(--text-primary);display:block}.tracking-main{flex:1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.empty-state{text-align:center;padding:60px 40px;max-width:400px}.empty-icon{width:64px;height:64px;color:var(--text-light);margin:0 auto 20px}.empty-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.empty-description{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.6}.map-container{width:100%;height:100%;position:relative;overflow:hidden}.map-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-secondary)}.floor-map{width:100%;height:100%;padding:20px}.map-content{display:flex;flex-direction:column;gap:20px;height:100%}.map-header{border-bottom:1px solid var(--border-color);padding-bottom:16px}.map-header h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.room-count{font-size:14px;color:var(--text-secondary);margin:0}.floor-plan-container{position:relative;flex:1;min-height:400px;background:var(--bg-secondary);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.floor-plan-image{max-width:100%;max-height:100%;object-fit:contain}.floor-plan-placeholder{text-align:center;padding:40px;color:var(--text-secondary)}.floor-plan-placeholder svg{width:48px;height:48px;margin-bottom:16px;opacity:.5}.floor-plan-placeholder p{margin:8px 0;font-size:14px}.floor-plan-placeholder .help-text{font-size:12px;color:var(--text-light)}.map-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.room-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:all;cursor:pointer}.room-marker-dot{width:12px;height:12px;background:var(--primary);border:2px solid white;border-radius:50%;box-shadow:0 2px 8px #0003;transition:all .2s ease}.room-marker:hover .room-marker-dot{width:16px;height:16px;background:var(--primary-dark)}.room-marker-label{position:absolute;top:16px;left:50%;transform:translate(-50%);background:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;color:var(--text-primary);white-space:nowrap;box-shadow:0 2px 8px #00000026;opacity:0;transition:opacity .2s ease;pointer-events:none}.room-marker:hover .room-marker-label{opacity:1}.rooms-grid{border-top:1px solid var(--border-color);padding-top:16px}.rooms-grid h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.rooms-list-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;max-height:200px;overflow-y:auto}.room-item-compact{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg-secondary);border-radius:6px;font-size:13px;transition:all .2s ease}.room-item-compact:hover{background:var(--bg-hover)}.room-info{display:flex;align-items:center;gap:6px}.room-info strong{color:var(--text-primary)}.room-type{color:var(--text-secondary);font-size:12px}.anchor-count{font-size:12px;color:var(--success-text);background:var(--success-bg);padding:2px 8px;border-radius:12px}.no-rooms{grid-column:1 / -1;text-align:center;color:var(--text-secondary);padding:20px}.map-loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8f9faeb;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:500;border-radius:inherit;gap:16px}.map-loading-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.map-loading-text{font-size:14px;font-weight:500;color:#64748b;margin:0;letter-spacing:.2px}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@media(max-width:1200px){.live-tracking{height:auto;max-height:calc(100vh - 134px);overflow-y:auto}.tracking-content{flex-direction:column;overflow:visible}.tracking-sidebar{width:100%;max-height:400px;flex-shrink:0}.tracking-main{min-height:400px;flex:1}.layout-content:has(.live-tracking){overflow-y:auto}}@media(max-width:1024px){.live-tracking{height:calc(100vh - 118px)}}@media(max-width:768px){.live-tracking{height:calc(100vh - 102px)}.tracking-header{flex-direction:column;gap:16px}.header-right{align-self:flex-start}.tracking-controls{flex-direction:column;align-items:flex-start}.controls-left{width:100%}.selector-group{flex:1;min-width:0}.custom-select{min-width:120px}}@media(max-width:480px){.live-tracking{height:calc(100vh - 86px)}}.controls-right{display:flex;align-items:center;gap:12px;margin-left:auto}.floor-plan-menu-wrapper{position:relative}.floor-plan-dots-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff;border:1px solid var(--border-color);border-radius:50%;cursor:pointer;color:#64748b;transition:all .2s ease;box-shadow:0 1px 3px #0000000f}.floor-plan-dots-btn:hover{background:#f1f5f9;color:#1e293b}.floor-plan-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 16px #0000001f;z-index:100;min-width:220px;padding:6px}.floor-plan-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:6px;font-size:13px;font-weight:500;color:#334155;cursor:pointer;transition:background .15s ease;white-space:nowrap}.floor-plan-dropdown-item:hover{background:#f1f5f9}.floor-plan-dropdown-item svg{color:#64748b;flex-shrink:0}.action-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--primary-color, #3498db);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.action-btn:hover{background:var(--primary-dark, #2980b9);transform:translateY(-1px);box-shadow:0 2px 8px #3498db4d}.floor-plan-btn{background:#3498db}.floor-plan-btn:hover{background:#2980b9}.mark-coordinates-btn{background:#9b59b6}.mark-coordinates-btn:hover{background:#8e44ad}.marking-mode-indicator{display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:#fff3cd;border:2px solid #ffc107;border-radius:6px;animation:pulse-border 2s infinite}.marking-text{font-size:14px;color:#856404}.marking-text strong{color:#000;font-weight:600}.btn-cancel-marking{padding:6px 12px;background:#e74c3c;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-cancel-marking:hover{background:#c0392b}.btn-undo-point{padding:6px 12px;background:#f39c12;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-undo-point:hover{background:#e67e22}.btn-complete-polygon{padding:6px 12px;background:#27ae60;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-complete-polygon:hover{background:#229954}.tracking-content.fullscreen-mode{position:fixed;inset:0;z-index:9999;background:#f8f9fa;padding:0;gap:0;display:flex;flex-direction:row;overflow:hidden}.tracking-content.fullscreen-mode .tracking-main.fullscreen-map{flex:1!important;min-width:0!important;min-height:0!important;height:100%!important;max-height:none!important;border-radius:0;border:none;border-right:1px solid var(--border-color, var(--border-color))}.tracking-content.fullscreen-mode .tracking-sidebar{display:flex!important;flex-direction:column;flex:0 0 20%;width:20%!important;min-width:240px;max-width:360px;height:100%!important;max-height:none!important;background:var(--bg-card, #ffffff);padding:16px;box-sizing:border-box;overflow:hidden;gap:14px;border-left:1px solid var(--border-color, var(--border-color))}.tracking-content.fullscreen-mode .live-tracking-toggle-fs{position:relative;z-index:10;align-self:flex-start;flex:0 0 26px;margin:16px -13px 0;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--bg-card, #fff);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;padding:0;transition:color .15s ease,border-color .15s ease,background .15s ease}.tracking-content.fullscreen-mode .live-tracking-toggle-fs:hover{color:var(--primary);border-color:var(--primary)}.tracking-content.fullscreen-mode .live-tracking-toggle-fs svg{transition:transform .28s cubic-bezier(.4,0,.2,1)}.tracking-content.fullscreen-mode .live-tracking-toggle-fs.is-collapsed svg{transform:rotate(180deg)}.tracking-content.fullscreen-mode.fs-sidebar-collapsed .live-tracking-toggle-fs{position:absolute;top:102px;right:19px;margin:0;align-self:auto;flex:0 0 auto;z-index:1000}.tracking-content.fullscreen-mode.fs-sidebar-collapsed .tracking-sidebar{display:none!important}.tracking-marking-mode-bar{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:800;display:flex;align-items:center;gap:12px;padding:10px 20px;background:#fff3cd;border:2px solid #ffc107;border-radius:10px;box-shadow:0 2px 10px #00000026;animation:pulse-border 2s infinite}.tracking-marking-mode-bar .marking-text{font-size:13px;color:#856404;white-space:nowrap}.tracking-marking-mode-bar .marking-text strong{color:#000}.tracking-marking-mode-bar .marking-actions{display:flex;gap:6px;flex-shrink:0}.tracking-marking-mode-bar .btn-marking{padding:5px 12px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;color:#fff;transition:background .2s}.tracking-marking-mode-bar .btn-undo{background:#f39c12}.tracking-marking-mode-bar .btn-undo:hover{background:#e67e22}.tracking-marking-mode-bar .btn-complete{background:#27ae60}.tracking-marking-mode-bar .btn-complete:hover{background:#229954}.tracking-marking-mode-bar .btn-cancel{background:#e74c3c}.tracking-marking-mode-bar .btn-cancel:hover{background:#c0392b}.tracking-mark-rooms-bar{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:800}.tracking-mark-rooms-bar .btn-mark-rooms{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#9b59b6;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;box-shadow:0 2px 10px #0003}.tracking-mark-rooms-bar .btn-mark-rooms:hover{background:#8e44ad}.tracking-top-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:900;display:flex;align-items:center;gap:8px;pointer-events:none}.tracking-top-bar>*,.tracking-top-bar button{pointer-events:all}.go-back-btn{display:flex;align-items:center;gap:6px;padding:8px 18px;background:#2563eb;border:1px solid #1d4ed8;border-radius:8px;font-size:13px;font-weight:600;color:#fff;cursor:pointer;pointer-events:all;box-shadow:0 2px 10px #2563eb59;transition:background .15s ease,box-shadow .15s ease,transform .15s ease;white-space:nowrap}.go-back-btn:hover{background:#1d4ed8;box-shadow:0 4px 14px #2563eb73;transform:translateY(-1px)}.go-back-btn svg{flex-shrink:0;color:#fff}[data-theme=dark] .tracking-sidebar{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .tag-item{background:#15803d2e;border-color:#22c55e}[data-theme=dark] .tag-item:hover{box-shadow:0 2px 8px #22c55e33}[data-theme=dark] .tag-item.tag-offline{background:#dc26262e;border-color:#ef4444}[data-theme=dark] .tag-item.tag-offline:hover{box-shadow:0 2px 8px #ef444433}[data-theme=dark] .tag-item.tag-away{background:#c2410c2e;border-color:#f97316}[data-theme=dark] .tag-item.tag-away:hover{box-shadow:0 2px 8px #f9731633}[data-theme=dark] .tag-item.tag-fallen{background:#92400e40;border-color:#f59e0b}[data-theme=dark] .tag-item.tag-help{background:#6d28d933;border-color:#8b5cf6}[data-theme=dark] .tag-item.tag-unsafe{background:#7f1d1d4d;border-color:#f87171}[data-theme=dark] .tag-item.tag-dual-alert{background:linear-gradient(135deg,#f59e0b40 50%,#6d28d933 50%);border-color:#8b5cf6}[data-theme=dark] .tag-assigned-room,[data-theme=dark] .tag-assigned-room svg{color:var(--text-secondary)}[data-theme=dark] .tag-location svg{color:#34d399}[data-theme=dark] .tag-offline .tag-location svg{color:#f87171}[data-theme=dark] .tag-away .tag-location svg{color:#fb923c}[data-theme=dark] .tag-unsafe .tag-location svg{color:#fca5a5}[data-theme=dark] .tag-fallen .tag-location svg{color:#fbbf24}[data-theme=dark] .count-badge.count-lost{background:#dc262633;color:#f87171}[data-theme=dark] .count-badge.count-active{background:#15803d33;color:#34d399}[data-theme=dark] .siren-mute-btn.siren-muted{background:var(--bg-secondary);color:var(--text-secondary)}[data-theme=dark] .tag-list-track-btn{background:#2563eb26;border-color:#2563eb66;color:#60a5fa}[data-theme=dark] .tag-list-track-btn:hover{background:#2563eb;color:#fff;border-color:#2563eb}[data-theme=dark] .dual-alert-toggle{background:#6d28d926;border-color:#8b5cf666;color:#c4b5fd}[data-theme=dark] .dual-alert-toggle:hover,[data-theme=dark] .dual-alert-toggle.open{background:#6d28d940;border-color:#8b5cf6}[data-theme=dark] .dual-alert-chevron{color:#8b5cf6}[data-theme=dark] .dual-alert-menu{background:var(--bg-card);border-color:var(--border-color);box-shadow:0 2px 8px #0006}[data-theme=dark] .dual-alert-menu-item:not(:last-child){border-bottom-color:var(--border-color)}[data-theme=dark] .floor-plan-dots-btn{background:var(--bg-card);color:var(--text-secondary)}[data-theme=dark] .floor-plan-dots-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=dark] .floor-plan-dropdown{background:var(--bg-card);border-color:var(--border-color);box-shadow:0 4px 16px #0006}[data-theme=dark] .floor-plan-dropdown-item{color:var(--text-primary)}[data-theme=dark] .floor-plan-dropdown-item:hover{background:var(--bg-secondary)}[data-theme=dark] .floor-plan-dropdown-item svg{color:var(--text-secondary)}@media(max-width:768px){.form-row-two{grid-template-columns:1fr}}.page-search-container{margin-bottom:1.5rem}.page-subtitle{margin-top:25px!important}.organizations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.organization-card{background:var(--bg-card);border:2px solid var(--border-color);border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .2s ease}.organization-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.organization-card.selected{border-color:var(--primary);background-color:var(--info-bg);box-shadow:0 0 0 3px #3b82f61a}.org-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.org-card-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.org-card-id{font-size:.875rem;color:var(--text-secondary);margin:0}.selected-icon{color:var(--primary);flex-shrink:0}.org-card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem}.org-action-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .9rem;border-radius:6px;font-size:.82rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all .18s ease}.org-action-edit{background-color:#eff6ff;color:#2563eb;border-color:#bfdbfe}.org-action-edit:hover{background-color:#2563eb;color:#fff;border-color:#2563eb}.org-action-delete{background-color:#fff1f2;color:#dc2626;border-color:#fecaca}.org-action-delete:hover{background-color:#dc2626;color:#fff;border-color:#dc2626}.buildings-section{margin-top:2rem;padding-top:2rem;border-top:2px solid var(--border-color)}.section-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 1.5rem}.delete-org-info{background:var(--danger-bg);border:1px solid var(--danger);border-radius:6px;padding:1rem;margin:1rem 0}.delete-org-info strong{display:block;color:var(--danger-text);margin-bottom:.25rem}.logo-upload-container{margin-top:.5rem}.file-upload{display:flex;align-items:center;justify-content:center;border:2px dashed var(--border-color);border-radius:8px;padding:2rem;text-align:center;transition:all .2s ease;position:relative}.file-upload:hover{border-color:var(--primary);background-color:var(--bg-secondary)}.file-upload.drag-over{border-color:var(--primary);background-color:#3b82f61a;transform:scale(1.02)}.file-upload-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-secondary);font-size:.875rem}.file-upload-label:hover{color:var(--primary)}.logo-preview{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;border:2px solid var(--border-color);border-radius:8px}.logo-preview img{max-width:200px;max-height:200px;object-fit:contain;border-radius:4px}.card-content:has(>.table-wrapper),.card-content:has(>.table-container){padding:0}.card-content:has(>.table-wrapper)>.table-wrapper,.card-content:has(>.table-container)>.table-container{border:none;border-radius:0;box-shadow:none;background:transparent}.table-wrapper,.table-container{width:100%;overflow-x:auto;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch;box-sizing:border-box;position:relative}[data-theme=dark] .table-wrapper,[data-theme=dark] .table-container{background:#1a2744;border-color:var(--border-color)}.table,.table-container>table{width:100%;border-collapse:collapse}.table-header,.table-container thead{background:transparent;border-bottom:1px solid var(--border-color)}.table-head,.table-container th{padding:15px 10px;text-align:left;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;white-space:nowrap}.table-body .table-row,.table-container tbody tr{border-bottom:none;background:transparent;transition:background-color .15s ease}.table-body .table-row:hover,.table-container tbody tr:hover{background-color:#2563eb0a}.table-body .table-row:not(:last-child),.table-container tbody tr:not(:last-child){border-bottom:1px solid var(--border-color)}[data-theme=dark] .table-body .table-row,[data-theme=dark] .table-container tbody tr{background:transparent}[data-theme=dark] .table-body .table-row:hover,[data-theme=dark] .table-container tbody tr:hover{background:#1e3354}[data-theme=dark] .table-body .table-row:not(:last-child),[data-theme=dark] .table-container tbody tr:not(:last-child){border-bottom:1px solid var(--border-color)}.table-cell,.table-container td{padding:12px 10px;font-size:14px;color:var(--text-primary);font-weight:500}.table-cell.negative{color:var(--danger);font-weight:600}.table-cell.positive{color:var(--success);font-weight:600}@media(max-width:1024px){.table-head,.table-container th{padding:13px 10px;font-size:10px}.table-cell,.table-container td{padding:10px;font-size:13px}}@media(max-width:768px){.table-wrapper,.table-container{border-radius:var(--radius)}.table,.table-container>table{min-width:600px}.table-head,.table-container th{padding:11px 10px;font-size:9px;white-space:nowrap}.table-cell,.table-container td{padding:8px 10px;font-size:12px;white-space:nowrap}.table-wrapper:after,.table-container:after{content:"";position:absolute;top:0;right:0;bottom:0;width:30px;background:linear-gradient(to left,rgba(0,0,0,.05),transparent);pointer-events:none;opacity:1;transition:opacity .3s ease}.table-wrapper.scrolled-end:after,.table-container.scrolled-end:after{opacity:0}}@media(max-width:480px){.table,.table-container>table{min-width:500px}.table-head,.table-container th{padding:10px 8px;font-size:8px}.table-cell,.table-container td{padding:7px 8px;font-size:11px}}@media(max-width:768px){.action-buttons{gap:.75rem}.btn-icon{padding:8px;min-width:36px;min-height:36px}}[data-theme=dark] .table-header,[data-theme=dark] .table-container thead{background:transparent;border-bottom:1px solid var(--border-color)}[data-theme=dark] .table-head,[data-theme=dark] .table-container th{color:var(--text-secondary)}.searchable-select{position:relative;width:100%}.searchable-select-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.searchable-select-input{width:100%;padding:10px 2.5rem 10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;background-color:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all .2s ease}.searchable-select-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.searchable-select-input::placeholder{color:var(--text-secondary)}.searchable-select.disabled .searchable-select-input{background-color:var(--bg-secondary);cursor:not-allowed;color:var(--text-secondary);opacity:.7}.searchable-select-indicators{position:absolute;right:10px;display:flex;align-items:center;gap:4px;pointer-events:none}.searchable-select-clear{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--text-secondary);font-size:20px;line-height:1;cursor:pointer;border-radius:4px;transition:all .2s ease}.searchable-select-clear:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.searchable-select-arrow{color:var(--text-secondary);font-size:10px;-webkit-user-select:none;user-select:none}.searchable-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:250px;overflow-y:auto;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-md);z-index:9999;margin:0;padding:4px 0}.searchable-select-dropdown-up{top:auto;bottom:calc(100% + 4px)}.searchable-select-option{padding:10px 14px;cursor:pointer;transition:all .15s ease;font-size:14px;line-height:1.4;color:var(--text-primary)}.searchable-select-option:hover,.searchable-select-option.highlighted{background-color:var(--bg-secondary)}.searchable-select-option.selected{background-color:var(--info-bg);color:var(--info-text);font-weight:500}.searchable-select-option.selected:hover{background-color:var(--info-bg);opacity:.9}.searchable-select-no-results{color:var(--text-secondary);cursor:default;text-align:center;font-style:italic}.searchable-select-no-results:hover{background-color:transparent}.searchable-select-option.option-disabled{color:var(--text-secondary);cursor:not-allowed;opacity:.6}.searchable-select-option.option-disabled:hover{background-color:transparent}.searchable-select-dropdown::-webkit-scrollbar{width:8px}.searchable-select-dropdown::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.searchable-select-dropdown::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.searchable-select-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media(max-width:768px){.searchable-select-input{font-size:16px;padding:10px 2.5rem 10px 12px}.searchable-select-dropdown{max-height:200px}.searchable-select-option{padding:10px 12px;font-size:14px}}@media(max-width:480px){.searchable-select-option{font-size:13px}}.page-search-container{margin-bottom:.375rem;display:flex;gap:.375rem;align-items:center}@media(max-width:768px){.page-search-container{flex-direction:column;align-items:stretch}.page-search{max-width:100%}.page-search-input{font-size:16px}}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color)}[data-theme=dark] .section-title{color:#eff1f3}[data-theme=dark] .section-title svg{color:#eff1f3}.error-text{color:var(--danger-text)!important;font-size:.875rem;margin-top:.25rem;display:block;font-weight:500}.error-message{padding:.75rem 1rem;margin-bottom:1rem;background-color:var(--danger-bg);border:1px solid var(--danger);border-radius:4px;color:var(--danger-text);font-size:.9rem}.form-group input.input-error,.form-group select.input-error{border-color:var(--danger);background-color:var(--danger-bg)}.form-group input.input-error:focus,.form-group select.input-error:focus{border-color:var(--danger);box-shadow:0 0 0 .2rem #ef444440}.delete-entity-info{margin:1rem 0;padding:1rem;background-color:var(--bg-secondary);border-radius:4px;border-left:4px solid var(--primary)}.delete-entity-info strong{font-size:1.1rem;display:block;margin-bottom:.5rem}.delete-entity-info div{margin-top:.25rem;color:var(--text-secondary)}.tag-code{background-color:var(--badge-blue-bg, #dbeafe);color:var(--badge-blue-text, #1e40af);padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;display:inline-block;font-family:inherit}.battery-badge{display:inline-flex;align-items:center;gap:.25rem;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.battery-good{background-color:var(--success-bg, #dcfce7);color:var(--success-text, #166534)}.battery-medium{background-color:var(--warning-bg, #fef3c7);color:var(--warning-text, #92400e)}.battery-low{background-color:var(--danger-bg, #fee2e2);color:var(--danger-text, #991b1b)}.entity-type-badge{padding:6px 14px;border-radius:16px;font-size:12px;font-weight:600;display:inline-block;border:none;text-transform:capitalize;letter-spacing:.3px}.badge-blue{background-color:var(--badge-blue-bg);color:var(--badge-blue-text)}.badge-green{background-color:var(--badge-green-bg);color:var(--badge-green-text)}.badge-gray{background-color:var(--badge-gray-bg);color:var(--badge-gray-text)}.status-badge{padding:6px 14px;border-radius:16px;font-size:12px;font-weight:600;display:inline-block;border:none;text-transform:capitalize;letter-spacing:.3px}.status-badge.status-tracked{background-color:var(--success-bg);color:var(--success-text)}.status-badge.status-untracked{background-color:var(--badge-gray-bg);color:var(--badge-gray-text)}.status-badge.status-admitted{background-color:var(--info-bg);color:var(--info-text)}.action-buttons{display:flex;gap:.5rem;align-items:center}.btn.btn-warning{background-color:#ff9800;color:#fff;border:none}.btn.btn-warning:hover:not(:disabled){background-color:#e68900}.btn.btn-warning:disabled{background-color:#ffb74d;cursor:not-allowed}.filter-select{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;background-color:#fff;cursor:pointer;transition:all .2s}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.location-text{font-size:.9rem;color:#495057}@media(max-width:768px){.tabs{gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;margin-bottom:1rem}.tab{padding:.75rem 1rem;font-size:.875rem;flex-shrink:0;min-width:fit-content}.section-header{flex-direction:column;gap:1rem;align-items:stretch}.section-header>div:last-child{width:100%}.section-header button{width:100%;min-height:44px}.section-title{font-size:1rem;gap:.5rem}.section-subtitle{font-size:.75rem;margin-top:.125rem}.action-buttons{flex-wrap:wrap}.entity-type-badge,.status-badge{padding:5px 12px;font-size:11px}.filter-select{padding:.4rem;font-size:.875rem}.delete-entity-info{padding:.75rem;margin:.75rem 0}.delete-entity-info strong{font-size:1rem}}@media(max-width:480px){.tab{padding:.625rem .875rem;font-size:.8125rem}.tab svg{width:14px;height:14px}.section-title{font-size:.9375rem;gap:.375rem}.section-title svg{width:16px;height:16px}.section-subtitle{font-size:.6875rem}.entity-type-badge,.status-badge{padding:4px 10px;font-size:10px}.filter-select{padding:.35rem;font-size:.8125rem}.delete-entity-info{padding:.625rem;margin:.625rem 0}.delete-entity-info strong{font-size:.9375rem}.location-text{font-size:.8125rem}}.radio-option{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.5rem;border:1.5px solid var(--border-color, var(--border-color));cursor:pointer;transition:all .2s ease;font-weight:600;font-size:.875rem;color:var(--text-secondary, #6b7280);-webkit-user-select:none;user-select:none;letter-spacing:.3px}.status-badge.status-opd{background-color:var(--badge-blue-bg, #dbeafe);color:var(--badge-blue-text, #1e40af);cursor:default}.status-badge.status-ipd{background-color:var(--success-bg, #dcfce7);color:var(--success-text, #166534);cursor:default}.status-badge.status-discharged{background-color:var(--danger-bg, #fee2e2);color:var(--danger-text, #991b1b);cursor:default}.btn.btn-success{background-color:#16a34a;color:#fff;border:none}.btn.btn-success:hover:not(:disabled){background-color:#15803d}.btn.btn-success:disabled{background-color:#86efac;cursor:not-allowed}.modal-content form{padding:0!important}.patient-details{display:flex;flex-direction:column;gap:1rem}.detail-row{display:flex;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-row label{font-weight:600;min-width:150px;color:#374151}.detail-row span{color:#6b7280;flex:1}.detail-row code{background-color:#f3f4f6;padding:2px 6px;border-radius:3px;font-size:.875rem;color:#1f2937}@media(max-width:768px){.detail-row{flex-direction:column;gap:.25rem;padding:.5rem 0}.detail-row label{min-width:unset;font-size:.875rem}.detail-row span{font-size:.875rem}}.history-date-filter{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;background:#f8fafc;border:1px solid var(--border-color);border-radius:8px;flex-wrap:wrap}.date-filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.date-filter-btn{display:flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border:1px solid var(--border-color);background:#fff;border-radius:6px;font-size:.825rem;font-weight:500;color:#4b5563;cursor:pointer;transition:all .15s}.date-filter-btn:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.date-filter-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.date-filter-inputs{display:flex;align-items:center;gap:.5rem}.date-filter-label{font-size:.825rem;font-weight:500;color:#6b7280}.date-filter-input{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:6px;font-size:.825rem;color:#1f2937;background:#fff}.date-filter-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.date-filter-count{font-size:.8rem;color:#6b7280;font-weight:500;margin-left:auto}[data-theme=dark] .history-date-filter{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .date-filter-btn{background:var(--bg-card);border-color:var(--border-color);color:var(--text-secondary)}[data-theme=dark] .date-filter-btn:hover{border-color:var(--primary);color:var(--primary-light);background:#3b82f61a}[data-theme=dark] .date-filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}[data-theme=dark] .date-filter-input{background:var(--bg-card);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .date-filter-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #3b82f633}[data-theme=dark] .date-filter-label,[data-theme=dark] .date-filter-count{color:var(--text-secondary)}.patient-name-link{background:none;border:none;padding:0;cursor:pointer;color:var(--text-primary, #0f172a);font-size:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#60a5fa;transition:all .15s ease;white-space:nowrap}.patient-name-link:hover{color:#2563eb;text-decoration-color:#2563eb}[data-theme=dark] .patient-name-link{color:var(--text-primary, #e2e8f0);text-decoration-color:#60a5fa}[data-theme=dark] .patient-name-link:hover{color:#93c5fd;text-decoration-color:#93c5fd}.filter-pills{display:flex;flex-wrap:wrap;gap:.5rem}.filter-pill{padding:5px 14px;border:1.5px solid var(--border-color, var(--border-color));border-radius:20px;background:var(--bg-secondary, #f9fafb);color:var(--text-secondary, #6b7280);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;-webkit-user-select:none;user-select:none}[data-theme=dark] .filter-pill{background:var(--bg-card);border-color:var(--border-color);color:var(--text-secondary)}[data-theme=dark] .filter-pill:hover{border-color:var(--primary);color:var(--primary-light, #60a5fa);background:#3b82f61a}[data-theme=dark] .filter-pill-active{background:var(--primary)!important;color:#fff!important}.sort-header-btn{background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:inherit;font-weight:700;color:#1d4ed8;text-transform:uppercase;letter-spacing:.05em;padding:0;white-space:nowrap;transition:color .15s ease}.sort-header-btn:hover{color:#1e40af}.sort-header-btn.sort-active{color:#1d4ed8}[data-theme=dark] .sort-header-btn{color:#93c5fd}[data-theme=dark] .sort-header-btn:hover{color:#bfdbfe}.sort-icon-inactive{opacity:.35}.form-row-two{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-row-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}@media(max-width:768px){.form-row-three{grid-template-columns:1fr}}@media(max-width:480px){.form-row-two{grid-template-columns:1fr}}.entity-email{display:inline-block;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;font-size:.875rem}@media(max-width:1024px){.entity-email{max-width:120px}}.patients-table .table-head{white-space:normal;line-height:1.3}.patients-table .entity-email{max-width:110px}.patient-photo-upload{display:flex;align-items:center;gap:16px;padding:12px 0 16px;border-bottom:1px solid var(--border-color);margin-bottom:16px}.patient-photo-preview{width:120px;height:120px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#f1f5f9;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:border-color .15s,box-shadow .15s}.patient-photo-preview--drag{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e}.patient-photo-drag-overlay{position:absolute;inset:0;background:#2563ebb3;color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:50%;pointer-events:none}.patient-photo-img{width:100%;height:100%;object-fit:cover}.patient-photo-reposition{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;border-radius:50%;user-select:none;-webkit-user-select:none}.patient-photo-placeholder{width:44px;height:44px;color:#94a3b8}.patient-photo-actions{display:flex;flex-direction:column;gap:4px}.patient-photo-btn{cursor:pointer;display:inline-block;font-size:13px;padding:6px 14px}.patient-photo-remove{font-size:12px;color:#ef4444;background:none;border:none;padding:2px 0;cursor:pointer;text-align:left}.patient-photo-hint{font-size:11px;color:#94a3b8}.patient-photo-hint--drag{color:#2563eb;font-weight:500;font-size:11px}.phone-input-group .phone-country-select{border:none;outline:none;background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:0 26px 0 10px;font-size:13px;color:var(--text-primary);cursor:pointer;min-width:0;flex-shrink:0;width:110px;max-width:110px;height:40px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.floor-plan-upload-content{display:flex;flex-direction:column;gap:24px}.section-title{font-size:16px;font-weight:600;margin-bottom:12px;color:#2c3e50}.existing-plan-section{padding-bottom:24px;border-bottom:1px solid #e0e0e0}.plan-preview-container{margin-bottom:16px;border:2px solid #e0e0e0;border-radius:8px;overflow:hidden;background:#f8f9fa}.plan-preview-image{width:100%;height:auto;max-height:300px;object-fit:contain;display:block}.delete-plan-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#e74c3c;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.delete-plan-btn:hover:not(:disabled){background:#c0392b}.delete-plan-btn:disabled{background:#95a5a6;cursor:not-allowed}.upload-section{display:flex;flex-direction:column}.upload-area{position:relative;border:2px dashed #3498db;border-radius:8px;padding:40px 20px;text-align:center;background:#f8f9fa;transition:all .2s}.upload-area:hover{border-color:#2980b9;background:#ecf0f1}.file-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.upload-label{display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;color:#3498db}.upload-label svg{color:#3498db}.upload-text{font-size:16px;font-weight:600;margin:0;color:#2c3e50}.upload-hint{font-size:14px;color:#7f8c8d;margin:0}.selected-file-section{display:flex;flex-direction:column;gap:16px}.preview-container{border:2px solid #3498db;border-radius:8px;overflow:hidden;background:#f8f9fa}.preview-image{width:100%;height:auto;max-height:300px;object-fit:contain;display:block}.file-info{display:flex;flex-direction:column;gap:4px}.file-name{font-size:14px;font-weight:600;color:#2c3e50;margin:0}.file-size{font-size:12px;color:#7f8c8d;margin:0}.clear-selection-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#95a5a6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;align-self:flex-start}.clear-selection-btn:hover{background:#7f8c8d}.error-message{padding:12px 16px;background:#ffe5e5;border:1px solid #e74c3c;border-radius:6px;color:#c0392b;font-size:14px}.info-section{padding:12px 16px;background:#e3f2fd;border:1px solid #2196f3;border-radius:6px}.info-text{font-size:14px;color:#1976d2;margin:0;line-height:1.5}.btn-primary{padding:10px 20px;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary:hover:not(:disabled){background:#2980b9}.btn-primary:disabled{background:#95a5a6;cursor:not-allowed}.btn-secondary{padding:10px 20px;background:#fff;color:#2c3e50;border:1px solid #bdc3c7;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#ecf0f1;border-color:#95a5a6}.locations-page{max-width:100%;height:calc(100vh - 134px);display:flex;flex-direction:column;overflow:hidden}.layout-content:has(.locations-page){overflow:hidden}.locations-page .page-header{flex-shrink:0}.locations-layout{display:flex;gap:16px;flex:1;min-height:0;overflow:hidden}.locations-sidebar-col{width:270px;min-width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;min-height:0}.sidebar-search{position:relative;width:100%;flex-shrink:0}.sidebar-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);background:var(--bg--search-color);pointer-events:none;padding:7px;border-radius:var(--radius)}.sidebar-search-input{width:100%;padding:12px 36px 12px 50px;border:1px solid var(--border-color);border-radius:var(--radius);background-color:var(--bg-secondary);font-size:14px;outline:none;transition:all .2s ease;color:var(--text-primary);box-sizing:border-box}.sidebar-search-input:focus{background-color:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.sidebar-search-input::placeholder{color:var(--text-light)}.sidebar-search-clear{position:absolute;right:50px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.sidebar-search-clear:hover{background:var(--bg-secondary);color:var(--text-primary)}.locations-sidebar{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.sidebar-tree{display:flex;flex-direction:column;gap:8px}.empty-state-msg{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;text-align:center;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px}.empty-state-msg p{margin:0 0 1rem;font-size:14px}.tree-building{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.tree-floor{margin-bottom:2px}.tree-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .15s ease;min-height:36px}.tree-item:hover{background:var(--bg-secondary)}.tree-item-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0;cursor:pointer}.tree-item-right{position:relative;flex-shrink:0}.tree-chevron{flex-shrink:0;transition:transform .2s ease;color:var(--text-secondary)}.tree-chevron.expanded{transform:rotate(90deg)}.tree-icon{flex-shrink:0;color:var(--text-secondary)}.tree-item-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-item-count{font-size:12px;color:var(--text-secondary);font-weight:400;flex-shrink:0}.tree-floor-name-group{display:flex;flex-direction:column;gap:3px;min-width:0}.tree-floor-name-row{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.tree-patient-count{font-size:11px;font-weight:500;color:#2563eb;background:#2563eb14;border-radius:10px;padding:1px 7px;flex-shrink:0;white-space:nowrap}.tree-asset-count{font-size:11px;font-weight:500;color:#059669;background:#05966914;border-radius:10px;padding:1px 7px;flex-shrink:0;white-space:nowrap}.tree-building-header{padding:10px 12px;border-radius:0}.tree-building-header:hover{background:var(--bg-secondary)}.tree-building-header .tree-item-name{font-size:14px;font-weight:700}.tree-floor-header{padding:7px 10px;transition:background .15s ease}.tree-floor-header.active{background:#2563eb1a;border-left:3px solid var(--primary);padding-left:7px}.tree-floor-header.active .tree-item-name{color:var(--primary);font-weight:500}.tree-floor-header .tree-icon{color:#64748b}.tree-building-children{padding:0 6px 6px}.tree-children{margin-left:12px;padding-left:12px;border-left:1.5px solid var(--border-color)}.tree-empty-rooms{padding:8px 10px;font-size:12px;color:var(--text-light);font-style:italic}.tree-room-item{padding:7px 10px;border-radius:6px;cursor:pointer}.tree-room-item:hover{background:#2563eb0f}.tree-room-item.active{background:#2563eb1a;border-left:3px solid var(--primary);padding-left:7px}.tree-room-item.active .tree-item-name{color:var(--primary)}.tree-room-badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;flex-shrink:0;margin-left:4px}.tree-room-badge{background:#e0f2fe;color:#0369a1}.tree-room-badge.ward{background:#dbeafe;color:#1d4ed8}.tree-room-badge.icu{background:#fce7f3;color:#be185d}.tree-room-badge.er{background:#fef3c7;color:#b45309}.tree-room-badge.opd{background:#d1fae5;color:#047857}.tree-room-badge.meeting{background:#ede9fe;color:#6d28d9}.tree-room-badge.ot{background:#fee2e2;color:#b91c1c}.tree-unsafe-badge{display:inline-block;padding:1px 6px;border-radius:10px;font-size:10px;font-weight:600;flex-shrink:0;margin-left:4px;background:#fee2e2;color:#b91c1c}.tree-dots-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .15s ease}.tree-dots-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.tree-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 16px #0000001f;z-index:100;min-width:180px;padding:4px;animation:dropdownFade .15s ease-out}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tree-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;background:none;border:none;border-radius:6px;font-size:13px;font-weight:500;color:#334155;cursor:pointer;transition:background .12s ease;white-space:nowrap}.tree-dropdown-item:hover{background:#f1f5f9}.tree-dropdown-item svg{color:#64748b;flex-shrink:0}.tree-dropdown-danger{color:#ef4444!important}.tree-dropdown-danger svg{color:#ef4444!important}.tree-dropdown-danger:hover{background:#fef2f2!important}.locations-content{flex:1;min-width:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.content-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-color);flex-shrink:0}.content-header-left{display:flex;align-items:center;gap:10px}.content-header-icon{color:var(--text-secondary)}.content-header-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.content-header-right{position:relative}.content-dropdown{right:0;top:calc(100% + 6px)}.content-room-badge{display:inline-block;padding:3px 12px;border-radius:12px;font-size:12px;font-weight:600}.content-room-badge,.content-room-badge.ward{background:#dbeafe;color:#1d4ed8}.content-room-badge.icu{background:#fce7f3;color:#be185d}.content-room-badge.er{background:#fef3c7;color:#b45309}.content-room-badge.opd{background:#d1fae5;color:#047857}.content-room-badge.meeting{background:#ede9fe;color:#6d28d9}.content-room-badge.ot{background:#fee2e2;color:#b91c1c}.content-safety-badge{display:inline-block;padding:3px 12px;border-radius:12px;font-size:12px;font-weight:600}.content-safety-badge.safe{background:#d1fae5;color:#047857}.content-safety-badge.unsafe{background:#fee2e2;color:#b91c1c}.content-map-area{flex:1;min-height:0;position:relative;overflow:hidden}.content-map-area .map-container{width:100%;height:100%;position:relative}.no-floor-plan{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg-secondary)}.no-floor-plan-content{text-align:center;color:var(--text-secondary);max-width:320px}.no-floor-plan-content h3{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--text-primary)}.no-floor-plan-content p{margin:0 0 16px;font-size:14px;line-height:1.5}.no-room-selected{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg-secondary);border-radius:0 0 12px 12px}.no-room-selected-content{text-align:center;color:var(--text-secondary);max-width:320px}.no-room-selected-content h3{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--text-primary)}.no-room-selected-content p{margin:0;font-size:14px;line-height:1.5}.marking-mode-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:#fff3cd;border-bottom:2px solid #ffc107;flex-shrink:0;animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{border-color:#ffc107}50%{border-color:#ff9800}}.marking-mode-bar .marking-text{font-size:13px;color:#856404}.marking-mode-bar .marking-text strong{color:#000}.marking-actions{display:flex;gap:6px;flex-shrink:0}.btn-marking{padding:5px 12px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;color:#fff;transition:background .2s}.btn-undo{background:#f39c12}.btn-undo:hover{background:#e67e22}.btn-complete{background:#27ae60}.btn-complete:hover{background:#229954}.btn-cancel{background:#e74c3c}.btn-cancel:hover{background:#c0392b}.mark-rooms-bar{padding:8px 20px;border-bottom:1px solid var(--border-color);flex-shrink:0}.btn-mark-rooms{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#9b59b6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-mark-rooms:hover{background:#8e44ad}.room-actions-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000}.room-actions-popup{background:#fff;border:2px solid #3b82f6;border-radius:10px;padding:8px;box-shadow:0 4px 16px #0003;min-width:130px}.room-actions-title{font-size:13px;font-weight:600;color:#1e293b;text-align:center;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-actions-btns{display:flex;gap:8px;justify-content:center}.room-action-btn{width:35px;height:35px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;cursor:pointer;color:#fff;transition:all .2s ease}.room-action-edit{background:#3b82f6;box-shadow:0 2px 4px #3b82f64d}.room-action-edit:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 8px #3b82f666}.room-action-delete{background:#ef4444;box-shadow:0 2px 4px #ef44444d}.room-action-delete:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 8px #ef444466}.room-action-unsafe{background:#f59e0b;box-shadow:0 2px 4px #f59e0b4d}.room-action-unsafe:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 8px #f59e0b66}.room-action-safe{background:#10b981;box-shadow:0 2px 4px #10b9814d}.room-action-safe:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 8px #10b98166}.room-actions-safety{text-align:center;margin-bottom:8px}.room-actions-safety-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:600}.room-actions-safety-badge.safe{background:#d1fae5;color:#047857}.room-actions-safety-badge.unsafe{background:#fee2e2;color:#b91c1c}.delete-confirmation{background:var(--bg-secondary);padding:1rem;border-radius:6px;margin:1rem 0;text-align:center;border:1px solid var(--border-color)}.btn-sm{padding:6px 14px!important;font-size:13px!important}@media(max-width:1024px){.locations-layout{flex-direction:column}.locations-sidebar-col{width:100%;min-width:unset;max-height:340px}.locations-sidebar{max-height:280px}.locations-content{min-height:400px}.locations-page{height:auto;max-height:calc(100vh - 134px);overflow-y:auto}.layout-content:has(.locations-page){overflow-y:auto}}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:12px}.sidebar-search-input{font-size:16px}.locations-sidebar{max-height:250px}.content-header{padding:10px 14px}.content-header-title{font-size:16px}.tree-building-header{padding:8px 10px}}.safety-toggle-container{display:flex;align-items:center;gap:12px;margin-top:4px}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;margin:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ef4444;transition:.3s;border-radius:24px}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:#10b981}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-label{font-size:.9rem;font-weight:500}.building-floor-navigator{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.floor-nav-arrow{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s,color .15s;flex-shrink:0}.floor-nav-arrow:hover:not(:disabled){background:var(--bg-hover, #f1f5f9);border-color:#4f6bed;color:#4f6bed}.floor-nav-arrow:disabled{opacity:.35;cursor:not-allowed}.building-floor-navigator .content-map-area{flex:1;min-height:0}.building-floor-cards-wrap{flex:1;min-height:0;overflow-y:auto;padding:20px}.building-floor-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;align-content:start}.floor-card{border:1.5px solid var(--border-color);border-radius:12px;overflow:hidden;cursor:pointer;background:var(--bg-card);transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;flex-direction:column}.floor-card:hover{border-color:var(--primary, #2563eb);box-shadow:0 6px 18px #2563eb29;transform:translateY(-3px)}.floor-card-thumbnail{height:150px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.floor-card-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px}.floor-card-info{padding:10px 14px;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:8px}.floor-card-name{font-size:13px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floor-card-rooms{font-size:12px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.building-floor-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);font-size:14px;padding:2rem;text-align:center}.bfn-map-wrapper{position:relative!important}.bfn-overlay-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1000;display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#ffffffeb;border:1.5px solid var(--border-color);border-radius:50%;color:#374151;cursor:pointer;transition:background .15s,box-shadow .15s,color .15s,border-color .15s;box-shadow:0 2px 8px #0000001f}.bfn-overlay-arrow:hover{background:#4f6bed;border-color:#4f6bed;color:#fff;box-shadow:0 4px 14px #4f6bed59}.bfn-arrow-left{left:14px}.bfn-arrow-right{right:14px}.bfn-floor-indicator{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:6px;background:#ffffffed;border:1px solid var(--border-color);border-radius:999px;padding:5px 14px 5px 10px;font-size:.82rem;font-weight:600;color:#374151;box-shadow:0 2px 8px #0000001a;pointer-events:none;white-space:nowrap}.bfn-floor-indicator-count{margin-left:4px;font-weight:400;color:#64748b;font-size:.78rem}.bv-body{flex:1;min-height:0;overflow-y:auto;padding:16px 20px;background:var(--bg-secondary, #f8fafc);position:relative;display:flex;flex-direction:column;gap:18px}.bv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;color:var(--text-secondary);padding:3rem}.bv-empty p{margin:0 0 1rem;font-size:14px}.bv-floor-section{display:flex;flex-direction:column;gap:8px}.bv-floor-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px}.bv-floor-title:after{content:"";flex:1;height:1px;background:var(--border-color)}.bv-floor-title svg{flex-shrink:0}.bv-floor-count{font-size:11px;color:var(--text-light);font-weight:400;text-transform:none;letter-spacing:0;flex-shrink:0}.bv-rooms-row{display:flex;flex-wrap:wrap;gap:7px}.bv-no-rooms{font-size:13px;color:var(--text-light);font-style:italic;padding:6px 0}.bv-room-box{width:68px;min-height:48px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px 4px;cursor:pointer;position:relative;transition:transform .15s ease,box-shadow .15s ease;border:2px solid transparent;-webkit-user-select:none;user-select:none}.bv-room-box:hover{transform:translateY(-2px);box-shadow:0 5px 14px #00000038}.bv-room-gray{background:#9ca3af;border-color:#6b7280;color:#fff}.bv-room-orange{background:#f97316;border-color:#ea580c;color:#fff}.bv-room-green{background:#22c55e;border-color:#16a34a;color:#fff}.bv-room-red{background:#ef4444;border-color:#dc2626;color:#fff;animation:bv-pulse-red 2s ease-in-out infinite}@keyframes bv-pulse-red{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 7px #ef444447}}.bv-room-name{font-size:11px;font-weight:700;text-align:center;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.bv-room-patient-count{position:absolute;top:2px;right:3px;background:#ffffff61;color:#fff;font-size:9px;font-weight:700;min-width:15px;height:15px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.bv-legend-toggle-btn{position:absolute;top:14px;right:14px;width:36px;height:36px;background:var(--bg-card, white);border:1px solid var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #0000001a;z-index:10;color:var(--text-secondary);transition:all .15s ease}.bv-legend-toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 4px 10px #00000024}.bv-legend{position:absolute;bottom:16px;right:14px;background:var(--bg-card, white);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;box-shadow:0 4px 16px #0000001f;z-index:10;min-width:220px;animation:dropdownFade .15s ease-out}.bv-legend-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bv-legend-title{font-size:13px;font-weight:700;color:var(--text-primary)}.bv-legend-close{background:transparent;border:none;cursor:pointer;color:var(--text-secondary);padding:2px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.bv-legend-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.bv-legend-item{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:12px;color:var(--text-secondary)}.bv-legend-swatch{width:18px;height:18px;border-radius:5px;flex-shrink:0;border:2px solid transparent}.bv-swatch-gray{background:#9ca3af;border-color:#6b7280}.bv-swatch-orange{background:#f97316;border-color:#ea580c}.bv-swatch-green{background:#22c55e;border-color:#16a34a}.bv-swatch-red{background:#ef4444;border-color:#dc2626}.multi-searchable-select{position:relative;width:100%}.multi-select-control{display:flex;align-items:center;width:100%;min-height:42px;padding:4px 2.5rem 4px 6px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-card);cursor:text;transition:all .2s ease}.multi-searchable-select:focus-within .multi-select-control{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.multi-searchable-select.disabled .multi-select-control{background-color:var(--bg-secondary);cursor:not-allowed;opacity:.7}.multi-select-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:1;min-width:0}.multi-select-chip{display:inline-flex;align-items:center;gap:4px;background-color:var(--info-bg, #eef2ff);color:var(--info-text, #3730a3);border-radius:6px;padding:2px 6px;font-size:13px;font-weight:500;line-height:1.4;max-width:100%}.multi-select-chip-remove{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0;border-radius:3px}.multi-select-chip-remove:hover{background-color:#0000001a}.multi-searchable-select .multi-select-control .multi-select-input{flex:1;width:auto;min-width:80px;border:none;outline:none;background:transparent;box-shadow:none;font-size:14px;color:var(--text-primary);padding:6px 4px}.multi-searchable-select .multi-select-control .multi-select-input:focus{border:none;outline:none;box-shadow:none}.multi-select-input::placeholder{color:var(--text-secondary)}.multi-select-option{display:flex;align-items:center;gap:8px}.multi-select-checkmark{display:inline-flex;width:14px;justify-content:center;color:var(--primary, #2563eb);font-weight:700}.devices-section{overflow:visible}.devices-section>.card-header{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.devices-page-header{align-items:center;gap:1rem;flex-wrap:wrap}.devices-tab-toggle{display:inline-flex;border-radius:var(--radius, 8px);overflow:hidden;border:2px solid var(--primary);background:var(--bg-card);padding:2px}.devices-tab-toggle-btn{display:inline-flex;align-items:center;gap:.4rem;padding:9px 18px;font-size:14px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease;background:transparent;color:var(--text-primary);white-space:nowrap;line-height:1.4;border-radius:var(--radius, 8px)}.devices-tab-toggle-btn.active{background:var(--primary);color:#fff}.devices-tab-toggle-btn:not(.active):hover{background:var(--bg-secondary)}.tabs-with-search{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color);gap:1rem}.tabs{display:flex;gap:.5rem}.tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-2px}.tab:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);background-color:var(--info-bg)}.tab-search-with-filter{display:flex;gap:.5rem;align-items:center;justify-content:center;margin-bottom:.75rem}.tab-search{position:relative;width:300px}.tab-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.tab-search-input{width:100%;padding:8px 36px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);font-size:13px;outline:none;transition:all .2s ease;color:var(--text-primary)}.filter-button{display:flex;align-items:center;gap:.5rem;padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:13px;white-space:nowrap}.devices-section{margin-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:flex-start;width:100%}.section-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:#1f2937;margin-bottom:.25rem}.section-subtitle{font-size:.875rem;color:#6b7280;margin-top:.25rem}.search-bar{margin-bottom:1rem}.search-input-wrapper{position:relative;max-width:400px}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:16px;pointer-events:none}.search-input{width:100%;padding:8px 34px;border:1px solid var(--border-color);border-radius:6px;font-size:13px;transition:all .2s;background-color:#fff}.search-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.search-input::placeholder{color:#9ca3af}.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:#e5e7eb;border:none;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#6b7280;transition:all .2s;padding:0;line-height:1}.search-clear:hover{background:#d1d5db;color:#374151}.delete-info{background-color:#f3f4f6;padding:1rem;border-radius:.5rem;margin:1rem 0}.delete-info strong{display:block;margin-bottom:.5rem;color:#1f2937;font-size:1rem}.delete-info div{color:#6b7280;font-size:.875rem}.status-badge.status-assigned{background-color:#d1fae5;color:#065f46;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge.status-unassigned{background-color:#f3f4f6;color:#6b7280;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge.status-active{background-color:#d1fae5;color:#065f46;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge.status-inactive{background-color:#fee2e2;color:#991b1b;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.status-badge.status-inactive-defective{background-color:#fee2e2;color:#991b1b;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:1px solid #fecaca}.status-badge.status-inactive-in-store{background-color:#f3f4f6;color:#6b7280;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:1px solid var(--border-color)}@media(max-width:1024px){.devices-page{padding:1.5rem}.tabs{gap:.25rem}.tab{padding:.625rem 1.25rem;font-size:.9375rem}.section-title{font-size:1.125rem}.section-subtitle{font-size:.8125rem}.tab-search{width:250px}}@media(max-width:768px){.devices-page{padding:1rem}.devices-page-header{flex-direction:column;align-items:stretch}.devices-tab-toggle{width:100%;justify-content:center}.devices-tab-toggle-btn{flex:1;justify-content:center;padding:8px 10px;font-size:13px}.tabs-with-search{flex-direction:column;align-items:stretch;gap:.75rem}.tabs{gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem}.tab-search{width:100%;margin-bottom:0}.tab-search-input{font-size:16px}.tab{padding:.75rem 1rem;font-size:.875rem;flex-shrink:0;min-width:fit-content}.devices-section{margin-bottom:1.5rem}.section-header{flex-direction:column;gap:1rem;align-items:stretch}.section-header>div:last-child{width:100%}.section-header button{width:100%;min-height:44px}.section-title{font-size:1rem;gap:.5rem}.section-subtitle{font-size:.75rem;margin-top:.125rem}.search-input-wrapper{max-width:100%}.search-input{font-size:16px;padding:10px 36px}.status-badge{font-size:.75rem!important;padding:.125rem .5rem!important}}@media(max-width:480px){.devices-page{padding:.75rem}.tabs{margin-bottom:.75rem}.tab{padding:.625rem .875rem;font-size:.8125rem}.tab svg{width:14px;height:14px}.section-title{font-size:.9375rem;gap:.375rem}.section-title svg{width:16px;height:16px}.section-subtitle{font-size:.6875rem}.search-input{font-size:16px;padding:9px 34px}.status-badge{font-size:.6875rem!important;padding:.125rem .375rem!important}.delete-info{padding:.75rem;font-size:.8125rem}}.battery-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;display:inline-flex;align-items:center;gap:.25rem}.battery-badge.battery-good{background-color:#d1fae5;color:#065f46}.battery-badge.battery-medium{background-color:#fef3c7;color:#92400e}.battery-badge.battery-low{background-color:#fee2e2;color:#991b1b}.patient-tracking-container{width:100%;height:100%;position:relative;overflow:visible}.patient-tracking-container::-webkit-scrollbar{display:none}.view-wrapper{width:100%;height:100%;transition:opacity .3s ease-in-out,transform .3s ease-in-out}.view-wrapper.active{opacity:1;transform:translateY(0)}.view-wrapper.transitioning{opacity:0;transform:translateY(-10px)}.live-positions{max-width:1400px;margin:0 auto;overflow-x:hidden}.page-header{margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.page-header-left{display:flex;flex-direction:column;gap:2px}.page-title-row{display:flex;align-items:center;gap:10px}.page-title{font-size:26px;font-weight:700;color:var(--text-primary);line-height:1.2}.page-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:-20px!important;line-height:1.4}.live-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:16px;background-color:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;font-size:12px;font-weight:600;line-height:1.4}.live-badge-dot{width:7px;height:7px;border-radius:50%;background-color:#16a34a;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.page-header-right{display:flex;align-items:center;gap:24px}.live-status{display:flex;align-items:center;gap:8px}.live-status-dot{width:12px;height:12px;border-radius:50%;background-color:#16a34a;box-shadow:0 0 0 3px #16a34a33;animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0}.live-status-text{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap}.live-status-time{font-size:13px;color:var(--text-secondary);white-space:nowrap}.view-toggle-buttons{display:flex;border-radius:var(--radius);overflow:hidden;border:2px solid var(--primary);background:var(--bg-card);padding:2px}.view-toggle-btn{padding:9px 22px;font-size:14px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease;background:transparent;color:var(--text-primary);white-space:nowrap;line-height:1.4;border-radius:var(--radius)}.view-toggle-btn:first-child{border-right:1px solid var(--border-color)}.view-toggle-btn.active{background:var(--primary);color:#fff}.view-toggle-btn:not(.active):hover{background:var(--bg-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.stat-card.clickable{transition:all .2s ease;position:relative;cursor:pointer}.stat-card.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:var(--primary)}.stat-card.clickable.active{border:2px solid var(--primary);box-shadow:0 4px 12px #2563eb26}.stat-card.clickable.active:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--primary);border-radius:50%}.stat-card-top-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.stat-card-icon-new{width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary)}.stat-card-bottom-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.stat-card-bottom-row .stat-card-value{font-size:28px;font-weight:700;margin:0;line-height:1}.stat-card-subtitle-inline{font-size:14px;color:var(--text-secondary);font-weight:400}.stat-card-value-date{font-size:1.1rem!important}.positions-section{background:var(--bg-card);border-radius:16px;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:20px}.positions-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;gap:16px}.tabs-container{display:flex;gap:8px}.tab-pill{padding:10px 24px;font-size:14px;font-weight:500;border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;transition:all .2s ease;background:#e2e8f0;color:var(--text-secondary);white-space:nowrap}.tab-pill:hover{border-color:var(--primary);color:var(--primary);background:#2563eb0a}.tab-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.tab-search{position:relative;width:260px;flex-shrink:0}.tab-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-light);pointer-events:none}.tab-search-input{width:100%;padding:10px 36px 10px 40px;border:1px solid var(--border-color);border-radius:var(--radius);background-color:var(--bg-secondary);font-size:14px;outline:none;transition:all .2s ease;color:var(--text-primary);box-sizing:border-box}.tab-search-input:focus{background-color:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.tab-search-input::placeholder{color:var(--text-light)}.tab-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.tab-search-clear:hover{background:var(--bg-secondary);color:var(--text-primary)}.table-content{padding:0;margin:0;overflow-x:hidden;overflow-y:auto;transition:opacity .2s ease,transform .2s ease}.table-content.tab-fade-out{opacity:0;transform:translateY(6px)}.table-content.tab-fade-in{opacity:1;transform:translateY(0)}.table-scroll-container{overflow-x:auto;overflow-y:auto;max-height:500px;scrollbar-width:none;-ms-overflow-style:none}.table-scroll-container::-webkit-scrollbar{display:none}.track-btn{padding:6px 20px;font-size:13px;font-weight:500;border:1px solid var(--primary);border-radius:var(--radius);background:transparent;color:var(--primary);cursor:pointer;transition:all .2s ease;white-space:nowrap}.track-btn:hover{background:var(--primary);color:#fff}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.serial-code{background:var(--bg-secondary);padding:4px 8px;border-radius:4px;font-size:13px;font-family:Courier New,monospace;color:var(--text-secondary)}.loading-state,.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary);font-size:15px}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:.5rem 0;margin-top:.5rem}.pagination-info,.pagination-range{font-size:14px;color:var(--text-secondary)}[data-theme=dark] .pagination-info,[data-theme=dark] .pagination-range{color:var(--text-primary)}.pagination-controls{display:flex;gap:8px}.pagination-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);transition:all .2s ease}[data-theme=dark] .pagination-btn{background:var(--bg-secondary);border-color:var(--border-color)}.pagination-btn:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary);color:#fff}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.warning-text{color:var(--warning);font-weight:500}.text-muted{color:var(--text-light);font-style:italic}[data-theme=dark] .live-badge{background-color:#16a34a26;border-color:#16a34a4d}[data-theme=dark] .view-toggle-btn:not(.active){color:var(--text-secondary)}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.page-header{flex-direction:column;gap:16px}.page-header-right{flex-direction:column;align-items:flex-start;gap:12px;width:100%}.stats-grid{grid-template-columns:1fr}.positions-toolbar{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}.tabs-container{flex-wrap:wrap}.tab-search{width:100%}.tab-search-input{font-size:16px}}.patient-tracking-container.fullscreen-active{position:fixed!important;inset:0!important;z-index:9999!important;overflow:visible!important;width:100vw!important;height:100vh!important;background:#f8f9fa}.patient-tracking-container.fullscreen-active .view-wrapper{width:100%;height:100%;overflow:visible}.patient-tracking-container.fullscreen-active .live-tracking{height:100%}.patient-tracking-container.fullscreen-active .tracking-header,.patient-tracking-container.fullscreen-active .tracking-controls{display:none}.patient-tracking-container.fullscreen-active .tracking-content{display:flex;flex-direction:row;height:100%;gap:0;padding:0;overflow:hidden}.patient-tracking-container.fullscreen-active .tracking-main{flex:1 1 0%;min-width:0;height:100%;max-height:none;border-radius:0;border:none;border-right:1px solid var(--border-color, var(--border-color))}.patient-tracking-container.fullscreen-active .tracking-sidebar{display:flex!important;flex-direction:column;flex:0 0 20%;width:20%!important;min-width:240px;max-width:360px;height:100%;max-height:none;background:var(--bg-card, #ffffff);padding:16px;box-sizing:border-box;overflow:hidden;gap:14px;border-left:1px solid var(--border-color, var(--border-color))}.patient-tracking-container.fullscreen-active .map-container{height:100%!important}[data-theme=dark] .patient-tracking-container.fullscreen-active{background:var(--bg-primary)}.rich-text-editor{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:#fff;transition:border-color .2s,box-shadow .2s}.rich-text-editor:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.rte-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:8px 10px;background:#f8fafc;border-bottom:1px solid var(--border-color);-webkit-user-select:none;user-select:none}.rte-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border:1px solid transparent;background:transparent;border-radius:5px;cursor:pointer;color:#475569;transition:background .15s,border-color .15s,color .15s}.rte-btn:hover{background:#e2e8f0;border-color:var(--border-color);color:#1e293b}.rte-btn:active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.rte-label{font-size:.8rem;font-weight:600;line-height:1;letter-spacing:-.01em}.rte-divider{display:inline-block;width:1px;height:20px;background:#e2e8f0;margin:0 4px;flex-shrink:0}.rte-color-btn{position:relative;cursor:pointer}.rte-color-icon{font-size:.85rem;font-weight:700;color:#475569;line-height:1;text-decoration:underline;text-decoration-color:#ef4444;text-decoration-thickness:3px;text-underline-offset:2px}.rte-color-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.rte-content{min-height:200px;max-height:420px;overflow-y:auto;padding:14px 16px;outline:none;font-size:.9375rem;line-height:1.65;color:#1e293b;word-break:break-word}.rte-content:empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none}.rte-content h1{font-size:1.5rem;font-weight:700;margin:.5rem 0;color:#0f172a}.rte-content h2{font-size:1.25rem;font-weight:600;margin:.5rem 0;color:#0f172a}.rte-content h3{font-size:1.05rem;font-weight:600;margin:.4rem 0;color:#0f172a}.rte-content p{margin:.25rem 0}.rte-content ul,.rte-content ol{padding-left:1.5rem;margin:.4rem 0}.rte-content li{margin:.15rem 0}.rte-content a{color:#3b82f6;text-decoration:underline}.rte-content hr{border:none;border-top:1px solid var(--border-color);margin:.75rem 0}[data-theme=dark] .rich-text-editor{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .rich-text-editor:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f633}[data-theme=dark] .rte-toolbar{background:var(--bg-card);border-bottom-color:var(--border-color)}[data-theme=dark] .rte-btn{color:var(--text-secondary)}[data-theme=dark] .rte-btn:hover{background:var(--border-color);border-color:transparent;color:var(--text-primary)}[data-theme=dark] .rte-btn:active{background:#3b82f626;border-color:var(--primary);color:var(--primary-light, #93c5fd)}[data-theme=dark] .rte-divider{background:var(--border-color)}[data-theme=dark] .rte-color-icon{color:var(--text-secondary)}[data-theme=dark] .rte-content{color:var(--text-primary);background:var(--bg-secondary)}[data-theme=dark] .rte-content:empty:before{color:var(--text-light, #64748b)}[data-theme=dark] .rte-content h1,[data-theme=dark] .rte-content h2,[data-theme=dark] .rte-content h3{color:var(--text-primary)}[data-theme=dark] .rte-content hr{border-top-color:var(--border-color)}[data-theme=dark] .rte-content a{color:var(--primary-light, #93c5fd)}.gkm-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.gkm-dialog{background:#fff;border-radius:10px;width:100%;max-width:560px;box-shadow:0 8px 32px #0000002e;overflow:hidden}.gkm-header{display:flex;align-items:center;gap:.6rem;padding:1.25rem 1.5rem .75rem;border-bottom:1px solid var(--border-color)}.gkm-warning-icon{font-size:1.3rem;color:#e8a003}.gkm-title{font-size:1.1rem;font-weight:600;color:#1a1a2e;margin:0}.gkm-banner{background:#fff8e1;border-left:4px solid #e8a003;color:#7a5800;font-size:.875rem;padding:.85rem 1.5rem;margin:0}.gkm-key-row{display:flex;align-items:center;gap:.6rem;padding:1.25rem 1.5rem}.gkm-key-input{flex:1;font-family:Courier New,Courier,monospace;font-size:.8rem;padding:.55rem .75rem;border:1px solid #d0d0d0;border-radius:6px;background:#f8f8f8;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}.gkm-key-input:focus{border-color:#4f46e5;background:#fff}.gkm-copy-btn{flex-shrink:0;padding:.55rem 1rem;border:1px solid #4f46e5;border-radius:6px;background:#fff;color:#4f46e5;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.gkm-copy-btn:hover{background:#4f46e5;color:#fff}.gkm-copy-btn--done{background:#16a34a;border-color:#16a34a;color:#fff}.gkm-footer{padding:0 1.5rem 1.5rem;display:flex;justify-content:flex-end}.gkm-close-btn{min-width:210px}@media(max-width:480px){.gkm-key-row{flex-direction:column;align-items:stretch}.gkm-copy-btn{width:100%}.gkm-close-btn{min-width:0;width:100%}}.aks-root{margin-top:0}.aks-description{font-size:.875rem;color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.5}.aks-loading,.aks-error{font-size:.9rem;color:var(--text-secondary)}.aks-card{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-bottom:1.5rem;background:var(--bg-card)}.aks-card-header{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.aks-badge{font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.2rem .5rem;border-radius:4px}.aks-badge--org{background:#ede9fe;color:#5b21b6}.aks-card-title{font-weight:600;font-size:.95rem;color:var(--text-primary)}.aks-hint{font-size:.8rem;color:var(--text-secondary);margin-left:auto}.aks-card-body{display:flex;align-items:center;gap:2rem;padding:.9rem 1rem;flex-wrap:wrap}.aks-field{display:flex;flex-direction:column;gap:.2rem}.aks-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.aks-prefix{font-family:Courier New,Courier,monospace;font-size:.82rem;background:var(--bg-secondary);padding:.15rem .4rem;border-radius:4px;color:var(--text-primary);word-break:break-all}.aks-none{color:var(--text-light)}.aks-status{font-size:.82rem;font-weight:500;padding:.15rem .5rem;border-radius:12px;display:inline-block}.aks-status--active{background:#dcfce7;color:#166534}.aks-status--none{background:#f3f4f6;color:#9ca3af}.aks-card-actions{display:flex;gap:.6rem;margin-left:auto}.aks-building-name{font-weight:500}.aks-actions{display:flex;gap:.5rem;white-space:nowrap}.aks-empty{color:var(--text-light);text-align:center;padding:1.5rem!important}.aks-confirm-dialog{max-width:460px}.aks-confirm-footer{justify-content:flex-end;gap:.75rem}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover{background:#b91c1c;border-color:#b91c1c}@media(max-width:640px){.aks-card-body{gap:1rem}.aks-card-actions{margin-left:0;width:100%}}.settings-form{width:100%}.page-container:has(.settings-form){max-width:786px}.settings-section{padding:1.75rem 0}.settings-section:first-child{padding-top:.25rem}.section-title{font-size:1.05rem;font-weight:700;color:#0f172a;margin:0 0 1.25rem;letter-spacing:-.01em}.section-description{color:#64748b;margin:-.75rem 0 1.25rem;font-size:.875rem;line-height:1.5}.settings-divider{height:1px;background:#e2e8f0}.form-group{display:flex;flex-direction:column;gap:0;margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem;row-gap:1.25rem;align-items:start}.settings-grid>.form-group{margin-bottom:0}.settings-grid .settings-input,.settings-grid .password-input-wrapper{max-width:100%}.form-group label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.35rem}.settings-input{width:100%;max-width:480px;padding:.6rem .75rem;border:1px solid var(--border-color);border-radius:7px;font-size:.9375rem;box-sizing:border-box;background:#fff;color:#0f172a;transition:border-color .2s,box-shadow .2s}.settings-input#organization{max-width:100%}.settings-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.help-text{display:block;margin-top:.45rem;color:#64748b;font-size:.8125rem;line-height:1.5}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9375rem;font-weight:500;color:#1e293b}.settings-checkbox{width:18px;height:18px;flex-shrink:0;cursor:pointer;accent-color:#3b82f6}.checkbox-label span{-webkit-user-select:none;user-select:none}.password-input-wrapper{position:relative;display:flex;align-items:center;max-width:480px}.password-input-wrapper .settings-input{max-width:100%;padding-right:48px}.password-toggle-btn{position:absolute;right:12px;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#64748b;transition:color .2s}.password-toggle-btn:hover{color:#3b82f6}.form-actions{display:flex;gap:.75rem;margin-top:.75rem;padding-top:0}.alert{padding:.875rem 1rem;border-radius:7px;margin-bottom:1.5rem;font-size:.875rem}.alert-error{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}@keyframes fadeInAlert{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.alert-success{background-color:#f0fdf4;border:1px solid #86efac;color:#166534;font-weight:500;display:flex;align-items:center;gap:.5rem;animation:fadeInAlert .25s ease}.save-btn{display:inline-flex;align-items:center;gap:.5rem;min-width:130px;justify-content:center}@keyframes spin{to{transform:rotate(360deg)}}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes slideInToast{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutToast{0%{opacity:1}to{opacity:0}}.save-toast{position:fixed;bottom:2rem;right:2rem;background:#166534;color:#fff;padding:.85rem 1.5rem;border-radius:8px;display:flex;align-items:center;gap:.6rem;font-size:.9rem;font-weight:500;box-shadow:0 4px 16px #0000002e;z-index:9999;animation:slideInToast .3s ease,fadeOutToast .4s ease 2.6s forwards}.save-toast-icon{background:#ffffff40;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0}[data-theme=dark] .section-title{color:var(--text-primary)}[data-theme=dark] .section-description,[data-theme=dark] .form-group label{color:var(--text-secondary)}[data-theme=dark] .settings-input{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .settings-input::placeholder{color:var(--text-light)}[data-theme=dark] .settings-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f633}[data-theme=dark] .help-text{color:var(--text-secondary)}[data-theme=dark] .settings-divider{background:var(--border-color)}[data-theme=dark] .form-actions{border-top-color:var(--border-color)}[data-theme=dark] .alert-error{background-color:var(--danger-bg);border-color:#ef44444d;color:var(--danger-text)}[data-theme=dark] .alert-success{background-color:var(--success-bg);border-color:#10b9814d;color:var(--success-text)}[data-theme=dark] .checkbox-label{color:var(--text-primary)}[data-theme=dark] .password-toggle-btn{color:var(--text-secondary)}[data-theme=dark] .password-toggle-btn:hover{color:var(--primary-light)}@media(max-width:768px){.settings-grid{grid-template-columns:1fr;row-gap:1.25rem}}@media(max-width:640px){.form-actions{flex-direction:column}.save-toast{left:1rem;right:1rem;bottom:1rem}}.login-container{min-height:100vh;display:flex;background:#fff;overflow:hidden}.login-brand-panel{flex:1;background:linear-gradient(135deg,#0a1628,#1a2744);position:relative;display:flex;align-items:center;justify-content:center;padding:60px;overflow:hidden}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background:#f8fafc}.login-box{background:#fff;border-radius:16px;box-shadow:0 4px 6px #0000000d;width:100%;max-width:420px;padding:48px 40px;border:1px solid var(--border-color)}.login-header{margin-bottom:32px}.login-header h1{font-size:28px;font-weight:700;color:#1a202c!important;margin:0 0 8px}.login-header p{font-size:14px;color:#64748b!important;margin:0;font-weight:400}.login-form{display:flex;flex-direction:column;gap:24px}.login-container .form-group{display:flex;flex-direction:column;gap:6px}.login-container .form-group label{font-size:13px;font-weight:600;color:#1a202c!important;margin-bottom:2px}.login-container .form-group input{padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;background:#fff!important;color:#1a202c!important;transition:all .2s ease}.login-container .form-group input:hover{border-color:#94a3b8}.login-container .form-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.password-input-wrapper input{width:100%;padding-right:48px}.password-toggle-btn{position:absolute;right:14px;background:none;border:none;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center;padding:4px;transition:color .2s ease}.password-toggle-btn:hover{color:#2563eb}.password-toggle-btn:focus{outline:none}.login-container .form-group input.input-error{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.field-error{font-size:12px;color:#dc2626;font-weight:500;margin-top:2px}.login-button{background:#0f172a;color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px}.login-button:hover:not(:disabled){background:#1e293b;transform:translateY(-1px);box-shadow:0 4px 12px #0f172a40}.login-button:active:not(:disabled){background:#0a0f1a;transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.forgot-password-link{text-align:center;margin-top:-8px}.link-button{background:none;border:none;color:#2563eb;font-size:13px;cursor:pointer;padding:8px;transition:all .2s ease;text-decoration:none;font-weight:500}.link-button:hover{color:#1d4ed8;text-decoration:underline}.link-button:focus{outline:none}@media(max-width:968px){.login-container{flex-direction:column}.login-brand-panel{min-height:250px;padding:40px 30px}.brand-title{font-size:28px}.brand-subtitle{font-size:22px}.brand-description{font-size:14px}.login-form-panel{padding:30px 20px}.login-box{padding:36px 28px}}@media(max-width:480px){.login-brand-panel{min-height:200px;padding:30px 20px}.brand-title{font-size:24px}.brand-subtitle{font-size:18px}.login-box{padding:28px 20px}.login-header h1{font-size:24px}}.forgot-password-container{min-height:100vh;display:flex;background:#fff;overflow:hidden}.forgot-password-brand-panel{flex:1;background:linear-gradient(135deg,#0a1628,#1a2744);position:relative;display:flex;align-items:center;justify-content:center;padding:60px;overflow:hidden}.forgot-password-box{background:var(--bg-card);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:40px;width:100%;max-width:420px;border:1px solid var(--border-color);animation:slideUp .3s ease-out}.brand-content{position:relative;z-index:2;max-width:500px}.brand-title{font-size:36px;font-weight:700;color:#fff;margin:0 0 16px;letter-spacing:.5px;line-height:1.2}.brand-subtitle{font-size:28px;font-weight:600;color:#fff;margin:0 0 20px;line-height:1.3}.brand-description{font-size:15px;color:#ffffffd9;margin:0;line-height:1.6}.brand-decoration{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 50%,rgba(37,99,235,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(37,99,235,.08) 0%,transparent 50%);z-index:1}.brand-decoration:before{content:"";position:absolute;top:15%;left:5%;width:350px;height:350px;border:3px solid rgba(59,130,246,.3);border-radius:50%;animation:float 8s ease-in-out infinite;box-shadow:0 0 40px #3b82f633,inset 0 0 40px #3b82f61a}.brand-decoration:after{content:"";position:absolute;bottom:10%;right:8%;width:250px;height:250px;border:3px solid rgba(96,165,250,.25);border-radius:50%;animation:float 6s ease-in-out infinite 1s;box-shadow:0 0 30px #60a5fa26,inset 0 0 30px #60a5fa1a}.brand-content:before{content:"";position:absolute;top:-100px;right:-150px;width:180px;height:180px;border:2px solid rgba(147,197,253,.25);border-radius:50%;animation:float-rotate 10s ease-in-out infinite 2s;box-shadow:0 0 25px #93c5fd26;z-index:-1}.brand-content:after{content:"";position:absolute;bottom:-80px;left:-120px;width:200px;height:200px;background:radial-gradient(circle,rgba(59,130,246,.15) 0%,transparent 70%);border-radius:50%;animation:pulse-glow 4s ease-in-out infinite;z-index:-1}@keyframes float{0%,to{transform:translate(0) scale(1);opacity:.6}33%{transform:translate(30px,-30px) scale(1.05);opacity:.8}66%{transform:translate(-20px,20px) scale(.95);opacity:.7}}@keyframes float-rotate{0%,to{transform:translate(0) rotate(0) scale(1);opacity:.5}25%{transform:translate(-25px,25px) rotate(90deg) scale(1.08);opacity:.7}50%{transform:translate(15px,-15px) rotate(180deg) scale(.95);opacity:.6}75%{transform:translate(-15px,-20px) rotate(270deg) scale(1.05);opacity:.75}}@keyframes pulse-glow{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.2);opacity:.7}}.forgot-password-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background:#f8fafc}.forgot-password-box{background:#fff;border-radius:16px;box-shadow:0 4px 6px #0000000d;padding:48px 40px;width:100%;max-width:420px;border:1px solid var(--border-color)}.forgot-password-header{text-align:center;margin-bottom:32px}.forgot-password-header h1{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 12px}.forgot-password-header p{font-size:14px;color:#64748b;margin:0;line-height:1.6;font-weight:400}.forgot-password-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-size:13px;font-weight:600;color:#1a202c;margin-bottom:2px}.form-group input{padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;background:#fff;color:#1a202c;transition:all .2s ease;outline:none}.form-group input:hover:not(:disabled){border-color:#94a3b8}.form-group input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.7}.submit-button,.back-button{padding:14px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;outline:none}.submit-button{background:#0f172a!important;color:#fff}.submit-button:hover:not(:disabled){background:#1e293b;transform:translateY(-1px);box-shadow:0 4px 12px #0f172a40}.submit-button:active:not(:disabled){background:#0a0f1a;transform:translateY(0)}.back-button{background:#fff;color:#475569;border:1px solid var(--border-color)}.back-button:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:#1e293b}.error-message{background-color:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:8px;font-size:13px;border:1px solid #fecaca;font-weight:500;margin-bottom:8px}@media(max-width:968px){.forgot-password-container{flex-direction:column}.forgot-password-brand-panel{min-height:250px;padding:40px 30px}.brand-title{font-size:28px}.brand-subtitle{font-size:22px}.brand-description{font-size:14px}.forgot-password-form-panel{padding:30px 20px}.forgot-password-box{padding:36px 28px}}@media(max-width:480px){.forgot-password-brand-panel{min-height:200px;padding:30px 20px}.brand-title{font-size:24px}.brand-subtitle{font-size:18px}.forgot-password-box{padding:28px 20px}.forgot-password-header h1{font-size:24px}}.verify-otp-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main);padding:20px}.verify-otp-box{background:var(--bg-card);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:40px;width:100%;max-width:420px;border:1px solid var(--border-color);animation:slideUp .3s ease-out}.verify-otp-header{text-align:center;margin-bottom:32px}.verify-otp-header h1{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 12px}.verify-otp-header p{font-size:14px;color:#718096;margin:0;line-height:1.5}.verify-otp-header p strong{color:#2d3748}.verify-otp-form{display:flex;flex-direction:column;gap:24px}.otp-inputs{display:flex;gap:12px;justify-content:center;margin:8px 0}.otp-input{width:60px;height:60px;text-align:center;font-size:24px;font-weight:600;border:2px solid var(--border-color);border-radius:12px;transition:all .2s;outline:none;color:#2d3748}.otp-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.otp-input:disabled{background-color:#f7fafc;cursor:not-allowed}.timer-section{text-align:center;min-height:36px;display:flex;align-items:center;justify-content:center}.timer{font-size:14px;color:#4a5568;margin:0}.timer-value{font-weight:700;color:#667eea;font-size:16px}.resend-button{padding:8px 20px;background:transparent;color:#667eea;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:underline}.resend-button:hover:not(:disabled){background:#f7fafc}.resend-button:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:12px 16px;background-color:#fff5f5;border:1px solid #fc8181;border-radius:8px;color:#c53030;font-size:14px;line-height:1.5;text-align:center}@media(max-width:480px){.verify-otp-box{padding:30px 20px}.verify-otp-header h1{font-size:24px}.otp-input{width:50px;height:50px;font-size:20px}.otp-inputs{gap:8px}}.reset-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main);padding:20px}.reset-password-box{background:var(--bg-card);border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:40px;width:100%;max-width:420px;border:1px solid var(--border-color);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reset-password-header{text-align:center;margin-bottom:32px}.reset-password-header h1{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 12px}.reset-password-header p{font-size:14px;color:#718096;margin:0;line-height:1.5}.reset-password-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:#2d3748}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input::-ms-reveal{display:none}.password-input-wrapper input{flex:1;padding:12px 45px 12px 16px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;transition:all .2s;outline:none}.password-input-wrapper input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.password-input-wrapper input:disabled{background-color:#f7fafc;cursor:not-allowed}.toggle-password{position:absolute;right:12px;background:none;border:none;cursor:pointer;font-size:18px;padding:4px;opacity:.6;transition:opacity .2s}.toggle-password:hover{opacity:1}.password-requirements{background:#f7fafc;border:1px solid var(--border-color);border-radius:8px;padding:16px}.requirements-title{font-size:13px;font-weight:600;color:#4a5568;margin:0 0 12px}.requirements-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.requirements-list li{font-size:13px;color:#718096;display:flex;align-items:center;gap:8px;transition:all .2s}.requirements-list li.valid{color:#16a34a;font-weight:500}.check-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:12px;border-radius:50%}.requirements-list li.valid .check-icon{background:#16a34a;color:#fff}.password-mismatch{font-size:13px;color:#dc2626;font-weight:500}.password-match{font-size:13px;color:#16a34a;font-weight:500}.submit-button,.back-button{padding:14px 20px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;border:none;outline:none}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.submit-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #667eea66}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.back-button{background:#f7fafc;color:#4a5568;border:2px solid var(--border-color)}.back-button:hover:not(:disabled){background:#edf2f7;border-color:var(--border-color)}.back-button:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:12px 16px;background-color:#fff5f5;border:1px solid #fc8181;border-radius:8px;color:#c53030;font-size:14px;line-height:1.5}.success-message{text-align:center;padding:40px 20px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.success-icon{width:80px;height:80px;background:linear-gradient(135deg,#16a34a,#15803d);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff;margin:0 auto 24px;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.success-message h2{font-size:24px;font-weight:700;color:#16a34a;margin:0 0 12px}.success-message p{font-size:14px;color:#718096;margin:0}@media(max-width:480px){.reset-password-box{padding:30px 20px}.reset-password-header h1{font-size:24px}.password-requirements{padding:12px}.requirements-list li{font-size:12px}}.page-search-container{margin-bottom:1.5rem;display:flex;gap:.75rem;align-items:center}@media(max-width:768px){.page-search-container{flex-direction:column;align-items:stretch}.page-search{max-width:100%}.page-search-input{font-size:16px}.form-grid{grid-template-columns:1fr}.password-display{flex-wrap:wrap}.password-code{min-width:0}}.filter-button{display:flex;align-items:center;gap:.5rem;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:14px;white-space:nowrap}.filter-button:hover{background-color:var(--bg-card);border-color:var(--primary);color:var(--text-primary)}.filter-button.filter-active{background-color:var(--primary);color:#fff;border-color:var(--primary)}.filter-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;padding:1rem}.filter-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.filter-reset{background:transparent;border:none;color:var(--primary);cursor:pointer;font-size:.875rem;font-weight:500;padding:4px 8px;border-radius:4px;transition:all .2s ease}.filter-reset:hover{background-color:var(--bg-secondary)}.filter-section label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.filter-select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .2s}.filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.staff-management .page-header{margin-bottom:4px}.staff-management .page-search-container{margin-bottom:.375rem}.page-header h1{margin:0;font-size:28px;font-weight:600;color:var(--text-primary)}.page-header p{margin:4px 0 0;color:var(--text-secondary);font-size:14px}.stats-card{background:var(--bg-card);border-radius:8px;padding:20px;margin-bottom:24px;display:flex;gap:40px;box-shadow:var(--shadow-sm)}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:14px;color:var(--text-secondary)}.stat-value{font-size:28px;font-weight:600;color:var(--text-primary)}.staff-name{display:flex;align-items:center;gap:8px}.admin-badge{background:var(--warning);color:#fff;font-size:11px;padding:2px 8px;border-radius:12px;font-weight:500}.roles-list{display:flex;flex-wrap:wrap;gap:4px}.role-badge{background:var(--badge-gray-bg);color:var(--badge-gray-text);font-size:12px;padding:4px 8px;border-radius:4px}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active{background:var(--success-bg);color:var(--success-text)}.status-badge.inactive{background:var(--danger-bg);color:var(--danger-text)}.action-buttons{display:flex;gap:8px}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:none;padding:10px 20px;border-radius:6px;font-weight:500;cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--bg-card);border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-content.modal-content-create-user{max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;border-bottom:1px solid var(--border-light)}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-light);line-height:1}.modal-content .create-user-form{padding:20px!important}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:0}.form-group label{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:6px!important}.form-group input[type=text],.form-group input[type=email],.form-group input[type=tel]{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background:var(--bg-card);color:var(--text-primary)}.form-group input:disabled{background:var(--bg-secondary);cursor:not-allowed}.checkbox-group{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border-color);border-radius:6px;max-height:200px;overflow-y:auto;background:var(--bg-card)}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{cursor:pointer}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.readonly-badge{margin-left:8px;background:var(--badge-gray-bg);color:var(--badge-gray-text);font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500}.role-multiselect{display:flex;flex-direction:column;gap:8px}.role-selected-tags{min-height:42px;padding:8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.role-placeholder{color:var(--text-light);font-size:14px;font-style:italic}.role-tag{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;padding:4px 8px;border-radius:4px;font-size:13px;font-weight:500}.role-tag-remove{background:none;border:none;color:#fff;font-size:18px;line-height:1;cursor:pointer;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:2px;transition:background .2s}.role-tag-remove:hover{background:#fff3}.role-dropdown{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background:var(--bg-card);cursor:pointer;color:var(--text-primary)}.role-dropdown:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.role-dropdown option{padding:8px}.password-alert{background:var(--warning-bg);border:1px solid var(--warning);border-radius:6px;padding:12px;margin-bottom:16px}.password-display{display:flex;align-items:center;gap:8px;margin:8px 0}.password-code{flex:1;background:var(--bg-card);padding:10px 12px;border-radius:4px;font-family:monospace;font-size:16px;font-weight:600;color:var(--warning-text);border:1px solid var(--warning);min-width:150px;display:inline-block}.password-action-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;padding:8px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .2s}.password-action-btn:hover{background:var(--bg-secondary);border-color:var(--border-color);color:var(--primary)}.password-action-btn:active{transform:scale(.95)}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-light)}.loading{padding:48px;text-align:center;color:#718096}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-primary:disabled:hover{background:#667eea}.info-message{display:flex;align-items:flex-start;gap:8px}.phone-input-group{display:flex;align-items:stretch;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;transition:border-color .15s,box-shadow .15s;background:var(--bg-card)}.phone-input-group:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.phone-input-group.input-error-group{border-color:#ef4444}.phone-input-group.input-error-group:focus-within{box-shadow:0 0 0 3px #ef44441f}.phone-country-select{border:none;outline:none;background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:0 26px 0 10px;font-size:13px;color:var(--text-primary);cursor:pointer;min-width:0;flex-shrink:0;max-width:180px;height:40px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.phone-country-select:focus{outline:none;background-color:var(--bg-secondary)}.phone-number-input{border:none;outline:none;flex:1;padding:0 12px;font-size:14px;color:var(--text-primary);background:transparent;min-width:0;height:40px;letter-spacing:.5px}.phone-number-input::placeholder{color:var(--text-light);font-size:13px;letter-spacing:0}.error-text{color:#ef4444;font-size:12px;margin-top:4px;display:block}.role-management .page-header{margin-bottom:4px}.page-search-container{margin-bottom:.375rem}.page-search{position:relative;width:100%;max-width:500px}.page-search-input{width:100%;padding:10px 36px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);font-size:14px;outline:none;transition:all .2s ease;color:var(--text-primary)}.page-search-input:focus{background-color:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.page-search-input::placeholder{color:var(--text-light)}.page-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.page-search-clear:hover{background:var(--bg-secondary);color:var(--text-primary)}@media(max-width:768px){.page-header-with-search{flex-direction:column;align-items:stretch}.page-search{width:100%}.page-search-input{font-size:16px}}.permission-count{background:var(--success-bg);color:var(--success-text);padding:4px 12px;border-radius:12px;font-size:13px;font-weight:500}.modal-content.large{max-width:800px}.role-management .modal-content>form{display:block;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.role-management .modal-actions{position:sticky;bottom:0;background:var(--bg-secondary);padding:16px 35px;margin-top:0;z-index:1}.form-section{padding:20px 20px 0}.form-group textarea{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;background-color:var(--bg-card);color:var(--text-primary)}.permissions-section{padding:0 20px 20px}.permissions-section h3{margin:0 0 8px;font-size:18px;font-weight:600}.section-description{margin:0 0 16px;font-size:14px;color:var(--text-secondary)}.permissions-matrix{border:1px solid var(--border-color);border-radius:8px;padding:12px;max-height:400px;overflow-y:auto;background:var(--bg-secondary);scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.permissions-matrix::-webkit-scrollbar{width:2px}.permissions-matrix::-webkit-scrollbar-track{background:transparent}.permissions-matrix::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}.permission-group{margin-bottom:16px;background:var(--bg-card);border-radius:6px;padding:12px;box-shadow:var(--shadow-sm)}.permission-group:last-child{margin-bottom:0}.permission-parent{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px;background:var(--bg-secondary);border-radius:6px;font-weight:600;color:var(--text-primary)}.permission-parent input[type=checkbox]{width:18px;height:18px;cursor:pointer}.permission-children{margin-top:10px;margin-left:24px;padding-left:12px;border-left:2px solid var(--border-color);display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.permission-children.disabled{opacity:.5;pointer-events:none}.permission-children.building-grouped{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;grid-template-columns:none}.permission-children.permission-matrix{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.permission-children.permission-matrix .permission-table{min-width:max-content}.permission-table{width:100%;border-collapse:collapse}.permission-table th{padding:6px 12px;text-align:center;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.col-select-all{display:flex;flex-direction:column-reverse;align-items:center;justify-content:center;gap:4px;cursor:pointer}.col-select-all input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;margin:0}.permission-table th.entity-col{text-align:left;min-width:100px}.permission-table .entity-label{font-size:13px;font-weight:500;color:var(--text-primary);padding:6px 8px;white-space:nowrap}.permission-table .action-cell{text-align:center;padding:6px 12px}.permission-table .action-cell input[type=checkbox]{width:16px;height:16px;cursor:pointer}.permission-table .action-cell input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.permission-table tbody tr:hover{background:var(--bg-secondary)}.building-sub-group{display:flex;flex-direction:column;flex:1;gap:4px}.building-sub-group-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:4px 8px 6px;margin-bottom:2px;border-bottom:1px solid var(--border-color)}.permission-children.disabled .permission-child{background-color:var(--bg-secondary)}.permission-child{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 8px;border-radius:4px;transition:background .2s}.permission-child:hover:not(:has(input:disabled)){background:var(--bg-secondary)}.permission-child input[type=checkbox]{width:16px;height:16px;cursor:pointer}.permission-child input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.permission-child input[type=checkbox]:not(:checked):not(:disabled){border:2px solid var(--border-color)}.permission-label{font-size:14px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.permission-parent .permission-label{font-size:15px;color:var(--text-primary)}.building-access-config{margin-top:12px;border-top:1px dashed var(--border-color);padding-top:10px}.building-access-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.building-access-title{font-size:13px;font-weight:600;color:var(--text-primary)}.building-access-hint{font-size:12px;color:var(--text-secondary);background:var(--bg-secondary);border-radius:10px;padding:2px 8px}.access-type-selector{display:flex;gap:16px;margin-bottom:10px}.access-radio-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.access-radio-label input[type=radio]{width:14px;height:14px;cursor:pointer;accent-color:var(--primary)}.building-selector{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:6px;padding:8px;background:var(--bg-main);scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.building-selector::-webkit-scrollbar{width:4px}.building-selector::-webkit-scrollbar-track{background:transparent}.building-selector::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}.building-selector-item{border-radius:5px;padding:6px 8px;background:var(--bg-card);border:1px solid transparent;transition:border-color .15s}.building-selector-item.is-selected{border-color:var(--primary)}.building-selector-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-primary)}.building-selector-label input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--primary)}.floor-selector{margin-top:6px;margin-left:22px;padding:6px 8px;border-left:2px solid var(--primary);border-radius:0 4px 4px 0;background:var(--bg-secondary)}.floor-selector-header{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}.floor-selector-options{display:flex;flex-wrap:wrap;gap:4px 12px}.floor-option{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 4px;border-radius:3px}.floor-option:hover{background:var(--bg-card)}.floor-option input[type=checkbox]{width:13px;height:13px;cursor:pointer;accent-color:var(--primary)}.floor-none-hint{font-size:11px;color:var(--text-light);font-style:italic;margin-left:22px;margin-top:4px;display:block}.building-label-with-trigger{display:flex;align-items:center;gap:6px;white-space:nowrap}.ba-pill{display:inline-flex;align-items:center;gap:2px;padding:2px 7px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;line-height:1.5;transition:border-color .15s,color .15s,background .15s;-webkit-user-select:none;user-select:none}.ba-pill:hover{border-color:var(--primary);color:var(--primary)}.ba-pill.active{border-color:var(--primary);background:#2563eb14;color:var(--primary)}.ba-all-row{background:#2563eb0a}.ba-all-row .entity-label{font-weight:600;color:var(--primary)}.ba-building-row{transition:background .12s}.ba-building-row:hover{background:var(--bg-secondary)}.ba-building-row.ba-selected .entity-label{color:var(--primary);font-weight:500}.ba-building-row.ba-dim{opacity:.38;pointer-events:none}.ba-cell-indent{padding-left:28px!important;font-size:12px}.building-label-with-dropdown{display:flex;align-items:center;gap:6px;white-space:nowrap}.building-inline-dropdown-wrapper{position:relative}.building-inline-trigger{display:inline-flex;align-items:center;gap:2px;padding:2px 6px 2px 7px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;line-height:1.4;transition:border-color .15s,color .15s}.building-inline-trigger:hover{border-color:var(--primary);color:var(--primary)}.building-inline-trigger .dropdown-chevron{margin-left:1px}.building-inline-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 14px #00000021;z-index:200;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.building-inline-dropdown-panel::-webkit-scrollbar{width:4px}.building-inline-dropdown-panel::-webkit-scrollbar-track{background:transparent}.building-inline-dropdown-panel::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}.building-dropdown-option.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.access-all-buildings-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:8px}.access-all-buildings-label input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--primary);flex-shrink:0}.building-dropdown-wrapper{position:relative}.building-dropdown-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-primary);font-size:13px;cursor:pointer;text-align:left;transition:border-color .15s}.building-dropdown-trigger:hover{border-color:var(--primary)}.building-dropdown-trigger>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-chevron{flex-shrink:0;color:var(--text-secondary);transition:transform .2s}.dropdown-chevron.open{transform:rotate(180deg)}.building-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #0000001f;z-index:100;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.building-dropdown-panel::-webkit-scrollbar{width:4px}.building-dropdown-panel::-webkit-scrollbar-track{background:transparent}.building-dropdown-panel::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}.building-dropdown-option{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;font-size:13px;color:var(--text-primary);transition:background .15s;-webkit-user-select:none;user-select:none}.building-dropdown-option:hover{background:var(--bg-secondary)}.building-dropdown-option.is-selected{color:var(--primary)}.building-dropdown-option input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--primary);flex-shrink:0}.pi-credentials-page{display:flex;flex-direction:column;gap:1.5rem}.pi-credentials-header{display:flex;flex-direction:column;gap:.35rem}.pi-credentials-title{display:flex;align-items:center;gap:.6rem;color:var(--text-primary)}.pi-credentials-title h1{font-size:1.5rem;font-weight:600;margin:0}.pi-credentials-subtitle{font-size:.9rem;color:var(--text-secondary);margin:0;max-width:640px;line-height:1.5}.pi-credentials-card{max-width:560px;padding:2rem}.cred-form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.cred-label{display:flex;align-items:center;font-size:.875rem;font-weight:500;color:var(--text-primary)}.cred-divider{border:none;border-top:1px solid var(--border-color);margin:.5rem 0 1.25rem}.cred-input{width:100%;padding:.6rem .85rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:.95rem;transition:border-color .15s;box-sizing:border-box}.cred-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light, rgba(59, 130, 246, .12))}.cred-input-readonly{background-color:var(--bg--disabled-color);color:var(--text-secondary);cursor:default}.cred-input-error{border-color:var(--danger, #ef4444)}.cred-error-text{font-size:.8rem;color:var(--danger, #ef4444);margin-top:.15rem}.cred-select-wrapper{position:relative}.cred-select{width:100%;padding:.6rem 2.2rem .6rem .85rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:.95rem;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color .15s;box-sizing:border-box}.cred-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light, rgba(59, 130, 246, .12))}.cred-select:disabled{opacity:.6;cursor:not-allowed}.cred-select-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-secondary)}.cred-password-wrapper{position:relative}.cred-input-password{padding-right:2.75rem}.cred-eye-btn{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;padding:.2rem;border-radius:4px;transition:color .15s}.cred-eye-btn:hover{color:var(--text-primary)}.cred-actions{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;margin-top:.5rem}.cred-save-btn{padding:.6rem 1.4rem;background-color:var(--primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .15s,opacity .15s;white-space:nowrap}.cred-save-btn:hover:not(:disabled){background-color:var(--primary-dark, #2563eb)}.cred-save-btn:disabled{opacity:.6;cursor:not-allowed}.cred-meta{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.cred-version-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;background-color:var(--bg-tertiary, #f3f4f6);border-radius:999px;font-size:.75rem;font-weight:500;color:var(--text-secondary);border:1px solid var(--border-color)}.cred-skeleton{height:40px;border-radius:8px;background:linear-gradient(90deg,var(--bg-tertiary, #f3f4f6) 25%,var(--border-color) 50%,var(--bg-tertiary, #f3f4f6) 75%);background-size:200% 100%;animation:cred-shimmer 1.4s infinite}@keyframes cred-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.cred-loading{padding:.5rem 0}.cred-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;text-align:center;color:var(--text-secondary)}.cred-empty-icon{opacity:.35;margin-bottom:.5rem}.cred-empty p{margin:0;font-size:.95rem}.cred-empty-hint{font-size:.85rem;color:var(--text-secondary)}.cred-modal-body{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:.5rem 0 .25rem}.cred-modal-icon{width:64px;height:64px;border-radius:50%;background-color:var(--warning-bg, #fff3cd);display:flex;align-items:center;justify-content:center;color:var(--warning, #f59e0b);margin-bottom:.25rem}.cred-modal-body p{margin:0;font-size:.95rem;color:var(--text-primary)}.cred-modal-hint{font-size:.85rem;color:var(--text-secondary)!important}.cred-modal-actions{margin-top:.75rem}.ota-page{padding:0}.ota-header{margin-bottom:1.5rem}.ota-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.4rem}.ota-title{display:flex;align-items:center;gap:.5rem}.ota-title h1{font-size:1.5rem;font-weight:600;margin:0}.ota-subtitle{color:var(--text-secondary, #6b7280);font-size:.875rem;margin:0}.ota-card{padding:1.5rem;overflow:visible!important}.ota-card:has(>.ota-audit-header){padding:10px;margin-bottom:.5rem}.ota-section-title{font-size:1rem;font-weight:600;margin:0 0 1.25rem}.ota-table-wrapper{overflow-x:auto}.ota-row-active td{background:var(--surface-highlight, #f0fdf4)}.ota-type-badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.ota-type-pi{background:#dbeafe;color:#1d4ed8}.ota-type-anchor{background:#fef3c7;color:#b45309}.ota-version{font-family:monospace;font-weight:600}.ota-scope{color:var(--text-secondary, #6b7280);font-size:.8rem}.ota-date{color:var(--text-secondary, #6b7280);font-size:.8rem;white-space:nowrap}.ota-badge-active{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#dcfce7;color:#166534}.ota-badge-inactive{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;background:var(--surface-secondary, #f3f4f6);color:var(--text-secondary, #6b7280)}.ota-delete-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary, #9ca3af);padding:.3rem;border-radius:4px;display:inline-flex;align-items:center;transition:color .15s,background .15s}.ota-delete-btn:hover{color:#ef4444;background:#fef2f2}.ota-delete-btn-disabled{display:inline-flex;align-items:center;padding:.3rem;color:var(--border-color, #d1d5db);cursor:not-allowed;border-radius:4px}.ota-form-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.35rem}.ota-form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem;margin-bottom:1.25rem}.ota-form-row>.ota-form-group{margin-bottom:0}@media(max-width:768px){.ota-form-row{grid-template-columns:1fr;gap:1.25rem}.ota-page .page-search{width:100%}}.ota-label{font-size:.875rem;font-weight:500;color:var(--text-primary, #111827)}.ota-help{font-size:.8rem;color:var(--text-secondary, #6b7280)}.ota-divider{border:none;border-top:1px solid var(--border-color, var(--border-color));margin:1rem 0}.ota-radio-group{display:flex;gap:.75rem;flex-wrap:wrap}.ota-radio-label{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:1.5px solid var(--border-color, var(--border-color));border-radius:8px;cursor:pointer;font-size:.875rem;transition:border-color .15s,background .15s}.ota-radio-label input{accent-color:var(--primary, #2563eb)}.ota-radio-selected{border-color:var(--primary, #2563eb);background:#eff6ff;color:var(--primary, #2563eb);font-weight:500}.ota-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer;padding:.25rem 0}.ota-checkbox-label input{accent-color:var(--primary, #2563eb);width:15px;height:15px;flex-shrink:0}.ota-all-buildings-label{margin-bottom:.25rem}.ota-disabled{opacity:.45;cursor:not-allowed}.ota-no-device-hint{font-size:.75rem;color:var(--text-secondary, #9ca3af)}.ota-building-list{display:flex;flex-direction:column;gap:.15rem;padding-left:.25rem;margin-top:.25rem;border-left:2px solid var(--border-color, var(--border-color));padding-left:.75rem}.ota-anchor-group{margin-bottom:.75rem}.ota-anchor-group-name{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #6b7280);margin-bottom:.3rem}.ota-anchor-label{padding-left:.5rem}.ota-anchor-id{font-family:monospace;font-size:.8rem}.ota-anchor-name{color:var(--text-primary, #374151);font-size:.8rem}.ota-anchor-room{color:var(--text-secondary, #9ca3af);font-size:.78rem}.ota-input{padding:.5rem .75rem;border:1.5px solid var(--border-color, var(--border-color));border-radius:8px;font-size:.875rem;outline:none;width:100%;max-width:260px;transition:border-color .15s;background:var(--bg-card);color:var(--text-primary, #111827)}.ota-input:focus{border-color:var(--primary, #2563eb)}.ota-input-error{border-color:#ef4444}.ota-file-wrapper{display:flex;align-items:center;gap:.75rem}.ota-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.ota-file-label{display:inline-flex;align-items:center;padding:.45rem 1rem;border:1.5px solid var(--border-color, var(--border-color));border-radius:8px;font-size:.875rem;cursor:pointer;background:var(--bg-secondary);color:var(--text-primary);transition:border-color .15s,background .15s;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ota-file-label:hover{border-color:var(--primary, #2563eb);background:#eff6ff}.ota-error{color:#ef4444;font-size:.8rem}.ota-loading,.ota-empty{font-size:.875rem;color:var(--text-secondary, #6b7280);padding:.5rem 0}.ota-mismatch-warning{padding:.6rem .875rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:.8rem;color:#c2410c;margin-top:.5rem;line-height:1.5}.ota-affected-warning{margin-top:.75rem;padding:.75rem 1rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;font-size:.8rem;color:#92400e;line-height:1.5}.ota-affected-warning p{margin:.4rem 0 0}.ota-affected-warning ul{margin:.4rem 0 0;padding-left:1.25rem}.ota-affected-warning li{margin:.15rem 0}.ota-affected-note{font-style:italic;color:#b45309}.ota-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color, var(--border-color))}.ota-btn-primary{padding:.5rem 1.25rem;background:var(--primary, #2563eb);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.ota-btn-primary:hover:not(:disabled){background:var(--primary-dark, #1d4ed8)}.ota-btn-primary:disabled{opacity:.6;cursor:not-allowed}.ota-btn-secondary{padding:.5rem 1.25rem;background:none;color:var(--text-primary, #374151);border:1.5px solid var(--border-color, var(--border-color));border-radius:8px;font-size:.875rem;cursor:pointer;transition:border-color .15s}.ota-btn-secondary:hover:not(:disabled){border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.ota-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.ota-btn-audit{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;background:var(--primary, #2563eb);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s}.ota-btn-audit:hover{background:var(--primary-dark, #1d4ed8)}.ota-expand-cell{width:32px;padding:0 .25rem!important}.ota-expand-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary, #9ca3af);padding:.25rem;border-radius:4px;display:inline-flex;align-items:center;transition:color .15s,background .15s}.ota-expand-btn:hover{color:var(--primary, #2563eb);background:#eff6ff}.ota-device-header-row td{background:var(--surface-secondary, #f3f4f6);border-bottom:1px solid var(--border-color, var(--border-color));padding:.35rem .75rem!important}.ota-device-data-row td{background:var(--surface-secondary, #f9fafb);border-bottom:1px solid var(--border-color, var(--border-color));padding:.5rem .75rem!important;font-size:.855rem}.ota-device-data-row:last-of-type td{border-bottom:2px solid var(--border-color, var(--border-color))}.ota-device-col-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #6b7280);white-space:nowrap}.ota-status-loading,.ota-status-empty{font-size:.85rem;color:var(--text-secondary, #6b7280);padding:.5rem 0}.ota-device-id{font-family:monospace;font-size:.78rem;color:var(--text-secondary, #6b7280)}.ota-device-version{font-family:monospace;font-size:.8rem}.ota-device-location{font-size:.82rem;color:var(--text-secondary, #374151)}.ota-no-version{color:var(--text-secondary, #9ca3af)}.ota-status-updated{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:#dcfce7;color:#166534}.ota-status-not-updated{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:#fee2e2;color:#991b1b}.ota-status-unknown{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--surface-secondary, #f3f4f6);color:var(--text-secondary, #6b7280)}.ota-audit-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.ota-audit-header-left{display:flex;align-items:center;gap:1rem;flex-shrink:0}.ota-audit-header-left .ota-section-title{margin:0}.ota-audit-header-right{display:flex;align-items:center;gap:.5rem}.page-search{position:relative;width:260px}.page-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.page-search-input{width:100%;padding:8px 32px 8px 36px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary, #f9fafb);font-size:.855rem;outline:none;transition:all .2s ease;color:var(--text-primary)}.page-search-input:focus{background-color:var(--bg-card, #fff);border-color:var(--primary, #2563eb);box-shadow:0 0 0 2px #2563eb1a}.page-search-input::placeholder{color:var(--text-secondary, #9ca3af)}.page-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:4px;transition:all .2s ease}.page-search-clear:hover{color:var(--text-primary)}.filter-container{position:relative}.filter-button{display:flex;align-items:center;gap:.4rem;padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-secondary, #f9fafb);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:.855rem;white-space:nowrap}.filter-button:hover{background-color:var(--bg-card, #fff);border-color:var(--primary, #2563eb);color:var(--text-primary)}.filter-button.filter-active{background-color:var(--primary, #2563eb);color:#fff;border-color:var(--primary, #2563eb)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background-color:#ffffff4d;border-radius:9px;font-size:11px;font-weight:600}.filter-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:260px;background-color:var(--bg-card, #fff);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;padding:1rem}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.filter-header h4{margin:0;font-size:.9rem;font-weight:600;color:var(--text-primary)}.filter-reset{background:transparent;border:none;color:var(--primary, #2563eb);cursor:pointer;font-size:.8rem;font-weight:500;padding:4px 8px;border-radius:4px;transition:background .15s}.filter-reset:hover{background:#eff6ff}.filter-section{margin-bottom:1rem}.filter-section:last-child{margin-bottom:0}.filter-section label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.filter-pills{display:flex;flex-wrap:wrap;gap:.4rem}.filter-pill{padding:4px 14px;border:1.5px solid var(--border-color, var(--border-color));border-radius:20px;background:var(--bg-secondary, #f9fafb);color:var(--text-secondary, #6b7280);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.filter-pill:hover{border-color:var(--primary, #2563eb);color:var(--primary, #2563eb);background:#eff6ff}.filter-pill-active{background:var(--primary, #2563eb)!important;border-color:var(--primary, #2563eb)!important;color:#fff!important}.ota-btn-back{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;background:none;color:var(--text-secondary, #6b7280);border:1.5px solid var(--border-color, var(--border-color));border-radius:8px;font-size:.8rem;cursor:pointer;transition:color .15s,border-color .15s;flex-shrink:0}.ota-btn-back:hover{color:var(--text-primary, #111827);border-color:var(--text-secondary, #6b7280)}.master-data-devices-page{padding:1rem 1.5rem}.master-data-devices-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.master-data-devices-page h1{font-size:1.25rem;margin:0 0 .25rem}.master-data-devices-page .page-subtitle{color:var(--text-secondary, #6b7280);font-size:.875rem;margin:0}.master-data-devices-page .filter-container{position:relative}.master-data-devices-page .filter-button{display:flex;align-items:center;gap:.5rem;padding:8px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;background-color:var(--bg-secondary, #f9fafb);color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s ease;font-size:13px;white-space:nowrap}.master-data-devices-page .filter-button:hover{background-color:var(--bg-card, #fff);border-color:var(--primary, #2563eb);color:var(--text-primary, #1f2937)}.master-data-devices-page .filter-button.filter-active{background-color:var(--primary, #2563eb);color:#fff;border-color:var(--primary, #2563eb)}.master-data-devices-page .toolbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;background-color:var(--bg-secondary, #f9fafb);color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s ease;font-size:13px;line-height:1}.master-data-devices-page .toolbar-icon-btn:hover{background-color:var(--bg-card, #fff);border-color:var(--primary, #2563eb);color:var(--text-primary, #1f2937)}.master-data-devices-page .toolbar-icon-btn:focus-visible{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 2px #2563eb26}.master-data-devices-page .filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background-color:#ffffff4d;border-radius:9px;font-size:11px;font-weight:600}.master-data-devices-page .filter-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background-color:var(--bg-card, #fff);border:1px solid var(--border-color, #d1d5db);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;padding:1rem}.master-data-devices-page .filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.master-data-devices-page .filter-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.master-data-devices-page .filter-reset{background:transparent;border:none;color:var(--primary, #2563eb);cursor:pointer;font-size:.875rem;font-weight:500;padding:4px 8px;border-radius:4px;transition:all .2s ease}.master-data-devices-page .filter-reset:hover{background-color:var(--bg-secondary, #f3f4f6)}.master-data-devices-page .filter-section{margin-bottom:1rem}.master-data-devices-page .filter-section:last-child{margin-bottom:0}.master-data-devices-page .filter-section label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary, #6b7280);margin-bottom:.5rem}.master-data-devices-page .filter-select{width:100%;padding:.5rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.875rem;background-color:var(--bg-secondary, #f9fafb);color:var(--text-primary, #1f2937);cursor:pointer;transition:all .2s}.master-data-devices-page .filter-select:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 2px #2563eb1a}.master-data-devices-page code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.master-data-devices-page .muted{color:#9ca3af}.master-data-devices-page .badge-warning{display:inline-block;padding:.1rem .4rem;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:500}.master-data-devices-page .icon-btn{background:transparent;border:none;padding:.35rem;margin-right:.25rem;border-radius:4px;cursor:pointer;color:#6b7280}.master-data-devices-page .icon-btn:hover{background:#f3f4f6;color:#1f2937}.master-data-devices-page .icon-btn-danger:hover{background:#fee2e2;color:#b91c1c}.master-data-devices-page .icon-btn:disabled{opacity:.4;cursor:not-allowed}.master-data-devices-page .pager-btn{padding:.375rem .5rem;border:none;background:transparent;cursor:pointer;color:#6b7280;font-size:1rem}.master-data-devices-page .pager-btn:disabled{color:#d1d5db;cursor:not-allowed}.master-data-devices-page .mdd-table-wrap{transition:opacity .15s ease}.master-data-devices-page .mdd-table-wrap.is-refetching{opacity:.55;pointer-events:none}.master-data-devices-page .mdd-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.master-data-devices-page .mdd-sortable:hover{color:#1a64b8}.master-data-devices-page .mdd-sort-ind{font-size:10px;color:#9aa7b6}.master-data-devices-page .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.master-data-devices-page .form-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem}.master-data-devices-page .form-grid input,.master-data-devices-page .form-grid select{padding:.5rem .65rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.95rem;background:var(--bg-primary, #fff)}.master-data-devices-page .error-text{color:#b91c1c;margin-top:.5rem;font-size:.875rem}.master-data-devices-page .result-summary{display:flex;gap:1rem;font-size:.9rem;margin-bottom:.5rem}.master-data-devices-page .result-summary .ok{color:#065f46}.master-data-devices-page .result-summary .warn{color:#92400e}.master-data-devices-page .result-summary .err{color:#b91c1c}.master-data-devices-page .result-details{max-height:220px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px;padding:.5rem;background:#fafafa}.master-data-devices-page .result-row{font-size:.85rem;padding:.25rem 0;border-bottom:1px dashed #e5e7eb}.master-data-devices-page .result-row:last-child{border-bottom:none}.master-data-devices-page .result-row.warn{color:#92400e}.master-data-devices-page .result-row.err{color:#b91c1c}.master-data-devices-page .upload-field-label,.upload-field-label{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;font-weight:500;font-size:.9rem;color:var(--text-primary, #1f2937)}.upload-field-label .info-tooltip-wrap{position:relative;display:inline-flex;align-items:center;color:#6b7280;cursor:help;outline:none}.upload-field-label .info-tooltip-wrap:hover,.upload-field-label .info-tooltip-wrap:focus-visible{color:#2563eb}.upload-field-label .info-tooltip-text{position:absolute;top:calc(100% + 8px);left:-8px;width:340px;max-width:80vw;background:#1f2937;color:#f9fafb;font-size:.78rem;font-weight:400;line-height:1.45;padding:.65rem .8rem;border-radius:6px;box-shadow:0 6px 16px #0000002e;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease;z-index:1100;white-space:normal;pointer-events:none}.upload-field-label .info-tooltip-text:before{content:"";position:absolute;top:-5px;left:12px;width:10px;height:10px;background:#1f2937;transform:rotate(45deg)}.upload-field-label .info-tooltip-text code{background:#ffffff1f;padding:0 .25rem;border-radius:3px;font-size:.72rem}.upload-field-label .info-tooltip-text strong{color:#fff}.upload-field-label .info-tooltip-text em{color:#e5e7eb}.upload-field-label .info-tooltip-wrap:hover .info-tooltip-text,.upload-field-label .info-tooltip-wrap:focus-visible .info-tooltip-text,.upload-field-label .info-tooltip-wrap:focus-within .info-tooltip-text{opacity:1;visibility:visible;transform:translateY(0)}.master-data-devices-page .upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #d1d5db;border-radius:10px;padding:2rem 1rem;background:#f9fafb;cursor:pointer;transition:all .2s;text-align:center;position:relative}.master-data-devices-page .upload-dropzone.has-file{border-color:#3b82f6;background:#eff6ff}.master-data-devices-page .upload-dropzone.is-disabled{cursor:not-allowed;opacity:.7}.master-data-devices-page .upload-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.master-data-devices-page .upload-dropzone.is-disabled input[type=file]{cursor:not-allowed}.master-data-devices-page .upload-dropzone svg{margin-bottom:.5rem}.master-data-devices-page .dropzone-filename{font-size:.9rem;font-weight:600;color:#1d4ed8}.master-data-devices-page .dropzone-hint{font-size:.9rem;color:#6b7280;font-weight:500}.master-data-devices-page .dropzone-formats{font-size:.8rem;color:#9ca3af;margin-top:.25rem}.master-data-devices-page .upload-progress{text-align:center;padding:.75rem;color:#6b7280;font-size:.9rem;margin-top:.75rem}.master-data-devices-page .upload-org-group{margin-top:1rem}.master-data-devices-page .upload-org-select{width:100%;padding:.55rem .7rem;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9rem;background:var(--bg-primary, #fff);color:var(--text-primary, #1f2937);cursor:pointer;transition:all .2s}.master-data-devices-page .upload-org-select:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 2px #2563eb1a}.master-data-devices-page .upload-org-select:disabled{opacity:.7;cursor:not-allowed}@media(max-width:768px){.master-data-devices-page{padding:1rem}.master-data-devices-page .page-header{flex-direction:column;align-items:stretch;gap:.75rem}}@media(max-width:600px){.master-data-devices-page .form-grid{grid-template-columns:1fr}.master-data-devices-page .result-summary{flex-direction:column;gap:.25rem}}.rv{padding:0}.rv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.rv-head h1{font-size:20px;color:var(--text-primary, #11253f);margin:0}.rv-sub{color:var(--text-secondary, #6a7889);font-size:13px;margin:4px 0 0}.rv-filters{display:flex;flex-wrap:wrap;gap:12px 12px;align-items:flex-end;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e1e7ee);border-radius:10px;padding:14px 16px;margin-bottom:16px}.rv-field{display:flex;flex-direction:column;gap:4px}.rv-field>span{font-size:11px;font-weight:600;color:var(--text-secondary, #6a7889)}.rv-field select,.rv-field input{background:var(--input-bg, #f7f9fc);border:1px solid var(--border-color, #cfd8e3);border-radius:7px;padding:8px 10px;font-size:13px;color:var(--text-primary, #22344a);min-width:112px;width:112px}.rv-field select:disabled{opacity:.55;cursor:not-allowed}.rv-showall{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:var(--text-secondary, #6a7889)}.rv-showall input{width:15px;height:15px;cursor:pointer;accent-color:#1a64b8}.rv-showall.rv-showall-inline{margin-bottom:0;padding-bottom:8px;white-space:nowrap;margin-left:auto}.rv-showall-inline+.rv-ok{margin-left:12px}.rv-date-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.rv-field input.rv-date-input{min-width:0;width:112px}.rv-field-room{width:112px}.rv-field-room .searchable-select{width:100%}.rv-field-room .searchable-select-input{width:112px;min-width:0;padding:8px 28px 8px 10px;font-size:13px;border-radius:7px;background:var(--input-bg, #f7f9fc);border:1px solid var(--border-color, #cfd8e3);color:var(--text-primary, #22344a)}.rv-field-room .searchable-select-dropdown{min-width:180px}.rv-date-sep{color:var(--text-secondary, #6a7889);font-size:13px}.rv-datemode-btns{display:inline-flex;border:1px solid var(--border-color, #cfd8e3);border-radius:7px;overflow:hidden}.rv-datemode-btn{padding:8px 10px;font-size:12.5px;background:var(--input-bg, #f7f9fc);color:var(--text-primary, #22344a);border:none;border-right:1px solid var(--border-color, #cfd8e3);cursor:pointer;white-space:nowrap}.rv-datemode-btn:last-child{border-right:none}.rv-datemode-btn.active{background:#1a64b8;color:#fff;font-weight:600}.rv-actions{display:flex;gap:8px;margin-left:auto}.rv-ok{margin-left:auto;align-self:flex-end;min-width:56px}.rv-btn{padding:9px 16px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent}.rv-btn:disabled{opacity:.6;cursor:default}.rv-btn-primary{background:#1a64b8;color:#fff}.rv-btn-ghost{background:var(--card-bg, #fff);color:#1a64b8;border-color:#bcd2ec}.rv-error{background:#fde7e7;color:#c8392f;border:1px solid #f3c6c2;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}.rv-charts{margin-top:-6px;margin-bottom:12px}.rv-charts-head{display:flex;justify-content:flex-end;margin-bottom:3px}.rv-charts-toggle{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e1e7ee);border-radius:7px;color:var(--text-secondary, #6a7889);cursor:pointer;padding:0;transition:color .15s ease,border-color .15s ease}.rv-charts-toggle:hover{color:#1a64b8;border-color:#1a64b8}.rv-charts-chev{transition:transform .28s cubic-bezier(.4,0,.2,1);transform:rotate(180deg)}.rv-charts.is-collapsed .rv-charts-chev{transform:rotate(0)}.rv-charts-body{overflow:hidden;max-height:320px;opacity:1;transition:max-height .3s ease,opacity .25s ease}.rv-charts-body .rv-cards{margin-bottom:0}.rv-charts.is-collapsed .rv-charts-body{max-height:0;opacity:0}.rv-cards{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;align-items:flex-start}.rv-card{flex:1;min-width:150px;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e1e7ee);border-radius:10px;padding:12px 18px}.rv-chart-card{flex:1 1 340px;padding:10px 12px 4px}.rv-chart-title{font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--text-secondary, #6a7889);margin-bottom:6px}.rv-chart-empty{display:flex;align-items:center;justify-content:center;text-align:center;height:232px;padding:0 16px;font-size:12.5px;color:var(--text-secondary, #7a8799)}.rv-chart-tip{background:#fff;border:1px solid rgba(37,99,235,.1);border-radius:12px;padding:0;overflow:hidden;box-shadow:0 8px 24px #00000038;font-size:12px}.rv-chart-tip-head{background:linear-gradient(135deg,#1d4ed8,#2563eb 60%,#3b82f6);color:#fff;font-weight:800;font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:9px 14px;margin:0}.rv-chart-tip-row{display:flex;align-items:center;gap:8px;line-height:1.7;padding:1px 14px}.rv-chart-tip-head+.rv-chart-tip-row{padding-top:8px}.rv-chart-tip-row:last-child{padding-bottom:8px}.rv-chart-tip-dot{width:9px;height:9px;border-radius:50%;flex:none}.rv-chart-tip-name{color:var(--text-secondary, #6a7889)}.rv-chart-tip-val{margin-left:auto;padding-left:16px;font-weight:700;color:var(--text-primary, #22344a)}.rv-card-val{font-size:20px;font-weight:700;color:#1a64b8;line-height:26px;min-height:26px}.rv-card-lbl{font-size:11px;color:var(--text-secondary, #7a8799);margin-top:2px}.rv-table .rv-right{text-align:right}.rv-table .rv-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.rv-table .rv-sortable:hover{color:#1a64b8}.rv-sort-ind{font-size:10px;color:#9aa7b6}.rv-link{background:none;border:none;padding:0;cursor:pointer;color:#1a64b8;font:inherit;font-weight:600;text-decoration:none}.rv-link:hover{color:#114a8c}.rv-heat-col{width:44px}.rv-heat-cell{width:44px;text-align:right;white-space:nowrap}.rv-heat-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:var(--card-bg, #fff);color:#1a64b8;border:1px solid #bcd2ec;border-radius:7px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.rv-heat-btn:hover{background:#1a64b8;color:#fff;border-color:#1a64b8}.rv-modal-footer{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:13px;color:var(--text-secondary, #7a8799)}.rv-cell-sub{display:block;font-size:11px;font-weight:400;color:var(--text-secondary, #7a8799);margin-top:2px}.rv-parent-row td{font-weight:600;border-bottom:none}.rv-nested-row>td{padding:0;background:var(--input-bg, #f6f9fc);border-bottom:1px solid var(--border-color, #d9e2ec)}.rv-nested-table{width:calc(100% - 34px);margin:0 8px 8px 26px;border-collapse:collapse;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e1e7ee)}.rv-nested-table th{text-align:left;font-size:11px;color:var(--text-secondary, #6a7889);font-weight:600;padding:5px 12px;background:#eef3f9;border-bottom:1px solid var(--border-color, #e1e7ee)}.rv-nested-table td{font-size:12px;color:var(--text-primary, #2b3a4d);padding:5px 12px;border-bottom:1px solid var(--border-color, #eef2f6)}.rv-nested-table tr:last-child td{border-bottom:none}.rv-nested-table .rv-right{text-align:right}.rv-empty{text-align:center;color:var(--text-secondary, #7a8799);padding:28px;font-size:13px;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e1e7ee);border-top:none;border-radius:0 0 10px 10px}.rv-pager{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;color:var(--text-secondary, #7a8799)}.rv-pg{display:flex;align-items:center;gap:8px}.rv-pg button{width:30px;height:30px;border:1px solid var(--border-color, #d3dde8);border-radius:6px;background:var(--card-bg, #fff);cursor:pointer;font-size:15px}.rv-pg button:disabled{opacity:.45;cursor:default}.rv-pg-cur{min-width:60px;text-align:center}.assets-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.25rem;gap:1rem;flex-wrap:wrap}.assets-page .page-search-container{margin-bottom:.375rem}.assets-page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 4px}.assets-page-subtitle{font-size:14px;color:var(--text-secondary);margin:0}.assets-stats-bar{display:flex;gap:12px;margin-bottom:1.25rem;flex-wrap:wrap}.asset-stat-card{background:var(--surface, #fff);border:1px solid var(--border, var(--border-color));border-radius:10px;padding:12px 18px;display:flex;flex-direction:column;align-items:center;min-width:90px;gap:2px;transition:background .15s,border-color .15s}.asset-stat-card.asset-stat-active{border-color:var(--color-primary, #3b82f6);background:#3b82f60f}.asset-stat-value{font-size:1.3rem;font-weight:700;color:var(--text-primary)}.asset-stat-label{font-size:.72rem;color:var(--text-secondary);white-space:nowrap}.asset-photo-thumb{width:34px;height:34px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid var(--border, var(--border-color))}.asset-photo-placeholder{width:34px;height:34px;border-radius:6px;background:var(--bg-secondary, #f3f4f6);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.asset-name{font-weight:500;font-size:.9rem}.asset-id-label{font-size:.72rem;color:var(--text-secondary)}.asset-photo-upload{display:flex;justify-content:center;margin-bottom:16px;cursor:pointer}.asset-photo-preview{width:90px;height:90px;border-radius:10px;object-fit:cover;border:2px solid var(--color-primary, #3b82f6)}.asset-photo-upload-placeholder{width:90px;height:90px;border-radius:10px;border:2px dashed var(--border, var(--border-color));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-secondary);font-size:.75rem;background:var(--bg-secondary, #f9fafb);transition:border-color .2s,background .2s}.asset-photo-upload-placeholder:hover{border-color:var(--color-primary, #3b82f6);background:#3b82f60a}.assets-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary);gap:12px;text-align:center}.assets-empty-icon{color:var(--text-light);opacity:.45}.asset-code-badge{font-family:monospace;font-size:12px;background:#2563eb14;border:1px solid #BFDBFE;color:#1e40af;padding:2px 8px;border-radius:4px}[data-theme=dark] .asset-code-badge{background:#2563eb26;border-color:#1e3a5f;color:#93c5fd}.asset-type-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;background-color:var(--badge-blue-bg, #dbeafe);color:var(--badge-blue-text, #1e40af)}.asset-description-cell{display:inline-block;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary);vertical-align:middle}.assets-no-results{text-align:center;color:var(--text-secondary);padding:40px 16px!important}.asset-form-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.asset-required{color:#ef4444}.asset-field-error{display:block;margin-top:3px;font-size:12px;color:#ef4444}.asset-id-badge{font-family:monospace;font-size:12px;background:#2563eb14;border:1px solid #BFDBFE;color:#1e40af;padding:2px 8px;border-radius:4px}[data-theme=dark] .asset-id-badge{background:#2563eb26;border-color:#1e3a5f;color:#93c5fd}.tag-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.tag-code{background-color:var(--badge-blue-bg, #dbeafe);color:var(--badge-blue-text, #1e40af);padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap}[data-theme=dark] .tag-code{background-color:#2563eb26;color:#93c5fd}.battery-mini{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;padding:2px 7px;border-radius:10px;white-space:nowrap}.battery-mini.battery-good{background-color:var(--success-bg, #dcfce7);color:var(--success-text, #166534)}.battery-mini.battery-medium{background-color:var(--warning-bg, #fef3c7);color:var(--warning-text, #92400e)}.battery-mini.battery-low{background-color:var(--danger-bg, #fee2e2);color:var(--danger-text, #991b1b)}.asset-tag-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:600;background-color:var(--badge-green-bg, #dcfce7);color:var(--badge-green-text, #166534)}[data-theme=dark] .asset-tag-badge{background-color:#16653433;color:#86efac}.asset-location-cell{font-size:13px;color:var(--text-secondary)}.form-row-two{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-row-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}.asset-unassign-info{margin:1rem 0;padding:1rem;background-color:var(--bg-secondary, #f8fafc);border-radius:8px;border-left:4px solid var(--primary, #2563eb)}.asset-unassign-info strong{font-size:1rem;display:block;margin-bottom:6px;color:var(--text-primary)}.asset-unassign-info div{margin-top:4px;font-size:13px;color:var(--text-secondary)}.radio-group-row{display:flex;gap:0;align-items:center}.radio-option{display:flex;align-items:center;gap:.5rem;padding:8px 16px;border:1px solid var(--border-color, var(--border-color));cursor:pointer;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;color:var(--text-primary);background:var(--bg-card, #fff)}.radio-option:first-child{border-radius:8px 0 0 8px;border-right:none}.radio-option:last-child{border-radius:0 8px 8px 0}.radio-option:hover{background-color:var(--bg-secondary, #f9fafb)}.radio-option-selected{border-color:var(--primary, #2563eb);background-color:var(--primary, #2563eb);color:#fff;box-shadow:0 1px 3px #2563eb4d}.radio-option-selected:hover{background-color:var(--primary, #2563eb)}.radio-option input[type=radio]{display:none}.asset-unassign-warning{margin-top:1rem;padding:10px 14px;background-color:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;font-size:13px;color:#92400e}[data-theme=dark] .asset-unassign-warning{background-color:#f59e0b1a;color:#fcd34d;border-left-color:#f59e0b}.category-input-container{position:relative;width:100%}.category-input-box{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:40px;padding:5px 10px;border:1px solid var(--border-color, var(--border-color));border-radius:6px;background-color:var(--input-bg, #fff);cursor:text;transition:border-color .2s,box-shadow .2s}.category-input-box.focused,.category-input-box:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}[data-theme=dark] .category-input-box{background-color:var(--input-bg, #1e293b);border-color:var(--border-color, #334155)}.category-text-input,.form-group .category-text-input{flex:1;min-width:120px;border:none!important;outline:none!important;box-shadow:none!important;background:transparent!important;font-size:14px;color:var(--text-primary);padding:0!important;border-radius:0!important;width:auto}.category-text-input::placeholder{color:var(--text-light, #9ca3af)}.category-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 10px;background-color:#3b82f6;color:#fff;border-radius:20px;font-size:13px;font-weight:500;white-space:nowrap}[data-theme=dark] .category-chip{background-color:#2563eb}.category-chip-remove{display:flex;align-items:center;justify-content:center;background:#ffffff40;border:none;border-radius:50%;color:#fff;width:16px;height:16px;padding:0;cursor:pointer;flex-shrink:0;transition:background-color .15s}.category-chip-remove:hover{background:#ffffff73}.category-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--card-bg, #fff);border:1px solid var(--border-color, var(--border-color));border-radius:6px;box-shadow:0 8px 20px #0000001a;z-index:1000;overflow:hidden;animation:catDropDown .15s ease-out;max-height:220px;overflow-y:auto}[data-theme=dark] .category-dropdown{background:var(--card-bg, #1e293b);border-color:var(--border-color, #334155);box-shadow:0 8px 20px #0000004d}@keyframes catDropDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.category-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px 7px 12px;font-size:14px;color:var(--text-primary);transition:background-color .12s;-webkit-user-select:none;user-select:none;gap:6px}.category-dropdown-item:hover{background-color:var(--hover-bg, #f3f4f6)}.category-dropdown-label{flex:1;cursor:pointer;padding:2px 0}.category-suggestion-remove{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:var(--text-secondary, #6b7280);cursor:pointer;padding:0;opacity:0;transition:opacity .15s,background-color .15s}.category-dropdown-item:hover .category-suggestion-remove{opacity:1}.category-suggestion-remove:hover{background-color:#fee2e2;color:#dc2626}[data-theme=dark] .category-suggestion-remove:hover{background-color:#dc262633;color:#f87171}[data-theme=dark] .category-dropdown-item:hover{background-color:var(--hover-bg, #334155)}.category-dropdown-add{color:#2563eb;font-weight:500;border-top:1px solid var(--border-color, var(--border-color))}[data-theme=dark] .category-dropdown-add{color:#60a5fa;border-top-color:var(--border-color, #334155)}@media(max-width:768px){.form-row-two,.form-row-three{grid-template-columns:1fr}}@media(max-width:640px){.assets-page-header{flex-direction:column;align-items:stretch}.assets-page-header .btn{justify-content:center}}.delete-confirmation{margin:.75rem 0;padding:.75rem 1rem;background-color:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, var(--border-color));border-radius:6px;font-size:.875rem;line-height:1.6}.delete-confirmation code{font-family:monospace;background:var(--bg-tertiary, #f3f4f6);padding:1px 5px;border-radius:3px}.assets-table .table-head{white-space:normal;line-height:1.3}.ast-stat-strip{display:flex;align-items:center;background:var(--surface, #fff);border:1px solid var(--border, var(--border-color));border-radius:12px;padding:14px 24px;margin-bottom:14px;gap:0;flex-wrap:wrap}.ast-stat-item{display:flex;flex-direction:column;align-items:center;flex:1;min-width:80px;gap:2px}.ast-stat-divider{width:1px;height:36px;background:var(--border, #e5e7eb);flex-shrink:0}.ast-stat-num{font-size:1.6rem;font-weight:700;line-height:1;color:var(--text-primary)}.ast-stat-lbl{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-weight:500}.ast-stat-tracked .ast-stat-num{color:#10b981}.ast-stat-lost .ast-stat-num{color:#ef4444}.ast-stat-notag .ast-stat-num{color:#f59e0b}.ast-status-badge{border-radius:4px;padding:2px 8px;font-size:.72rem;font-weight:600}.ast-badge-available{background:#d1fae5;color:#065f46}.ast-badge-inuse{background:#dbeafe;color:#1e40af}.ast-badge-maintenance{background:#fef3c7;color:#92400e}.ast-badge-lost{background:#fee2e2;color:#991b1b}.ast-battery{font-size:.78rem;font-weight:500}.ast-batt-good{color:#059669}.ast-batt-mid{color:#d97706}.ast-batt-low{color:#dc2626}.ast-search-inline{position:relative;display:flex;align-items:center;flex:1;max-width:260px}.ast-search-inline-icon{position:absolute;left:10px;color:var(--text-secondary, #9ca3af);pointer-events:none}.ast-search-inline-input{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--border, var(--border-color));border-radius:8px;background:var(--surface, #fff);color:var(--text-primary);font-size:.85rem;outline:none;box-sizing:border-box}.ast-search-inline-input:focus{border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.ast-list-view{display:flex;flex-direction:column;gap:12px}.ast-list-search-wrap{position:relative;display:flex;align-items:center;max-width:420px}.ast-table-wrap{overflow-x:auto;border:1px solid var(--border, var(--border-color));border-radius:12px}.ast-table{width:100%;border-collapse:collapse;font-size:.845rem;background:var(--surface, #fff)}.ast-table thead tr{background:var(--bg-secondary, #f8fafc);border-bottom:2px solid var(--border, var(--border-color))}.ast-table th{padding:11px 14px;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap}.ast-table tbody tr{border-bottom:1px solid var(--border, var(--border-color));transition:background .12s}.ast-table tbody tr:last-child{border-bottom:none}.ast-table tbody tr:hover{background:var(--bg-secondary, #f8fafc)}.ast-table td{padding:10px 14px;color:var(--text-primary);vertical-align:middle}.ast-td-name{display:flex;align-items:center;gap:8px;font-weight:600;white-space:nowrap}.ast-td-mono{font-family:monospace;font-size:.8rem}.ast-muted{color:var(--text-secondary);font-style:italic}.ast-trk-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ast-trk-tracked{background:#10b981}.ast-trk-lost{background:#ef4444}.ast-trk-notag{background:#d1d5db}.ast-trk-badge{border-radius:12px;padding:2px 9px;font-size:.72rem;font-weight:600;white-space:nowrap}.ast-trk-badge-tracked{background:#d1fae5;color:#065f46}.ast-trk-badge-lost{background:#fee2e2;color:#991b1b}.ast-trk-badge-notag{background:#f3f4f6;color:#6b7280}.ast-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;color:var(--text-secondary);gap:12px;text-align:center}.ast-fullscreen-page{padding:0!important}.live-tracking.live-tracking--list{display:block;grid-template-columns:none;grid-template-rows:none;height:auto;overflow:visible;max-width:100%;width:100%;margin:0}.layout-content:has(.live-tracking.live-tracking--list){overflow:visible}.nf-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main);padding:24px 16px;animation:nf-fade-in .5s ease both}.nf-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-lg);padding:56px 48px 48px;max-width:460px;width:100%;text-align:center;animation:nf-slide-up .5s ease both}.nf-radar{position:relative;width:100px;height:100px;margin:0 auto 24px}.nf-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--primary);opacity:0;animation:nf-pulse-ring 2.4s ease-out infinite}.nf-ring-1{animation-delay:0s}.nf-ring-2{animation-delay:.8s}.nf-ring-3{animation-delay:1.6s}.nf-icon-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--info-bg);border-radius:50%;animation:nf-float 3s ease-in-out infinite}.nf-icon{color:var(--primary)}.nf-code{font-size:96px;font-weight:800;line-height:1;letter-spacing:-4px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px;animation:nf-count-in .6s ease .2s both}.nf-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 12px}.nf-desc{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:0 0 36px}.nf-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.nf-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.nf-btn:hover{transform:translateY(-2px)}.nf-btn-primary{background:var(--primary);color:var(--text-white)}.nf-btn-primary:hover{background:var(--primary-hover);box-shadow:0 6px 20px #2563eb59}.nf-btn-secondary{background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border-color)}.nf-btn-secondary:hover{background:var(--bg-sidebar-hover);box-shadow:var(--shadow-sm)}@keyframes nf-fade-in{0%{opacity:0}to{opacity:1}}@keyframes nf-slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes nf-count-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes nf-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes nf-pulse-ring{0%{transform:scale(.6);opacity:.7}to{transform:scale(1.8);opacity:0}}@media(max-width:480px){.nf-card{padding:40px 24px 36px}.nf-code{font-size:72px;letter-spacing:-2px}.nf-title{font-size:20px}.nf-btn{width:100%;justify-content:center}.nf-actions{flex-direction:column}}.sso-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e3a5f);font-family:Inter,Segoe UI,Arial,sans-serif}.sso-card{background:#fff;border-radius:16px;padding:48px 40px;width:100%;max-width:420px;box-shadow:0 25px 60px #0006;text-align:center}.sso-logo h1{font-size:1.6rem;font-weight:700;color:#0f172a;margin:0 0 4px;letter-spacing:-.5px}.sso-logo p{font-size:.85rem;color:#64748b;margin:0 0 36px}.sso-loading{display:flex;flex-direction:column;align-items:center;gap:20px}.sso-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:#2563eb;border-radius:50%;animation:sso-spin .8s linear infinite}@keyframes sso-spin{to{transform:rotate(360deg)}}.sso-error{display:flex;flex-direction:column;align-items:center;gap:12px}.sso-error-icon{width:52px;height:52px;background:#fee2e2;color:#dc2626;font-size:1.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.sso-status{font-size:.95rem;color:#475569;margin:0;line-height:1.5}.sso-status--error{color:#dc2626}.sso-redirect-note{font-size:.8rem;color:#94a3b8;margin:0}@media(max-width:480px){.sso-container{padding:16px}.sso-card{padding:32px 20px}.sso-logo h1{font-size:1.4rem}}#root{min-height:100vh;overflow-x:hidden}.page-container{max-width:100%;width:100%;overflow-x:hidden}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.page-title{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.page-subtitle{font-size:14px;color:var(--text-secondary);margin:0;font-weight:500}select.filter-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px;padding-right:32px}.btn{padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--text-secondary);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#fff;border:1px solid var(--danger)}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-warning{background:var(--warning);color:#fff;border:1px solid var(--warning)}.btn-warning:hover:not(:disabled){background:#d97706;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-icon{background:transparent;border:1px solid transparent;cursor:pointer;padding:6px 8px;border-radius:6px;transition:all .18s ease;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:13px;font-weight:500;line-height:1}.btn-icon:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-icon.btn-edit{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.btn-icon.btn-edit:hover:not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 2px 6px #2563eb40;transform:translateY(-1px)}.btn-icon.btn-delete{color:#dc2626;background:#fff1f2;border-color:#fecaca}.btn-icon.btn-delete:hover:not(:disabled){background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:0 2px 6px #dc262640;transform:translateY(-1px)}.btn-icon.btn-info{color:#0891b2;background:#ecfeff;border-color:#a5f3fc}.btn-icon.btn-info:hover:not(:disabled){background:#0891b2;border-color:#0891b2;color:#fff;box-shadow:0 2px 6px #0891b240;transform:translateY(-1px)}.btn-icon.btn-view{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}.btn-icon.btn-view:hover:not(:disabled){background:#7c3aed;border-color:#7c3aed;color:#fff;box-shadow:0 2px 6px #7c3aed40;transform:translateY(-1px)}.btn-icon.btn-warning{color:#d97706;background:#fffbeb;border-color:#fde68a}.btn-icon.btn-warning:hover:not(:disabled){background:#d97706;border-color:#d97706;color:#fff;box-shadow:0 2px 6px #d9770640;transform:translateY(-1px)}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;color:var(--text-primary);background:var(--bg-card);transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-group small{display:block;margin-top:6px;font-size:12px;color:var(--text-secondary)}.required{color:var(--danger)}.empty-state,.loading-state,.error-state{text-align:center;padding:48px 24px;color:var(--text-secondary)}.empty-state p,.loading-state p,.error-state p{margin-bottom:20px;font-size:15px}.error-state{color:var(--danger)}.warning-text{color:var(--warning-text);background:var(--warning-bg);padding:12px;border-radius:8px;font-size:13px;font-weight:500}code{background:var(--bg-secondary);color:var(--primary);padding:3px 8px;border-radius:4px;font-size:13px;font-weight:500}input:disabled,select:disabled,textarea:disabled{background-color:var(--bg-secondary)!important;color:var(--text-secondary)!important;cursor:not-allowed!important;opacity:.7}@media(max-width:1024px){.page-header{margin-bottom:24px}.page-title{font-size:24px}.btn{padding:9px 18px;min-height:40px}}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:20px}.page-title{font-size:22px;margin-bottom:4px}.page-subtitle{font-size:13px}.btn{padding:10px 16px;font-size:14px;width:100%;justify-content:center;min-height:44px;white-space:normal;text-align:center}.page-header>div{display:flex;flex-direction:column;gap:12px;width:100%}.page-header>div>.btn,.page-header>div>button{width:100%}.empty-state,.loading-state,.error-state{padding:32px 16px}.empty-state p,.loading-state p,.error-state p{font-size:14px}.form-group{margin-bottom:16px}.form-group input,.form-group select,.form-group textarea{font-size:16px;-webkit-appearance:none;appearance:none}.form-group textarea{min-height:100px;resize:vertical}}@media(max-width:480px){.page-header{margin-bottom:16px;gap:12px}.page-title{font-size:20px}.page-subtitle{font-size:12px}.btn{padding:10px 14px;font-size:14px;min-height:44px}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;font-size:16px}.form-group label{font-size:13px;margin-bottom:6px}.form-group small{font-size:11px;margin-top:4px}.empty-state,.loading-state,.error-state{padding:24px 12px}.warning-text{font-size:12px;padding:10px}code{font-size:11px;padding:2px 6px;word-break:break-all}}
