*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2563eb;--primary-dark: #1e40af;--primary-light: #dbeafe;--background: #f8fafc;--surface: #ffffff;--surface-secondary: #f1f5f9;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--success: #16a34a;--warning: #d97706;--error: #dc2626;--base-font-size: 16px}[data-theme=dark]{--primary: #3b82f6;--primary-dark: #1d4ed8;--primary-light: #1e3a8a;--background: #0f172a;--surface: #1e293b;--surface-secondary: #334155;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #64748b;--border: #475569;--border-light: #334155;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:1.6;transition:all .3s ease}.app-wrapper{min-height:100vh;padding:20px 16px;display:flex;align-items:flex-start;justify-content:center}.container{width:100%;max-width:1000px}.header{margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:16px}.header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.title-section{flex:1;min-width:0}.title{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin-bottom:2px;line-height:1.2}.subtitle{font-size:.9rem;color:var(--text-secondary);font-weight:400}.btn{padding:12px 24px;border-radius:8px;font-size:.95rem;font-weight:600;border:none;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow);flex:none;min-width:auto}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-secondary)}.btn-large{padding:16px 32px;font-size:1.1rem;min-width:200px}.btn-icon{font-size:1.1rem}.header-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.main-menu{display:flex;justify-content:center;align-items:center;min-height:60vh}.menu-card{background:var(--surface);padding:48px;border-radius:16px;box-shadow:var(--shadow-lg);border:1px solid var(--border);text-align:center;max-width:480px;width:100%;transition:all .3s ease}.menu-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.menu-icon{font-size:4rem;margin-bottom:24px}.menu-card h2{font-size:1.75rem;margin-bottom:16px;color:var(--text-primary);font-weight:600}.menu-description{color:var(--text-secondary);margin-bottom:32px;font-size:1.1rem;line-height:1.5}.menu-actions{display:flex;flex-direction:column;gap:16px}.empty-state,.loading{text-align:center;padding:80px 20px;color:var(--text-secondary)}.empty-icon{font-size:4rem;margin-bottom:20px;opacity:.5}.empty-state h3{font-size:1.5rem;margin-bottom:12px;color:var(--text-primary)}.empty-state p{font-size:1rem;max-width:400px;margin:0 auto}.loading-small{font-size:.9rem;color:var(--text-secondary);padding:10px 16px;white-space:nowrap}.content{display:flex;flex-direction:column;gap:20px}.category-card,.summary-card,.comment-card{background:var(--surface);border-radius:12px;padding:24px;box-shadow:var(--shadow);border:1px solid var(--border);transition:all .3s ease}.category-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px}.category-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0;flex:1;min-width:0}.score-display{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.score-value{font-weight:700;font-size:1.2rem;padding:6px 12px;border-radius:20px;background:var(--surface-secondary);white-space:nowrap}.score-description{font-size:.8rem;color:var(--text-secondary);font-weight:500;white-space:nowrap}.checklist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.checklist-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface-secondary);border-radius:8px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;position:relative}.checklist-item:hover{background:var(--surface);border-color:var(--border);transform:translateY(-1px)}.negative-item{border-left:3px solid var(--error)}.checkbox{position:absolute;opacity:0;cursor:pointer}.checkmark{width:20px;height:20px;border:2px solid var(--text-secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.checkbox:checked+.checkmark{background:var(--success);border-color:var(--success)}.checkbox:checked+.checkmark:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.item-label{font-size:.95rem;color:var(--text-primary);font-weight:500}.summary-section,.comment-section{margin-top:8px}.summary-content{display:flex;justify-content:space-between;align-items:center}.summary-info{display:flex;flex-direction:column;gap:4px}.summary-title{font-size:1.1rem;color:var(--text-secondary);font-weight:500}.summary-description{font-size:.9rem;color:var(--text-secondary);font-weight:500}.overall-score{font-size:2.5rem;font-weight:700}.section-title{font-size:1.1rem;color:var(--text-primary);margin-bottom:16px;font-weight:600}.comment-textarea{width:100%;background:var(--background);border:1px solid var(--border);border-radius:8px;padding:16px;font-size:.95rem;color:var(--text-primary);resize:vertical;min-height:120px;font-family:inherit;transition:all .2s ease;line-height:1.5}.comment-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.room-select-wrapper{position:relative;flex-shrink:0}.room-select{padding:8px 36px 8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-primary);font-size:.9rem;width:200px;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow);appearance:none;background-image:url("data:image/svg+xml;charset=US-ASCII,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'><path fill='%23666' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:10px}.room-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.table-container{margin-top:20px}.table-wrapper{overflow-x:auto;border-radius:12px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.rooms-table{width:100%;border-collapse:collapse;font-size:.9rem}.rooms-table th{background:var(--surface-secondary);padding:12px 8px;text-align:center;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap}.rooms-table th:last-child{border-right:none}.rooms-table th.sortable{cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none}.rooms-table th.item-header{font-weight:500;font-size:.8rem;color:var(--text-secondary);background:var(--background)}.rooms-table td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle}.rooms-table td:last-child{border-right:none}.rooms-table tr:last-child td{border-bottom:none}.rooms-table tr:hover td{background:var(--surface-secondary)}.room-number-cell{text-align:left!important;font-weight:700;background:linear-gradient(135deg,var(--surface) 0%,var(--surface-secondary) 100%)!important;position:sticky;left:0;z-index:3;min-width:100px;border-right:2px solid var(--primary-light);padding-left:16px!important;box-shadow:2px 0 4px #0000000d}.room-number-cell strong{color:var(--text-primary);font-size:1rem}.room-number-cell .floor-info{color:var(--text-secondary);font-size:.75rem;font-weight:500}.status-cell{font-size:1.1rem;min-width:50px}.overall-score-cell{background:linear-gradient(135deg,var(--surface) 0%,var(--surface-secondary) 100%)!important;position:sticky;right:0;z-index:3;min-width:85px;border-left:2px solid var(--primary-light);padding-right:16px!important;box-shadow:-2px 0 4px #0000000d}[data-theme=dark] .overall-score-cell{background:#374151;border-left:2px solid #4b5563}.category-score-cell{background:var(--surface-secondary);font-weight:600;text-align:center;min-width:60px}.score-badge{color:#fff;padding:6px 10px;border-radius:20px;font-weight:600;font-size:.85rem;min-width:70px;display:inline-block;text-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 2px 4px #0000001a}.score-badge.small{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);font-weight:600;font-size:.85rem;padding:5px 9px;min-width:45px;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.category-total{background:var(--surface-secondary);font-weight:600}.category-score-cell .score-badge.small[style*="background-color: var(--success)"]{background:linear-gradient(135deg,#16a34a,#15803d)!important;color:#fff;border-color:#15803d}.category-score-cell .score-badge.small[style*="background-color: var(--warning)"]{background:linear-gradient(135deg,#d97706,#b45309)!important;color:#fff;border-color:#b45309}.category-score-cell .score-badge.small[style*="background-color: var(--error)"]{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff;border-color:#b91c1c}.table-legend{display:flex;justify-content:center;gap:24px;margin:20px 0;padding:16px;background:var(--surface-secondary);border-radius:8px;border:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.legend-icon{font-size:1.1rem}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:24px}.stat-card{background:var(--surface);padding:20px;border-radius:8px;text-align:center;border:1px solid var(--border);box-shadow:var(--shadow)}.stat-value{font-size:2rem;font-weight:700;color:var(--primary);margin-bottom:8px}.stat-label{font-size:.9rem;color:var(--text-secondary)}.export-btn{padding:8px 16px;font-size:.9rem;min-width:140px}.Settings .settings-section{display:flex;flex-direction:column;gap:20px;max-width:800px;margin:0 auto}.settings-card{background:var(--surface);border-radius:12px;padding:24px;box-shadow:var(--shadow);border:1px solid var(--border)}.setting-item{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--border-light)}.setting-item:last-child{border-bottom:none}.setting-info{flex:1;min-width:0;margin-right:20px}.setting-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.setting-description{font-size:.9rem;color:var(--text-secondary);line-height:1.4}.setting-control{flex-shrink:0}.user-info-horizontal{display:flex;align-items:center;gap:20px;padding:24px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border)}.user-avatar-section{flex-shrink:0}.user-avatar{position:relative;width:80px;height:80px}.user-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--surface)}.user-avatar.large{width:100px;height:100px}.user-avatar.large img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--surface)}.user-details-section{flex:1;display:flex;flex-direction:column;gap:12px}.user-main-info h3{font-size:1.4rem;margin:0 0 6px;color:var(--text-primary);font-weight:600}.user-email{font-size:1rem;color:var(--text-secondary);margin:0;word-break:break-word;overflow-wrap:break-word}.user-meta-info{display:flex;flex-direction:column;gap:10px}.auth-info{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.auth-provider{font-size:.85rem;color:var(--text-secondary);background:var(--surface);padding:6px 10px;border-radius:8px;border:1px solid var(--border)}.role-badge{font-size:.8rem;padding:4px 8px;border-radius:6px;font-weight:600}.role-badge.admin{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.role-badge.inspector{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.role-badge.user{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.role-badge.🪑{background:linear-gradient(135deg,#000,#000);color:#fff}.status.inactive{background:var(--error);color:#fff;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600}.user-actions-section{flex-shrink:0}.logout-btn{min-width:100px;padding:10px 20px}.auth-section{display:flex;flex-direction:column;gap:20px;padding:20px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border)}.auth-info-text{text-align:center}.auth-title{font-size:1.3rem;color:var(--text-primary);margin-bottom:8px}.auth-description{color:var(--text-secondary);font-size:.95rem}.auth-buttons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;max-width:400px;margin:0 auto;width:100%}.auth-btn{width:100%;justify-content:center;padding:12px 16px}.theme-options{display:flex;gap:12px;flex-wrap:wrap}.theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border:2px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;transition:all .2s ease;min-width:80px}.theme-option:hover{border-color:var(--primary);transform:translateY(-2px)}.theme-option.active{border-color:var(--primary);background:var(--primary-light)}.theme-preview{width:60px;height:40px;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.theme-preview.light{background:#f8fafc}.theme-preview.light .preview-header{height:8px;background:#e2e8f0}.theme-preview.light .preview-content{height:32px;background:#fff}.theme-preview.dark{background:#0f172a}.theme-preview.dark .preview-header{height:8px;background:#1e293b}.theme-preview.dark .preview-content{height:32px;background:#1e293b}.theme-preview.system{background:linear-gradient(135deg,#f8fafc 50%,#0f172a 50%)}.theme-preview.system .preview-header{height:8px;background:linear-gradient(135deg,#e2e8f0 50%,#1e293b 50%)}.theme-preview.system .preview-content{height:32px;background:linear-gradient(135deg,#fff 50%,#1e293b 50%)}.theme-option span{font-size:.8rem;color:var(--text-primary);font-weight:500}.font-size-options{display:flex;gap:8px}.font-size-option{padding:10px 16px;border:2px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-primary);cursor:pointer;transition:all .2s ease;font-weight:600}.font-size-option:hover{border-color:var(--primary);background:var(--surface-secondary)}.font-size-option.active{border-color:var(--primary);background:var(--primary);color:#fff}.font-size-option:nth-child(1){font-size:.9rem}.font-size-option:nth-child(2){font-size:1rem}.font-size-option:nth-child(3){font-size:1.1rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--surface);border-radius:12px;max-width:500px;width:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.confirm-modal{max-width:400px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;color:var(--text-primary);font-size:1.5rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:4px;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:24px}.modal-body p{color:var(--text-secondary);line-height:1.6;margin:0;text-align:center;font-size:1.1rem}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.confirm-footer{justify-content:center;gap:16px}html[data-font-size=small]{font-size:14px}html[data-font-size=medium]{font-size:16px}html[data-font-size=large]{font-size:18px}.AdminPanel .admin-tabs{margin-top:20px}.tab-nav{display:flex;gap:8px;margin-bottom:24px;padding:8px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border)}.tab-btn{flex:1;padding:12px 16px;border:none;background:transparent;color:var(--text-secondary);font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.95rem}.tab-btn:hover{background:var(--surface);color:var(--text-primary);transform:translateY(-1px)}.tab-btn.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-md)}.tab-content{background:var(--surface);border-radius:12px;border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}.dashboard-tab{padding:24px}.stat-card{background:var(--surface-secondary);padding:24px;border-radius:12px;border:1px solid var(--border);display:flex;align-items:center;gap:16px;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon{font-size:2.5rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--primary-light);border-radius:12px;flex-shrink:0}.stat-info{flex:1}.stat-value{font-size:2.2rem;font-weight:700;color:var(--primary);line-height:1;margin-bottom:4px}.stat-label{font-size:.9rem;color:var(--text-secondary);font-weight:500}.users-tab,.rooms-tab{padding:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.section-header h2{font-size:1.5rem;color:var(--text-primary);margin:0}.users-grid.compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.user-card.compact{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border-radius:8px;border:1px solid var(--border);transition:all .2s ease;min-height:70px}.user-card.compact:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--primary)}.user-card.compact .user-avatar-container{position:relative;flex-shrink:0}.user-card.compact .user-avatar{width:45px;height:45px;border-radius:50%;object-fit:cover;border:2px solid var(--surface-secondary)}.user-card.compact .avatar-badges{position:absolute;bottom:-2px;right:-2px;display:flex;gap:2px}.user-card.compact .avatar-badge{width:16px;height:16px;border-radius:50%;background:var(--surface);border:1px solid var(--surface);display:flex;align-items:center;justify-content:center;font-size:.6rem;box-shadow:0 1px 3px #0003}.user-card.compact .role-badge{background:var(--primary-light);color:var(--primary)}.user-card.compact .provider-badge{background:#fff}.user-card.compact .user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.user-card.compact .user-name{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.user-card.compact .user-email{font-size:.75rem;color:var(--text-secondary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.user-card.compact .last-login{font-size:.7rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card.compact .status{font-size:.7rem;flex-shrink:0}.user-card.compact .user-actions{display:flex;gap:4px;flex-shrink:0}.user-card.compact .btn-icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.8rem;min-width:auto}.users-filters{display:flex;gap:12px;margin-bottom:20px;padding:16px;background:var(--surface-secondary);border-radius:8px;border:1px solid var(--border);flex-wrap:wrap;align-items:center}.search-box{position:relative;flex:1;min-width:200px}.search-input{width:100%;padding:10px 36px 10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-primary);font-size:.9rem;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1a}.search-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:.9rem}.filter-select{padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-primary);font-size:.9rem;min-width:140px;cursor:pointer}.filter-select:focus{outline:none;border-color:var(--primary)}.rooms-grid.compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.room-card.compact{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border-radius:8px;border:1px solid var(--border);transition:all .2s ease;min-height:70px}.room-card.compact:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.room-card.compact.inactive{opacity:.6;background:var(--surface-secondary)}.room-card.compact .room-icon{font-size:1.5rem;flex-shrink:0}.room-card.compact .room-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.room-card.compact .room-number{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.2}.room-card.compact .room-floor{font-size:.75rem;color:var(--text-secondary);margin:0;line-height:1.2}.room-card.compact .room-score{font-size:.8rem;font-weight:600;color:var(--primary)}.room-card.compact .room-updated{font-size:.7rem;color:var(--text-secondary)}.special-role-notice{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,var(--surface) 0%,var(--surface-secondary) 100%);border-radius:8px;border:1px solid var(--border);margin-top:8px}.special-role-icon{font-size:2rem;flex-shrink:0}.special-role-text strong{color:var(--text-primary);display:block;margin-bottom:4px}.special-role-text p{color:var(--text-secondary);margin:0;font-size:.9rem}@media(max-width:768px){.app-wrapper{padding:16px 12px}.header-main{flex-direction:column;align-items:stretch;gap:20px}.title-section{text-align:center}.header-controls{width:100%;gap:10px}.room-select-wrapper{flex:1}.room-select{width:100%;min-width:auto}.menu-card{padding:32px 24px}.category-header{flex-direction:row;align-items:center;gap:10px}.category-title{font-size:1.1rem}.score-display{align-items:flex-end}.score-value{font-size:1.1rem;padding:4px 10px}.checklist-grid{grid-template-columns:1fr}.summary-content{flex-direction:column;align-items:flex-start;gap:10px}.overall-score{font-size:2rem}.actions-section{flex-direction:column}.btn{min-width:100%}.RoomsOverview .header-controls{flex-direction:row;justify-content:space-between;flex-wrap:nowrap}.RoomsOverview .back-button{order:1;flex:1;min-width:auto}.RoomsOverview .export-btn{order:2;flex:1;min-width:auto;margin:0 10px}.Settings .settings-section{gap:16px}.settings-card{padding:16px}.setting-item{flex-direction:column;gap:16px;padding:16px 0}.setting-info{margin-right:0;text-align:center}.setting-control{width:100%;display:flex;justify-content:center}.user-info-horizontal{flex-direction:column;text-align:center;gap:16px;padding:20px}.user-avatar{width:70px;height:70px}.user-details-section{width:100%;gap:12px}.user-main-info h3{font-size:1.3rem;margin-bottom:6px}.user-email{font-size:1rem;margin-bottom:8px}.auth-info{justify-content:center;flex-direction:column;gap:8px;margin-bottom:16px}.user-actions-section{width:100%}.logout-btn{width:100%;min-width:auto;padding:12px 20px}.theme-options{flex-direction:column;width:100%;max-width:200px}.theme-option{flex-direction:row;justify-content:flex-start;min-width:auto;text-align:left}.theme-preview{width:50px;height:35px;flex-shrink:0}.font-size-options{width:100%;max-width:200px}.font-size-option{flex:1;text-align:center}.AdminPanel .admin-tabs{margin-top:16px}.tab-nav{flex-direction:column;gap:4px}.tab-btn{padding:10px 12px;font-size:.9rem}.dashboard-tab,.users-tab,.rooms-tab{padding:16px}.stats-grid{grid-template-columns:1fr;gap:16px}.stat-card{padding:20px}.stat-icon{font-size:2rem;width:50px;height:50px}.stat-value{font-size:1.8rem}.section-header{flex-direction:column;gap:16px;align-items:stretch}.section-header h2{font-size:1.3rem;text-align:center}.users-grid.compact,.rooms-grid.compact{grid-template-columns:1fr;gap:16px}.user-card.compact{gap:10px;padding:10px}.user-card.compact .user-avatar{width:40px;height:40px}.user-card.compact .user-name{font-size:.85rem}.user-card.compact .user-email{font-size:.7rem}}@media(max-width:480px){.app-wrapper{padding:12px 10px}.header-controls{gap:10px}.menu-card{padding:24px 20px}.menu-icon{font-size:3rem}.menu-card h2{font-size:1.5rem}.category-card{padding:16px}.category-header{gap:8px}.category-title{font-size:1rem}.score-value{font-size:.9rem}.score-description{font-size:.7rem}.overall-score{font-size:1.8rem}.btn-large{padding:14px 20px;font-size:1rem}.RoomsOverview .header-controls{flex-direction:row;flex-wrap:wrap;gap:8px}.RoomsOverview .back-button{order:1;flex:1;min-width:100%}.RoomsOverview .export-btn{order:2;flex:1;min-width:auto;margin:0}.RoomCheck .header-controls{flex-direction:row;flex-wrap:wrap}.RoomCheck .room-select-wrapper{order:1;flex:1 0 100%;margin-bottom:10px}.Settings .settings-section{gap:12px}.settings-card{padding:12px}.user-info-horizontal{padding:16px;gap:14px}.user-avatar{width:60px;height:60px}.user-main-info h3{font-size:1.2rem}.user-email{font-size:.95rem}.theme-options,.font-size-options{max-width:100%}.users-grid.compact,.rooms-grid.compact{grid-template-columns:1fr}.user-card.compact{min-height:60px}.user-card.compact .user-avatar{width:35px;height:35px}.user-card.compact .btn-icon{width:28px;height:28px;font-size:.7rem}}.users-grid.compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.rooms-grid.compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.user-card.compact{display:flex;align-items:center;gap:16px;padding:16px;background:var(--surface);border-radius:12px;border:1px solid var(--border);transition:all .3s ease;min-height:80px;position:relative}.user-card.compact:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.user-card.compact .avatar-badges{position:absolute;top:-4px;left:-4px;display:flex;flex-direction:column;gap:2px;z-index:2}.user-card.compact .avatar-badge{width:20px;height:20px;border-radius:50%;background:var(--surface);border:2px solid var(--surface);display:flex;align-items:center;justify-content:center;font-size:.7rem;box-shadow:0 2px 4px #0003}.user-card.compact .provider-badge svg{width:12px;height:12px}.user-card.compact .user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.user-card.compact .user-main{display:flex;flex-direction:column;gap:2px}.user-card.compact .user-name{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card.compact .user-email{font-size:.8rem;color:var(--text-secondary);margin:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card.compact .user-meta{display:flex;justify-content:space-between;align-items:center;gap:8px}.user-card.compact .last-login{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.user-card.compact .status{padding:4px 8px;border-radius:12px;font-size:.7rem;font-weight:600;white-space:nowrap;flex-shrink:0}.user-card.compact .user-actions{display:flex;gap:6px;flex-shrink:0}.user-card.compact .btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:.9rem;min-width:auto;transition:all .2s ease}.user-card.compact .btn-icon:hover{transform:scale(1.1)}.room-card.compact{display:flex;align-items:center;gap:16px;padding:16px;background:var(--surface);border-radius:12px;border:1px solid var(--border);transition:all .3s ease;min-height:80px}.room-card.compact:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.room-card.compact.inactive{opacity:.7;background:var(--surface-secondary);border-color:var(--error)}.room-card.compact .room-icon{font-size:2rem;flex-shrink:0;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--surface-secondary);border-radius:10px}.room-card.compact .room-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.room-card.compact .room-main{display:flex;flex-direction:column;gap:2px}.room-card.compact .room-number{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.2}.room-card.compact .room-floor{font-size:.8rem;color:var(--text-secondary);margin:0;line-height:1.2}.room-card.compact .room-meta{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-card.compact .room-score{font-size:.9rem;font-weight:600;color:var(--primary);background:var(--surface-secondary);padding:4px 8px;border-radius:6px}.room-card.compact .room-updated{font-size:.75rem;color:var(--text-muted)}.RoomCheck .actions-section{display:flex;justify-content:center;margin-top:24px}.RoomCheck .btn-primary.full-width{min-width:280px;justify-content:center}.large-modal{max-width:600px;width:95%}.modal-content{max-height:90vh;overflow-y:auto}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-primary);font-size:.95rem}.form-group input[type=text],.form-group input[type=number],.form-group input[type=email],.form-group select{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-primary);font-size:1rem;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}.checkbox-label{display:flex;align-items:center;gap:12px;cursor:pointer;padding:8px 0;font-weight:500}.checkbox-label input[type=checkbox]{width:18px;height:18px;border-radius:4px;border:2px solid var(--border);background:var(--surface);cursor:pointer}.checkbox-label input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.helper-text{color:var(--text-secondary);font-size:.85rem;display:block;margin-top:6px;line-height:1.4}.special-role-notice{display:flex;align-items:center;gap:16px;padding:20px;background:linear-gradient(135deg,var(--surface-secondary) 0%,var(--surface) 100%);border-radius:12px;border:2px solid var(--primary);margin:16px 0}.special-role-icon{font-size:2.5rem;flex-shrink:0;background:var(--primary);color:#fff;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:12px}.special-role-text{flex:1}.special-role-text strong{color:var(--text-primary);display:block;margin-bottom:6px;font-size:1.1rem}.special-role-text p{color:var(--text-secondary);margin:0;font-size:.95rem;line-height:1.5}.assignment-header{display:flex;gap:12px;margin-bottom:20px;padding:16px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border)}.search-box{position:relative;flex:1}.search-input{width:100%;padding:12px 40px 12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-primary);font-size:1rem;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.search-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:1rem}.floor-filter{padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-primary);font-size:1rem;min-width:140px;cursor:pointer}.quick-actions{margin-bottom:20px;padding:20px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border)}.quick-actions strong{display:block;margin-bottom:12px;color:var(--text-primary);font-size:1rem}.floor-buttons{display:flex;flex-wrap:wrap;gap:8px}.floor-btn{padding:8px 16px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-primary);cursor:pointer;font-size:.9rem;transition:all .2s ease}.floor-btn:hover{background:var(--surface-secondary);border-color:var(--primary)}.floor-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.rooms-selection{max-height:400px;overflow-y:auto;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-secondary)}.selection-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 0;border-bottom:1px solid var(--border)}.selection-info strong{color:var(--text-primary);font-size:1rem}.btn-clear{background:none;border:none;color:var(--error);cursor:pointer;font-size:.9rem;text-decoration:underline;padding:4px 8px;border-radius:4px;transition:all .2s ease}.btn-clear:hover{background:var(--error);color:#fff;text-decoration:none}.rooms-checklist.compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}.room-checkbox{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:all .2s ease}.room-checkbox input[type=checkbox]{width:18px;height:18px;border-radius:4px;border:2px solid var(--border);background:var(--surface);cursor:pointer;flex-shrink:0}.room-checkbox input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.room-info{display:flex;flex-direction:column;gap:2px;flex:1}.room-number{font-weight:600;color:var(--text-primary);font-size:.95rem}.room-floor{font-size:.8rem;color:var(--text-secondary)}.no-rooms{text-align:center;color:var(--text-secondary);padding:40px 20px;grid-column:1 / -1}.no-rooms:before{content:"🏠";font-size:2rem;display:block;margin-bottom:12px;opacity:.5}@media(min-width:1400px){.users-grid.compact{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.rooms-grid.compact{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.container{max-width:1200px}}@media(min-width:1600px){.users-grid.compact{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.rooms-grid.compact{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}@media(max-width:768px){.users-grid.compact,.rooms-grid.compact{grid-template-columns:1fr}.assignment-header{flex-direction:column}.floor-filter{min-width:auto}.rooms-checklist.compact{grid-template-columns:1fr}.user-card.compact,.room-card.compact{gap:12px;padding:14px}.RoomCheck .btn-primary.full-width{min-width:100%}}@media(max-width:480px){.user-card.compact .user-meta{flex-direction:column;align-items:flex-start;gap:6px}.user-card.compact .last-login{font-size:.7rem}.room-card.compact .room-meta{flex-direction:column;align-items:flex-start;gap:6px}.special-role-notice{flex-direction:column;text-align:center;gap:12px}}.modal-footer{padding:20px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px;background:var(--surface-secondary);border-radius:0 0 12px 12px}.modal-footer .btn{min-width:100px;padding:12px 24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-content{animation:fadeIn .3s ease-out}.user-card.compact,.room-card.compact{animation:fadeIn .2s ease-out}.user-card.compact .user-avatar-container{position:relative;flex-shrink:0;width:50px;height:50px}.user-card.compact .user-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid var(--surface-secondary)}.user-card.compact .avatar-badges{position:absolute;bottom:-4px;left:0;right:0;display:flex;justify-content:space-between;padding:0 2px;z-index:2}.user-card.compact .avatar-badge{width:18px;height:18px;border-radius:50%;background:var(--surface);border:2px solid var(--surface);display:flex;align-items:center;justify-content:center;font-size:.6rem;box-shadow:0 2px 4px #0003}.user-card.compact .role-badge{background:var(--primary);color:#fff}.user-card.compact .provider-badge{background:#fff;padding:1px}.user-card.compact .provider-badge svg{width:10px;height:10px}.user-card.compact .user-main{display:flex;flex-direction:column;gap:4px;position:relative;padding-right:60px}.user-card.compact .status{position:absolute;top:0;right:0;padding:4px 8px;border-radius:12px;font-size:.7rem;font-weight:600;white-space:nowrap}.user-card.compact .status.active{background:var(--success);color:#fff}.user-card.compact .status.inactive{background:var(--error);color:#fff}.users-filters{display:flex;gap:12px;margin-bottom:20px;padding:20px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border);flex-wrap:wrap;align-items:stretch}.users-filters .search-box{flex:1;min-width:250px}.users-filters .filter-select{flex:0 1 auto;min-width:150px}.rooms-tab .section-header{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-light);flex-wrap:wrap}.rooms-tab .section-header h2{font-size:1.5rem;color:var(--text-primary);margin:0}[data-theme=dark] .btn-clear{color:#ff6b6b;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3)}[data-theme=dark] .btn-clear:hover{background:#ff6b6b;color:#fff}[data-theme=dark] .user-card.compact .btn-icon,[data-theme=dark] .room-card.compact .btn-icon{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border)}[data-theme=dark] .user-card.compact .btn-icon:hover,[data-theme=dark] .room-card.compact .btn-icon:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.user-card.compact .btn-icon,.room-card.compact .btn-icon{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.user-card.compact .btn-icon:hover,.room-card.compact .btn-icon:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.filter-select,.room-select,.floor-filter{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-primary);font-size:.95rem;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}.filter-select:focus,.room-select:focus,.floor-filter:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}@media(min-width:1200px){.users-grid.compact{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.rooms-grid.compact{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.users-filters{flex-wrap:nowrap}.users-filters .search-box{flex:2}.users-filters .filter-select{flex:1}}@media(max-width:768px){.users-filters{flex-direction:column;gap:12px}.users-filters .search-box,.users-filters .filter-select{min-width:100%;flex:1}.rooms-tab .section-header{flex-direction:column;align-items:stretch;gap:12px}.rooms-tab .section-header h2{margin-right:0;text-align:center}.user-card.compact .user-main{padding-right:50px}}[data-theme=dark] .modal-footer .btn-secondary{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border)}[data-theme=dark] .modal-footer .btn-secondary:hover{background:var(--surface);border-color:var(--primary)}[data-theme=dark] .checkbox-label input[type=checkbox]{background:var(--surface-secondary);border-color:var(--border)}[data-theme=dark] .checkbox-label input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}[data-theme=dark] .form-group input[type=text],[data-theme=dark] .form-group input[type=number],[data-theme=dark] .form-group input[type=email],[data-theme=dark] .form-group select,[data-theme=dark] .search-input{background:var(--surface);color:var(--text-primary);border-color:var(--border)}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group select:focus,[data-theme=dark] .search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f633}[data-theme=dark] .user-card.compact,[data-theme=dark] .room-card.compact{background:var(--surface);border-color:var(--border)}[data-theme=dark] .user-card.compact:hover,[data-theme=dark] .room-card.compact:hover{border-color:var(--primary);box-shadow:0 8px 25px #0000004d}[data-theme=dark] .floor-btn{background:var(--surface);color:var(--text-primary);border-color:var(--border)}[data-theme=dark] .floor-btn:hover{background:var(--surface-secondary);border-color:var(--primary)}[data-theme=dark] .floor-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}[data-theme=dark] .room-checkbox{background:var(--surface);border-color:var(--border)}[data-theme=dark] .room-checkbox:hover{background:var(--surface-secondary);border-color:var(--primary)}[data-theme=dark] .room-checkbox input[type=checkbox]{background:var(--surface-secondary);border-color:var(--border)}[data-theme=dark] .room-checkbox input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.btn-clear{background:#dc26261a;color:#dc2626;border:1px solid rgba(220,38,38,.3);padding:6px 12px;border-radius:6px;font-size:.85rem;font-weight:500;transition:all .2s ease}.btn-clear:hover{background:#dc2626;color:#fff;border-color:#dc2626}[data-theme=dark] .btn-clear{background:#ef444433;color:#ef4444;border-color:#ef444466}[data-theme=dark] .btn-clear:hover{background:#ef4444;color:#fff;border-color:#ef4444}.user-card.compact .user-actions,.room-card.compact .room-actions{display:flex;gap:4px}.user-card.compact .btn-icon,.room-card.compact .btn-icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.8rem}.assignment-modal .modal-content.large-modal{width:95%;max-width:500px;margin:20px}.assignment-modal .modal-body{padding:16px;max-height:70vh;overflow-y:auto}.assignment-modal .assignment-header{flex-direction:column;gap:12px;padding:16px;margin-bottom:16px}.assignment-modal .search-box,.assignment-modal .floor-filter{width:100%}.assignment-modal .quick-actions{padding:16px;margin-bottom:16px}.assignment-modal .floor-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.assignment-modal .floor-btn{padding:8px 12px;font-size:.8rem;text-align:center;white-space:nowrap}.assignment-modal .rooms-selection{max-height:300px;padding:12px}.assignment-modal .rooms-checklist.compact{grid-template-columns:1fr;gap:8px}.assignment-modal .room-checkbox{padding:10px 12px;margin:0}.assignment-modal .selection-info{flex-direction:column;gap:8px;align-items:stretch;text-align:center}.assignment-modal .btn-clear{align-self:center;max-width:120px}.user-modal .modal-content{width:95%;max-width:450px;margin:20px}.user-modal .modal-body{padding:16px;max-height:70vh;overflow-y:auto}.user-modal .form-group{margin-bottom:16px}.user-modal .special-role-notice{flex-direction:column;text-align:center;gap:12px;padding:16px}.user-modal .special-role-icon{width:50px;height:50px;font-size:2rem}.users-tab .section-header{display:flex;flex-direction:column;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.users-tab .section-header h2{font-size:1.5rem;color:var(--text-primary);margin:0;text-align:center}.users-tab .section-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.rooms-tab .section-header{display:flex;flex-direction:column;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.rooms-tab .section-header h2{font-size:1.5rem;color:var(--text-primary);margin:0;text-align:center}.rooms-tab .section-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-refresh{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border)}.btn-refresh:hover{background:var(--surface);border-color:var(--primary);color:var(--primary)}[data-theme=dark] .btn-refresh{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}[data-theme=dark] .btn-refresh:hover{background:var(--surface-secondary);border-color:var(--primary);color:var(--primary)}.users-grid.compact{display:grid;grid-template-columns:1fr;gap:12px}.user-card.compact{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border-radius:12px;border:1px solid var(--border);transition:all .3s ease;min-height:70px;margin:0;width:100%;box-sizing:border-box}.rooms-grid.compact{display:grid;grid-template-columns:1fr;gap:12px}.room-card.compact{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border-radius:12px;border:1px solid var(--border);transition:all .3s ease;min-height:70px;margin:0;width:100%;box-sizing:border-box}.users-filters{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;background:var(--surface-secondary);border-radius:12px;border:1px solid var(--border)}.users-filters .search-box{width:100%}.users-filters .filter-row{display:flex;gap:12px;flex-wrap:wrap}.users-filters .filter-select{flex:1;min-width:140px}.users-filters .btn-small{flex-shrink:0;align-self:center}@media(min-width:768px){.users-tab .section-header,.rooms-tab .section-header{flex-direction:row;justify-content:space-between;align-items:center}.users-tab .section-header h2,.rooms-tab .section-header h2{text-align:left}.users-tab .section-actions,.rooms-tab .section-actions{justify-content:flex-end}.users-filters{flex-direction:row;align-items:center}.users-filters .search-box{flex:2;min-width:200px}.users-filters .filter-row{flex:3;justify-content:flex-end}.users-grid.compact{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.rooms-grid.compact{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.assignment-modal .modal-content.large-modal{max-width:600px}.assignment-modal .assignment-header{flex-direction:row}.assignment-modal .search-box{flex:2}.assignment-modal .floor-filter{flex:1;min-width:140px}.assignment-modal .rooms-checklist.compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.assignment-modal .selection-info{flex-direction:row;justify-content:space-between;align-items:center}.user-modal .special-role-notice{flex-direction:row;text-align:left}}@media(min-width:1024px){.users-grid.compact{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.rooms-grid.compact{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.assignment-modal .modal-content.large-modal{max-width:700px}.assignment-modal .rooms-checklist.compact{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media(max-width:360px){.user-card.compact,.room-card.compact{padding:10px;gap:10px}.user-card.compact .user-avatar-container{width:40px;height:40px}.user-card.compact .avatar-badge{width:16px;height:16px;font-size:.5rem}.user-card.compact .user-main{padding-right:45px}.user-card.compact .status{font-size:.65rem;padding:3px 6px}.user-card.compact .user-name{font-size:.9rem}.user-card.compact .user-email{font-size:.75rem}.room-card.compact .room-icon{width:40px;height:40px;font-size:1.5rem}.users-filters .filter-row{flex-direction:column}.users-filters .filter-select{min-width:100%}.section-actions{flex-direction:column;width:100%}.section-actions .btn{width:100%;justify-content:center}}.user-card.compact .user-actions,.room-card.compact .room-actions{display:flex;gap:6px;flex-shrink:0}.user-card.compact .btn-icon,.room-card.compact .btn-icon,.user-card.compact .btn-danger,.room-card.compact .btn-danger{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.8rem;min-width:auto;flex-shrink:0}.modal-body{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:3px}.modal-body::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.user-card.compact{margin:8px 12px;padding:16px;border-radius:16px}.user-card.compact .user-actions{gap:8px;margin-left:auto}.user-card.compact .btn-icon{width:44px;height:44px;font-size:1rem;border-radius:10px}.user-card.compact.inactive{opacity:.6;background:var(--surface-secondary);border-color:var(--error)}.user-card.compact.inactive .user-avatar{filter:grayscale(1);opacity:.7}.user-card.compact.inactive .user-name,.user-card.compact.inactive .user-email{color:var(--text-muted)}.assignment-modal .modal-footer{padding:20px;display:flex;flex-direction:column;gap:12px}.assignment-modal .modal-footer .btn{width:100%;padding:16px;font-size:1.1rem;margin:0 12px}.user-card.compact.super-admin .btn-icon[title=Изменить]{opacity:.3;cursor:not-allowed;pointer-events:none}.user-card.compact.super-admin .btn-icon[title=Изменить]:hover{background:var(--surface);color:var(--text-muted);border-color:var(--border)}.user-email.copyable{cursor:pointer;position:relative;padding:4px 8px;border-radius:6px;transition:all .2s ease;margin-right:8px;display:inline-block}.user-email.copyable:hover{background:var(--primary-light);color:var(--primary)}.user-email.copyable:after{content:"📋";margin-left:6px;font-size:.8em;opacity:0;transition:opacity .2s ease}.user-email.copyable:hover:after{opacity:1}.user-email.copyable.copied{background:var(--success);color:#fff}.user-email.copyable.copied:after{content:"✅";opacity:1}.last-updated{font-size:.75rem;color:var(--text-muted);display:block;margin-top:2px}.last-updated:before{content:"✏️ ";font-size:.7rem;margin-right:4px}.room-card.compact{margin:8px 12px;padding:16px}.room-card.compact .room-actions{margin-left:auto}.room-card.compact .btn-icon{width:44px;height:44px;font-size:1rem;border-radius:10px}.room-checkbox{display:flex;align-items:center;gap:16px;padding:16px 20px;margin:0 12px 8px;background:var(--surface);border-radius:12px;border:1px solid var(--border);cursor:pointer;transition:all .2s ease;position:relative}.room-checkbox:hover{background:var(--surface-secondary);border-color:var(--primary);transform:translateY(-1px)}.room-checkbox input[type=checkbox]{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);background:var(--surface);cursor:pointer;flex-shrink:0;margin:0}.room-checkbox input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary);background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M20 6L9 17l-5-5'%3e%3c/path%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center;background-size:14px}.room-checkbox .room-info{flex:1;display:flex;flex-direction:column;gap:4px;margin-left:8px}.admin-tabs{position:relative;overflow:hidden}.tab-content{position:relative;touch-action:pan-y}.tab-panel{display:none}.tab-panel.active{display:block;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.swipe-hint{position:absolute;top:10px;right:20px;color:var(--text-muted);font-size:.8rem;display:none}@media(max-width:768px){.swipe-hint{display:block}.user-card.compact,.room-card.compact{margin:8px 16px}.assignment-modal .modal-footer .btn{margin:0 16px}.room-checkbox{margin:0 16px 8px}@media(max-width:360px){.user-card.compact,.room-card.compact{margin:8px 12px;padding:14px}.user-card.compact .btn-icon,.room-card.compact .btn-icon{width:40px;height:40px}.assignment-modal .modal-footer .btn{margin:0 12px;padding:14px}.room-checkbox{margin:0 12px 8px;padding:14px 16px}}}[data-theme=dark] .user-card.compact.inactive{background:#2d3748;border-color:#fc8181}[data-theme=dark] .user-email.copyable:hover{background:#2d3748;color:#63b3ed}[data-theme=dark] .room-checkbox:hover{background:#2d3748}.swipe-indicator{display:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;padding:8px 16px;border-radius:20px;font-size:.9rem;z-index:1000;animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-5px)}60%{transform:translate(-50%) translateY(-3px)}}@media(max-width:768px){.swipe-indicator{display:block}}.users-grid.compact,.rooms-grid.compact{display:flex;flex-direction:column;gap:12px;padding:0;margin:0;width:100%}.user-card.compact,.room-card.compact{width:100%;margin:0;padding:16px;box-sizing:border-box;max-width:none}@media(max-width:768px){.users-tab,.rooms-tab{padding:16px 8px}.user-card.compact,.room-card.compact{margin:0;padding:14px 12px}.tab-content{touch-action:pan-y}}.swipe-hint,.swipe-indicator{display:none!important}.user-card.compact .user-info{flex:1;min-width:0;margin-right:12px}.user-card.compact .user-actions{flex-shrink:0;display:flex;gap:6px}.room-card.compact .room-info{flex:1;min-width:0;margin-right:12px}.room-card.compact .room-actions{flex-shrink:0}@media(max-width:360px){.user-card.compact,.room-card.compact{padding:12px 10px;gap:10px}.user-card.compact .user-avatar-container{width:40px;height:40px}.user-card.compact .avatar-badge{width:14px;height:14px;font-size:.5rem}.user-card.compact .btn-icon{width:30px;height:30px;font-size:.7rem}}.users-tab .section-header h2,.rooms-tab .section-header h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;white-space:nowrap}.users-tab .section-header h2:after,.rooms-tab .section-header h2:after{content:"(" attr(data-count) ")";font-size:1.2rem;font-weight:600;color:var(--text-secondary)}.assignment-modal .modal-footer{display:flex;flex-direction:column;gap:12px;padding:20px}.assignment-modal .modal-footer .btn{width:100%;margin:0;padding:14px;font-size:1rem}.assignment-modal .floor-filter{max-width:100%;width:100%}.assignment-modal .floor-filter option{padding:8px 12px;white-space:normal;word-wrap:break-word}.room-checkbox{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:4px 0}.room-checkbox input[type=checkbox]{width:20px;height:20px;margin:0;flex-shrink:0}.room-checkbox .room-info{display:flex;flex-direction:column;gap:2px;flex:1}.room-checkbox .room-number{font-weight:600;color:var(--text-primary);line-height:1.3}.room-checkbox .room-floor{font-size:.85rem;color:var(--text-secondary);line-height:1.2}.assignment-modal .floor-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:8px}.assignment-modal .floor-btn{padding:10px 12px;font-size:.9rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px;padding:16px;margin:16px 0;display:flex;align-items:flex-start;gap:12px}.admin-warning.danger{background:linear-gradient(135deg,#fecaca,#fca5a5);border-color:#dc2626}.admin-warning-icon{font-size:1.5rem;flex-shrink:0}.admin-warning-content{flex:1}.admin-warning-title{font-weight:600;color:#92400e;margin-bottom:4px}.admin-warning.danger .admin-warning-title{color:#dc2626}.admin-warning-text{color:#92400e;font-size:.9rem;line-height:1.4}.admin-warning.danger .admin-warning-text{color:#dc2626}.tab-nav{position:relative;z-index:10}.tab-btn.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-md);position:relative;z-index:2}@media(max-width:768px){.assignment-modal .modal-content.large-modal{width:95vw;max-width:95vw;margin:10px}.assignment-modal .modal-body{padding:16px}.assignment-modal .assignment-header{flex-direction:column;gap:12px}.assignment-modal .search-box,.assignment-modal .floor-filter{width:100%}.assignment-modal .floor-buttons{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.assignment-modal .rooms-checklist.compact{grid-template-columns:1fr}}@media(max-width:360px){.users-tab .section-header h2,.rooms-tab .section-header h2{font-size:1.3rem;flex-direction:column;align-items:flex-start;gap:4px}.assignment-modal .floor-buttons{grid-template-columns:1fr}.assignment-modal .floor-btn{min-width:100%}}.users-tab .section-header h2,.rooms-tab .section-header h2{display:flex;align-items:center;gap:8px;white-space:nowrap;margin:0;line-height:1.2}.users-tab .section-header h2 span.count,.rooms-tab .section-header h2 span.count{font-size:1.2rem;font-weight:600;color:var(--text-secondary);margin-left:8px}.users-tab .section-header h2,.rooms-tab .section-header h2{display:flex;align-items:baseline;gap:8px;white-space:nowrap;margin:0}.users-tab .section-header h2 .count,.rooms-tab .section-header h2 .count{font-size:1.2rem;font-weight:600;color:var(--text-secondary);margin-left:4px}@media(max-width:768px){.rooms-table th.sortable:first-child{font-size:0;white-space:normal;word-break:break-word;line-height:1.2;min-width:80px;max-width:100px;padding:8px 4px;position:relative}.rooms-table th.sortable:first-child:after{content:"Номер\aкомнаты";white-space:pre;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.9rem;height:100%;line-height:1.2}.rooms-table th.sortable:first-child:before{content:"";position:absolute;bottom:2px;right:2px;font-size:.8rem}.rooms-table th.sortable:first-child[data-sort-direction=asc]:before{content:"↑"}.rooms-table th.sortable:first-child[data-sort-direction=desc]:before{content:"↓"}}.rooms-table th.overall-score-header{min-width:100px;width:100px;position:relative}.rooms-table th.overall-score-header:after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.9rem}.rooms-table th.overall-score-header.sort-asc:after{content:"↑"}.rooms-table th.overall-score-header.sort-desc:after{content:"↓"}.rooms-table td.overall-score-cell{min-width:100px;width:100px}.rooms-table th.sortable{position:relative;padding-right:25px;transition:background-color .2s;-webkit-user-select:none;user-select:none;min-width:100px}.rooms-table th.sortable .sort-arrow{display:none}@media(max-width:768px){.rooms-table th.overall-score-header,.rooms-table td.overall-score-cell{min-width:80px;width:80px}.rooms-table th.sortable{padding-right:20px;min-width:80px}}.rooms-table th:first-child.sortable{min-width:140px;width:140px;position:relative}.rooms-table th:first-child.sortable:after{content:"";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.9rem;opacity:.7}.rooms-table th:first-child.sort-asc:after{content:"↑"}.rooms-table th:first-child.sort-desc:after{content:"↓"}.rooms-table th.sortable{position:relative;padding-right:30px!important;transition:all .2s ease;-webkit-user-select:none;user-select:none;background:var(--surface-secondary)}.rooms-table th.sortable:hover{background:var(--primary-light)}.rooms-table td.room-number-cell{min-width:140px;width:140px;position:sticky;left:0;z-index:3;background:linear-gradient(135deg,var(--surface) 0%,var(--surface-secondary) 100%);border-right:2px solid var(--primary-light);padding-left:16px!important;box-shadow:2px 0 4px #0000000d}@media(max-width:768px){.rooms-table th:first-child.sortable{min-width:120px;width:120px;font-size:.9rem}.rooms-table td.room-number-cell{min-width:120px;width:120px;padding-left:12px!important}.rooms-table th.sortable{padding-right:25px!important;font-size:.85rem}.rooms-table th.sortable:after{right:8px;font-size:.8rem}.rooms-table th.sort-asc:after,.rooms-table th.sort-desc:after{opacity:1}}@media(max-width:480px){.rooms-table th:first-child.sortable{min-width:100px;width:100px;font-size:.85rem}.rooms-table td.room-number-cell{min-width:100px;width:100px}.rooms-table th.sortable{padding-right:22px!important}.rooms-table th.sortable:after{right:6px}}.rooms-table th.sort-asc:after,.rooms-table th.sort-desc:after{color:var(--primary);font-weight:700;opacity:.9}[data-theme=dark] .rooms-table th.sort-asc:after,[data-theme=dark] .rooms-table th.sort-desc:after{color:var(--primary-light)}html{overflow-y:scroll;scrollbar-gutter:stable}body{overflow-x:hidden;width:100%;position:relative}.app-wrapper{width:100%;min-height:100vh;position:relative}@supports (scrollbar-gutter: stable){html{overflow-y:auto;scrollbar-gutter:stable}}.network-status{display:flex;align-items:center;gap:12px;margin-top:8px;padding:8px 12px;border-radius:8px;font-size:.9rem}.network-status.online{background:var(--success);color:#fff}.network-status.offline{background:var(--warning);color:#fff}.status-indicator{display:flex;align-items:center;gap:6px;font-weight:600}.pending-updates{background:#fff3;padding:4px 8px;border-radius:4px;font-size:.8rem}.sync-status{font-style:italic}.sync-btn{padding:4px 8px!important;font-size:.8rem!important;background:#fff3!important;border:1px solid rgba(255,255,255,.3)!important}.sync-btn:hover{background:#ffffff4d!important}.network-status{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;border:1px solid;font-size:.85rem;max-width:280px;transition:all .3s ease}.network-status.online{background:#22c55e1a;border-color:#22c55e4d;color:#16a34a}.network-status.offline{background:#ef44441a;border-color:#ef44444d;color:#dc2626}.network-status.server-offline{background:#f59e0b1a;border-color:#f59e0b4d;color:#d97706}.network-status.checking{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.status-main{display:flex;align-items:center;gap:8px;flex:1}.status-icon{font-size:1rem;flex-shrink:0}.status-info{display:flex;flex-direction:column;gap:2px;flex:1}.status-text{font-weight:600;font-size:.9rem;line-height:1}.status-description{font-size:.75rem;opacity:.8;line-height:1}.status-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.pending-badge{background:#0000001a;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.network-status.online .pending-badge{background:#0000001a}.network-status.offline .pending-badge,.network-status.server-offline .pending-badge{background:#fff3}.sync-btn{padding:6px!important;min-width:auto!important;width:32px!important;height:32px!important;border-radius:6px!important;font-size:.8rem!important}@media(max-width:768px){.network-status{max-width:220px;padding:6px 10px}.status-text{font-size:.85rem}.status-description{font-size:.7rem}.pending-badge{font-size:.7rem;padding:3px 6px}}@media(max-width:480px){.network-status{max-width:180px}.status-info{min-width:0}.status-text,.status-description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}[data-theme=dark] .network-status.online{background:#22c55e33;border-color:#22c55e66}[data-theme=dark] .network-status.offline{background:#ef444433;border-color:#ef444466}[data-theme=dark] .network-status.server-offline{background:#f59e0b33;border-color:#f59e0b66}[data-theme=dark] .network-status.checking{background:#3b82f633;border-color:#3b82f666}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:32px}.recent-activities{background:var(--surface);border-radius:12px;padding:24px;border:1px solid var(--border);margin-top:24px}.recent-activities h3{margin-bottom:16px;color:var(--text-primary);font-size:1.25rem}.activities-list{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--surface-secondary);border-radius:8px;border:1px solid var(--border-light)}.activity-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px}.activity-details{flex:1}.activity-text{font-weight:500;color:var(--text-primary);margin-bottom:4px}.activity-meta{font-size:.85rem;color:var(--text-secondary)}@media(max-width:768px){.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.recent-activities{padding:16px}.activity-item{padding:10px}}.backups-tab{padding:24px}.backups-tab .section-header h2{font-size:1.5rem;color:var(--text-primary);margin:0}.backup-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px;padding:20px;background:var(--surface);border-radius:8px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.backup-stats .stat-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--surface-secondary);border-radius:8px;border:1px solid var(--border-light);transition:all .2s ease}.backup-stats .stat-icon{font-size:1.8rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--primary-light);border-radius:8px;flex-shrink:0}.backup-stats .stat-info{flex:1}.backup-stats .stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.2}.backup-stats .stat-label{font-size:.9rem;color:var(--text-secondary);margin-top:4px}.backup-types{display:flex;flex-direction:column;gap:20px}.backup-type-title{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;padding:16px 20px;margin:0;font-size:1.2rem;font-weight:600;display:flex;align-items:center;gap:10px}.backup-item{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-light);transition:all .2s ease;gap:16px;min-height:70px}.backup-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--primary);background:var(--surface-secondary)}.backup-name{font-weight:600;color:var(--text-primary);font-size:1rem;margin-bottom:6px;word-break:break-all}.warning-message .backup-details strong{color:#92400e;font-size:1.1rem}.warning-message .danger-text{color:#dc2626!important;font-weight:600;background:#dc26261a;padding:8px 12px;border-radius:6px;border:1px solid rgba(220,38,38,.3)}.btn-danger:hover{background:linear-gradient(135deg,#b91c1c,#991b1b)!important;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}@media(max-width:768px){.backups-tab{padding:16px}.backups-tab .section-header{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:20px}.backups-tab .section-header h2{text-align:center}.backups-tab .section-actions{justify-content:center;flex-wrap:wrap}.backup-stats{grid-template-columns:1fr;gap:12px;padding:16px;margin-bottom:24px}.backup-stats .stat-card{padding:12px}.backup-stats .stat-icon{width:40px;height:40px;font-size:1.5rem}.backup-stats .stat-value{font-size:1.3rem}.backup-type-title{padding:12px 16px;font-size:1.1rem}.backup-item{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}.backup-info{min-width:auto}.backup-details{flex-direction:column;gap:8px}.backup-actions{justify-content:stretch}.backup-actions .btn{flex:1;justify-content:center}.warning-message{flex-direction:column;text-align:center;padding:16px}.warning-message .warning-icon{align-self:center}}@media(max-width:480px){.backups-tab{padding:12px}.backup-stats .stat-card{flex-direction:column;text-align:center;gap:12px}.backup-stats .stat-info{width:100%}.backup-name{font-size:.95rem}.backup-details{font-size:.8rem}.backup-actions .btn{font-size:.85rem;padding:10px 12px}}@media(max-width:360px){.backups-tab{padding:8px}.backups-tab .section-actions{flex-direction:column;width:100%}.backups-tab .section-actions .btn{width:100%;justify-content:center}.backup-stats{padding:12px}.backup-item{padding:10px 12px}}.backup-name{word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.backup-stats .stat-card:active{transform:scale(.98)}@media(min-width:1024px){.backup-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px}.backup-type-section{margin-bottom:0}}.App .header-controls{display:flex;justify-content:flex-end}@media(max-width:768px){.App .header-main{flex-direction:column;align-items:center;text-align:center;gap:16px}.App .header-controls{justify-content:center;width:100%;order:2}.App .title-section{order:1;width:100%}.App .network-status{margin:0 auto;max-width:280px;justify-content:center}}@media(max-width:480px){.App .network-status{max-width:260px;flex-direction:column;text-align:center;gap:8px}.App .network-status .status-main,.App .network-status .status-actions{justify-content:center}}.backups-tab{padding:20px;max-width:1200px;margin:0 auto}.backups-tab .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.backups-tab .section-header h2{font-size:1.5rem;color:var(--text-primary);margin:0;font-weight:600}.backups-tab .section-actions{display:flex;gap:12px;align-items:center}.backup-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px}.backup-stats .stat-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--surface);border-radius:8px;border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:all .2s ease}.backup-stats .stat-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--primary)}.backup-stats .stat-icon{font-size:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--primary-light);border-radius:8px;flex-shrink:0}.backup-stats .stat-info{flex:1;min-width:0}.backup-stats .stat-value{font-size:1.3rem;font-weight:700;color:var(--text-primary);line-height:1.2}.backup-stats .stat-label{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.backup-warning{display:flex;align-items:flex-start;gap:12px;padding:16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px;margin-bottom:20px}.backup-warning .warning-icon{font-size:1.5rem;flex-shrink:0;margin-top:2px}.backup-warning .warning-content{flex:1}.backup-warning .warning-content strong{color:#92400e;display:block;margin-bottom:4px}.backup-warning .warning-content p{color:#92400e;margin:0;font-size:.9rem;line-height:1.4}.backup-types{display:flex;flex-direction:column;gap:16px}.backup-type-section{background:var(--surface);border-radius:8px;border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.backup-type-title{color:#fff;margin:0;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:8px}.backup-type-limit{font-size:.85rem;opacity:.9;background:#fff3;padding:4px 8px;border-radius:12px}.backup-type-notice{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--surface-secondary);border-bottom:1px solid var(--border-light);font-size:.85rem;color:var(--text-secondary)}.backup-type-notice .notice-icon{font-size:1rem;flex-shrink:0}.no-backups{padding:40px 20px;text-align:center;color:var(--text-secondary);font-style:italic;background:var(--surface-secondary)}.backups-list{display:flex;flex-direction:column}.backup-item{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-light);transition:all .2s ease;gap:16px}.backup-item:last-child{border-bottom:none}.backup-item:hover{background:var(--surface-secondary)}.backup-info{flex:1;min-width:0}.backup-header{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}.backup-name{font-weight:600;color:var(--text-primary);font-size:1rem;word-break:break-all}.backup-type-badge{padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:500;display:flex;align-items:center;gap:4px;flex-shrink:0}.backup-type-badge.manual{background:#d4edda;color:#155724}.backup-type-badge.daily{background:#cce7ff;color:#004085}.backup-type-badge.weekly{background:#e2e3ff;color:#383d41}.backup-type-badge.monthly{background:#fff3cd;color:#856404}.backup-details{display:flex;gap:16px;font-size:.85rem;color:var(--text-secondary);flex-wrap:wrap}.backup-size{font-family:Monaco,Consolas,monospace;background:var(--surface-secondary);padding:2px 6px;border-radius:4px;border:1px solid var(--border-light)}.backup-date{color:var(--text-secondary)}.backup-actions{flex-shrink:0;display:flex;gap:8px}.btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;border:1px solid #dc2626!important;color:#fff!important}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b)!important;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.btn-danger:disabled{background:#9ca3af!important;border-color:#9ca3af!important;transform:none!important;box-shadow:none!important}.restore-confirm-modal .modal-content{max-width:500px}.warning-message{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px;padding:20px;margin:16px 0}.warning-message .warning-icon{font-size:2rem;flex-shrink:0;margin-top:2px}.warning-message .warning-content{flex:1}.warning-message .warning-content h3{color:#92400e;margin:0 0 12px;font-size:1.3rem}.warning-message .warning-content p{color:#92400e;margin-bottom:12px;line-height:1.5}.warning-message .backup-details{background:#ffffffb3;padding:12px;border-radius:6px;margin:12px 0;border:1px solid rgba(245,158,11,.3)}.backup-detail-row{margin-bottom:6px;display:flex;gap:8px}.backup-detail-row strong{color:#92400e;min-width:60px}.automatic-backup-warning{background:#ffffff80;border:1px solid rgba(245,158,11,.5);border-radius:6px;padding:12px;margin:12px 0}.automatic-backup-warning p{margin:0 0 8px;color:#92400e!important}.automatic-backup-warning p:last-child{margin-bottom:0}.warning-message .danger-text{color:#dc2626!important;font-weight:600;background:#dc26261a;padding:8px 12px;border-radius:6px;border:1px solid rgba(220,38,38,.3);margin:12px 0}@keyframes backupPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.backup-creating{animation:backupPulse 1s ease-in-out infinite}.btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.backup-item,.backup-stats .stat-card,.btn{transition:all .2s ease}.backup-actions .btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}@media(max-width:768px){.backups-tab{padding:16px}.backups-tab .section-header{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:20px}.backups-tab .section-header h2{text-align:center}.backups-tab .section-actions{justify-content:center;flex-wrap:wrap}.backup-stats{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.backup-stats .stat-card{padding:12px;gap:10px}.backup-stats .stat-icon{width:36px;height:36px;font-size:1.3rem}.backup-stats .stat-value{font-size:1.1rem}.backup-stats .stat-label{font-size:.8rem}.backup-type-header{padding:12px 16px;flex-direction:column;align-items:flex-start;gap:8px}.backup-type-title{font-size:1rem}.backup-item{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}.backup-header{flex-direction:column;align-items:flex-start;gap:8px}.backup-details{flex-direction:column;gap:6px}.backup-actions{width:100%;justify-content:stretch}.backup-actions .btn{flex:1;justify-content:center}.warning-message{flex-direction:column;padding:16px;gap:12px}.warning-message .warning-icon{align-self:center}}@media(max-width:480px){.backups-tab{padding:12px}.backup-stats{grid-template-columns:1fr}.backup-stats .stat-card{flex-direction:column;text-align:center;gap:8px}.backup-stats .stat-info{width:100%}.backup-name{font-size:.95rem}.backup-details{font-size:.8rem}.backup-actions{flex-direction:column}.backup-actions .btn{font-size:.85rem;padding:10px 12px}}@media(max-width:360px){.backups-tab{padding:8px}.backups-tab .section-actions{flex-direction:column;width:100%}.backups-tab .section-actions .btn{width:100%;justify-content:center}.backup-item{padding:10px 12px}}[data-theme=dark] .backup-stats{background:var(--surface);border-color:var(--border)}[data-theme=dark] .backup-stats .stat-card{background:var(--surface-secondary);border-color:var(--border)}[data-theme=dark] .backup-stats .stat-card:hover{border-color:var(--primary)}[data-theme=dark] .backup-type-section{background:var(--surface);border-color:var(--border)}[data-theme=dark] .backup-item:hover{background:var(--surface-secondary)}[data-theme=dark] .backup-size{background:var(--surface);border-color:var(--border)}[data-theme=dark] .no-backups{background:var(--surface-secondary);color:var(--text-secondary)}[data-theme=dark] .backup-type-notice{background:var(--surface-secondary);border-color:var(--border)}[data-theme=dark] .backup-warning{background:linear-gradient(135deg,#78350f,#92400e);border-color:#b45309}[data-theme=dark] .backup-warning .warning-content strong,[data-theme=dark] .backup-warning .warning-content p{color:#fef3c7}[data-theme=dark] .warning-message{background:linear-gradient(135deg,#78350f,#92400e);border-color:#b45309}[data-theme=dark] .warning-message .warning-content h3,[data-theme=dark] .warning-message .warning-content p{color:#fef3c7}[data-theme=dark] .warning-message .backup-details{background:#fef3c71a;border-color:#f59e0b66;color:#fef3c7}[data-theme=dark] .warning-message .backup-details strong{color:#fef3c7}[data-theme=dark] .warning-message .danger-text{background:#dc262633;border-color:#dc262666;color:#fecaca!important}[data-theme=dark] .automatic-backup-warning{background:#fef3c71a;border-color:#f59e0b66}[data-theme=dark] .automatic-backup-warning p{color:#fef3c7!important}@media(min-width:1024px){.backup-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:20px}.backup-type-section{margin-bottom:0}}.backup-type-header{background:linear-gradient(135deg,var(--primary-light),var(--primary));padding:16px 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.backup-type-limit{font-size:.85rem;opacity:.9;background:#fff3;padding:4px 8px;border-radius:12px;color:#fff}@media(max-width:768px){.backup-type-header{flex-direction:column;align-items:flex-start;gap:8px}.backup-type-limit{align-self:flex-start}}.action-buttons-group{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.quick-actions-btn{position:relative;display:flex;align-items:center;gap:8px}.dropdown-arrow{transition:transform .2s ease;font-size:.8em}.dropdown-arrow.open{transform:rotate(180deg)}.quick-actions-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow-md)}.quick-actions-panel h3{margin:0 0 16px;color:var(--text-primary);font-size:1.2rem;display:flex;align-items:center;gap:8px}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.quick-action-card{background:var(--surface-secondary);border:1px solid var(--border-light);border-radius:8px;padding:16px}.quick-action-card h4{margin:0 0 12px;color:var(--text-primary);font-size:1rem}.quick-action-card .action-buttons{display:flex;flex-direction:column;gap:8px}.floor-selection{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light)}.floor-selection label{display:block;margin-bottom:8px;font-size:.9rem;color:var(--text-secondary)}.floor-select{width:100%;margin-bottom:8px}.selection-panel{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;padding:16px 20px;border-radius:8px;margin-bottom:16px;box-shadow:var(--shadow-md)}.selection-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.selected-count{font-weight:600;font-size:1.1rem}.selection-actions{display:flex;gap:8px;flex-wrap:wrap}.rooms-stats{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.stat-badge{display:flex;flex-direction:column;align-items:center;padding:12px 16px;border-radius:8px;background:var(--surface);border:1px solid var(--border);min-width:100px}.stat-badge.total{border-color:var(--primary)}.stat-badge.active{border-color:var(--success)}.stat-badge.inactive{border-color:var(--warning)}.stat-count{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.stat-label{font-size:.85rem;color:var(--text-secondary);margin-top:4px}.room-card.compact{position:relative;transition:all .2s ease}.room-card.compact.selected{background:var(--primary-light);border-color:var(--primary)}.room-checkbox-container{position:absolute;left:16px;top:50%;transform:translateY(-50%)}.room-select-checkbox{width:18px;height:18px;border-radius:4px;border:2px solid var(--border);background:var(--surface);cursor:pointer}.room-select-checkbox:checked{background:var(--primary);border-color:var(--primary);background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M20 6L9 17l-5-5'%3e%3c/path%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center;background-size:12px}.room-card.compact .room-icon{margin-left:30px}.room-card.compact .btn-danger{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.room-card.compact .btn-danger:hover{background:var(--danger-dark)!important;transform:translateY(-1px)}.rooms-to-delete{background:#ffffffb3;padding:12px;border-radius:6px;margin:12px 0;border:1px solid rgba(245,158,11,.3);max-height:200px;overflow-y:auto}.room-delete-item{padding:6px 0;border-bottom:1px solid rgba(0,0,0,.1)}.room-delete-item:last-child{border-bottom:none}@media(max-width:768px){.action-buttons-group{flex-direction:column;align-items:stretch}.quick-actions-btn,.action-buttons-group .btn{width:100%;justify-content:center}.quick-actions-grid{grid-template-columns:1fr}.selection-info{flex-direction:column;align-items:stretch;gap:12px}.selection-actions,.rooms-stats{justify-content:center}.stat-badge{flex:1;min-width:80px}.room-card.compact{padding-left:50px}}@media(max-width:480px){.quick-action-card .action-buttons{grid-template-columns:1fr}.selection-actions{flex-direction:column}.selection-actions .btn{width:100%}}[data-theme=dark] .quick-actions-panel{background:var(--surface);border-color:var(--border)}[data-theme=dark] .quick-action-card{background:var(--surface-secondary);border-color:var(--border)}[data-theme=dark] .floor-selection{border-color:var(--border)}[data-theme=dark] .selection-panel{background:linear-gradient(135deg,var(--primary-dark),var(--primary))}[data-theme=dark] .rooms-to-delete{background:#ffffff1a;border-color:#f59e0b66}[data-theme=dark] .room-delete-item{border-color:#ffffff1a}
