:root{--font-heading:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-sidebar:#0f172a;--sidebar-border:#ffffff14;--sidebar-text:#cbd5e1;--sidebar-text-muted:#64748b;--sidebar-hover-bg:#ffffff0f;--sidebar-active-bg:#2563eb;--sidebar-active-text:#fff;--bg-card:#ffffffb3;--bg-glass-hover:#ffffffe6;--bg-hover:#eff6ff;--bg-elevated:#fff;--bg-muted:#f8fafc;--bg-subtle:#f1f5f9;--body-gradient:linear-gradient(180deg, #ffffffb8, #f5f7fb00 180px);--surface-glass:#ffffffdb;--surface-glass-border:#cbd5e1b8;--surface-panel-gradient:linear-gradient(90deg, #2563eb14, transparent 46%);--hero-gradient:linear-gradient(100deg, #2563eb1f, #06b6d414 54%, #ffffffe0);--clock-gradient:linear-gradient(100deg, #06b6d414, #ffffffe6);--table-header-bg:linear-gradient(180deg, #fff, var(--bg-primary));--table-row-alt:#f8fafcb8;--table-row-hover:#eff6ff;--input-bg:#fff;--overlay-bg:#0f172a66;--file-drop-bg:#fff6;--file-drop-hover-bg:#fff9;--border-color:#e2e8f0cc;--border-glass:#fff9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-inverse:#fff;--primary-hue:215;--primary:hsl(var(--primary-hue), 86%, 48%);--primary-hover:hsl(var(--primary-hue), 86%, 40%);--primary-glow:#2563eb24;--primary-light:hsl(var(--primary-hue), 92%, 96%);--success:#10b981;--success-glow:#10b98126;--success-light:#ecfdf5;--warning:#f59e0b;--warning-glow:#f59e0b26;--warning-light:#fffbeb;--danger:#ef4444;--danger-glow:#ef444426;--danger-light:#fef2f2;--info:#06b6d4;--info-glow:#06b6d426;--info-light:#ecfeff;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-lg:0 10px 25px -5px #0000000d, 0 8px 10px -6px #00000008;--shadow-glass:0 8px 32px 0 #1f26870a;--glass-blur:12px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-primary:#0b0f19;--bg-secondary:#121826;--bg-sidebar:#090d16;--sidebar-border:#ffffff0f;--sidebar-text:#cbd5e1;--sidebar-text-muted:#64748b;--sidebar-hover-bg:#ffffff0a;--sidebar-active-bg:#2563eb;--sidebar-active-text:#fff;--bg-card:#12182699;--bg-glass-hover:#182033cc;--bg-hover:#2563eb29;--bg-elevated:#172033;--bg-muted:#0f172a;--bg-subtle:#1e293b;--body-gradient:linear-gradient(180deg, #1e293b47, #0b0f1900 190px);--surface-glass:#121826db;--surface-glass-border:#4755697a;--surface-panel-gradient:linear-gradient(90deg, #2563eb29, transparent 52%);--hero-gradient:linear-gradient(100deg, #2563eb2e, #06b6d41f 54%, #121826c7);--clock-gradient:linear-gradient(100deg, #06b6d41f, #121826e0);--table-header-bg:linear-gradient(180deg, #172033, #121826);--table-row-alt:#0f172ab8;--table-row-hover:#2563eb29;--input-bg:#0f172a;--overlay-bg:#0000009e;--file-drop-bg:#0f172a94;--file-drop-hover-bg:#2563eb1f;--border-color:#64748b61;--border-glass:#ffffff0f;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--primary-light:hsl(var(--primary-hue), 30%, 15%);--primary-glow:#6366f14d;--success-light:#10b98114;--warning-light:#f59e0b14;--danger-light:#ef444414;--info-light:#06b6d414;--shadow-glass:0 8px 32px 0 #0000004d}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg-primary);background-image:var(--body-gradient);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal);font-weight:400;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:0;font-weight:600;line-height:1.2}button,input,select,textarea{font:inherit;letter-spacing:0}a{color:inherit;text-decoration:none}.app-loader-screen{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex}.app-logo-loader{justify-content:center;align-items:center;width:100%;min-height:260px;display:flex}.app-logo-loader.full-screen{background:var(--bg-primary);min-height:100vh}.app-logo-loader.compact{min-height:120px}.app-logo-loader.compact .app-loader-logo-card{width:84px;height:84px;padding:12px}.app-logo-loader.compact .app-loader-logo-spin,.app-logo-loader.compact .app-loader-logo-spin img{width:58px;height:58px}.app-logo-loader.compact .app-loader-water-core{background-size:58px 58px;width:28px;height:28px}.app-loader-logo-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;justify-content:center;align-items:center;width:116px;height:116px;padding:18px;animation:.9s cubic-bezier(.22,1,.36,1) both appLoaderEnter;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 28px #0f172a0f}.app-loader-logo{object-fit:contain;width:80px;height:80px;display:block}.app-loader-logo-spin{transform-origin:50%;place-items:center;width:82px;height:82px;animation:1.25s linear infinite appLoaderOrbit;display:grid}.app-loader-logo-spin img{object-fit:contain;width:82px;height:82px;display:block}.app-loader-water-core{z-index:2;background-color:#fff;background-image:url(/images/wellwash_app_logo.png);background-position:50%;background-repeat:no-repeat;background-size:82px 82px;border-radius:999px;width:38px;height:38px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes appLoaderEnter{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@keyframes appLoaderOrbit{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.app-container{min-height:100vh;display:flex}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--sidebar-border);width:260px;color:var(--sidebar-text);z-index:100;height:100vh;transition:width var(--transition-normal), transform var(--transition-normal);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0}.sidebar.collapsed{width:72px}.sidebar-brand{border-bottom:1px solid var(--sidebar-border);justify-content:flex-start;align-items:center;padding:18px;display:flex}.brand-icon{width:36px;height:36px;box-shadow:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.brand-icon img{object-fit:contain;width:100%;height:100%;display:block}.brand-name{font-family:var(--font-heading);letter-spacing:-.5px;color:#fff;transition:opacity var(--transition-normal), max-width var(--transition-normal), margin-left var(--transition-normal);white-space:nowrap;max-width:180px;margin-left:12px;font-size:20px;font-weight:800;overflow:hidden}.sidebar.collapsed .brand-name{opacity:0;max-width:0;margin-left:0}.sidebar-collapse-btn{color:var(--sidebar-text);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:#ffffff14;border:none;justify-content:center;align-items:center;display:flex}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff29}@media (width<=768px){.sidebar-collapse-btn{display:none}}.sidebar.collapsed .sidebar-collapse-btn{display:none}.sidebar-menu{scrollbar-width:none;flex-direction:column;flex:1;gap:8px;padding:8px;display:flex;overflow-y:auto}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-section{flex-direction:column;gap:3px;display:flex}.sidebar-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-text-muted);transition:opacity var(--transition-normal), height var(--transition-normal), padding var(--transition-normal);padding:6px 8px 2px;font-size:9.5px;font-weight:800}.sidebar.collapsed .sidebar-section-label{opacity:0;height:0;margin:0;padding:0;overflow:hidden}.sidebar-link{border-radius:var(--radius-sm);color:var(--sidebar-text);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;border:1px solid #0000;align-items:center;padding:6px 10px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.sidebar-link:hover{color:#fff;background-color:var(--sidebar-hover-bg)}.sidebar-link.active{color:#fff;background:var(--sidebar-active-bg);border-color:var(--sidebar-active-bg);box-shadow:0 4px 12px #2563eb40}.sidebar-link .link-icon{color:var(--sidebar-text-muted);transition:color var(--transition-fast);flex-shrink:0;display:inline-flex}.sidebar-link:hover .link-icon,.sidebar-link.active .link-icon{color:currentColor}.sidebar-link .link-text{transition:opacity var(--transition-normal), max-width var(--transition-normal), margin-left var(--transition-normal);max-width:180px;margin-left:10px;display:inline-block;overflow:hidden}.sidebar.collapsed .sidebar-link{justify-content:flex-start;padding:6px 10px}.sidebar.collapsed .sidebar-link .link-text{opacity:0;max-width:0;margin-left:0}.sidebar-footer{border-top:1px solid var(--sidebar-border);background:#00000029;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.sidebar.collapsed .sidebar-footer{align-items:stretch}.user-profile-summary{align-items:center;display:flex}.sidebar.collapsed .user-profile-summary{justify-content:flex-start}.user-profile-summary .avatar{border-radius:var(--radius-full);color:#1d4ed8;background:#dbeafe;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-weight:700;display:flex}.user-profile-summary .user-info{transition:opacity var(--transition-normal), max-width var(--transition-normal), margin-left var(--transition-normal);flex-direction:column;max-width:180px;margin-left:12px;display:flex;overflow:hidden}.sidebar.collapsed .user-profile-summary .user-info{opacity:0;max-width:0;margin-left:0}.user-profile-summary .user-name{color:#fff;font-size:14px;font-weight:600}.user-profile-summary .user-role{color:var(--sidebar-text-muted);font-size:11px}.sidebar-logout-btn{color:var(--sidebar-text);border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:#ffffff14;border:1px solid #ffffff1f;justify-content:flex-start;align-items:center;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.sidebar-logout-btn span{transition:opacity var(--transition-normal), max-width var(--transition-normal), margin-left var(--transition-normal);max-width:180px;margin-left:8px;display:inline-block;overflow:hidden}.sidebar.collapsed .sidebar-logout-btn span{opacity:0;max-width:0;margin-left:0}.sidebar-logout-btn:hover{color:#fca5a5;background-color:#ef444433;border-color:#ef44444d}.main-header{z-index:90;box-shadow:var(--shadow-sm);background:var(--surface-glass);border-top:none;border-left:none;border-right:none;border-bottom:1px solid var(--surface-glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:0;justify-content:space-between;align-items:center;padding:10px 18px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:16px;display:flex}.main-header .sidebar-toggle-btn{display:flex}.header-title{font-size:19px;font-weight:700;font-family:var(--font-heading)}.header-right{align-items:center;gap:16px;display:flex}.welcome-text{color:var(--text-secondary);font-size:14px}.theme-toggle{border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);width:40px;height:40px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--bg-hover);border-color:var(--primary);color:var(--primary);transform:scale(1.05)}.theme-toggle svg{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.theme-toggle:hover svg{transform:rotate(25deg)}.env-selector-container{position:relative}.env-badge{border-radius:var(--radius-sm);font-family:var(--font-heading);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:8px;padding:6px 12px;font-size:12px;font-weight:700;display:flex}.env-badge.dev{background:var(--warning-light);color:var(--warning);border-color:#f59e0b33}.env-badge.prod{background:var(--danger-light);color:var(--danger);border-color:#ef444433}.env-dropdown{z-index:1000;flex-direction:column;width:260px;padding:8px;animation:.15s fadeIn;display:flex;position:absolute;top:calc(100% + 8px);right:0}.env-dropdown .dropdown-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 12px;font-size:11px;font-weight:700}.env-dropdown .dropdown-item{border-radius:var(--radius-sm);text-align:left;width:100%;color:var(--text-primary);cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;padding:10px 12px;font-size:13px;font-weight:500}.env-dropdown .dropdown-item:hover{background-color:var(--bg-primary)}.env-dropdown .dropdown-item.active{color:var(--primary);background-color:var(--primary-light);font-weight:600}.glass-card{background:var(--surface-glass);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--surface-glass-border);border-radius:var(--radius-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-normal), border var(--transition-normal);padding:14px;box-shadow:0 10px 28px #0f172a0b}.glass-card.interactive:hover{box-shadow:var(--shadow-lg), var(--shadow-glass);background:var(--bg-glass-hover);transform:translateY(-2px)}.main-content{background-color:var(--bg-primary);flex-direction:column;flex:1;min-width:0;display:flex}.content-body{box-sizing:border-box;width:100%;max-width:100%;animation:fadeIn var(--transition-normal);flex:1;padding:12px}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:10px;display:grid}.metric-card{border-color:#cbd5e1d1;align-items:center;gap:10px;min-height:60px;display:flex;position:relative;overflow:hidden}.metric-card:before{content:"";background:var(--primary);width:3px;position:absolute;inset:0 auto 0 0}.metric-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.metric-icon.indigo{background:var(--primary-light);color:var(--primary)}.metric-icon.success{background:var(--success-light);color:var(--success)}.metric-icon.warning{background:var(--warning-light);color:var(--warning)}.metric-icon.info{background:var(--info-light);color:var(--info)}.metric-icon.danger{background:var(--danger-light);color:var(--danger)}.metric-info{flex-direction:column;display:flex}.metric-value{font-family:var(--font-heading);font-size:20px;font-weight:700;line-height:1.2}.metric-title{color:var(--text-secondary);font-size:12px;font-weight:500}.dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(300px,.9fr);gap:12px;margin-bottom:10px;display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}.chart-card{flex-direction:column;min-height:250px;display:flex}.recent-activity-card{flex-direction:column;max-height:310px;display:flex;overflow:hidden}.activity-list{flex-direction:column;flex:1;gap:10px;margin-top:8px;display:flex;overflow:hidden}.activity-item{border-bottom:1px solid var(--border-color);gap:12px;padding-bottom:8px;font-size:13px;display:flex}.activity-item:last-child{border-bottom:none}.activity-marker{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px;margin-top:6px}.activity-marker.success{background-color:var(--success)}.activity-marker.warning{background-color:var(--warning)}.activity-marker.primary{background-color:var(--primary)}.activity-marker.danger{background-color:var(--danger)}.activity-details{flex-direction:column;display:flex}.activity-time{color:var(--text-muted);font-size:11px}.page-actions-bar{border:1px solid var(--surface-glass-border);border-radius:var(--radius-sm);background:var(--surface-panel-gradient), var(--surface-glass);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;display:flex;box-shadow:0 8px 22px #0f172a09}.page-actions-bar h2{align-items:center;gap:8px;display:flex}.page-actions-bar h2:before{content:"";border-radius:var(--radius-full);background:linear-gradient(180deg, var(--primary), var(--info));width:5px;height:22px}.page-actions-bar>div:empty{display:none}.page-actions-bar>div:empty+*{margin-left:auto}.page-actions-bar:has(>div:empty){box-shadow:none;background:0 0;border:0;justify-content:flex-end;padding:0}.page-actions-bar:has(>div:empty):not(:has(.btn,.icon-btn,button:not(:empty))){display:none}.search-filter-group{flex:1;align-items:center;gap:12px;max-width:900px;display:flex}.search-input-wrapper{flex:1;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input-wrapper .form-input{padding-left:40px}.table-container{border-radius:var(--radius-sm);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:var(--bg-secondary);overflow:auto;box-shadow:0 10px 22px #0f172a09}.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.admin-table th{background:var(--table-header-bg);color:var(--text-secondary);border-bottom:1px solid var(--border-color);font-weight:600;font-family:var(--font-heading);z-index:2;padding:9px 12px;position:sticky;top:0}.admin-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);background:var(--bg-secondary);transition:background var(--transition-fast);padding:9px 12px}.admin-table tbody tr:nth-child(2n) td{background:var(--table-row-alt)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--table-row-hover)}.empty-table-state{min-height:96px;color:var(--text-secondary);text-align:center;border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.empty-table-state strong{color:var(--text-primary);font-size:14px}.empty-table-state span{max-width:520px;color:var(--text-muted);font-size:12px}.badge{border-radius:var(--radius-full);text-transform:capitalize;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-info{background:var(--info-light);color:var(--info)}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-secondary{background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color)}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-secondary);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.form-group{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:600}.form-input,.form-select,.form-textarea{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--input-bg);width:100%;color:var(--text-primary);font-family:var(--font-body);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:8px 10px;font-size:14px}.form-input::placeholder,.form-textarea::placeholder,input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}select,input,textarea{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}select option{background:var(--bg-secondary);color:var(--text-primary)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.form-input.input-error,.form-select.input-error,.form-textarea.input-error{border-color:var(--danger);box-shadow:0 0 0 3px #ef444414}.form-error-text{color:var(--danger);font-size:12px;font-weight:700}.custom-room-picker{width:100%;position:relative}.custom-room-trigger{border-radius:var(--radius-sm);border:1px solid var(--border-color);width:100%;min-height:40px;color:var(--text-primary);background:var(--input-bg);text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 12px;font-size:13px;display:grid}.custom-room-trigger:disabled{opacity:.62;cursor:not-allowed;background:var(--bg-primary)}.custom-room-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.custom-room-trigger svg:last-child{color:var(--text-muted);transition:transform var(--transition-fast);transform:rotate(90deg)}.custom-room-picker.open .custom-room-trigger svg:last-child{transform:rotate(-90deg)}.custom-room-menu{z-index:80;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-secondary);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 18px 38px #0f172a2e}.custom-room-search{border-bottom:1px solid var(--border-color);color:var(--text-muted);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:10px 12px;display:grid}.custom-room-search input{width:100%;color:var(--text-primary);background:0 0;border:0;outline:0;font-size:13px}.custom-room-list{max-height:230px;padding:6px;display:grid;overflow-y:auto}.custom-room-list button{min-height:38px;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.custom-room-list button:hover,.custom-room-list button.selected{color:var(--primary);background:var(--primary-light)}.custom-room-list button span{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;overflow:hidden}.custom-room-list button small{color:var(--text-secondary);font-size:11px;font-weight:700}.custom-room-empty{text-align:center;color:var(--text-muted);padding:18px;font-size:12px}.form-grid{gap:12px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.hostel-form-modal .modal-body{gap:0}.room-preview-panel{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);gap:9px;max-height:170px;margin-top:4px;padding:12px;display:grid;overflow:auto}.room-preview-head{color:var(--primary);justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:900;display:flex}.room-preview-head strong{color:var(--text-primary)}.room-preview-chip-grid{flex-wrap:wrap;gap:5px;display:flex}.room-preview-chip-grid span{border:1px solid var(--border-color);background:var(--bg-secondary);min-width:46px;color:var(--primary);text-align:center;border-radius:5px;padding:4px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:800}.room-preview-panel small{color:var(--text-muted);font-size:11px;font-style:italic}.room-sheet-overlay{align-items:center}.room-form-sheet{background:var(--bg-secondary);border-radius:18px 18px 10px 10px;max-width:420px;overflow:hidden}.room-sheet-handle{border-radius:var(--radius-full);background:#94a3b875;width:42px;height:4px;margin:10px auto 0;display:none}.room-sheet-header{border-bottom-color:#e2e8f0db;padding:18px 18px 14px}.room-sheet-header h3{color:#0f1b3d;font-size:18px;font-weight:800}.room-sheet-body{gap:10px;padding:16px 18px 8px;display:grid}.room-sheet-context{border-radius:var(--radius-full);color:#1d4ed8;background:#eff6ff;align-items:center;gap:6px;width:fit-content;max-width:100%;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.room-sheet-field .form-input{border-color:#cbd5e1f2;border-radius:8px;min-height:48px;padding:0 14px;font-size:14px;font-weight:700;box-shadow:0 1px #0f172a05}.room-sheet-field .form-input::placeholder{font-weight:600}.room-sheet-note{color:#64748b;align-items:center;gap:7px;padding:2px 0;font-size:12px;font-weight:700;display:inline-flex}.room-sheet-note svg{color:var(--primary)}.room-sheet-footer{border-top:0;padding:14px 18px 18px}.room-sheet-footer .btn{border-radius:8px;justify-content:center;width:100%;min-height:42px}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);font-size:13px;font-weight:600;font-family:var(--font-heading);border:none;justify-content:center;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), #0891b2);color:var(--text-inverse)}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:0 4px 12px var(--primary-glow)}.btn-secondary{background-color:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{background-color:var(--bg-hover);color:var(--text-primary)}.btn-danger{background-color:var(--danger);color:var(--text-inverse)}.btn-danger:hover{box-shadow:0 4px 12px var(--danger-glow);background-color:#dc2626}.btn:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{padding:16px 18px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:12px 18px;display:flex}.tabs-container{border-radius:var(--radius-sm);background:var(--bg-subtle);border-bottom:none;gap:6px;width:fit-content;margin-bottom:10px;padding:4px;display:flex}.tab-btn{font-family:var(--font-heading);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:6px;padding:9px 12px;font-size:14px;font-weight:600}.tab-btn:hover{color:var(--text-primary);background-color:var(--bg-primary)}.tab-btn.active{color:var(--primary);background:var(--bg-secondary);box-shadow:var(--shadow-sm)}.accordion-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);margin-bottom:12px;overflow:hidden}.accordion-header{cursor:pointer;background:var(--bg-primary);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:16px;font-weight:600;display:flex}.accordion-body{border-top:1px solid var(--border-color);padding:16px}@media (width<=768px){.main-header .sidebar-toggle-btn{display:flex}.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:18px 0 42px #02061757}.sidebar.open{transform:translate(0)}.welcome-text{display:none}}.login-layout{background-color:#0f172a;min-height:100vh;display:flex}.login-hero{background-color:#0f172a;flex:1;display:none;position:relative}@media (width>=1024px){.login-hero{display:block}}.login-slide{opacity:0;background-color:#0f172a;background-position:50%;background-repeat:no-repeat;background-size:contain;transition:opacity 1s ease-in-out;position:absolute;inset:0}.login-slide.active{opacity:1}.hero-overlay-branding{align-items:center;gap:12px;margin-bottom:24px;display:flex}.hero-overlay-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #0000004d);width:48px;height:48px}.hero-overlay-name{color:#fff;letter-spacing:-.5px;text-shadow:0 2px 8px #0009;font-size:32px;font-weight:900}@media (width>=1024px){.login-hero-overlay{width:50%;padding:80px 60px 60px}}.login-hero-overlay{color:#fff;z-index:1;background:linear-gradient(#0f172a00,#0f172af2);width:100%;padding:80px 24px 40px;position:absolute;bottom:0;left:0}.login-hero-overlay h2{color:#fff;text-shadow:0 4px 12px #0009;margin-bottom:18px;font-size:38px;font-weight:900;line-height:1.15}.login-hero-overlay p{opacity:.9;color:#f1f5f9;text-shadow:0 2px 8px #0009;max-width:500px;margin-bottom:32px;font-size:16px;line-height:1.6}.login-slide-indicators{gap:8px;margin-top:12px;display:flex}.slide-dot{background-color:#ffffff4d;border-radius:4px;width:32px;height:4px;transition:background-color .3s}.slide-dot.active{background-color:#fff}.login-side{z-index:10;background-color:#0f172a;justify-content:center;align-items:center;width:100%;padding:24px;display:flex;position:relative}@media (width>=1024px){.login-side{flex:0 0 520px;width:520px;padding:40px;box-shadow:-10px 0 40px #0000000f}}.login-card{background:#fffffff5;border:1px solid #cbd5e199;border-radius:20px;width:100%;max-width:440px;padding:44px 32px;box-shadow:0 24px 70px #0f172a14}.login-header{text-align:center;margin-bottom:30px}.login-title{color:#0f172a;letter-spacing:0;margin:8px 0 6px;font-size:22px;font-weight:900;line-height:1.1}.login-logo-container{width:48px;height:48px;margin:0 auto 2px;position:relative}.login-card-logo-spin{object-fit:contain;transform-origin:50%;width:100%;height:100%;animation:2.5s cubic-bezier(.4,0,.2,1) infinite appLoaderOrbit}.login-card-logo-core{z-index:2;background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:48px 48px;border-radius:50%;width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #fff}.login-subtitle{color:var(--text-secondary);font-size:13px;font-weight:500}.login-form{flex-direction:column;gap:18px;margin-top:8px;display:flex}.login-form-copy p{color:#475569;margin:0;font-size:12px;line-height:1.45}.login-card .form-label{color:#0b1b6d;font-size:12px;font-weight:800}.login-input-shell{position:relative}.login-phone-row{grid-template-columns:88px minmax(0,1fr);gap:8px;display:grid}.login-country-code{color:#0b1b6d;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:44px;font-size:14px;font-weight:800;display:inline-flex}.login-flag{font-size:22px;line-height:1}.login-input-icon{z-index:1;color:#64748b;pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.login-card .login-input{color:#0f172a;min-height:44px;caret-color:var(--primary);background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:0 16px;font-size:14px;font-weight:600;box-shadow:inset 0 1px #0f172a08}.login-card .password-input{letter-spacing:0;padding-left:18px;padding-right:52px}.login-card .login-input::placeholder{color:#94a3b8;font-weight:600}.login-card .login-input:hover{border-color:#93c5fd}.login-card .login-input:focus{background:#fff;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb24}.login-card .login-input:disabled{color:#475569;opacity:1;-webkit-text-fill-color:#475569;background:#f8fafc}.login-card .login-input:-webkit-autofill{-webkit-text-fill-color:#0f172a;border-color:#cbd5e1;box-shadow:inset 0 0 0 1000px #fff,0 0 0 4px #2563eb1a}.login-card .login-input:-webkit-autofill:hover{-webkit-text-fill-color:#0f172a;border-color:#cbd5e1;box-shadow:inset 0 0 0 1000px #fff,0 0 0 4px #2563eb1a}.login-card .login-input:-webkit-autofill:focus{-webkit-text-fill-color:#0f172a;border-color:#cbd5e1;box-shadow:inset 0 0 0 1000px #fff,0 0 0 4px #2563eb1a}.login-password-toggle{z-index:10;color:#475569;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-password-toggle:hover{color:#1d4ed8;background:#eff6ff}.login-field-hint{color:#64748b;margin-top:4px;font-size:12px;font-weight:600}.login-submit-btn{border-radius:8px;width:100%;min-height:48px;margin-top:4px;padding:14px 16px;font-size:13px;font-weight:800;box-shadow:0 14px 26px #0e74dc33}.login-submit-btn:disabled{opacity:.62;cursor:not-allowed;box-shadow:none}.login-alert{border-radius:var(--radius-sm);border:1px solid;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:13px;display:flex}.login-alert.danger{background-color:var(--danger-light);color:var(--danger);border-color:#ef444433}[data-theme=dark] .login-card{background:#121826f5;border-color:#4755699e;box-shadow:0 24px 70px #00000057}[data-theme=dark] .login-card .form-label{color:#e2e8f0}[data-theme=dark] .login-input-icon,[data-theme=dark] .login-password-toggle{color:#94a3b8}[data-theme=dark] .login-card .login-input{color:#f8fafc;background:#0f172a;border-color:#64748b9e}[data-theme=dark] .login-card .login-input::placeholder{color:#64748b}[data-theme=dark] .login-card .login-input:focus{background:#0f172a;border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa2e}[data-theme=dark] .login-card .login-input:disabled{color:#cbd5e1;-webkit-text-fill-color:#cbd5e1;background:#111827}[data-theme=dark] .login-card .login-input:-webkit-autofill{-webkit-text-fill-color:#f8fafc;border-color:#60a5faa6;box-shadow:inset 0 0 0 1000px #0f172a,0 0 0 4px #60a5fa29}[data-theme=dark] .login-card .login-input:-webkit-autofill:hover{-webkit-text-fill-color:#f8fafc;border-color:#60a5faa6;box-shadow:inset 0 0 0 1000px #0f172a,0 0 0 4px #60a5fa29}[data-theme=dark] .login-card .login-input:-webkit-autofill:focus{-webkit-text-fill-color:#f8fafc;border-color:#60a5faa6;box-shadow:inset 0 0 0 1000px #0f172a,0 0 0 4px #60a5fa29}[data-theme=dark] .login-password-toggle:hover{color:#bfdbfe;background:#2563eb2e}[data-theme=dark] .login-field-hint{color:#94a3b8}@media (width<=640px){.login-side{padding:16px}.login-card{padding:32px 20px}.login-header{margin-bottom:24px}}.hostel-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hostel-flow-tabs{color:var(--text-muted);align-items:center;gap:8px;padding:4px 0 2px;display:flex}.hostel-flow-tabs button{border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--bg-secondary);min-height:32px;color:var(--text-muted);align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:800;display:inline-flex}.hostel-flow-tabs button.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 8px 18px #2563eb29}.hostel-flow-tabs button:disabled{opacity:.72}.hostel-workbench-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,2.1fr);gap:16px;min-height:0;display:grid}.hostel-rail,.hostel-config-main{min-height:0}.hostel-rail{background:var(--bg-primary);border-color:var(--border-color);flex-direction:column;gap:10px;max-height:calc(100vh - 236px);display:flex;overflow:auto}.hostel-config-main{flex-direction:column;gap:10px;display:flex}.hostel-panel-heading,.selected-hostel-summary,.hostel-section-heading,.wing-card-top,.room-card-header,.room-card-actions,.wing-card-actions,.subsection-title,.bed-summary-strip{align-items:center;display:flex}.hostel-panel-heading,.selected-hostel-summary,.hostel-section-heading,.wing-card-top,.room-card-header,.subsection-title{justify-content:space-between;gap:10px}.panel-kicker{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800;display:block}.hostel-panel-heading h3,.selected-hostel-summary h3{font-size:18px;font-weight:800}.count-pill{border-radius:var(--radius-full);background:var(--primary-light);min-width:28px;height:28px;color:var(--primary);justify-content:center;align-items:center;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}[data-theme=dark] .count-pill{color:#60a5fa;background:#2563eb33}.hostel-selection-card{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);grid-template-columns:1fr;align-items:center;gap:14px;padding:21px;display:grid;position:relative;box-shadow:0 8px 24px #0f172a0a}.hostel-selection-card:hover,.hostel-selection-card.active{background:var(--bg-elevated);border-color:#2563eb59;transform:translateY(-1px);box-shadow:0 12px 30px #2563eb14}.hostel-selection-card.active{box-shadow:inset 3px 0 0 var(--primary), 0 12px 30px #2563eb14}.hostel-selection-main{grid-template-columns:auto 1fr;gap:16px;min-width:0;padding-right:88px;display:grid}.hostel-selection-main strong,.hostel-selection-main small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.hostel-selection-main strong{font-size:14px}.hostel-selection-main small{color:var(--text-secondary);font-size:11px}.hostel-selection-icon{width:38px;height:38px;color:var(--primary);font-weight:900;font-family:var(--font-heading);background:#e8f1ff;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.hostel-selection-status{position:absolute;top:14px;right:14px}.hostel-state-pill{border-radius:var(--radius-full);border:1px solid #0000;align-items:center;gap:6px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-flex}.hostel-state-pill.active{color:#15803d;background:#ecfdf5;border-color:#22c55e47}.hostel-state-pill.inactive{color:#b91c1c;background:#fef2f2;border-color:#ef444447}.hostel-card-chips,.wing-card-chips{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.hostel-card-chips span,.wing-card-chips span{border-radius:var(--radius-full);color:#0369a1;background:#eff6ff;border:1px solid #2563eb24;align-items:center;gap:5px;min-height:24px;padding:0 9px;font-size:11px;font-weight:800;display:inline-flex}.hostel-selection-actions{align-items:center;gap:7px;display:flex}.hostel-view-btn,.wing-view-btn{border-radius:8px;flex:1;justify-content:center;min-height:34px;font-size:12px}.selected-hostel-summary{border-color:var(--surface-glass-border);background:var(--surface-glass);padding:16px}.selected-hostel-summary p{color:var(--text-secondary);margin-top:2px;font-size:12px}.selected-hostel-stats{grid-template-columns:repeat(3,minmax(88px,1fr));gap:8px;display:grid}.selected-hostel-stats span{background:var(--bg-subtle);color:var(--text-secondary);text-align:center;border-radius:10px;padding:10px 12px;font-size:11px;font-weight:700}.selected-hostel-stats strong{color:var(--text-primary);font-size:18px;display:block}.hostel-section-card{border-color:var(--surface-glass-border);background:var(--surface-glass);padding:14px}.hostel-section-heading{margin-bottom:10px}.hostel-section-heading h3{align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.hostel-section-heading p{color:var(--text-secondary);margin-top:2px;font-size:12px}.wing-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:10px;max-height:288px;padding:2px;display:grid;overflow:auto}.wing-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;gap:10px;padding:14px;display:flex;box-shadow:0 8px 22px #0f172a0a}.wing-card:hover,.wing-card.active{border-color:var(--primary);background:var(--primary-light)}.wing-card.active{box-shadow:inset 3px 0 0 var(--primary), 0 12px 26px #2563eb14}.wing-card h4{font-family:var(--font-heading);font-size:14px;font-weight:800}.wing-card small{color:var(--text-muted);font-size:11px;font-weight:700}.wing-card-actions{gap:5px}.wing-meta{color:var(--text-secondary);justify-content:space-between;gap:8px;font-size:12px;display:flex}.status-dot{text-transform:capitalize;align-items:center;gap:5px;font-size:11px;font-weight:800;display:inline-flex}.status-dot:before{content:"";border-radius:var(--radius-full);background:var(--text-muted);width:7px;height:7px}.status-dot.success{color:var(--success)}.status-dot.success:before{background:var(--success)}.status-dot.muted{color:var(--text-muted)}.room-bed-layout{min-height:0;display:block}.room-pane{min-width:0}.subsection-title{margin-bottom:8px}.subsection-title h4{font-size:13px;font-weight:800}.subsection-title span{color:var(--text-muted);font-size:12px;font-weight:800}.room-grid{grid-template-columns:1fr;gap:8px;max-height:390px;padding:2px;display:grid;overflow:auto}.room-card{border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:10px;grid-template-columns:minmax(160px,1fr) minmax(170px,auto) auto;align-items:center;gap:12px;min-height:64px;padding:12px 12px 12px 14px;display:grid}.room-card:hover,.room-card.selected{border-color:var(--primary);background:var(--primary-light)}.room-card.selected{box-shadow:inset 3px 0 0 var(--primary), 0 10px 22px #2563eb14}.room-number{color:#1d4ed8;width:fit-content;font-family:var(--font-heading);background:#e8f1ff;border-radius:8px;padding:3px 8px;font-size:14px;font-weight:800}.room-occupancy,.room-card small{color:var(--text-secondary);font-size:11px}.room-occupancy{align-items:center;gap:7px;font-weight:700;display:inline-flex}.room-fill-pill{border-radius:var(--radius-full);border:1px solid #0000;justify-self:end;padding:4px 9px;font-size:10px;font-weight:900}.room-fill-pill.empty{color:#047857;background:#dcfce7;border-color:#22c55e3d}.room-fill-pill.partial{color:#a16207;background:#fef9c3;border-color:#f59e0b3d}.room-fill-pill.full{color:#b91c1c;background:#fee2e2;border-color:#ef44443d}.room-card-actions{justify-content:flex-end;gap:5px}.reports-screen{width:100%;max-width:none;margin:0}.reports-hero{color:#fff;background:linear-gradient(135deg,#1565c0,#0d47a1);border:0;justify-content:flex-start;gap:14px;box-shadow:0 12px 26px #1565c038}.reports-hero h2,.reports-hero p{color:#fff}.reports-hero p{opacity:.78}.reports-hero-icon{border-radius:var(--radius-md);background:#ffffff2e;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.reports-section-title{color:var(--text-muted);letter-spacing:0;font-size:13px;font-weight:800}.reports-card-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.report-tile{border-radius:var(--radius-md);color:#fff;text-align:left;cursor:pointer;min-height:154px;transition:transform var(--transition-fast), box-shadow var(--transition-fast), outline var(--transition-fast);border:0;align-content:start;gap:8px;padding:16px;display:grid;position:relative;box-shadow:0 10px 22px #0f172a1f}.report-tile:hover,.report-tile.active{outline:2px solid #ffffffb8;transform:translateY(-2px);box-shadow:0 16px 30px #0f172a2e}.report-tile.blue{background:linear-gradient(135deg,#1565c0,#42a5f5)}.report-tile.purple{background:linear-gradient(135deg,#6a1b9a,#ab47bc)}.report-tile.teal{background:linear-gradient(135deg,#00695c,#26a69a)}.report-tile.green{background:linear-gradient(135deg,#2e7d32,#66bb6a)}.report-tile.orange{background:linear-gradient(135deg,#e65100,#ff9800)}.report-tile.cyan{background:linear-gradient(135deg,#00acc1,#00d8f6)}.report-tile.salary{background:linear-gradient(135deg,#1b5e20,#43a047)}.report-tile-icon{border-radius:var(--radius-md);background:#ffffff38;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.report-tile-pdf{border-radius:var(--radius-full);background:#ffffff2e;align-items:center;gap:4px;padding:5px 7px;font-size:10px;font-weight:800;display:inline-flex;position:absolute;top:18px;right:16px}.report-tile strong{font-size:15px;font-family:var(--font-heading);margin-top:12px}.report-tile small{color:#ffffffd1;max-width:180px;font-size:11px;line-height:1.35}.report-workspace{gap:14px;min-width:0;max-width:100%;padding:16px;display:grid;overflow-x:auto}.report-workspace>*{min-width:0;max-width:100%}.report-workspace-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.report-workspace-head h3{color:var(--text-primary);font-size:18px;font-weight:900}.report-workspace-head p{color:var(--text-secondary);font-size:13px}.report-workspace-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.report-filter-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.report-filter-row label{gap:6px;display:grid}.report-filter-row span{color:var(--text-secondary);font-size:11px;font-weight:800}.report-filter-row select,.report-filter-row input{border:1px solid var(--border-color);border-radius:var(--radius-sm);min-height:38px;color:var(--text-primary);background:var(--bg-primary);font:inherit;padding:0 10px}.report-error{border-radius:var(--radius-sm);color:var(--danger);background:#ef444414;border:1px solid #ef444433;padding:10px 12px;font-size:12px;font-weight:800}.report-stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.report-stat{border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:var(--radius-sm);background:var(--bg-secondary);gap:4px;padding:12px;display:grid}.report-stat span{color:var(--text-muted);font-size:11px;font-weight:800}.report-stat strong{color:var(--text-primary);font-size:20px;font-family:var(--font-heading)}.login-form-copy{text-align:center}.login-form-copy h2{color:var(--text-primary);margin:0 0 10px;font-size:20px;font-weight:800}.report-preview-table{border:1px solid var(--border-color);border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch;max-width:100%;max-height:430px;overflow-y:auto;overflow-x:auto!important}.report-preview-table table{border-collapse:collapse;width:100%;min-width:800px}.report-preview-table::-webkit-scrollbar{width:9px;height:9px}.report-preview-table::-webkit-scrollbar-track{background:#f1f5f9;border-radius:6px}.report-preview-table::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:6px}.report-preview-table::-webkit-scrollbar-thumb:hover{background:#475569}.report-preview-table th,.report-preview-table td{border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap;padding:10px 12px;font-size:12px}.report-preview-table th{z-index:1;color:var(--text-secondary);background:var(--bg-secondary);font-weight:900;position:sticky;top:0}.report-preview-table td{color:var(--text-primary)}.invoice-preview{gap:16px;display:grid}.invoice-hero-card{color:#fff;background:linear-gradient(135deg,#00695c,#00897b);border-radius:14px;padding:18px}.invoice-hero-card h3{color:#fff;font-size:20px;font-family:var(--font-heading);margin:0 0 8px}.invoice-hero-card p{color:#ffffffd1;margin:3px 0;font-size:13px}.invoice-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.invoice-summary-card{text-align:center;background:#0f172a08;border:1px solid;border-radius:10px;place-items:center;gap:4px;min-height:72px;padding:12px;display:grid}.invoice-summary-card strong{font-size:18px;font-family:var(--font-heading)}.invoice-summary-card span{color:inherit;opacity:.8;font-size:11px}.invoice-summary-card.blue{color:#0d6efd;background:#eff6ff}.invoice-summary-card.orange{color:#f59e0b;background:#fff7ed}.invoice-summary-card.purple{color:#8e24aa;background:#faf5ff}.invoice-summary-card.teal{color:#00897b;background:#ecfeff}[data-theme=dark] .invoice-summary-card.blue{color:#60a5fa;background:#2563eb26}[data-theme=dark] .invoice-summary-card.orange{color:#fbbf24;background:#f59e0b26}[data-theme=dark] .invoice-summary-card.purple{color:#c084fc;background:#a855f726}[data-theme=dark] .invoice-summary-card.teal{color:#2dd4bf;background:#0d948826}.invoice-section{gap:10px;display:grid}.invoice-section h4{color:#0b1a78;font-size:14px;font-family:var(--font-heading);margin:0}[data-theme=dark] .invoice-section h4{color:var(--text-primary)}.invoice-table{border-collapse:separate;border-spacing:0;border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;width:100%;overflow:hidden}.invoice-table th,.invoice-table td{border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top;padding:11px 12px;font-size:12px}.invoice-table th{color:var(--text-secondary);background:var(--bg-secondary);font-size:11px;font-weight:900}.invoice-table tr:last-child td{border-bottom:0}.invoice-table td:not(:first-child),.invoice-table th:not(:first-child){text-align:right}.invoice-table td small{color:var(--text-muted);margin-top:3px;font-size:10px;display:block}.invoice-total-row td{color:#0d6efd;background:#eff6ff;font-weight:900}[data-theme=dark] .invoice-total-row td{color:#60a5fa;background:#2563eb26}.invoice-total-note{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;grid-template-columns:1fr auto;gap:8px;padding:14px;display:grid}.invoice-total-note span{font-weight:900}.invoice-total-note small{color:var(--text-muted);grid-column:1/-1;font-style:italic}.invoice-total-note.orange{color:#f59e0b;background:#fff7ed}.invoice-total-note.purple{color:#8e24aa;background:#faf5ff}[data-theme=dark] .invoice-total-note.orange{color:#fbbf24;background:#f59e0b26}[data-theme=dark] .invoice-total-note.purple{color:#c084fc;background:#a855f726}.invoice-empty-note{border:1px solid var(--border-color);color:var(--text-secondary);background:var(--bg-primary);text-align:center;border-radius:12px;padding:28px 16px}.invoice-tax-lines{gap:8px;padding:0 8px;display:grid}.invoice-tax-lines span{color:var(--text-primary);justify-content:space-between;gap:16px;font-size:13px;display:flex}.invoice-grand-total{color:#fff;background:linear-gradient(135deg,#00695c,#00897b);border-radius:14px;justify-content:space-between;gap:16px;padding:16px;font-weight:900;display:flex}.invoice-grand-total strong{color:#fff;font-size:18px}.invoice-table.detail{min-width:760px}.mobile-report-preview{gap:14px;display:grid}.mobile-report-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.mobile-report-chip{text-align:center;border:1px solid;border-radius:10px;place-items:center;gap:4px;min-height:70px;padding:12px;display:grid}.mobile-report-chip strong{font-family:var(--font-heading);font-size:18px}.mobile-report-chip span{color:var(--text-secondary);font-size:10px}.mobile-report-chip.blue{color:#1565c0;background:#eff6ff}.mobile-report-chip.green{color:#2e7d32;background:#f0fdf4}.mobile-report-chip.teal{color:#00897b;background:#ecfeff}.mobile-report-chip.orange{color:#e65100;background:#fff7ed}.mobile-report-chip.cyan{color:#00acc1;background:#ecfeff}.mobile-report-table-wrap{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;overflow:auto}.mobile-report-table{border-collapse:collapse;width:100%;min-width:720px}.mobile-report-table th,.mobile-report-table td{border-bottom:1px solid var(--border-color);text-align:left;padding:12px;font-size:12px}.mobile-report-table th{color:#fff;font-weight:900}.mobile-report-table.green th{background:#2e7d32}.mobile-report-table.blue th{background:#1565c0}.mobile-report-table.orange th{background:#e65100}.mobile-report-table tr:nth-child(2n) td{background:var(--bg-secondary)}.blue-text{color:#1565c0;font-weight:900}.green-text{color:#2e7d32;font-weight:900}.teal-text{color:#00897b;font-weight:900}.orange-text{color:#e65100;font-weight:900}.mobile-report-subtitle{color:#0f172a;margin:2px 0 8px;font-size:14px;font-weight:900}.cloth-inventory-preview{gap:14px;display:grid}.cloth-student-list{gap:10px;display:grid}.cloth-student-card{border:1px solid var(--border-color);background:var(--bg-primary);text-align:left;cursor:pointer;border-radius:12px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px;width:100%;padding:14px;display:grid}.student-avatar{width:42px;height:42px;color:var(--primary);background:#0d6efd1a;border-radius:50%;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.cloth-student-main{gap:3px;display:grid}.cloth-student-main strong{color:var(--text-primary)}.cloth-student-main small{color:var(--text-secondary)}.cloth-student-main em{width:fit-content;max-width:100%;color:var(--text-primary);background:var(--bg-secondary);border-radius:6px;padding:3px 8px;font-size:10px;font-style:normal}.cloth-count-pill{border-radius:var(--radius-full);color:var(--primary);background:#0d6efd1a;align-items:center;gap:4px;padding:7px 10px;font-weight:900;display:inline-flex}.chevron{color:var(--text-muted);font-size:26px}.report-modal-backdrop{z-index:1400;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a8c;justify-content:center;align-items:flex-end;padding:20px;display:flex;position:fixed;inset:0}.cloth-detail-sheet{background:var(--bg-primary);width:min(440px,100%);max-height:84vh;box-shadow:var(--shadow-xl);border-radius:22px 22px 14px 14px;padding:18px 22px 24px;overflow:auto}.sheet-handle{border-radius:var(--radius-full);background:var(--border-color);width:42px;height:4px;margin:0 auto 14px}.cloth-detail-head{justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:0;display:flex}.cloth-detail-head h3{color:#0b1a78;font-size:17px;font-family:var(--font-heading);margin:0 0 4px}[data-theme=dark] .cloth-detail-head h3{color:var(--text-primary)}.cloth-detail-head p{color:var(--text-secondary);margin:2px 0;font-size:11px}.cloth-detail-head button{color:#334155;background:0 0;border:0;border-radius:50%;width:32px;height:32px;font-size:28px;line-height:1}[data-theme=dark] .cloth-detail-head button{color:var(--text-secondary)}.cloth-sheet-divider{background:var(--border-color);height:1px;margin:10px 0 12px}.cloth-detail-list{gap:8px;margin-top:0;display:grid}.cloth-detail-item{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px;display:grid;box-shadow:0 1px 3px #0f172a0a}.cloth-icon{color:#0b1a78;background:#eafaf0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;overflow:hidden}.cloth-icon img{object-fit:contain;width:28px;height:28px;display:block}.cloth-detail-item strong,.cloth-detail-item small{display:block}.cloth-detail-item small{color:var(--text-secondary);opacity:.82;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.cloth-detail-item em{border-radius:6px;padding:6px 10px;font-size:10px;font-style:normal;font-weight:900}.cloth-detail-item em.available{color:#16a34a;background:#dcfce7}.cloth-detail-item em.orange{color:#e65100;background:#fff7ed}.cloth-detail-item em.blue{color:#1565c0;background:#eff6ff}.cloth-detail-item em.purple{color:#8e24aa;background:#faf5ff}.cloth-detail-item em.muted{color:var(--text-secondary);background:var(--bg-tertiary)}@media (width<=760px){.invoice-summary-grid,.mobile-report-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.cloth-student-card{grid-template-columns:auto 1fr auto}.chevron{display:none}.invoice-section{overflow-x:auto}.invoice-table{min-width:520px}}.bed-summary-strip{flex-wrap:wrap;gap:8px}.bed-summary-strip span{border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);align-items:center;gap:5px;padding:6px 8px;font-size:11px;font-weight:800;display:inline-flex}.bed-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:7px;max-height:240px;padding:2px;display:grid;overflow:auto}.bed-chip{border-radius:var(--radius-sm);border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:38px;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);padding:7px 9px;font-size:11px;font-weight:700}.bed-chip.available{background-color:var(--bg-secondary);color:var(--text-primary)}.bed-chip.available:hover{border-color:var(--primary);background-color:var(--primary-light);transform:translateY(-1px)}.bed-chip.occupied{background-color:var(--primary-light);color:var(--primary);border-color:var(--primary)}.inline-help{color:var(--text-muted);background:var(--bg-primary);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:9px 10px;font-size:11px;display:flex}.room-details-modal{max-width:460px;overflow:hidden}.room-details-handle{border-radius:var(--radius-full);background:var(--border-color);width:48px;height:4px;margin:10px auto 0}.room-details-modal .modal-header p{color:var(--text-muted);margin-top:3px;font-size:12px}.room-details-hero{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.room-details-icon{border-radius:var(--radius-md);width:40px;height:40px;color:var(--primary);background:var(--primary-light);justify-content:center;align-items:center;display:inline-flex}.room-details-hero strong,.room-details-hero span{display:block}.room-details-hero div:nth-child(2){min-width:0}.room-details-hero div:nth-child(2) strong{color:var(--text-primary);font-size:15px}.room-details-hero div:nth-child(2) span{color:var(--text-muted);font-size:11px}.room-details-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.room-details-stats>span{border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-color);grid-template-columns:auto 1fr;gap:2px 8px;padding:8px 9px;display:grid}.room-details-stats svg{color:var(--primary);grid-row:span 2;margin-top:2px}.room-details-stats small{color:var(--text-muted);font-size:10px}.room-details-stats strong{color:var(--text-primary);font-size:12px}.room-details-section{gap:8px;display:grid}.room-details-section h4{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:900}.room-details-bed-list{gap:7px;max-height:190px;display:grid;overflow:auto}.room-details-bed-row{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:38px;padding:8px 10px;display:flex}.room-details-bed-row:disabled{cursor:default}.room-details-bed-row.clickable{cursor:pointer}.room-details-bed-row.clickable:hover{border-color:var(--primary);background:var(--primary-light)}.room-details-bed-row span{color:var(--text-primary);align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.room-details-bed-row svg{color:var(--text-muted)}.bed-student-summary{min-width:120px;color:var(--primary);text-align:right;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 6px;margin-left:auto;display:grid}.bed-student-summary strong{color:var(--primary);text-overflow:ellipsis;white-space:nowrap;grid-column:1;font-size:12px;overflow:hidden}.bed-student-summary small{color:var(--text-muted);grid-column:1;font-size:10px}.bed-student-summary svg{color:var(--primary);grid-area:1/2/span 2}.room-details-status{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;padding:12px 0 0;display:flex}.room-details-status div{gap:2px;display:grid}.room-details-status strong{color:var(--text-primary);font-size:13px}.room-details-status span{color:var(--text-muted);font-size:11px}.room-status-pill{border-radius:var(--radius-full);border:0;border:1px solid var(--border-color);min-height:28px;color:var(--text-secondary);background:var(--bg-primary);text-transform:capitalize;cursor:pointer;align-items:center;gap:7px;padding:4px 7px 4px 10px;font-size:11px;font-weight:900;display:inline-flex}.room-status-pill.active{color:var(--success);background:#22c55e14;border-color:#22c55e59}.room-status-pill svg{color:var(--success);fill:#22c55e24}.room-details-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.student-details-modal{max-width:440px;overflow:hidden}.student-detail-head{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:20px 22px 14px;display:grid}.student-avatar{border-radius:var(--radius-full);width:58px;height:58px;color:var(--primary);background:var(--primary-light);justify-content:center;align-items:center;font-size:17px;font-weight:900;display:inline-flex}.student-title-block{min-width:0}.student-detail-head h3{color:var(--text-primary);margin:0;font-size:20px;line-height:1.1}.student-detail-head span{color:var(--text-muted);margin-top:7px;font-size:12px;font-weight:700;display:block}.student-detail-rule{background:var(--text-primary);opacity:.75;height:1px;margin-bottom:6px}.student-detail-section{gap:10px;padding-top:4px;display:grid}.student-detail-section h4{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:900}.student-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.student-detail-grid.one{grid-template-columns:1fr}.student-detail-grid span{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 9px;display:grid}.student-detail-grid svg{color:var(--text-muted);grid-row:span 2}.student-detail-grid small{color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:800}.student-detail-grid strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.student-detail-actions{grid-template-columns:1fr;display:grid}.student-directory-detail-modal{height:85vh;min-height:600px;max-height:850px;overflow:hidden}.student-profile-sheet{gap:16px;display:grid}.student-profile-actions{grid-template-columns:52px minmax(0,1.1fr) minmax(0,1.15fr) 52px;gap:10px;display:grid}.student-profile-actions .btn{justify-content:center;min-height:42px}.btn-danger-soft{color:var(--danger);background:#ef444414;border:1px solid #ef44442e}.btn-danger-soft:hover{background:#ef444424;border-color:#ef44444d}.room-status-pill.inactive{color:var(--danger);background:#ef444414;border-color:#ef444438}.monthly-wash-panel{gap:14px;display:grid}.monthly-wash-panel .detail-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.monthly-wash-panel .metric-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);gap:4px;min-height:72px;padding:12px 14px;display:grid}.monthly-wash-panel .metric-card span{color:var(--text-muted);font-size:11px;font-weight:800}.monthly-wash-panel .metric-card strong{color:var(--text-primary);font-size:22px}.monthly-wash-list{max-height:360px;display:grid;overflow-y:auto}.monthly-wash-row{border-bottom:1px solid var(--border-color);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.monthly-wash-row:last-child{border-bottom:0}.monthly-wash-row div{gap:4px;display:grid}.monthly-wash-row strong{color:var(--text-primary);font-size:13px}.monthly-wash-row span,.monthly-wash-row small{color:var(--text-muted);font-size:11px}.monthly-calendar-panel{gap:18px;display:grid}.monthly-student-strip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:14px;padding:12px 14px;display:flex}.monthly-student-strip div:last-child{gap:3px;display:grid}.monthly-student-strip strong{color:#07147d;font-size:15px}.monthly-student-strip span{color:var(--text-muted);font-size:12px}.monthly-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.monthly-summary-grid>div{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;justify-content:center;gap:4px;min-height:82px;padding:10px 12px;display:flex;box-shadow:0 4px 12px #0f172a0a}.monthly-summary-grid span{color:var(--text-muted);font-size:12px;font-weight:800}.monthly-summary-grid strong{color:var(--text-primary);font-size:24px;font-weight:900}.monthly-calendar-nav{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.monthly-calendar-nav strong{color:#07147d;text-align:center;font-size:15px}.monthly-calendar-nav button,.print-preview-nav button{border-radius:var(--radius-full);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.monthly-calendar-nav button:hover,.print-preview-nav button:hover:not(:disabled){color:var(--primary);background:var(--primary-light)}.print-preview-nav button:disabled{opacity:.35;cursor:not-allowed}.monthly-calendar-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:18px}.monthly-calendar-grid{grid-template-columns:repeat(7,minmax(38px,1fr));gap:7px;display:grid}.monthly-weekday{text-align:center;color:var(--text-secondary);padding-bottom:6px;font-size:11px;font-weight:800}.monthly-day{aspect-ratio:1;min-height:42px;color:var(--text-primary);cursor:pointer;background:#94a3b81f;border:1px solid #0000;border-radius:8px;position:relative}.monthly-day.has-wash{color:var(--success);background:#22c55e21;border-color:#22c55e6b;font-weight:900}.monthly-day.selected{color:#fff;background:var(--primary);border-color:var(--primary)}.monthly-day small{gap:2px;display:inline-flex;position:absolute;bottom:3px;right:3px}.monthly-day b,.monthly-day i{border-radius:var(--radius-full);color:#fff;min-width:14px;height:14px;padding:0 3px;font-size:8px;font-style:normal;line-height:14px}.monthly-day b{background:var(--success)}.monthly-day i{background:#a855f7}.monthly-selected-details{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;gap:12px;padding:16px;display:grid}.monthly-selected-details>strong{color:var(--text-primary);font-size:15px}.monthly-selected-details>span{color:var(--text-muted);text-align:center;padding:18px 0;font-size:13px}.monthly-selected-row{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.monthly-selected-row div{gap:4px;display:grid}.monthly-selected-row strong{color:var(--text-primary);font-size:13px}.monthly-selected-row span,.monthly-selected-row small{color:var(--text-muted);font-size:11px}.print-preview-nav{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;margin-top:8px;display:grid}.print-preview-nav span{color:var(--text-secondary);text-align:center;font-size:12px}@media (width<=640px){.student-directory-detail-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.student-profile-actions{grid-template-columns:48px 1fr}.student-profile-actions .btn:nth-child(3){grid-column:span 2}.monthly-wash-panel .detail-metrics-grid{grid-template-columns:1fr}.monthly-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-calendar-grid{grid-template-columns:repeat(7,minmax(34px,1fr));gap:5px}}.csv-file-chip{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);width:fit-content;max-width:100%;color:var(--text-secondary);align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.csv-file-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-module-panel{min-height:300px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-module-panel strong{color:var(--text-primary)}.operations-flow{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.flow-step{border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);text-align:center;cursor:pointer;font-size:11px;font-weight:700;font-family:var(--font-heading);padding:8px}.flow-step.active{background:var(--primary-light);color:var(--primary);border-color:#2563eb4d}.flow-step.selected{color:var(--primary);box-shadow:inset 0 -3px 0 var(--primary);border-color:#2563eb94}.machines-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.machine-card{flex-direction:column;padding:12px;display:flex;position:relative;overflow:hidden}.machine-status-strip{width:100%;height:4px;position:absolute;top:0;left:0}.machine-status-strip.available{background-color:var(--success)}.machine-status-strip.running{background-color:var(--primary)}.machine-status-strip.maintenance{background-color:var(--warning)}.machine-status-strip.broken{background-color:var(--danger)}.machine-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.machine-name{font-family:var(--font-heading);font-size:14px;font-weight:700}.machine-details{color:var(--text-secondary);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.laundry-screen{min-height:0}.laundry-header-actions{flex-wrap:wrap;gap:8px;display:flex}.laundry-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.laundry-feedback{justify-content:space-between;margin-bottom:0}.laundry-tabbar-row{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.laundry-tabs{background:0 0;border-radius:0;align-items:center;gap:30px;width:auto;margin:0;padding:0;display:flex}.laundry-tabs .tab-btn{color:#52525b;min-height:48px;box-shadow:none;background:0 0;border-radius:0;justify-content:center;align-items:center;gap:9px;padding:0 18px;font-size:14px;font-weight:800;line-height:1;display:inline-flex;position:relative}.laundry-tabs .tab-btn:hover{color:#075985;background:#ecfdf5bf}.laundry-tabs .tab-btn.active{color:#075985;background:#ecfdf5;box-shadow:inset 0 -3px #075985}.laundry-tabs .tab-btn strong{border-radius:var(--radius-full);color:#fff;background:#075985;justify-content:center;align-items:center;min-width:28px;height:28px;font-size:12px;font-weight:900;display:inline-flex}.laundry-tabs .tab-btn.active strong{color:#fff;background:#075985}.laundry-tabs-actions{justify-content:flex-end;min-width:146px;display:flex}.laundry-tabs-actions:empty{display:none}.laundry-tabs-actions .btn{white-space:nowrap;min-height:38px}.laundry-flow{grid-template-columns:repeat(11,minmax(150px,1fr));margin-bottom:0;overflow-x:auto}.laundry-workbench{grid-template-columns:minmax(260px,.78fr) minmax(0,1.72fr);gap:10px;min-height:0;display:grid}.laundry-tab-workspace{grid-template-columns:1fr;gap:10px;min-height:0;display:grid}.sub-tabs{grid-template-columns:repeat(2,minmax(160px,1fr));gap:8px;display:grid}.sub-tabs button{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);min-height:42px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-heading);justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-weight:800;display:inline-flex}.sub-tabs button.active{background:var(--primary-light);color:var(--primary);border-color:#2563eb59}.sub-tabs button span{border-radius:var(--radius-full);background:var(--bg-primary);min-width:24px;height:24px;color:inherit;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.laundry-panel{min-width:0;min-height:0}.barcode-action-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;display:grid}.collection-entry-block{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.collection-entry-block .barcode-action-row{margin-bottom:0}.collection-suggestion-panel{border-top:1px solid var(--border-color);flex-direction:column;gap:7px;padding-top:8px;display:flex}.collection-suggestion-panel>span{color:var(--text-muted);letter-spacing:.02em;font-size:11px;font-weight:800}.collection-suggestion-row{border-radius:var(--radius-sm);width:100%;min-height:56px;color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);background:#eff6ff;border:1px solid #93c5fd;grid-template-columns:36px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:8px;display:grid}.collection-suggestion-row:hover:not(:disabled){border-color:var(--primary);background:#dbeafe;transform:translateY(-1px)}.collection-suggestion-row:disabled{cursor:not-allowed;opacity:.7}.collection-suggestion-row strong,.collection-suggestion-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.collection-suggestion-row strong{color:#172554;font-family:monospace;font-size:12px;font-weight:900}.collection-suggestion-row small{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:700}.collection-suggestion-row>svg{color:var(--primary);justify-self:center}.batch-cloth-mode-row{align-items:center;gap:18px;margin:8px 0 12px;display:flex}.batch-cloth-mode-row label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:800;display:inline-flex}.batch-cloth-mode-row input{appearance:none;cursor:pointer;width:18px;height:18px;transition:border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);border:2px solid #cbd5e1;border-radius:50%;background:var(--bg-secondary)!important;box-shadow:none!important}.batch-cloth-mode-row input:checked{border-color:var(--primary)!important;background-color:var(--primary)!important;box-shadow:inset 0 0 0 4px var(--bg-secondary)!important}.batch-cloth-mode-row label.active{color:#0f172a}.batch-cloth-mode-row label:last-child input{border-color:#cbd5e1}.batch-cloth-mode-row label:last-child input:checked{box-shadow:inset 0 0 0 4px var(--bg-secondary)!important;background-color:#f97316!important;border-color:#f97316!important}.batch-cloth-mode-row label:last-child.active{color:#ea580c}.barcode-scan-btn{z-index:2;color:#94a3b8;cursor:pointer;width:28px;height:28px;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.barcode-scan-btn:hover{color:#1d4ed8;background:#eff6ff}.barcode-scan-btn+.form-input{padding-left:46px}.laundry-scan-modal .modal-header span{color:var(--text-secondary);margin-top:2px;font-size:12px;font-weight:700;display:block}.laundry-camera-reader{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);min-height:260px;overflow:hidden}.laundry-camera-reader video{border-radius:var(--radius-sm);width:100%!important}.scanner-helper-text{color:var(--text-secondary);text-align:center;margin-top:10px;font-size:13px;font-weight:800}.confirm-rewash-modal{max-width:380px}.confirm-rewash-header{align-items:center;gap:12px;padding:18px 20px 0;display:flex}.confirm-rewash-header h3{color:#172554;font-size:21px}.confirm-rewash-icon{color:#f97316;display:inline-flex}.confirm-rewash-modal .modal-body{color:#172554;font-size:14px;line-height:1.55}.confirm-rewash-modal .modal-body strong{color:#1d4ed8}.confirm-rewash-modal .modal-body span{margin-top:4px;display:block}.confirm-rewash-modal .warning-action{color:#fff;background:#f97316;border-color:#f97316}.confirm-rewash-modal .warning-action:hover{background:#ea580c;border-color:#ea580c}.cloth-mini-list{flex-direction:column;gap:6px;max-height:344px;display:flex;overflow:auto}.cloth-mini-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 8px;padding:8px;display:grid}.cloth-mini-row span,.cloth-mini-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cloth-mini-row span{font-family:monospace;font-size:12px;font-weight:800}.cloth-mini-row small{color:var(--text-muted);grid-column:2;font-size:11px}.collected-cloth-list{flex-direction:column;gap:8px;max-height:calc(100vh - 355px);display:flex;overflow:auto}.collected-cloth-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.collected-cloth-row strong,.collected-cloth-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.collected-cloth-row strong{font-family:monospace;font-size:13px}.collected-cloth-row small{color:var(--text-secondary);font-size:12px}.laundry-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;min-width:0;max-height:calc(100vh - 330px);padding-right:2px;display:grid;overflow:auto}.laundry-card-grid.single{grid-template-columns:1fr;max-height:calc(100vh - 365px)}.laundry-card-grid.sorting-batch-grid,.laundry-card-grid.no-scroll-batch-grid{max-height:none;padding-right:0;overflow:visible}.laundry-batch-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);flex-direction:column;gap:10px;min-width:0;padding:11px;display:flex;position:relative}@keyframes batchHighlight{0%{border-color:var(--primary);box-shadow:0 0 #4f46e566}50%{border-color:var(--primary);box-shadow:0 0 0 8px #4f46e500}to{border-color:var(--border-color);box-shadow:0 0 #4f46e500}}.batch-card-highlight{animation:2s ease-out batchHighlight}.sorting-batch-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));align-items:stretch;gap:14px}.sorting-app-batch-card{background:#fff;border-color:#e2e8f0;border-radius:12px;gap:12px;height:100%;padding:14px;box-shadow:0 8px 24px #0f172a0f}.sorting-app-batch-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.sorting-app-batch-head strong{color:#0b1b6d;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:900;overflow:hidden}.sorting-app-batch-head div{flex:none;align-items:center;gap:10px;display:inline-flex}.sorting-app-batch-head span{color:#64748b;font-size:11px;font-weight:600}.sorting-app-batch-head .icon-btn{color:#0284c7;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:inline-flex}.sorting-app-batch-head .icon-btn:hover{background:#0284c714}.sorting-app-clothes .batch-inline-cloth-list .empty-dashboard-state{color:#94a3b8;background:#f8fafc;border:1px dashed #cbd5e1b3;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:72px;margin:6px 0;font-size:13px;font-weight:500;display:flex}.sorting-app-batch-head .icon-btn.danger-text{color:#ef4444}.sorting-app-weight-line{color:#0b1b6d;font-size:12px;font-weight:500}.sorting-app-progress{border-radius:var(--radius-full);background:#eee;height:6px;overflow:hidden}.sorting-app-progress b{border-radius:inherit;background:#2563eb;height:100%;display:block}.sorting-app-clothes{flex-direction:column;flex:1;gap:9px;min-height:0;padding-top:0;display:flex}.sorting-app-clothes .batch-inline-clothes-header{color:#0b1b6d;min-height:28px;padding:0;font-size:12px}.sorting-app-clothes .batch-inline-clothes-header svg{color:#2563eb;transition:transform var(--transition-fast)}.sorting-app-clothes .batch-inline-clothes-header svg.collapsed{transform:rotate(-90deg)}.sorting-app-clothes .batch-inline-cloth-list{flex:1;gap:8px;max-height:none;padding-right:2px;overflow-y:auto}.sorting-app-clothes .batch-inline-cloth-list .empty-dashboard-state{margin:auto}.sorting-app-clothes .batch-inline-cloth-row{background:#fff;border-color:#dbeafe;border-radius:9px;min-height:58px;padding:8px 9px}.sorting-app-clothes .batch-inline-cloth-row.rewash{background:#fff7ed;border-color:#fdba74}.sorting-app-clothes .cloth-avatar{width:36px;height:36px}.sorting-app-clothes .batch-inline-cloth-info strong{color:#0b1b6d;letter-spacing:.01em;font-size:11px}.sorting-app-clothes .batch-inline-cloth-info small,.sorting-app-clothes .batch-inline-cloth-info span{font-size:10px;font-weight:700}.sorting-app-clothes .batch-inline-cloth-row em{justify-self:start;margin-top:1px;padding:2px 7px;font-size:9px}.sorting-app-clothes .inline-remove-cloth-btn{color:#ef4444;border-color:#ff6b6b;width:22px;height:22px}.sorting-app-mode-row{gap:26px;margin:auto 0 2px}.sorting-app-mode-row label{color:#0b1b6d;font-size:12px}[data-theme=dark] .sorting-app-mode-row label{color:var(--text-secondary)}[data-theme=dark] .sorting-app-mode-row label.active{color:#60a5fa}[data-theme=dark] .sorting-app-mode-row label:last-child.active{color:#ff9d43}.sorting-app-entry-row{grid-template-columns:minmax(180px,1fr) 64px 112px;align-items:center;gap:8px;display:grid}.sorting-app-entry-row .form-input{border-color:#cbd5e1;border-radius:6px;min-height:34px;font-size:12px}.sorting-app-entry-row .barcode-scan-btn{color:#94a3b8;width:28px;height:28px;left:8px}.sorting-app-entry-row .barcode-scan-btn+.form-input{padding-left:38px}.sorting-app-add-btn,.sorting-app-close-btn{color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:7px;min-height:34px;padding:0 10px;font-size:11px;font-weight:800}.sorting-app-add-btn{background:#f97316}.sorting-app-close-btn{background:#737373}.sorting-app-add-btn:disabled,.sorting-app-close-btn:disabled{cursor:not-allowed;opacity:.6}@media (width<=980px){.sorting-batch-grid{grid-template-columns:1fr}}@media (width<=560px){.sorting-app-entry-row{grid-template-columns:1fr 76px}.sorting-app-entry-row .search-input-wrapper{grid-column:1/-1}.sorting-app-close-btn{min-width:112px}}[data-theme=dark] .sorting-app-batch-card{background:var(--bg-secondary);border-color:var(--border-color);box-shadow:var(--shadow-sm)}[data-theme=dark] .sorting-app-batch-head strong{color:#60a5fa}[data-theme=dark] .sorting-app-batch-head span{color:var(--text-muted)}[data-theme=dark] .sorting-app-weight-line{color:var(--text-primary)}[data-theme=dark] .sorting-app-progress{background:var(--bg-primary)}[data-theme=dark] .sorting-app-clothes .batch-inline-clothes-header{color:var(--text-primary)}[data-theme=dark] .sorting-app-clothes .batch-inline-cloth-row{background:var(--bg-primary);border-color:var(--border-color)}[data-theme=dark] .sorting-app-clothes .batch-inline-cloth-row.rewash{background:#f59e0b1a;border-color:#f59e0b66}[data-theme=dark] .sorting-app-clothes .batch-inline-cloth-info strong{color:var(--text-primary)}[data-theme=dark] .sorting-app-clothes .batch-inline-cloth-info small{color:var(--text-secondary)}[data-theme=dark] .batch-cloth-mode-row label.active{color:var(--text-primary)}[data-theme=dark] .batch-cloth-mode-row label:last-child.active{color:#fb923c}.batch-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;display:inline-flex}.batch-card-icon-actions{align-items:center;gap:5px;margin-left:2px;display:inline-flex}.batch-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.batch-quick-actions{grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:6px;display:grid}.batch-quick-actions.single-action{grid-template-columns:minmax(0,1fr)}.batch-quick-actions .btn{min-width:0}.batch-quick-actions .icon-btn{border-radius:var(--radius-sm);width:32px;height:32px}.batch-inline-clothes{flex-direction:column;gap:8px;width:100%;min-width:0;padding-top:4px;display:flex}.batch-inline-clothes-header{color:#172554;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;min-height:30px;font-size:12px;font-weight:900;display:flex}.batch-inline-cloth-list{flex-direction:column;gap:8px;display:flex}.batch-inline-cloth-row{background:#fff;border:1px solid #dbeafe;border-radius:8px;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px;display:grid}.batch-inline-cloth-row.with-checkbox{grid-template-columns:24px 42px minmax(0,1fr) auto auto}.batch-inline-cloth-row.rewash{background:#fff7ed;border-color:#fed7aa}.batch-inline-cloth-info{flex-direction:column;gap:2px;min-width:0;display:flex}.batch-inline-cloth-info strong{color:#172554;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:900;display:flex;overflow:hidden}.batch-inline-cloth-info strong button{color:#2563eb;cursor:pointer;background:0 0;border:0;display:inline-flex}.batch-inline-cloth-info small,.batch-inline-cloth-info span{color:#475569;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.batch-inline-cloth-info span{color:#ea580c}.batch-inline-cloth-row em{color:#ea580c;background:#ffedd5;border:1px solid #fdba74;border-radius:999px;align-self:start;padding:2px 8px;font-size:10px;font-style:normal;font-weight:900}.batch-more-menu-wrap{display:inline-flex;position:relative}.batch-more-menu{z-index:40;border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:12px;min-width:156px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 36px #0f172a29}.batch-more-menu button{color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;padding:9px 8px;font-size:13px;font-weight:700;display:grid}.batch-more-menu button:hover:not(:disabled){background:var(--bg-hover)}.batch-more-menu button:disabled{cursor:not-allowed;opacity:.45}.batch-more-menu button svg{color:var(--primary)}.batch-more-menu button:last-child svg{color:var(--warning)}[data-theme=dark] .batch-more-menu{background:var(--bg-elevated);border-color:var(--border-color);box-shadow:0 18px 36px #0000006b}[data-theme=dark] .batch-more-menu button{color:#fff}.inline-remove-cloth-btn{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.inline-remove-cloth-btn:hover{background:#fef2f2}.batch-action-menu-wrap{position:relative}.batch-action-menu{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);width:190px;box-shadow:var(--shadow-lg);z-index:20;padding:7px;position:absolute;top:calc(100% + 6px);right:0}.batch-action-menu button{width:100%;min-height:36px;color:var(--text-primary);cursor:pointer;font-family:var(--font-heading);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:8px;font-size:12px;font-weight:700;display:flex}.batch-action-menu button:hover{background:var(--bg-hover)}.danger-text{color:var(--danger)}.compact-select{min-height:30px;padding:5px 8px;font-size:12px}.machine-inline{color:var(--text-secondary);align-items:center;gap:5px;margin-right:auto;font-size:12px;font-weight:700;display:inline-flex}.active-cycle-card{background:linear-gradient(180deg, var(--bg-secondary), var(--bg-primary));gap:9px}.active-card-icons{align-items:center;gap:6px;display:inline-flex}.active-card-icons .icon-btn{width:32px;height:32px}.active-card-meta{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.active-card-meta span:first-child{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;min-width:0;display:inline-flex;overflow:hidden}.machine-route{color:var(--primary)}.machine-route em{text-overflow:ellipsis;min-width:0;font-style:normal;font-weight:800;overflow:hidden}.machine-route b{color:var(--primary);font-weight:900}.active-card-progress div,.active-card-progress{border-radius:var(--radius-full);height:7px}.active-card-progress{background:var(--border-color);overflow:hidden}.active-card-progress b{border-radius:inherit;background:var(--success);height:100%;display:block}.active-cycle-actions{grid-template-columns:1fr 1fr;align-items:stretch;gap:8px;display:grid}.active-cycle-actions .btn{min-height:42px}.cycle-timer-btn{border-radius:var(--radius-sm);background:var(--warning-light);min-height:42px;color:var(--warning);cursor:pointer;font-family:var(--font-heading);text-align:left;border:1px solid #f59e0b7a;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:8px;padding:6px 8px 6px 12px;display:grid}.cycle-timer-btn.paused{background:var(--primary-light);color:var(--primary);border-color:#2563eb52}.cycle-timer-btn span{min-width:0}.cycle-timer-btn strong,.cycle-timer-btn small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.cycle-timer-btn strong{font-size:12px}.cycle-timer-btn small{color:inherit;opacity:.78;font-size:11px}.cycle-timer-btn>svg{border-radius:var(--radius-full);color:#fff;background:#f97316;width:34px;height:34px;padding:8px}.cycle-timer-btn.paused>svg{background:var(--primary)}.cycle-start-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;min-height:42px;font-family:var(--font-heading);text-align:center;background:#f59e0b;border:0;padding:8px 12px;font-size:13px;font-weight:900;box-shadow:0 8px 18px #f59e0b33}.cycle-start-btn.next-cycle{background:var(--primary);box-shadow:0 8px 18px #2563eb2e}.cycle-start-btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.mark-stage-btn{border-radius:var(--radius-sm);background:var(--success);color:#fff;cursor:pointer;min-height:42px;font-family:var(--font-heading);text-align:center;border:0;padding:8px 12px;font-size:12px;font-weight:800}.mark-stage-btn:disabled{opacity:.6;cursor:not-allowed}.active-cycle-footer{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.laundry-ops-grid{grid-template-columns:1fr;gap:10px;min-height:0;display:grid}.stage-tabs{grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;display:grid;overflow-x:auto}.stage-tabs button{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);min-height:52px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 12px;display:flex}.stage-tabs button.active{background:var(--primary-light);color:var(--primary);box-shadow:0 4px 10px var(--primary-glow);border-color:#2563eb52}.stage-tabs button span{background:0 0;border-radius:0;min-width:auto;height:auto;padding:0;display:inline-block}.stage-tabs button .stage-name{font-family:var(--font-heading);color:inherit;font-size:13px;font-weight:700}.stage-tabs button .stage-count{color:var(--text-muted);font-size:11px;font-weight:800}.stage-tabs button.active .stage-count{color:var(--primary)}.laundry-stage-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0;display:grid}.laundry-stage-columns>.laundry-panel:nth-child(3){grid-column:1/-1}.delivery-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mode-toggle{border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-color);gap:6px;margin-bottom:10px;padding:4px;display:inline-flex}.mode-toggle button{min-height:30px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-heading);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:800;display:inline-flex}.mode-toggle button.active{background:var(--primary);color:#fff}.mode-toggle button.active.warning{background:var(--warning)}.delivery-summary-grid div{border-radius:var(--radius-sm);background:var(--bg-primary);text-align:center;padding:12px}.delivery-summary-grid strong{font-size:24px;font-family:var(--font-heading);display:block}.delivery-summary-grid span{color:var(--text-secondary);font-size:12px;font-weight:700}.bulk-import-progress{border-radius:var(--radius-sm);background:linear-gradient(135deg,#2563eb14,#06b6d40f);border:1px solid #2563eb2e;gap:12px;padding:14px;display:grid}.bulk-import-progress.done{background:#10b98114;border-color:#10b98140}.bulk-import-progress.error{background:#ef444414;border-color:#ef444440}.bulk-progress-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.bulk-progress-head div{gap:3px;display:grid}.bulk-progress-head strong{color:var(--text-primary);font-size:13px}.bulk-progress-head span{color:var(--text-secondary);font-size:12px}.bulk-progress-bar{border-radius:var(--radius-full);background:#94a3b838;height:8px;overflow:hidden}.bulk-progress-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--info));min-width:0;height:100%;transition:width var(--transition-normal);display:block}.bulk-import-progress.done .bulk-progress-bar span{background:var(--success)}.bulk-import-progress.error .bulk-progress-bar span{background:var(--danger)}.bulk-progress-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.bulk-progress-stats span{color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);text-transform:uppercase;border-radius:6px;gap:2px;padding:8px;font-size:10px;font-weight:800;display:grid}.bulk-progress-stats strong{color:var(--text-primary);font-size:15px}.bulk-selection-bar{border-radius:var(--radius-sm);background:#ef44440f;border:1px solid #ef44442e;justify-content:flex-end;align-items:center;gap:10px;padding:10px 12px;display:flex}.bulk-selection-bar>div{gap:2px;margin-right:auto;display:grid}.bulk-selection-bar strong{color:var(--text-primary);font-size:13px}.bulk-selection-bar span{color:var(--text-secondary);font-size:11px}.bulk-checkbox{appearance:none;background:var(--input-bg);cursor:pointer;border:1.5px solid #cbd5e1;border-radius:4px;width:16px;height:16px;transition:all .2s}.bulk-checkbox:checked{border-color:var(--primary);background-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 9.2l3.1 3.1L14.2 5.2' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:11px 11px}.bulk-checkbox:focus-visible{outline:3px solid var(--primary-glow);outline-offset:2px}.admin-table td .bulk-checkbox,.admin-table th .bulk-checkbox{margin:0 auto;display:block}.compact-search{width:min(360px,100%)}.delivery-list{flex-direction:column;gap:8px;max-height:calc(100vh - 330px);display:flex;overflow:auto}.delivery-row{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;display:grid}.delivery-row strong,.delivery-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.delivery-row small{color:var(--text-secondary);font-size:12px}.delivery-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.delivery-mobile-panel{flex-direction:column;gap:12px;padding:16px;display:flex}.delivery-scan-box{border:1.5px solid var(--text-primary);border-radius:var(--radius-sm);background:var(--bg-secondary);grid-template-columns:auto minmax(0,1fr) 36px;align-items:center;gap:10px;min-height:50px;padding:8px 10px;display:grid}.delivery-scan-box>svg{color:var(--primary)}.delivery-scan-box input{min-width:0;color:var(--text-primary);background:0 0;border:0;outline:0;font-size:14px}.delivery-scan-box input::placeholder{color:var(--text-muted)}.delivery-scan-box button{border-radius:var(--radius-sm);background:var(--bg-primary);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border:0;justify-content:center;align-items:center;display:inline-flex}.delivery-mobile-tabs{border-bottom:1px solid var(--text-primary);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.delivery-mobile-tabs button{min-height:42px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-heading);background:0 0;border:0;border-bottom:3px solid #0000;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:800;display:inline-flex}.delivery-mobile-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.delivery-mobile-tabs span{border-radius:var(--radius-full);background:var(--warning);color:#fff;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:10px;display:inline-flex}.delivery-filter-row{justify-content:center;gap:18px;margin-top:-4px;display:flex}.delivery-filter-row button{color:var(--text-primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;font-size:12px;display:inline-flex}.delivery-search-line{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:38px;padding:0 10px;display:grid}.delivery-search-line svg{color:var(--text-muted)}.delivery-search-line input{min-width:0;color:var(--text-primary);background:0 0;border:0;outline:0;font-size:13px}.laundry-column-controls{border-bottom:1px solid var(--border-color);flex-direction:column;gap:10px;margin-top:5px;margin-bottom:15px;padding-bottom:15px;display:flex}.delivery-column-list{flex-direction:column;gap:10px;max-height:calc(100vh - 500px);padding-right:4px;display:flex;overflow-y:auto}.delivery-mobile-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);box-shadow:var(--shadow-sm);align-items:center;gap:10px;padding:12px;display:flex}.delivery-mobile-card-info{flex:1;min-width:0}.delivery-mobile-card strong,.delivery-mobile-card small,.delivery-mobile-card span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.delivery-mobile-card strong{color:var(--primary);font-size:14px}.delivery-mobile-card small{color:var(--text-secondary);font-size:11px}.delivery-mobile-card span{color:var(--warning);font-family:monospace;font-size:11px;font-weight:800}.delivery-mobile-card span button{width:20px;height:20px;color:var(--primary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.delivery-mobile-card .status-chip{white-space:nowrap;align-self:center;font-style:normal}.delivery-card-action{border-radius:var(--radius-sm);background:var(--success);min-height:30px;color:var(--text-inverse);cursor:pointer;white-space:nowrap;border:0;align-self:center;padding:6px 12px;font-size:11px;font-weight:800}.history-batch-list{flex-direction:column;gap:16px;max-height:calc(100vh - 260px);padding:2px 4px 12px;display:flex;overflow:auto}.history-month-group{flex-direction:column;gap:12px;display:flex}.history-month-header{font-family:var(--font-heading);color:var(--text-primary);border-bottom:1px dashed var(--border-color);margin:12px 0 4px;padding-bottom:6px;font-size:15px;font-weight:800}.history-batch-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.history-batch-card{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border-radius:10px;flex-direction:column;justify-content:space-between;padding:14px;display:flex}.history-batch-card:hover{border-color:var(--sidebar-active-bg);box-shadow:var(--shadow-md);transform:translateY(-2px)}.history-batch-card:focus-visible{outline-offset:2px;outline:3px solid #2563eb40}.history-filters-toolbar{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.history-filters-left{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.history-filters-left .filter-item{flex-direction:column;gap:4px;display:flex}.history-filters-left .filter-item label{color:var(--text-secondary);font-size:11px;font-weight:700}.history-filters-left .filter-item select,.history-filters-left .filter-item input{border:1px solid var(--border-color);background:var(--bg-surface);height:32px;color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:13px}.history-filters-right{color:var(--text-muted);align-items:center;gap:12px;font-size:13px;font-weight:700;display:flex}.history-clear-btn{color:#ef4444;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;font-size:13px;font-weight:800;display:inline-flex}.history-clear-btn:disabled{cursor:not-allowed;opacity:.55}.clear-filters-btn{border:1px solid var(--border-color);background:var(--bg-surface);height:32px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.clear-filters-btn:hover{background:var(--bg-subtle)}.history-card-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.history-card-main strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-heading);color:var(--text-primary);font-size:15px;font-weight:800;display:block;overflow:hidden}.history-card-main .badge-primary{background:var(--bg-subtle);color:var(--text-primary)}.history-flow-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.history-flow-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.history-card-meta{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.history-card-meta span{color:var(--text-secondary);align-items:center;gap:5px;font-size:12px;font-weight:700;display:inline-flex}.history-card-rule{background:var(--border-color);opacity:.5;width:100%;height:1px;margin:10px 0 8px}.history-created-line{color:var(--text-muted);align-items:center;gap:5px;font-size:11.5px;font-weight:600;display:inline-flex}.completed-batch-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);box-shadow:var(--shadow-sm);overflow:hidden}.completed-batch-header{border:0;border-bottom:1px solid var(--border-color);background:var(--primary-light);width:100%;min-height:48px;color:var(--primary);cursor:pointer;font-family:var(--font-heading);text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;font-weight:800;display:flex}.completed-batch-header:hover{background:var(--bg-hover)}.completed-batch-header span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:hidden}.completed-open-icon{opacity:.58;flex:none}[data-theme=dark] .completed-batch-header{color:#60a5fa;background:#2563eb1f}.completed-batch-header small{border-radius:var(--radius-full);background:var(--success-light);color:var(--success);white-space:nowrap;border:1px solid #10b98159;padding:4px 9px;font-size:11px;font-weight:800}.completed-cloth-list{flex-direction:column;gap:8px;padding:12px 14px 14px;display:flex}.completed-cloth-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);grid-template-columns:40px minmax(0,1fr) 32px;align-items:center;gap:10px;padding:10px 12px;display:grid}.completed-cloth-row strong,.completed-cloth-row small,.completed-select-row strong,.completed-select-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.completed-cloth-row strong,.completed-select-row strong{color:var(--primary);font-family:monospace;font-size:13px;font-weight:800}[data-theme=dark] .completed-cloth-row strong,[data-theme=dark] .completed-select-row strong{color:#60a5fa}.completed-cloth-row small,.completed-select-row small{color:var(--text-secondary);font-size:11px}.completed-delivery-modal{border-radius:14px;max-width:420px;overflow:hidden}.completed-delivery-header{background:var(--primary);color:#fff;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:18px;display:grid}.completed-delivery-header h3{color:#fff;align-items:center;gap:8px;font-size:17px;display:flex}.completed-delivery-header p{color:#ffffffc7;text-align:center;margin-top:10px;font-size:12px}.completed-delivery-header .icon-btn{color:#fff;background:0 0}.completed-delivery-selectbar{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:9px 16px;display:flex}.completed-delivery-selectbar label{align-items:center;gap:8px;font-weight:800;display:inline-flex}.completed-delivery-selectbar input,.completed-select-row input{width:17px;height:17px;accent-color:var(--primary)}.completed-delivery-selectbar strong{color:var(--success);font-size:12px}.completed-delivery-body{flex-direction:column;gap:8px;max-height:min(52vh,360px);padding:12px;display:flex;overflow:auto}.completed-select-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;grid-template-columns:20px 40px minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.completed-select-row.selected{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.completed-delivery-footer{grid-template-columns:1fr 1.25fr;gap:10px;display:grid}.machine-assets-page{height:100%;padding-bottom:88px;padding-right:2px;position:relative;overflow:auto}.machine-assets-hero h2{font-size:20px;font-weight:800}.machine-assets-hero p{color:var(--text-secondary);font-size:13px}.machine-assets-hero{box-shadow:none;background:0 0;border:0;flex-wrap:nowrap;padding:0}.machine-hero-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:8px;display:flex}.machine-assets-toolbar{padding:10px 12px;display:grid}.machine-search-box{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);flex:520px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:grid}.machine-search-box svg{color:var(--text-muted)}.machine-search-box input{min-width:0;color:var(--text-primary);background:0 0;border:0;outline:0}.machine-search-box button{border-radius:var(--radius-sm);background:var(--bg-primary);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border:0}.machine-filter-groups{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.machine-filter-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex;overflow-x:auto}.machine-filter-group button{border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--bg-secondary);min-height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex:none;align-items:center;gap:8px;padding:4px 6px 4px 14px;font-size:12px;font-weight:800;display:inline-flex}.machine-filter-group button.active{background:var(--chip-color,var(--primary));border-color:var(--chip-color,var(--primary));color:#fff}.filter-count-badge{background:var(--chip-color,var(--primary));color:#fff;border-radius:50%;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 4px;font-size:10px;font-weight:800;display:inline-flex}.machine-filter-group button.active .filter-count-badge{color:var(--chip-color,var(--primary));background:#fff}.machine-asset-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid;overflow:visible}.machine-asset-card{grid-template-columns:6px minmax(0,1fr);padding:0;display:grid;position:relative;overflow:visible}.machine-asset-stripe{background:var(--asset-color)}.machine-asset-content{min-width:0;padding:14px}.machine-asset-head{grid-template-columns:42px minmax(0,1fr) auto 34px;align-items:center;gap:8px;display:grid}.machine-type-icon{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--asset-color) 12%, transparent);width:38px;height:38px;color:var(--asset-color);justify-content:center;align-items:center;display:inline-flex}.machine-title-row{align-items:center;gap:5px;min-width:0;display:flex}.machine-asset-head strong,.machine-asset-head small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.machine-asset-head strong{font-size:15px;font-weight:900}.machine-asset-head small{color:var(--asset-color);font-size:11px;font-weight:800}.machine-serial{background:var(--primary-light);color:var(--primary);border-radius:6px;flex:none;padding:2px 6px;font-size:10px;font-weight:900}.machine-status-pill{border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;padding:5px 9px;font-size:11px;font-style:normal;font-weight:900;display:inline-flex}.machine-status-pill:before{content:"";border-radius:var(--radius-full);background:currentColor;width:6px;height:6px}.machine-status-pill.active{background:var(--success-light);color:var(--success)}.machine-status-pill.available{background:var(--bg-primary);color:var(--text-muted)}.machine-status-pill.maintenance{background:var(--warning-light);color:var(--warning)}.machine-status-pill.inactive{background:var(--danger-light);color:var(--danger)}.machine-asset-menu{width:210px;right:0}.machine-meta-list{flex-direction:column;gap:7px;margin-top:12px;display:flex}.machine-meta-list div{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;font-weight:500;display:inline-flex}.machine-meta-list div svg{color:var(--text-muted)}.machine-cost-row{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.machine-cost-row button,.machine-cost-row span{align-items:center;gap:6px;min-height:28px;font-size:12px;font-weight:700;display:inline-flex}.machine-cost-row button{border-radius:var(--radius-full);background:var(--primary);color:#fff;cursor:pointer;transition:opacity var(--transition-fast);border:0;padding:6px 16px}.machine-cost-row button:hover{opacity:.9;background:var(--primary);color:#fff}.machine-cost-row button svg{color:#fff!important}.machine-cost-row span{color:var(--text-secondary);background:0 0;border:0;padding:0}.machine-floating-add{z-index:25;background:var(--primary);color:#fff;min-height:50px;box-shadow:var(--shadow-lg);cursor:pointer;font-family:var(--font-heading);border:0;border-radius:14px;align-items:center;gap:8px;padding:0 20px;font-weight:900;display:inline-flex;position:fixed;bottom:28px;right:28px}.machine-form-modal{max-width:760px}.machine-cost-modal{background:#f8fafc;width:min(92vw,560px);max-height:88vh;overflow:hidden}.machine-cost-header{background:var(--primary);color:#fff;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;min-height:76px;padding:14px 18px;display:grid}.machine-cost-header h3,.machine-cost-header span{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;display:block;overflow:hidden}.machine-cost-header h3{color:#fff;font-size:18px;font-weight:900}.machine-cost-header span{opacity:.82;margin-top:2px;font-size:12px;font-weight:700}.machine-cost-header .icon-btn{color:#fff;background:#ffffff1a;border-color:#ffffff40}.machine-cost-header .btn{color:var(--primary);background:#fff}.machine-cost-summary-card{background:linear-gradient(135deg,#fff,#f1f5f9);border:1px solid #e2e8f0;border-radius:20px;margin:16px;padding:18px;box-shadow:0 10px 28px #0f172a0f}.machine-cost-summary-card>span{color:#64748b;font-size:12px;font-weight:700}.machine-cost-summary-card>strong{color:#172554;margin-top:5px;font-size:28px;font-weight:900;display:block}.machine-cost-summary-rule{opacity:.8;background:#111827;height:1px;margin:16px 0}.machine-cost-split{grid-template-columns:1fr 1fr;gap:16px;display:grid}.machine-cost-split div+div{border-left:1px solid #e2e8f0;padding-left:16px}.machine-cost-split span,.machine-cost-split b{display:block}.machine-cost-split span{color:#64748b;font-size:11px;font-weight:700}.machine-cost-split b{color:var(--success);margin-top:5px;font-size:16px}.machine-cost-split div+div b{color:#f97316}.machine-cost-tabs-container{justify-content:space-between;align-items:center;gap:12px;margin:0 16px 12px;display:flex}.machine-cost-tabs{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:14px;flex:1;grid-template-columns:1fr 1fr;gap:4px;height:46px;padding:4px;display:grid}.machine-cost-add-btn{white-space:nowrap;border-radius:14px;align-items:center;gap:6px;height:46px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.machine-cost-tabs button{color:#475569;cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:900;display:inline-flex}.machine-cost-tabs button.active{color:var(--primary);background:#fff;box-shadow:0 5px 12px #0f172a12}.machine-cost-list{min-height:260px;max-height:calc(88vh - 330px);padding:0 16px 18px;overflow:auto}.machine-cost-empty{color:#64748b;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:250px;padding:28px;display:flex}.machine-cost-empty div{width:82px;height:82px;color:var(--primary);background:#dbeafe;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.machine-cost-empty strong{color:#172554;font-size:15px;font-weight:900}.machine-cost-empty span{max-width:330px;font-size:13px;line-height:1.45}.machine-maintenance-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:grid}.maintenance-card-icon{border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.maintenance-card-icon.scheduled{color:#fb923c;background:#fff7ed}.maintenance-card-icon.completed{color:#22c55e;background:#f0fdf4}.btn-complete-action{color:#fff;cursor:pointer;height:32px;font-size:12px;font-weight:700;font-family:var(--font-heading);transition:background-color var(--transition-fast);background:#10b981;border:0;border-radius:8px;align-items:center;gap:5px;padding:6px 12px;display:inline-flex}.btn-complete-action:hover{background:#059669}.maintenance-card-amount{color:#ef4444;white-space:nowrap;font-size:14px;font-weight:800}.btn-delete-action{color:#94a3b8;cursor:pointer;width:32px;height:32px;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.btn-delete-action:hover{color:#ef4444;background-color:var(--bg-hover)}.maintenance-card-copy{min-width:0}.maintenance-card-copy strong,.maintenance-card-copy span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.maintenance-card-copy strong{color:#0f172a;font-size:14px;font-weight:900}.maintenance-card-copy span{color:#64748b;margin-top:5px;font-size:11px;font-weight:700}.maintenance-card-copy span svg{vertical-align:-2px;margin-right:4px}.maintenance-card-actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.maintenance-card-actions.inline{flex-direction:row;align-items:center;gap:18px}.maintenance-card-actions b{color:#ef4444;font-size:14px;font-weight:900}.success-text{color:var(--success)!important}.machine-maintenance-form-modal{max-width:440px}.machine-types-modal{max-width:460px}.machine-status-modal{border-radius:16px;max-width:320px}.machine-status-options{flex-direction:column;gap:4px;padding:4px 0;display:flex}.machine-status-options button{min-height:38px;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr) 20px;align-items:center;gap:10px;padding:8px 4px;font-weight:700;display:grid}.machine-status-options button svg{color:var(--success)}.machine-status-dot{border-radius:var(--radius-full);width:8px;height:8px}.machine-status-dot.active{background:var(--success)}.machine-status-dot.inactive{background:var(--danger)}.machine-status-dot.maintenance{background:var(--warning)}.machine-types-help{color:var(--text-secondary);margin:0 0 12px;font-size:12px}.machine-type-list{flex-direction:column;gap:7px;max-height:300px;display:flex;overflow:auto}.machine-type-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);grid-template-columns:minmax(0,1fr) 34px 34px;align-items:center;gap:6px;padding:9px 10px;display:grid}.machine-type-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.machine-type-form{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:12px;display:grid}.barcode-chip{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);align-items:center;gap:4px;padding:6px 8px;font-family:monospace;font-size:11px;font-weight:800;display:inline-flex}.laundry-machine-grid{max-height:calc(100vh - 290px);padding-right:2px;overflow:auto}.machine-status-strip.active{background-color:var(--success)}.machine-status-strip.inactive{background-color:var(--text-muted)}.machine-actions{gap:8px;margin-top:auto;display:flex}.small-btn{padding:6px 10px;font-size:11px}.laundry-detail-modal{max-width:760px}.batch-detail-modal{background:#fff;width:min(92vw,560px);max-height:82vh;overflow:hidden}.batch-detail-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:18px 20px 12px;display:grid}.batch-detail-header h3{color:#1d4ed8;margin:0;font-size:18px;font-weight:900}.batch-detail-header span{color:#64748b;margin-top:5px;font-size:12px;font-weight:700;display:block}.batch-detail-summary{border-top:1px solid #111827;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 20px;padding:12px 0;display:grid}.batch-detail-summary div{min-width:0}.batch-detail-summary span,.batch-detail-summary strong{display:block}.batch-detail-summary span{color:#64748b;font-size:12px}.batch-detail-summary strong{color:#0f172a;margin-top:2px;font-size:13px;font-weight:900}.batch-detail-clothes-head{color:#0f172a;padding:0 20px 8px;font-size:14px;font-weight:900}.batch-detail-cloth-list{flex-direction:column;gap:8px;max-height:min(48vh,420px);padding:0 20px 20px;display:flex;overflow:auto}.batch-detail-cloth-row{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.batch-detail-cloth-row.rewash{background:#fff7ed;border-color:#fdba74}.batch-detail-cloth-info{min-width:0}.batch-detail-cloth-info strong{color:#172554;align-items:center;gap:4px;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:900;display:flex}.batch-detail-cloth-info strong>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.batch-detail-cloth-info button{color:#2563eb;cursor:pointer;background:0 0;border:0;display:inline-flex}.batch-detail-cloth-info em{color:#ea580c;background:#ffedd5;border:1px solid #fdba74;border-radius:999px;padding:2px 7px;font-size:10px;font-style:normal;font-weight:900}.batch-detail-cloth-info small,.batch-detail-cloth-info p{color:#475569;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:4px 0 0;font-size:11px;font-weight:700;overflow:hidden}.batch-detail-cloth-info p{color:#ea580c}.process-flow-modal{max-width:480px;overflow:hidden}.process-flow-header{background:var(--info-light);grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:10px;padding:14px 16px;display:grid}.process-flow-header h3{margin:1px 0 6px;font-size:16px;line-height:1.15}.process-flow-header span{color:var(--text-secondary);font-size:11px;font-weight:700}.process-flow-icon{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--primary);background:var(--primary-light);justify-content:center;align-items:center;display:inline-flex}.process-flow-meta{border-bottom:1px solid var(--border-color);scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding:9px 16px;display:flex;overflow-x:auto}.process-flow-meta::-webkit-scrollbar{display:none}.process-flow-meta span,.status-chip{border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;padding:5px 8px;font-size:10.5px;font-weight:800;display:inline-flex}.status-chip.badge-info{color:var(--info);background:var(--info-light)}.status-chip.badge-success{color:var(--success);background:var(--success-light)}.status-chip.badge-warning{color:var(--warning);background:var(--warning-light)}.status-chip.badge-danger{color:var(--danger);background:var(--danger-light)}.status-chip.badge-primary{color:var(--primary);background:var(--primary-light)}.process-timeline{flex-direction:column;gap:0;max-height:min(58vh,470px);padding:12px 16px 4px;display:flex;position:relative;overflow:auto}.process-timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:29px;bottom:22px;left:31px}.process-timeline-item{grid-template-columns:30px minmax(0,1fr);gap:10px;padding-bottom:18px;display:grid;position:relative}.process-timeline-marker{--process-color:var(--primary);border-radius:var(--radius-full);width:30px;height:30px;color:var(--process-color);background:color-mix(in srgb, var(--process-color) 12%, transparent);border:1.5px solid color-mix(in srgb, var(--process-color) 55%, transparent);z-index:1;justify-content:center;align-items:center;display:inline-flex}.process-timeline-item.inferred .process-timeline-marker{opacity:.55;background:color-mix(in srgb, var(--process-color) 7%, transparent);border-color:color-mix(in srgb, var(--process-color) 38%, transparent)}.process-timeline-item.inferred .process-timeline-content{opacity:.72}.process-timeline-content{padding-bottom:2px}.process-timeline-content>div{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.process-timeline-content strong{font-size:12.5px;line-height:1.25}.process-timeline-content time{color:var(--text-muted);white-space:nowrap;font-size:10.5px}.process-timeline-content p{color:var(--text-secondary);margin:3px 0 6px;font-size:11.5px;line-height:1.38}.process-status-chip{--process-color:var(--primary);color:var(--process-color);background:color-mix(in srgb, var(--process-color) 13%, transparent)}.process-flow-modal .modal-footer{justify-content:stretch;padding:10px 16px 14px}.process-flow-modal .modal-footer .btn{justify-content:center;width:100%}.cloth-modal-search{margin-bottom:12px}.cloth-type-tabs{gap:8px;padding-bottom:10px;display:flex;overflow-x:auto}.cloth-type-tabs button{border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);min-height:34px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.cloth-type-tabs button.active{color:var(--primary);background:var(--primary-light);border-color:#2563eb47}.cloth-type-tabs span{border-radius:var(--radius-full);background:var(--primary);min-width:19px;height:19px;color:var(--text-inverse);justify-content:center;align-items:center;font-size:10px;display:inline-flex}.cloth-detail-list{flex-direction:column;gap:8px;max-height:min(58vh,460px);display:flex;overflow:auto}.cloth-detail-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px;display:grid}.cloth-avatar{border-radius:var(--radius-sm);background:var(--warning-light);width:36px;height:36px;color:var(--warning);justify-content:center;align-items:center;display:inline-flex}.cloth-avatar img,.cloth-inline-image{object-fit:contain;width:28px;height:28px;display:block}.cloth-detail-row.selectable{cursor:pointer;grid-template-columns:auto auto minmax(0,1fr)}.cloth-detail-row input{width:16px;height:16px;accent-color:var(--primary)}.cloth-detail-row strong,.cloth-detail-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.cloth-detail-row small{color:var(--text-secondary);font-size:12px}.split-summary{border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:10px;font-weight:800;display:flex}.split-summary small{color:var(--text-secondary);font-weight:600}.split-batch-modal{border-radius:12px;max-width:390px;overflow:hidden}.split-modal-header{color:#fff;background:linear-gradient(135deg, var(--primary), #0f76d8);grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px 16px 14px;display:grid}.split-modal-header .icon-btn{color:#fff;background:0 0}.split-header-title{align-items:center;gap:8px;min-width:0;display:flex}.split-header-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.split-header-title h3{color:#fff;font-size:17px}.split-header-title span{display:none}.split-total-chips{flex-wrap:wrap;grid-column:1/-1;justify-content:center;gap:14px;display:flex}.split-total-chips span{color:#ffffffc7;align-items:center;gap:5px;font-size:12px;font-weight:700;display:inline-flex}.split-modal-body{padding:14px}.split-target-row{grid-template-columns:minmax(0,1fr) 78px;align-items:end;gap:10px;display:grid}.split-target-row .form-label{color:var(--primary);font-size:12px;font-weight:800}.split-weight-input{border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--bg-secondary);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.split-weight-input .form-input{min-height:39px;box-shadow:none;border:0}.split-weight-input span{color:var(--text-muted);padding:0 11px;font-size:12px;font-weight:800}.split-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 18px;display:grid}.split-stat-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);padding:9px}.split-stat-card.selected{color:var(--primary);background:var(--primary-light);border-color:#2563eb47}.split-stat-card.remaining{color:var(--warning);background:var(--warning-light);border-color:#f59e0b47}.split-stat-card span,.split-stat-card strong{display:block}.split-stat-card span{font-size:11px;font-weight:800}.split-stat-card strong{margin-top:2px;font-size:11px}.split-cloth-list{flex-direction:column;gap:8px;max-height:min(46vh,360px);display:flex;overflow:auto}.split-cloth-row{background:var(--bg-secondary);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;display:grid}.split-cloth-row input{appearance:none;width:18px;height:18px;accent-color:var(--primary);cursor:pointer;background:#fff;border:2px solid #9bbcff;border-radius:4px;place-items:center;display:inline-grid}.split-cloth-row input:before{content:"";opacity:0;border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;transform:rotate(45deg)translateY(-1px)}.split-cloth-row input:checked{border-color:var(--primary);background:var(--primary)}.split-cloth-row input:checked:before{opacity:1}.split-cloth-row strong,.split-cloth-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.split-cloth-row strong{color:var(--primary);font-size:13px}.split-cloth-row small{color:var(--text-secondary);font-size:11px}.split-weight-pill{border-radius:var(--radius-full);background:var(--primary-light);color:var(--primary);border:1px solid #2563eb5c;padding:4px 8px;font-size:11px;font-weight:800}.split-modal-footer{background:var(--bg-secondary);border-top:0;justify-content:center;padding-top:0}.split-cancel-btn{color:var(--primary);cursor:pointer;font-family:var(--font-heading);background:0 0;border:0;padding:8px 14px;font-size:13px;font-weight:800}.revert-batch-modal{border-radius:12px;max-width:420px;overflow:hidden}.revert-modal-header{background:var(--warning-light);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:16px;display:grid}.revert-header-icon{border-radius:var(--radius-sm);width:38px;height:38px;color:var(--warning);background:var(--bg-secondary);border:1px solid #f59e0b47;justify-content:center;align-items:center;display:inline-flex}.revert-header-icon.merge{color:var(--primary);border-color:#2563eb47}.merge-batch-confirm-modal .revert-modal-header{background:var(--primary-light)}[data-theme=dark] .revert-modal-header h3,[data-theme=dark] .revert-modal-header span,[data-theme=dark] .revert-modal-body p{color:#fff}[data-theme=dark] .merge-batch-confirm-modal .revert-modal-header,[data-theme=dark] .revert-modal-header{background:var(--bg-elevated)}.revert-modal-header h3{color:var(--text-primary);font-size:18px}.revert-modal-header span{color:var(--text-secondary);margin-top:2px;font-size:12px;font-weight:700;display:block}.revert-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.revert-summary-grid span{border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);justify-content:center;align-items:center;gap:6px;padding:9px;font-size:12px;font-weight:800;display:inline-flex}.revert-modal-body p{color:var(--text-secondary);font-size:13px;line-height:1.5}.revert-modal-footer{justify-content:flex-end}.cycle-notification-card{background:var(--bg-secondary);width:min(520px,100vw - 32px);box-shadow:var(--shadow-lg);z-index:1002;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 16px;display:grid;position:fixed;top:18px;left:50%;transform:translate(-50%)}.cycle-notification-dot{border-radius:var(--radius-full);width:28px;height:28px;color:var(--primary);border:3px solid var(--primary);justify-content:center;align-items:center;display:inline-flex}.cycle-notification-card strong,.cycle-notification-card span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.cycle-notification-card strong{color:var(--text-primary);font-size:13px}.cycle-notification-card span{color:var(--text-secondary);font-size:12px}.cycle-complete-modal{border-radius:12px;max-width:360px;padding:20px 20px 16px}.cycle-complete-header{align-items:center;gap:10px;display:flex}.cycle-complete-header svg{color:var(--success)}.cycle-complete-header h3{color:var(--text-primary);font-size:22px}.cycle-complete-body{padding:14px 0 18px}.cycle-complete-body p{color:var(--text-primary);margin-bottom:14px;font-size:13px;line-height:1.45}.cycle-complete-body p:last-child{margin-bottom:0}.cycle-complete-footer{border-top:0;padding:0}.cycle-complete-footer .btn{min-width:72px}.toggle-row{min-height:42px;color:var(--text-secondary);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.service-active-toggle{justify-content:space-between;align-self:start;min-height:40px;margin-top:24px;margin-bottom:0}.service-active-toggle .package-active-switch{flex:none}.catalog-grid,.report-grid,.admin-split-grid{gap:10px;display:grid}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.catalog-grid>.empty-dashboard-state{grid-column:1/-1}.report-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.admin-split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screen-stack{flex-direction:column;gap:10px;min-height:0;display:flex}.workbench-grid{grid-template-columns:minmax(220px,.8fr) minmax(0,2.4fr);gap:10px;min-height:0;display:grid}.workbench-rail{flex-direction:column;gap:8px;max-height:calc(100vh - 156px);display:flex;overflow:auto}.workbench-main{flex-direction:column;gap:10px;min-height:0;max-height:calc(100vh - 156px);padding-right:2px;display:flex;overflow:auto}.selection-row{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.selection-row:hover,.selection-row.active{background:var(--primary-light);color:var(--primary);border-color:#2563eb59}.section-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.section-heading h3{align-items:center;gap:8px;font-size:15px;display:flex}.subtle-panel{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:10px}.catalog-card,.report-card{flex-direction:column;gap:8px;display:flex;position:relative;overflow:hidden}.catalog-card:before,.report-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--info));height:3px;position:absolute;inset:0 0 auto}.catalog-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.catalog-card-header>div:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.catalog-card-header .panel-kicker{margin:0}.catalog-card-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:700;line-height:1.2}.catalog-card-header p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.2}.catalog-card-action-right{flex-shrink:0;align-items:center;display:flex}.catalog-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.catalog-stats span{border-radius:var(--radius-sm);background:var(--bg-primary);min-height:46px;color:var(--text-secondary);flex-direction:column;gap:4px;padding:8px;font-size:12px;display:flex}.catalog-stats strong{color:var(--text-primary)}.cloth-scope-page{gap:12px;height:100%;padding-bottom:18px;padding-right:2px;overflow:auto}.cloth-scope-hero h2{font-size:20px;font-weight:900}.cloth-scope-hero p{color:var(--text-secondary);font-size:13px}.cloth-scope-tab-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.cloth-scope-tabs{border-radius:var(--radius-sm);background:var(--bg-secondary);gap:8px;width:fit-content;padding:4px;display:inline-flex}.cloth-scope-tabs .tab-btn{border-radius:var(--radius-sm);min-height:34px}.cloth-scope-tab-actions{flex:1;justify-content:flex-end;display:flex}.cloth-scope-tab-actions .btn{white-space:nowrap}.cloth-scope-list-wrap{flex-direction:column;gap:10px;min-height:0;display:flex}.cloth-scope-search{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);max-width:520px;min-height:44px;color:var(--text-muted);align-items:center;gap:10px;padding:0 12px;display:flex}.cloth-scope-search input{width:100%;color:var(--text-primary);background:0 0;border:0;outline:0}.cloth-type-card-list,.cloth-package-card-list{gap:10px;max-height:calc(100vh - 320px);padding-right:2px;display:grid;overflow:auto}.cloth-type-card-list{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));max-height:none;padding-right:0;overflow:visible}.cloth-type-scope-card{border:1px solid var(--border-color);background:var(--bg-secondary);min-height:78px;box-shadow:var(--shadow-sm);border-radius:16px;grid-template-columns:6px 44px minmax(0,1fr) 34px;align-items:center;gap:10px;display:grid;position:relative;overflow:visible}.cloth-type-scope-card.inactive{opacity:.72}.cloth-type-stripe{background:var(--cloth-color);border-radius:16px 0 0 16px;align-self:stretch}.cloth-type-icon{background:color-mix(in srgb, var(--cloth-color) 12%, transparent);width:40px;height:40px;color:var(--cloth-color);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.cloth-type-icon img{object-fit:contain;width:30px;height:30px;display:block}.cloth-type-info{min-width:0;padding:12px 0}.cloth-type-title-row{align-items:center;gap:8px;min-width:0;display:flex}.cloth-type-title-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);font-size:14px;font-weight:900;overflow:hidden}.cloth-type-title-row span{background:var(--bg-primary);color:var(--text-secondary);border-radius:6px;flex:none;padding:2px 6px;font-size:9px;font-weight:900}.cloth-type-meta{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.cloth-type-meta span{border-radius:6px;align-items:center;gap:3px;min-height:20px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-flex}.cloth-type-meta .weight{color:var(--primary);background:#2563eb14;border:1px solid #2563eb2e}.cloth-type-meta .price{color:var(--success);background:#10b98114;border:1px solid #10b98133}.cloth-type-meta .inactive-pill{background:var(--danger-light);color:var(--danger)}.cloth-scope-menu{min-width:170px;right:0}.cloth-package-card-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));align-items:start;max-height:none;padding-bottom:0;padding-right:0;overflow:visible}.cloth-package-scope-card{border:1px solid var(--border-color);border-top:4px solid var(--primary);background:var(--bg-secondary);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}.cloth-package-scope-card.inactive{opacity:.72}.cloth-package-head{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:18px 14px 14px;display:grid}.cloth-package-icon{background:var(--primary-light);width:40px;height:40px;color:var(--primary);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.cloth-package-head h3{margin:0;font-size:18px;font-weight:900}.cloth-package-head p{color:var(--text-secondary);margin:12px 0 0;font-size:13px}.default-pill{background:var(--success-light);color:var(--success);border-radius:5px;padding:4px 9px;font-size:11px;font-weight:900}.package-active-switch{cursor:pointer;width:48px;height:28px;display:inline-flex;position:relative}.package-active-switch input{opacity:0;position:absolute}.package-active-switch span{border-radius:var(--radius-full);background:var(--border-color);transition:background var(--transition-fast);position:absolute;inset:0}.package-active-switch span:after{content:"";border-radius:var(--radius-full);background:var(--bg-secondary);width:22px;height:22px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);position:absolute;top:3px;left:3px}.package-active-switch input:checked+span{background:var(--primary-light)}.package-active-switch input:checked+span:after{background:var(--primary);transform:translate(20px)}.cloth-package-stats{flex-wrap:wrap;gap:7px;display:flex}.cloth-package-stats span{background:var(--bg-primary);min-height:24px;color:var(--text-secondary);border-radius:7px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.cloth-package-scope-card.expanded{max-width:none}.cloth-package-stats.apk{border-top:1px solid var(--border-color);border-bottom:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 14px;padding:10px 0;display:grid}.cloth-package-stats.apk span{background:0 0;border-radius:0;flex-direction:column;align-items:flex-start;gap:4px;padding:0;display:flex}.cloth-package-stats.apk small{color:var(--text-muted);font-size:10px;font-weight:800}.cloth-package-stats.apk strong{color:var(--text-primary);font-size:12px;font-weight:900}.package-included-table{flex-direction:column;gap:0;min-height:0;padding:14px;display:flex}.package-included-head,.package-row{grid-template-columns:minmax(0,1.4fr) minmax(110px,.7fr) 54px;align-items:center;gap:10px;display:grid}.package-included-head{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px;font-weight:800;display:flex}.package-included-head select{border:1px solid var(--border-color);background:var(--bg-primary);min-height:34px;color:var(--primary);border-radius:7px;padding:0 8px;font-size:12px;font-weight:900}.package-row{min-height:42px;color:var(--text-primary);border-radius:8px;font-size:12px}.package-row.header{border-bottom:1px solid var(--border-color);min-height:28px;color:var(--text-muted);border-radius:0;margin-bottom:6px;font-size:11px;font-weight:800}.package-row:not(.header){padding:5px 0}.package-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.package-row b{background:var(--primary-light);color:var(--primary);border-radius:7px;justify-self:start;padding:4px 8px;font-size:11px}.package-row div{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.package-row div small{color:var(--text-muted);font-size:9px;font-weight:700}.package-row strong{justify-self:end}.package-card-actions{background:var(--bg-primary);grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;align-items:center;gap:8px;padding:14px;display:grid}.package-card-actions button{min-height:36px;color:var(--primary);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;font-weight:900;display:inline-flex}.package-card-actions button:hover{background:var(--primary-light)}.package-builder-modal{width:min(1120px,100vw - 40px);max-width:1120px;max-height:calc(100vh - 36px)}.package-builder-body{max-height:calc(100vh - 160px);overflow:auto}.package-builder-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);align-items:start;gap:14px;display:grid}.package-builder-main{flex-direction:column;gap:12px;display:flex}.package-builder-card,.package-summary-card{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:14px;padding:14px}.package-builder-card h4,.package-summary-card h4{color:var(--text-primary);margin:0 0 14px;font-size:15px;font-weight:900}.package-builder-section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.package-builder-section-head h4{margin:0}.package-builder-section-head h4 span{margin-top:2px;font-size:12px;font-weight:700;display:block}.package-builder-section-head button{color:var(--primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;font-weight:900;display:inline-flex}.frequency-block{flex-direction:column;gap:8px;margin-top:10px;display:flex}.frequency-title{color:var(--text-muted);font-size:11px;font-weight:900}.frequency-row{grid-template-columns:minmax(0,1fr) 150px 58px 30px;align-items:center;gap:8px;display:grid}.frequency-row span{min-width:0;color:var(--text-secondary);font-size:12px;font-weight:800}.frequency-row select{border:1px solid var(--border-color);background:var(--bg-secondary);min-height:36px;color:var(--text-primary);border-radius:8px;font-weight:800}.frequency-row b{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;justify-content:center;align-items:center;min-height:36px;font-size:13px;display:inline-flex}.builder-cloth-list{flex-direction:column;gap:0;display:flex}.builder-cloth-row{border-bottom:1px solid var(--border-color);grid-template-columns:minmax(0,1fr) 34px 38px 34px;align-items:center;gap:8px;padding:10px 0;display:grid}.builder-cloth-row:last-child{border-bottom:0}.builder-cloth-row strong,.builder-cloth-row span{display:block}.builder-cloth-row strong{font-size:13px;font-weight:900}.builder-cloth-row span{color:var(--text-muted);margin-top:3px;font-size:11px}.builder-cloth-row button{width:32px;height:32px;color:var(--primary);cursor:pointer;background:0 0;border:0}.builder-cloth-row button:disabled{color:var(--text-muted);cursor:not-allowed}.builder-cloth-row>b{text-align:center}.package-summary-card{flex-direction:column;gap:12px;display:flex;position:sticky;top:0}.package-summary-card div{justify-content:space-between;gap:12px;display:flex}.package-summary-card span{color:var(--text-secondary);font-size:12px;font-weight:800}.package-summary-card strong{color:var(--text-primary)}.package-summary-card .highlight{border-top:1px solid var(--border-color);padding-top:12px}.package-summary-card .highlight strong{color:var(--primary);font-size:18px}.package-summary-card p{background:var(--primary-light);color:var(--primary);border-radius:10px;margin:8px 0 0;padding:10px;font-size:11px;line-height:1.45}.combine-frequency-modal{max-width:560px}.combine-cloth-list{gap:7px;max-height:280px;display:grid;overflow:auto}.combine-cloth-list label{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.combine-cloth-list span{font-weight:800}.combine-cloth-list small{color:var(--text-muted);font-weight:800}.combine-limit-row{margin-top:12px}.activity-logs-page{gap:12px;max-width:1120px}.activity-log-filter-card{border-color:var(--surface-glass-border);background:var(--surface-glass);border-radius:14px;padding:12px;box-shadow:0 10px 28px #0f172a0a}.activity-log-search-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.activity-log-search{background:var(--bg-secondary);min-height:44px;color:var(--primary);border:1px solid #cbd5e1e6;border-radius:12px;align-items:center;gap:10px;padding:0 12px;display:flex}.activity-log-search input{width:100%;color:var(--text-primary);background:0 0;border:0;outline:0}.activity-log-search button,.activity-clear-filter,.activity-filter-toggle{cursor:pointer;background:0 0;border:0}.activity-clear-filter,.activity-filter-toggle{border-radius:12px;min-height:44px}.activity-filter-toggle{background:var(--primary-light);min-width:54px;color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 22%, transparent);justify-content:center;align-items:center;gap:3px;display:inline-flex}.activity-filter-toggle.active{background:var(--primary);color:var(--text-inverse)}.activity-clear-filter{background:var(--warning);color:var(--text-inverse)}.activity-filter-grid{border-top:1px solid var(--border-color);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding-top:12px;display:grid}.activity-filter-grid label{flex-direction:column;gap:4px;display:flex}.activity-filter-grid label span{color:var(--text-muted);font-size:11px;font-weight:800}.activity-filter-grid select,.activity-filter-grid input{border:1px solid var(--border-color);background:var(--input-bg);min-height:40px;color:var(--text-primary);border-radius:10px;outline:0;padding:0 10px;font-weight:600}.activity-date-range{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.activity-date-range label{border:1px solid var(--border-color);background:var(--input-bg);min-height:40px;color:var(--text-secondary);border-radius:10px;flex-direction:row;align-items:center;gap:8px;padding:0 12px;display:flex}.activity-date-range input{outline:0;width:100%;height:100%;font-size:13px;font-weight:600;color:var(--text-primary)!important;box-shadow:none!important;background:0 0!important;border:0!important;min-height:auto!important;padding:0!important}.activity-active-filters{border-top:1px solid var(--border-color);align-items:center;gap:10px;margin-top:12px;padding-top:10px;display:flex}.activity-active-filters span{color:var(--text-muted);font-size:12px;font-weight:800}.activity-active-filters button{color:var(--primary);cursor:pointer;background:0 0;border:0;margin-left:auto;font-weight:900}.activity-selection-bar{border-radius:var(--radius-md);background:var(--primary-light);border:1px solid #2563eb2e;align-items:center;gap:12px;padding:10px 16px;display:flex}.activity-selection-bar span{color:var(--primary);margin-right:auto;font-size:13px;font-weight:700}.activity-selection-bar button{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);min-height:32px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--transition-fast) ease;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.activity-selection-bar button:hover{background:var(--bg-secondary);border-color:var(--primary);color:var(--primary)}.activity-selection-bar button.danger-text{color:var(--danger);border-color:#ef444433}.activity-selection-bar button.danger-text:hover{border-color:var(--danger);color:var(--danger);background:#ef44440a}.activity-log-list{flex-direction:column;gap:10px;max-height:calc(100vh - 230px);padding-right:2px;display:flex;overflow:auto}.activity-log-card{border:1px solid var(--surface-glass-border);background:var(--surface-glass);cursor:default;border-radius:12px;padding:14px 16px 14px 18px;transition:border-color .18s,background .18s,box-shadow .18s;position:relative;box-shadow:0 8px 22px #0f172a09}.activity-log-card:before{content:"";background:#94a3b8;border-radius:0 999px 999px 0;width:3px;position:absolute;top:14px;bottom:14px;left:0}.activity-log-card:has(.activity-module-chip.auth):before{background:#2563eb}.activity-log-card:has(.activity-module-chip.students):before{background:#f59e0b}.activity-log-card:has(.activity-module-chip.hostels):before{background:#0891b2}.activity-log-card:has(.activity-module-chip.rooms):before{background:#0f766e}.activity-log-card:has(.activity-module-chip.billing):before{background:#0f7d67}.activity-log-card:has(.activity-module-chip.assets):before{background:#4f46e5}.activity-log-card:has(.activity-module-chip.users):before{background:#9333ea}.activity-log-card:has(.activity-module-chip.laundry):before{background:#0284c7}.activity-log-card:hover{border-color:color-mix(in srgb, var(--primary) 26%, var(--border-color));box-shadow:0 12px 30px #2563eb14}.activity-log-card.selected{border-color:var(--primary);background:var(--primary-light);border-width:2px}.activity-log-top{align-items:center;gap:8px;min-height:28px;display:flex}.activity-module-chip,.activity-action-chip{text-transform:uppercase;border-radius:7px;align-items:center;min-height:24px;padding:0 9px;font-size:10px;font-weight:900;display:inline-flex}.activity-module-chip.assets{background:var(--primary-light);color:var(--primary)}.activity-module-chip.settings{background:var(--bg-subtle);color:var(--text-secondary)}.activity-module-chip.students{background:var(--warning-light);color:var(--warning)}.activity-module-chip.auth,.activity-module-chip.users{background:var(--primary-light);color:var(--primary)}.activity-module-chip.default{color:var(--text-secondary);background:#f1f5f9}.activity-module-chip.hostels{color:#00897b;background:#0096881f}.activity-module-chip.rooms{color:#0f766e;background:#14b8a61f}.activity-module-chip.billing{color:#0f7d67;background:#0f7d671f}.activity-module-chip.laundry{color:#0284c7;background:#e0f2fe}.activity-action-chip{color:#64748b;background:#f1f5f9}.activity-action-chip.create,.activity-action-chip.login{color:#047857;background:#ecfdf5}.activity-action-chip.update,.activity-action-chip.import{color:#1d4ed8;background:#eff6ff}.activity-action-chip.delete,.activity-action-chip.logout{color:#b91c1c;background:#fef2f2}.activity-platform{color:var(--text-muted);margin-left:auto}.activity-delete-btn,.activity-select-dot{width:28px;height:28px;color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.activity-delete-btn:hover{background:#fef2f2}.activity-select-dot{color:var(--primary)}.activity-select-dot span{border:1px solid var(--border-color);border-radius:var(--radius-full);width:16px;height:16px}.activity-log-card p{color:var(--text-primary);margin:10px 0 12px;font-size:15px;font-weight:800;line-height:1.45}.activity-log-details{border:1px solid var(--border-color);background:var(--bg-muted);color:var(--text-secondary);border-radius:10px;gap:7px;margin:0 0 12px;padding:8px 10px;font-size:11px;display:grid}.activity-log-details strong{color:var(--text-primary)}.activity-log-details details summary{cursor:pointer;color:var(--primary);font-weight:900}.activity-log-details pre{background:var(--bg-primary);max-height:160px;color:var(--text-primary);white-space:pre-wrap;border-radius:8px;margin:6px 0 0;padding:8px;font-size:11px;overflow:auto}.activity-log-foot{color:#94a3b8;justify-content:space-between;align-items:center;gap:14px;padding-top:2px;font-size:11px;font-weight:800;display:flex}.activity-log-foot span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;min-width:0;display:inline-flex;overflow:hidden}.activity-log-foot time{flex:none}[data-theme=dark] select,[data-theme=dark] input,[data-theme=dark] textarea{background-color:var(--input-bg);color:var(--text-primary);border-color:var(--border-color);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:opacity(.7);transition:filter var(--transition-fast)}input[type=date]::-webkit-calendar-picker-indicator:hover{filter:opacity()}[data-theme=dark] .activity-log-filter-card,[data-theme=dark] .activity-log-card{box-shadow:0 12px 28px #0000003d}[data-theme=dark] .activity-log-search{background:var(--input-bg);border-color:var(--border-color)}[data-theme=dark] .activity-module-chip.default,[data-theme=dark] .activity-action-chip{color:var(--text-secondary);background:#94a3b824}[data-theme=dark] .activity-module-chip.laundry,[data-theme=dark] .activity-action-chip.update,[data-theme=dark] .activity-action-chip.import{color:#93c5fd;background:#2563eb29}[data-theme=dark] .activity-action-chip.create,[data-theme=dark] .activity-action-chip.login{color:#6ee7b7;background:#10b98124}[data-theme=dark] .activity-action-chip.delete,[data-theme=dark] .activity-action-chip.logout{color:#fca5a5;background:#ef444424}[data-theme=dark] .activity-delete-btn:hover{background:#ef444424}.activity-log-card-redesign{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast) ease;gap:16px;padding:18px 20px;display:flex;position:relative}.activity-log-card-redesign:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.activity-log-card-redesign.selected{border-color:var(--primary);background:var(--primary-light);box-shadow:var(--primary-glow)}.activity-log-icon-container{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.activity-log-content-container{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.activity-log-meta-header{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.activity-log-module-text{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.activity-log-action-text{text-transform:uppercase;letter-spacing:.5px}.activity-log-dot-divider{opacity:.5}.activity-log-platform-text{align-items:center;gap:4px;display:flex}.activity-log-message{color:var(--text-primary);margin:0;font-size:14px;font-weight:600;line-height:1.45}.activity-log-details-box{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:12px;font-size:12px;display:flex}.details-doc-id{color:var(--text-secondary)}.details-doc-id code{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:2px 6px;font-family:monospace;font-weight:700}.activity-friendly-changes{flex-direction:column;gap:4px;display:flex}.activity-friendly-changes .changes-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.activity-friendly-changes .changes-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.activity-friendly-changes .changes-list li{color:var(--text-primary);padding-left:12px;position:relative}.activity-friendly-changes .changes-list li:before{content:"•";color:var(--primary);position:absolute;left:0}.raw-json-details{border-top:1px dashed var(--border-color);margin-top:4px;padding-top:8px}.raw-json-details summary{cursor:pointer;color:var(--primary);-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}.raw-json-details pre{background:var(--bg-secondary);border:1px solid var(--border-color);white-space:pre-wrap;border-radius:6px;max-height:150px;margin:8px 0 0;padding:8px;font-size:11px;overflow:auto}.activity-log-footer-row{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:11px;font-weight:600;display:flex}.activity-log-user-badge{align-items:center;gap:6px;display:flex}.user-avatar-circle{border-radius:var(--radius-full);background:var(--primary);color:#fff;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:flex}.user-name-text{color:var(--text-primary);font-weight:700}.user-role-text{opacity:.8;font-size:10px}.activity-log-time-text{color:var(--text-muted);align-items:center;display:flex}.activity-log-actions-container{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.activity-select-checkbox{cursor:pointer;color:var(--primary);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.activity-select-checkbox .checkbox-empty{border:2px solid var(--border-color);border-radius:4px;width:18px;height:18px;display:block}.activity-row-delete-btn{cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast) ease;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:flex}.activity-row-delete-btn:hover{color:var(--danger);background:#ef444414}[data-theme=dark] .activity-log-card-redesign{box-shadow:0 12px 28px #0000003d}[data-theme=dark] .raw-json-details pre{background:var(--bg-secondary)}.report-card{justify-content:space-between;min-height:76px}.report-card svg{color:var(--primary)}.report-card span{color:var(--text-secondary);font-size:13px;font-weight:600}.report-card strong{font-family:var(--font-heading);font-size:22px}.mini-list{flex-direction:column;gap:6px;display:flex}.mini-list-row{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.mini-list-row:last-child{border-bottom:none}.mini-list-row span:first-child{flex-direction:column;display:flex}.mini-list-row small{color:var(--text-muted);font-size:11px}.permission-group{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-color);flex-direction:column;gap:8px;padding:10px;display:flex}.permission-group h4{color:var(--text-muted);text-transform:uppercase;letter-spacing:0;font-size:12px}.attendance-page{flex-direction:column;gap:10px;min-height:0;display:flex}.attendance-toolbar{gap:8px;display:flex}.attendance-command-grid{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);align-items:stretch;gap:10px;display:grid}.attendance-command-grid.single{grid-template-columns:1fr}.attendance-user-picker{align-items:center;gap:12px;min-height:70px;padding:10px 12px;display:flex}.attendance-user-picker .avatar{border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-inverse);background:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.attendance-user-picker div:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.attendance-user-picker select.form-select{flex:none;width:auto;max-width:200px;margin-left:auto}.attendance-user-picker strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.attendance-user-picker span{color:var(--text-secondary);font-size:12px}.clock-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--clock-gradient), var(--bg-secondary);padding:10px 12px;box-shadow:0 10px 22px #0f172a09}.clock-card-main{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.clock-date,.location-line{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.clock-pills{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.time-pill,.time-card{color:var(--success);grid-template-columns:auto auto 1fr;align-items:center;gap:7px;display:grid}.time-pill svg,.time-card svg{background:var(--success-light);border-radius:6px;width:26px;height:26px;padding:6px}.time-pill span,.time-card span{color:var(--text-muted);font-size:11px}.time-pill strong,.time-card strong{color:var(--text-primary);white-space:nowrap;font-size:13px}.time-pill.orange,.time-card.orange{color:var(--warning)}.time-pill.orange svg,.time-card.orange svg{background:var(--warning-light)}.time-pill.blue{color:var(--primary)}.time-pill.blue svg{background:var(--primary-light)}.clock-action{border-radius:var(--radius-full);background:var(--success);width:58px;height:58px;color:var(--text-inverse);cursor:pointer;box-shadow:0 0 0 6px var(--success-glow), 0 10px 22px #10b98133;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;animation:1.2s ease-in-out infinite alternate clockPulse;display:inline-flex}.clock-action.out{background:var(--warning);box-shadow:0 0 0 8px var(--warning-glow), 0 10px 22px #f59e0b40}.clock-action:disabled{cursor:not-allowed;background:var(--text-muted);box-shadow:none;animation:none}.clock-action svg{width:22px;height:22px}.clock-action span{text-align:center;max-width:48px;font-size:9px;font-weight:800;line-height:1.1}@keyframes clockPulse{0%{transform:scale(.96)}to{transform:scale(1.04)}}.location-line{color:var(--success);margin-top:8px;font-size:11px}.month-review-card{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 12px;min-height:56px;display:grid}.month-review-card .clock-date{grid-column:1/-1}.month-review-card strong{font-family:var(--font-heading);font-size:16px}.month-review-card small{color:var(--text-secondary);font-size:12px;font-weight:600}.month-review-stats{grid-area:2/2/4;grid-template-columns:repeat(3,minmax(64px,1fr));gap:6px;display:grid}.month-review-stats span{border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);text-align:center;padding:7px 8px;font-size:11px;font-weight:800}.month-review-stats b{color:var(--text-primary);font-size:16px;line-height:1;display:block}.attendance-month-nav{justify-content:center;align-items:center;gap:8px;display:flex}.attendance-month-nav strong{text-align:center;min-width:180px;font-size:17px;font-family:var(--font-heading)}.attendance-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.attendance-summary-card{border-radius:var(--radius-sm);text-align:left;border:1px solid;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;min-height:72px;padding:10px 12px;display:grid}.attendance-summary-card strong{font-family:var(--font-heading);grid-area:1/2/3;font-size:24px;line-height:1}.attendance-summary-card span{text-transform:uppercase;color:var(--text-secondary);font-size:11px;font-weight:800}.attendance-summary-card small{color:var(--text-muted);min-width:0;font-size:11px;font-weight:700}.attendance-summary-card.present{color:var(--success);background:var(--success-light);border-color:#10b98140}.attendance-summary-card.half{color:var(--warning);background:var(--warning-light);border-color:#f59e0b40}.attendance-summary-card.absent{color:var(--danger);background:var(--danger-light);border-color:#ef444440}.attendance-summary-card.salary{color:var(--primary);background:var(--primary-light);border-color:#6366f140}.attendance-workspace{flex:1;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:20px;min-height:0;display:grid}.attendance-calendar{min-height:0;padding:12px}.attendance-calendar-header{grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:12px;display:grid}.attendance-calendar-header h3{grid-column:1;justify-self:start;margin:0;font-size:18px;font-weight:800;line-height:1}.attendance-calendar-header .panel-kicker{grid-column:2;justify-self:center;margin:0}.attendance-calendar-header .attendance-month-nav{grid-column:3;justify-self:end}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekdays{margin-bottom:6px}.calendar-weekdays span{text-align:center;color:var(--text-muted);font-size:11px;font-weight:800}.calendar-weekdays span:first-child{color:var(--danger)}.calendar-day{aspect-ratio:auto;border-radius:var(--radius-sm);background:var(--bg-primary);height:clamp(72px,10vh,85px);min-height:46px;color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);border:1px solid #0000;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:3px;padding:6px 7px;font-weight:800;display:flex}.calendar-day span{line-height:1}.calendar-day small{text-overflow:ellipsis;white-space:nowrap;color:currentColor;opacity:.8;width:100%;min-width:0;font-size:9px;font-weight:600;line-height:1.1;overflow:hidden}.calendar-blank{border-radius:var(--radius-sm);background:0 0;min-height:46px}.calendar-day.success{color:var(--success);background:var(--success-light);border-color:#10b98159}.calendar-day.warning{color:var(--warning);background:var(--warning-light);border-color:#f59e0b59}.calendar-day.danger{color:var(--danger);background:var(--danger-light);border-color:#ef444459}.calendar-day.open{color:var(--primary);background:var(--primary-light);border-color:#6366f159}.calendar-day.today{border:2px solid var(--primary);box-shadow:inset 0 0 0 1px #2563eb29}.calendar-day.future{opacity:.45}.calendar-legend{flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:10px;display:flex}.calendar-legend span{color:var(--text-secondary);align-items:center;gap:5px;font-size:11px;display:inline-flex}.calendar-legend i{border-radius:var(--radius-full);background:var(--border-color);width:9px;height:9px}.calendar-legend i.present{background:var(--success)}.calendar-legend i.half{background:var(--warning)}.calendar-legend i.absent{background:var(--danger)}.attendance-side-stack{flex-direction:column;gap:12px;min-width:0;height:100%;min-height:0;display:flex}.side-card-compact{box-sizing:border-box;min-height:0;transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal);flex-direction:column;justify-content:flex-start;gap:6px;padding:10px 12px;display:flex}.attendance-side-stack .side-card-compact:first-child{flex:none;height:auto}.attendance-side-stack .side-card-compact:last-child{flex:1;height:auto}.side-card-compact:hover{border-color:#6366f140;transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #0000000d}.side-card-compact .catalog-card-header{justify-content:space-between;align-items:center;width:100%;margin-bottom:8px;display:flex}.side-card-compact .panel-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:2px;font-size:10px;font-weight:800}.side-card-compact .panel-kicker.centered{text-align:center;width:100%;display:block}.side-card-compact .catalog-card-header h3{color:var(--text-primary);margin:0;font-size:13.5px;font-weight:600;line-height:1.2}.side-card-compact .catalog-card-header p{color:var(--text-muted);margin:2px 0 0;font-size:11px}.scrollable-side-list{flex:1;min-height:0;margin:4px 0;padding-right:12px;overflow:hidden auto}.scrollable-side-list::-webkit-scrollbar{width:4px}.scrollable-side-list::-webkit-scrollbar-track{background:0 0}.scrollable-side-list::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#6366f133}.scrollable-side-list::-webkit-scrollbar-thumb:hover{background:#6366f166}.side-card-list{flex-direction:column;gap:4px;margin:4px 0;display:flex}.side-card-list-grid{grid-template-columns:1fr 1fr;gap:8px;margin:6px 0;display:grid}.side-grid-item{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#6366f108;flex-direction:column;justify-content:center;gap:1px;padding:6px 10px;display:flex}.side-grid-item span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:9px;font-weight:800}.side-grid-item strong{color:var(--text-primary);font-size:13.5px;font-weight:800}.side-grid-item strong.negative{color:var(--danger)}.side-card-row{color:var(--text-secondary);border-radius:var(--radius-sm);transition:background var(--transition-fast), padding-left var(--transition-fast);justify-content:space-between;align-items:center;margin:0 -6px;padding:4px 6px;font-size:12px;line-height:1.25;display:flex}.side-card-row:hover{background:#6366f10d;padding-left:10px}.label-with-icon{align-items:center;gap:6px;display:flex}.label-with-icon svg{opacity:.85;flex-shrink:0}.side-card-row .row-label{flex-direction:column;gap:1px;display:flex}.side-card-row .row-label span{color:var(--text-secondary);font-weight:500}.side-card-row .row-label small{color:var(--text-muted);font-size:10px}.side-card-row .row-value{color:var(--text-primary);transition:transform var(--transition-fast);font-size:12px;font-weight:600}.side-card-row:hover .row-value{transform:translate(-3px)}.side-card-row .row-value.negative{color:var(--danger);font-weight:600}.salary-breakdown{min-width:0}.salary-export-btn{justify-content:center;width:100%;height:28px;margin-top:auto;padding:4px 10px;font-size:11px}.salary-lines{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.salary-lines span,.advance-summary{border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);flex-direction:row;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.salary-lines strong,.advance-summary strong{color:var(--text-primary);font-size:15px}.advance-edit-note{border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);border:1px solid #2563eb47;margin:10px 0;padding:8px 10px;font-size:12px;font-weight:800}.advance-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;display:grid}.advance-row.active{border-radius:var(--radius-sm);background:var(--primary-light);border:1px solid #2563eb47;margin:0 -8px;padding:8px}.advance-row-actions{align-items:center;gap:6px;display:inline-flex}.advance-row-actions .icon-btn{width:30px;height:30px}.attendance-advance-card{min-height:186px}.day-detail-modal{max-width:520px}.day-status-badge{border-radius:var(--radius-full);text-transform:capitalize;align-items:center;gap:8px;width:fit-content;margin:0 auto 18px;padding:8px 18px;font-weight:800;display:flex}.day-status-badge.success{color:var(--success);background:var(--success-light);border:1px solid #10b9814d}.day-status-badge.warning{color:var(--warning);background:var(--warning-light);border:1px solid #f59e0b4d}.day-status-badge.danger{color:var(--danger);background:var(--danger-light);border:1px solid #ef44444d}.day-status-badge.empty{color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-color)}.day-status-badge.open{color:var(--primary);background:var(--primary-light);border:1px solid #6366f14d}.day-status-badge small{opacity:.75;font-size:10px}.day-time-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.time-card{border-radius:var(--radius-sm);background:var(--success-light);grid-template-columns:auto 1fr;padding:14px}.time-card strong{grid-column:2;font-size:17px}.time-card.orange{background:var(--warning-light)}.override-row{border-top:1px solid var(--border-color);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;padding-top:18px;display:grid}.advance-summary{color:var(--primary);background:var(--primary-light);border:1px solid #6366f140;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:16px;font-weight:800}.geofence-modal{max-width:560px}.geofence-info{border-radius:var(--radius-md);color:var(--primary);background:var(--primary-light);border:1px solid #6366f13d;align-items:flex-start;gap:10px;margin-bottom:16px;padding:14px;font-size:13px;font-weight:700;line-height:1.45;display:flex}.geofence-info svg{flex:none}.geofence-location-btn{justify-content:center;width:100%;margin-bottom:18px}.two-column-form .full-span{grid-column:1/-1}.two-column-form .full-span small{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}.geofence-current-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:14px 18px;display:flex}.geofence-current-info{flex-direction:column;gap:4px;display:flex}.geofence-current-title{color:var(--text-primary);font-size:14px;font-weight:700}.geofence-current-coords{color:var(--text-muted);word-break:break-all;font-size:12px}.geofence-current-badge{text-transform:uppercase;flex-shrink:0}.find-cloth-page,.settings-page{flex-direction:column;gap:12px;display:flex}.find-cloth-page{--find-accent:#0ea5a4;--find-accent-soft:#0ea5a41a;--find-blue:#2563eb;--find-card:#fff;--find-card-subtle:#f8fafc;--find-border:#cbd5e1d1;--find-heading:#1e293b;--find-value:#0f172a;--find-muted:#64748b}.find-tabs{border-radius:var(--radius-md);background:var(--bg-subtle);gap:6px;width:fit-content;padding:5px;display:flex}.find-tabs button,.segmented-control button{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:9px 12px;font-weight:800;display:inline-flex}.find-tabs button.active,.segmented-control button.active{background:var(--primary);color:#fff;box-shadow:0 8px 18px #2563eb2e}.find-search-card{grid-template-columns:minmax(250px,.34fr) minmax(360px,1fr);align-items:center;gap:22px;padding:16px;display:grid}.find-scan-panel{border-radius:var(--radius-md);background:var(--primary-light);min-height:160px;color:var(--primary);text-align:center;border:1px dashed #2563eb47;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.find-scan-panel strong{font-family:var(--font-heading);color:var(--text-primary)}.find-scan-panel span{color:var(--text-secondary);font-size:13px}.find-manual-panel{justify-self:center;gap:10px;width:min(640px,100%);display:grid;position:relative}.find-manual-panel label{color:var(--text-primary);font-size:13px;font-weight:900}.find-search-form{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:48px;padding:0 12px;display:grid}.find-entry-stack{flex-direction:column;justify-content:center;gap:10px;min-width:0;display:flex}.find-camera-box{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);overflow:hidden}#find-cloth-camera-reader{background:var(--bg-primary);min-height:220px}#find-cloth-camera-reader video{border-radius:var(--radius-sm);width:100%!important}.find-camera-actions{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:10px;padding:10px;font-size:12px;font-weight:800;display:flex}.find-search-form input,.find-comment-input input{width:100%;color:var(--text-primary);background:0 0;border:0;outline:0;font-weight:700}.find-search-form input::placeholder{color:var(--text-muted);font-weight:700}.find-suggestion-list{z-index:20;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);max-height:284px;box-shadow:var(--shadow-lg);position:absolute;top:82px;left:0;right:0;overflow:auto}.find-submit-btn{justify-content:center;width:100%;min-height:46px}.find-search-tips{border-radius:var(--radius-md);background:var(--primary-light);color:var(--primary);border:1px solid #2563eb2e;gap:6px;padding:10px;display:grid}.find-search-tips strong{align-items:center;gap:7px;font-size:13px;display:inline-flex}.find-search-tips span{color:var(--text-secondary);font-size:12px;line-height:1.45}.find-suggestion-list button{border:0;border-bottom:1px solid var(--border-color);width:100%;min-height:46px;color:var(--primary);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:900;display:grid}.find-suggestion-list button:last-child{border-bottom:0}.find-suggestion-list button:hover{background:var(--primary-light)}.find-suggestion-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.find-recent-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.find-recent-row span{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:900}.find-recent-row button{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--primary);border-radius:var(--radius-full);cursor:pointer;padding:6px 10px;font-size:12px;font-weight:800}.find-recent-row button:hover{background:var(--primary-light);border-color:#2563eb47}.find-state-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:220px;padding:32px;display:flex}.find-state-card strong{font-family:var(--font-heading);font-size:18px}.find-state-card span,.muted-text{color:var(--text-muted);font-size:13px}.find-state-card.error{color:var(--danger);border-color:#ef44443d}.find-result-card{border-color:var(--find-border);background:var(--find-card);width:100%;max-width:1180px;margin:0 auto;padding:0;overflow:hidden}.find-barcode-band{background:linear-gradient(180deg, #0ea5a414, #f8fafcc7), var(--find-card);border-bottom:1px solid var(--find-border);flex-direction:column;align-items:center;gap:8px;padding:18px 18px 16px;display:flex}.barcode-lines{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid #cbd5e1e6;justify-content:center;align-items:center;width:min(620px,100%);min-height:86px;padding:12px 18px;display:flex;box-shadow:0 8px 22px #0f172a0a}.find-barcode-band strong{color:#1d4ed8;letter-spacing:.12em;word-break:break-word;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:15px;font-weight:800}.barcode-lines svg{width:100%;max-width:560px;height:72px;display:block}.find-result-grid,.find-lower-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;display:grid}.find-lower-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-top:0}.find-detail-panel{border-radius:var(--radius-md);background:var(--find-card-subtle);border:1px solid var(--find-border);padding:16px;position:relative;box-shadow:0 1px #0f172a05}.find-detail-panel:before{content:"";background:var(--find-accent);opacity:.9;border-radius:0 999px 999px 0;width:3px;position:absolute;top:14px;bottom:14px;left:0}.find-result-grid .find-detail-panel:first-child:before{background:#2563eb}.find-result-grid .find-detail-panel:nth-child(2):before{background:#7c3aed}.find-result-grid .find-detail-panel:nth-child(3):before{background:#0ea5a4}.find-lower-grid .find-detail-panel:first-child:before{background:#f59e0b}.find-lower-grid .find-detail-panel:nth-child(2):before{background:#06b6d4}.find-detail-panel h3{color:var(--find-heading);align-items:center;gap:8px;margin-bottom:14px;font-size:15px;display:flex}.find-detail-panel h3 svg{color:var(--find-blue)}.find-info-row{border-top:1px solid #e2e8f0c2;grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:grid}.find-info-row:first-of-type{border-top:0}.find-info-row span,.find-log-row small,.find-comment-row small{color:var(--find-muted);font-size:12px;font-weight:700}.find-info-row strong{text-align:right;color:var(--find-value);overflow-wrap:anywhere;font-size:15px;font-weight:800}.find-actions-row{gap:10px;padding:0 14px 14px;display:flex}.find-log-row,.find-comment-row{border-radius:var(--radius-sm);background:var(--find-card);border:1px solid #e2e8f0eb;flex-direction:column;gap:3px;margin-top:8px;padding:10px 12px;display:flex}.find-log-row strong,.find-comment-row span{color:var(--find-value)}.find-comment-input{border-radius:var(--radius-md);background:var(--find-card);border:1px solid #cbd5e1e6;grid-template-columns:1fr auto;gap:8px;margin-bottom:8px;padding:8px;display:grid}.find-status-badge{border-radius:var(--radius-full);border:1px solid #0000;justify-self:end;width:fit-content;max-width:100%;padding:4px 10px;line-height:1.1;text-align:center!important;font-size:11px!important}.find-status-badge.available,.find-status-badge.delivered{color:#047857;background:#ecfdf5;border-color:#10b9813d}.find-status-badge.process{color:#1d4ed8;background:#eff6ff;border-color:#2563eb38}.find-status-badge.danger{color:#b91c1c;background:#fef2f2;border-color:#ef44443d}.find-status-badge.neutral{color:#475569;background:#f1f5f9;border-color:#94a3b83d}[data-theme=dark] .find-cloth-page{--find-card:#121826;--find-card-subtle:#0f172a;--find-border:#4755698f;--find-heading:#f8fafc;--find-value:#e2e8f0;--find-muted:#94a3b8}[data-theme=dark] .find-barcode-band{background:linear-gradient(180deg, #0ea5a41f, #0f172ad6), var(--find-card)}[data-theme=dark] .barcode-lines{border-color:#475569ad}[data-theme=dark] .find-info-row{border-top-color:#334155b8}[data-theme=dark] .find-log-row,[data-theme=dark] .find-comment-row,[data-theme=dark] .find-comment-input{border-color:#4755698f}.settings-profile-card{align-items:center;gap:14px;padding:16px;display:flex}.settings-profile-card .avatar{color:#fff;background:var(--primary);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-weight:900;display:inline-flex}.settings-profile-card h3{font-size:18px;font-weight:700}.settings-profile-card span,.setting-card-heading span{color:var(--text-secondary);font-size:13px;font-weight:500}.settings-section{flex-direction:column;gap:10px;display:flex}.settings-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800}.settings-section-body{gap:10px;display:grid}.setting-card,.settings-list-item{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-sm);padding:14px 16px}.setting-card{justify-content:space-between;align-items:center;gap:14px;display:flex}.setting-card-heading,.settings-list-item{align-items:center;gap:12px;display:flex}.setting-card-heading div{flex-direction:column;display:flex}.settings-list-item{color:var(--text-primary);cursor:pointer;text-align:left;font-weight:700}.setting-card-heading strong,.settings-list-item strong,.settings-page .segmented-control button,.settings-page .btn{font-weight:700}.settings-list-item.static{cursor:default;-webkit-user-select:none;user-select:none}.settings-list-item.static svg:last-child{opacity:.72}.settings-list-item svg:last-child{color:var(--text-muted);margin-left:auto}.settings-list-item.danger{color:var(--danger)}.segmented-control{border-radius:var(--radius-sm);background:var(--bg-primary);gap:4px;padding:4px;display:flex}.settings-version{text-align:center;color:var(--text-muted);font-size:12px;font-weight:700}.settings-business-modal{max-width:560px}.settings-choice-modal,.settings-swap-modal,.settings-info-modal{max-width:620px}.settings-swap-modal{max-width:860px;overflow:visible}.settings-swap-modal .modal-header{padding:20px 26px}.settings-swap-modal .modal-header h3{font-size:24px}.settings-swap-modal .modal-body{padding:24px 28px;overflow:visible}.settings-swap-modal .modal-footer{padding:16px 28px 18px}.settings-swap-modal .two-column-form{align-items:start;gap:18px}.settings-choice-list{gap:8px;max-height:min(56vh,520px);display:grid;overflow:auto}.settings-choice-row{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-muted);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;grid-template-columns:22px minmax(0,1fr) 28px;align-items:center;gap:10px;padding:12px;display:grid}.settings-choice-row.selected{border-color:color-mix(in srgb, var(--primary) 34%, var(--border-color));background:var(--primary-light)}.settings-choice-row strong,.settings-choice-row small{display:block}.settings-choice-row small{color:var(--text-muted);margin-top:2px;font-weight:700}.settings-choice-row svg{color:var(--primary)}.settings-choice-radio{border:1px solid var(--border-color);border-radius:var(--radius-full);width:18px;height:18px;color:var(--primary);justify-content:center;align-items:center;font-size:11px;display:inline-flex}.settings-modal-note{color:var(--text-secondary);margin:0 0 22px;font-size:16px;line-height:1.55}.settings-swap-search{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--input-bg);min-height:38px;color:var(--text-muted);grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px;padding:0 10px;display:grid}.settings-swap-search input{width:100%;min-width:0;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:0;font-size:13px}.settings-swap-search input::placeholder{color:var(--text-muted)}.settings-student-picker{position:relative}.settings-student-picker-trigger{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;min-height:54px;color:var(--text-primary);cursor:pointer;font:inherit;text-align:left;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:8px;padding:10px 14px 10px 16px;display:grid}.settings-student-picker-trigger.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent)}.settings-student-picker-trigger span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-student-picker-menu{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);box-shadow:var(--shadow-sm);margin-top:10px;padding:10px;position:static}.settings-student-picker-menu .settings-swap-search{margin-bottom:8px}.settings-student-picker-list{gap:4px;max-height:260px;display:grid;overflow:auto}.settings-student-picker-list button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;gap:2px;padding:9px 10px;display:grid}.settings-student-picker-list button strong{font-size:14px}.settings-student-picker-list button:hover,.settings-student-picker-list button.selected{background:var(--primary-light)}.settings-student-picker-list strong,.settings-student-picker-list small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.settings-student-picker-list small,.settings-student-picker-empty{color:var(--text-muted);font-size:12px;font-weight:700}.settings-student-picker-empty{padding:12px 10px}.settings-picker-group-header{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted,#64748b);background:var(--bg-surface-secondary,#00000008);border-radius:4px;align-items:center;gap:6px;margin-top:6px;padding:6px 10px 4px;font-size:11px;font-weight:800;display:flex}.settings-picker-group-header.empty-beds-header{color:#10b981;background:#10b98114}.settings-student-picker-list button.empty-bed-item{background:#10b98108;border-left:3px solid #10b981}.settings-student-picker-list button.empty-bed-item small{color:#059669}.settings-swap-preview .empty-bed-preview-item{background:#10b9810a;border-color:#10b9814d}@media (width<=760px){.settings-swap-modal{max-width:96vw;max-height:88vh;overflow-y:auto}.settings-swap-modal .modal-body{padding:18px;overflow:visible}.settings-swap-modal .two-column-form{grid-template-columns:1fr}}@media (width<=1180px),(height<=820px){.settings-swap-modal{max-width:min(820px,94vw);max-height:min(88vh,720px);overflow-y:auto}.settings-swap-modal .modal-header{padding:16px 22px}.settings-swap-modal .modal-header h3{font-size:22px}.settings-swap-modal .modal-body{padding:18px 22px;overflow:visible}.settings-swap-modal .modal-footer{padding:14px 22px}.settings-modal-note{margin-bottom:16px;font-size:14px}.settings-student-picker-trigger{min-height:46px;padding:8px 12px}.settings-student-picker-list{max-height:min(30vh,190px)}.settings-swap-preview{margin-top:10px}}@media (height<=700px){.settings-swap-modal{max-height:82vh}.settings-student-picker-list{max-height:150px}.settings-swap-preview{grid-template-columns:repeat(2,minmax(0,1fr))}}.settings-swap-preview{gap:8px;margin-top:12px;display:grid}.settings-swap-preview div{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-muted);grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:10px;display:grid}.settings-swap-preview svg{color:var(--primary)}.settings-swap-preview span,.settings-swap-preview small{display:block}.settings-swap-preview small{color:var(--text-muted);font-size:12px}.settings-info-body{color:var(--text-secondary);gap:10px;line-height:1.6;display:grid}.modal-header h3{align-items:center;gap:8px;display:inline-flex}.dashboard-screen{flex-direction:column;gap:10px;min-height:0;display:flex}.dashboard-hero{border-radius:var(--radius-sm);border:1px solid var(--surface-glass-border);background:var(--hero-gradient), var(--bg-secondary);justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex;box-shadow:0 12px 28px #0f172a0b}.dashboard-kicker{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:800}.dashboard-hero h2{margin:2px 0 4px;font-size:22px}.dashboard-hero p{color:var(--text-secondary);font-size:13px}.dashboard-hero-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.dashboard-toolbar,.wash-history-toolbar{box-shadow:none!important;background:0 0!important;border:0!important;justify-content:flex-end!important;padding:0!important}.wash-history-toolbar{margin-bottom:-4px}.wash-history-toolbar>div:first-child{margin-right:auto}.dashboard-section-title{justify-content:space-between;align-items:baseline;gap:10px;padding:0 2px;display:flex}.dashboard-section-title span{color:var(--text-primary);font-size:13px;font-weight:800}.dashboard-section-title small{color:var(--text-muted);font-size:11px;font-weight:700}.dashboard-date-chip{border-radius:var(--radius-sm);border:1px solid var(--surface-glass-border);background:var(--surface-glass);min-height:32px;color:var(--text-secondary);align-items:center;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.dashboard-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.dashboard-kpi-card{border-radius:var(--radius-sm);border:1px solid var(--surface-glass-border);background:var(--surface-glass);min-height:92px;color:var(--text-primary);text-align:left;cursor:pointer;transition:transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);grid-template-rows:auto auto auto;grid-template-columns:42px 1fr;align-items:center;gap:3px 10px;padding:12px;display:grid;box-shadow:0 10px 22px #0f172a09}.dashboard-kpi-card:hover{border-color:#2563eb59;transform:translateY(-1px);box-shadow:0 12px 26px #2563eb14}.dashboard-kpi-card .kpi-icon{border-radius:var(--radius-sm);background:var(--primary-light);width:38px;height:38px;color:var(--primary);grid-row:1/4;justify-content:center;align-items:center;display:inline-flex}.dashboard-kpi-card .kpi-icon.success{background:var(--success-light);color:var(--success)}.dashboard-kpi-card .kpi-icon.warning{background:var(--warning-light);color:var(--warning)}.dashboard-kpi-card .kpi-icon.info{background:var(--info-light);color:var(--info)}.dashboard-kpi-card .kpi-icon svg{width:20px;height:20px}.dashboard-kpi-card span{color:var(--text-secondary);font-size:12px;font-weight:700}.dashboard-kpi-card strong{font-family:var(--font-heading);font-size:22px;line-height:1.1}.dashboard-kpi-card small{color:var(--text-muted);font-size:11px}.dashboard-layout{grid-template-columns:minmax(0,1.78fr) minmax(330px,.82fr);gap:10px;min-height:0;display:grid}.dashboard-main-column,.dashboard-side-column{flex-direction:column;gap:10px;min-height:0;display:flex}.dashboard-panel{border-radius:var(--radius-sm);border:1px solid var(--surface-glass-border);background:var(--surface-glass);padding:12px;box-shadow:0 10px 22px #0f172a09}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.panel-heading.compact{align-items:center}.panel-heading h3{font-size:16px;font-weight:800}.panel-heading p{color:var(--text-secondary);margin-top:2px;font-size:12px}.today-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.today-stat-card{border-radius:var(--radius-sm);border:1px solid var(--surface-glass-border);background:var(--surface-glass);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:110px;padding:16px;display:flex;box-shadow:0 10px 22px #0f172a09}.today-stat-card svg{border-radius:0;width:24px;height:24px;padding:0;background:0 0!important}.today-stat-card.collected svg{color:var(--success)}.today-stat-card.delivered svg{color:var(--primary)}.today-stat-card.rewash svg{color:var(--warning)}.today-stat-card span{color:var(--text-secondary);font-size:13px;font-weight:600}.today-stat-card strong{color:var(--text-primary);font-size:24px;font-weight:700;font-family:var(--font-heading)}.pending-task-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.pending-task-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);gap:3px;padding:10px;display:grid}.pending-task-card span{color:var(--text-secondary);font-size:11px;font-weight:800}.pending-task-card strong{font-family:var(--font-heading);font-size:22px}.pending-task-card small{color:var(--text-muted);font-size:11px;line-height:1.25}.pending-task-card.success{background:var(--success-light);border-color:#10b98138}.pending-task-card.warning{background:var(--warning-light);border-color:#f59e0b47}.pending-task-card.danger{background:var(--danger-light);border-color:#ef444447}.pending-task-card.success strong{color:var(--success)}.pending-task-card.warning strong{color:var(--warning)}.pending-task-card.danger strong{color:var(--danger)}.pipeline-total{border-radius:var(--radius-sm);background:var(--primary-light);min-width:118px;color:var(--primary);flex-direction:column;align-items:center;padding:8px 10px;display:flex}.pipeline-heading{grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;width:100%;display:grid!important}.pipeline-heading>:last-child{justify-self:end}@media (width<=768px){.pipeline-heading{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex!important}.pipeline-heading>:last-child{justify-self:stretch;width:100%}}.pipeline-total span{font-size:11px;font-weight:700}.pipeline-total strong{font-size:20px}.pipeline-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.pipeline-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;text-align:left;transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);padding:9px}.pipeline-card:hover,.pipeline-card.selected{background:var(--primary-light);border-color:#2563eb59;transform:translateY(-1px)}.pipeline-card span{color:var(--text-secondary);font-size:11px;font-weight:800;display:block}.pipeline-card strong{margin:4px 0 8px;font-size:18px;display:block}.pipeline-card i,.capacity-card i{border-radius:var(--radius-full);background:var(--border-color);height:5px;display:block;overflow:hidden}.pipeline-card i b,.capacity-card i b{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--info));height:100%;display:block}.running-panel{min-height:238px}.batch-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-right:2px;display:grid;overflow:visible}.batch-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);flex-direction:column;gap:10px;padding:10px;display:flex}.batch-title-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.batch-title-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.batch-card small{color:var(--text-secondary)}.batch-progress{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.batch-progress div{border-radius:var(--radius-full);background:var(--border-color);height:7px;overflow:hidden}.batch-progress b{border-radius:inherit;background:var(--success);height:100%;display:block}.batch-progress span,.batch-meta{color:var(--text-secondary);font-size:11px;font-weight:700}.batch-meta{justify-content:space-between;display:flex}.asset-health{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;display:grid}.asset-health div{border-radius:var(--radius-sm);background:var(--bg-primary);padding:10px}.asset-health span,.capacity-card span{color:var(--text-secondary);font-size:11px;font-weight:800;display:block}.asset-health strong,.capacity-card strong{font-size:20px}.capacity-card{border-radius:var(--radius-sm);background:var(--primary-light);margin-bottom:10px;padding:10px}.capacity-card div{justify-content:space-between;margin-bottom:8px;display:flex}.quick-module-list{gap:8px;display:grid}.quick-module-list button{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 10px;display:grid}.quick-module-list button:hover{background:var(--primary-light);border-color:#2563eb47}.quick-module-list span{font-size:13px;font-weight:700}.activity-panel{min-height:250px}.activity-list.enterprise{margin-top:0}.investment-card{border-radius:var(--radius-sm);background:var(--bg-primary);margin-bottom:10px;padding:10px 14px}.investment-card span{color:var(--text-secondary);margin-bottom:4px;font-size:11px;font-weight:800;display:block}.investment-card strong{color:var(--text-primary);font-size:20px;font-weight:700}.empty-dashboard-state{min-height:150px;color:var(--text-muted);border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.empty-dashboard-state strong{color:var(--text-primary)}.empty-dashboard-state.compact{min-height:100px}@media (width>=901px){.content-body{height:calc(100vh - 61px);overflow:hidden}.table-container{max-height:calc(100vh - 190px)}.machines-grid,.catalog-grid{max-height:calc(100vh - 190px);padding-right:2px;overflow:auto}.attendance-page{min-height:calc(100vh - 112px);max-height:calc(100vh - 84px);padding-right:2px;overflow:auto}.attendance-page .page-actions-bar{margin-bottom:0}.attendance-page .glass-card{border-radius:var(--radius-sm)}.attendance-month-nav{min-height:34px}.attendance-month-nav strong{font-size:16px}.salary-breakdown{padding:12px 14px}.salary-breakdown .catalog-card-header h3{font-size:15px}.salary-breakdown .catalog-card-header p{font-size:12px}}@media (width>=1025px){.attendance-page{box-sizing:border-box;flex-direction:column;gap:8px;height:100%;padding-bottom:16px;padding-right:2px;display:flex;overflow-y:auto}.attendance-command-grid{gap:8px}.attendance-user-picker{min-height:60px;padding:6px 12px}.clock-card{padding:6px 12px}.clock-card-main{gap:8px}.clock-pills{gap:4px;margin-top:4px}.time-pill svg,.time-card svg{width:22px;height:22px;padding:4px}.clock-action{width:48px;height:48px}.clock-action svg{width:18px;height:18px}.clock-action span{font-size:8px}.attendance-summary-grid{gap:10px}.attendance-summary-card{min-height:56px;padding:6px 10px}.attendance-summary-card strong{font-size:20px}.attendance-workspace{flex:1;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:12px;min-height:0;display:grid}.attendance-calendar{flex-direction:column;gap:6px;min-height:0;padding:8px 12px;display:flex}.attendance-calendar-header{margin-bottom:6px}.calendar-weekdays{margin-bottom:4px}.calendar-day{height:clamp(38px,5vh,58px);min-height:34px;padding:3px 5px;font-size:13px}.calendar-legend{margin-top:6px}.attendance-side-stack{flex-direction:column;gap:12px;height:100%;min-height:0;display:flex}.side-card-compact{padding:8px 12px}.side-card-compact .catalog-card-header{margin-bottom:4px}.side-card-row{padding:2px 4px}}@media (width<=1024px){.attendance-command-grid{grid-template-columns:1fr}.attendance-workspace{flex-direction:column;flex:none;gap:14px;height:auto;min-height:auto;display:flex}.attendance-side-stack{grid-template-rows:auto;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;height:auto;min-height:auto;display:grid}.attendance-calendar{height:auto;min-height:auto}.calendar-day{height:clamp(42px,6vh,58px);min-height:38px}}@media (width<=1100px){.find-result-grid,.find-lower-grid{grid-template-columns:1fr}.setting-card{flex-direction:column;align-items:stretch}.segmented-control{width:100%}.segmented-control button{flex:1;justify-content:center}}@media (width<=1280px) and (width>=901px){.dashboard-layout{grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr)}.pending-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-list{grid-template-columns:1fr}.hostel-workbench-grid{grid-template-columns:minmax(240px,.85fr) minmax(0,1.85fr)}.room-bed-layout{grid-template-columns:1fr}.bed-grid{max-height:188px}.laundry-workbench,.laundry-stage-columns{grid-template-columns:1fr}.laundry-card-grid,.delivery-list{max-height:260px}.attendance-advance-card{min-height:0}}@media (width<=900px){.admin-split-grid,.two-column-form,.workbench-grid{grid-template-columns:1fr}.search-filter-group{flex-direction:column;align-items:stretch;width:100%;max-width:none}.attendance-user-picker,.attendance-command-grid,.attendance-workspace,.salary-lines,.operations-flow{grid-template-columns:1fr}.attendance-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-side-stack{grid-template-rows:auto;grid-template-columns:1fr;height:auto;display:grid}.workbench-rail,.workbench-main{max-height:none;overflow:visible}.dashboard-hero,.panel-heading,.batch-meta,.dashboard-section-title{flex-direction:column;align-items:stretch}.dashboard-hero-actions{justify-content:stretch}.dashboard-hero-actions .btn{flex:1}.dashboard-kpi-grid,.dashboard-layout,.today-stat-grid,.pending-task-grid,.batch-list{grid-template-columns:1fr}.dashboard-side-column{min-width:0}.hostel-metrics-grid,.hostel-workbench-grid,.room-bed-layout,.selected-hostel-stats{grid-template-columns:1fr}.hostel-rail,.wing-grid,.room-grid,.bed-grid{max-height:none}.selected-hostel-summary,.hostel-section-heading{flex-direction:column;align-items:stretch}.hostel-selection-card{grid-template-columns:1fr}.hostel-selection-actions{justify-content:flex-end}.room-sheet-overlay{align-items:flex-end;padding:12px}.room-form-sheet{border-radius:18px 18px 8px 8px;max-width:420px}.room-sheet-handle{display:block}.laundry-metrics-grid,.laundry-tabs,.laundry-workbench,.laundry-ops-grid,.laundry-stage-columns,.delivery-row{grid-template-columns:1fr}.laundry-tabs-actions{min-width:0}.laundry-tabs-actions .btn{justify-content:center;width:100%}.stage-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.laundry-card-grid,.laundry-card-grid.single,.cloth-mini-list,.delivery-list,.laundry-machine-grid,.machine-asset-list{max-height:none}.machine-assets-hero{flex-flow:column wrap;align-items:stretch}.machine-assets-hero .btn{justify-content:center;width:100%}.machine-asset-list{grid-template-columns:1fr}.machine-asset-head{grid-template-columns:42px minmax(0,1fr) auto 34px}.machine-asset-card>em{display:none}.machine-floating-add{bottom:18px;right:18px}.machine-hero-actions,.machine-type-form{flex-direction:column;grid-template-columns:1fr}.machine-search-box{flex-basis:auto}.machine-hero-actions .btn,.machine-type-form .btn{justify-content:center;width:100%}.cloth-scope-tab-row{flex-direction:column;align-items:stretch}.cloth-scope-tabs{width:100%}.cloth-scope-tabs .tab-btn{flex:1}.cloth-scope-tab-actions .btn{justify-content:center;width:100%}.barcode-action-row{grid-template-columns:1fr}.batch-card-actions,.delivery-row-actions,.active-cycle-footer{justify-content:stretch}.batch-card-actions .btn,.delivery-row-actions .btn,.delivery-row-actions .icon-btn,.active-cycle-footer .btn{flex:1}.active-cycle-actions{grid-template-columns:1fr 1fr}.clock-card-main,.month-review-card,.override-row{grid-template-columns:1fr}.clock-card-main{align-items:flex-start}.clock-action{border-radius:var(--radius-sm);flex-direction:row;width:100%;height:44px}.clock-action span{max-width:none}.month-review-stats{grid-area:auto/1}.day-time-grid{grid-template-columns:1fr}.find-search-card{grid-template-columns:1fr;gap:14px}.find-manual-panel{justify-self:stretch}.find-actions-row{grid-template-columns:1fr 1fr;display:grid}}@media (width<=560px){.attendance-summary-grid,.clock-pills,.month-review-stats,.salary-lines{grid-template-columns:1fr}.attendance-calendar{padding:9px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-day,.calendar-blank{min-height:40px}.calendar-day{height:40px;padding:5px}.calendar-day small{font-size:9px}.attendance-calendar-header{flex-direction:column;align-items:center;gap:8px;display:flex}.attendance-calendar-header .attendance-month-nav{justify-content:center}}.student-cards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:16px;display:grid}.student-card{transition:transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;justify-content:space-between;display:flex}.student-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.student-card-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.student-avatar{border-radius:var(--radius-full);justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;font-weight:700;display:flex}.student-avatar.male{background:var(--primary-light);color:var(--primary)}.student-avatar.female{background:var(--danger-light);color:var(--danger)}.student-card-body{color:var(--text-secondary);grid-template-columns:1fr 1fr;gap:8px 12px;margin-bottom:16px;font-size:13px;display:grid}.student-card-field{flex-direction:column;display:flex}.student-card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:700}.student-card-value{color:var(--text-primary);margin-top:2px;font-weight:500}.student-card-actions{border-top:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding-top:12px;display:flex}.slide-over-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172a66;justify-content:flex-end;display:flex;position:fixed;inset:0}.slide-over-content{background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;width:100%;max-width:500px;height:100%;animation:.3s cubic-bezier(.16,1,.3,1) slideIn;display:flex;box-shadow:-4px 0 24px #00000026}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.slide-over-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.slide-over-body{flex-direction:column;flex:1;gap:20px;padding:24px;display:flex;overflow-y:auto}.slide-over-footer{border-top:1px solid var(--border-color);background:var(--bg-primary);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.wardrobe-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;max-height:400px;margin-top:12px;padding:4px;display:grid;overflow-y:auto}.wardrobe-item-card{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-secondary);transition:border-color var(--transition-fast);flex-direction:column;justify-content:space-between;gap:8px;padding:12px;display:flex;position:relative}.wardrobe-item-card:hover{border-color:var(--primary)}.wardrobe-item-info{flex-direction:column;gap:2px;display:flex}.wardrobe-item-title{color:var(--text-primary);font-size:13px;font-weight:600}.wardrobe-item-barcode{color:var(--text-secondary);align-items:center;gap:4px;font-family:monospace;font-size:11px;display:flex}.wardrobe-item-status{align-self:flex-start;margin-top:4px}.wardrobe-item-actions{border-top:1px dashed var(--border-color);justify-content:flex-end;gap:6px;margin-top:8px;padding-top:8px;display:flex}.wardrobe-apk-shell{flex:1;align-content:start;gap:14px;display:grid}.wardrobe-student-hero{color:#fff;background:linear-gradient(135deg,#1565c0 0%,#1e88e5 56%,#148fc3 100%);border-radius:8px;min-height:128px;padding:20px 24px;position:relative;overflow:hidden;box-shadow:0 12px 26px #1565c038}.wardrobe-student-hero>div:first-child{gap:14px;display:grid}.wardrobe-student-hero span{letter-spacing:.08em;opacity:.9;font-size:12px;font-weight:800}.wardrobe-student-hero strong{font-size:22px;font-family:var(--font-heading)}.wardrobe-roll-chip{border-radius:var(--radius-full);letter-spacing:0;background:#ffffff2e;padding:6px 12px;position:absolute;top:18px;right:18px}.wardrobe-location-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;margin-top:18px;display:grid}.wardrobe-location-grid small{opacity:.88;font-size:11px}.wardrobe-search-box{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:0 14px;display:grid}.wardrobe-search-box input{width:100%;color:var(--text-primary);background:0 0;border:0;outline:0;font-size:14px}.wardrobe-search-box input::placeholder{color:var(--text-muted)}.wardrobe-search-box button{color:var(--text-muted);cursor:pointer;background:0 0;border:0}.wardrobe-filter-row{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(90px,.8fr);gap:10px;display:grid}.wardrobe-filter-row select,.wardrobe-print-chip{border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);min-height:36px;color:var(--text-secondary);padding:0 14px;font-size:12px;font-weight:700}.wardrobe-filter-row select{appearance:none;background-color:var(--bg-secondary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 18px center;background-repeat:no-repeat;background-size:18px 18px;min-height:48px;padding:0 46px 0 20px;line-height:1.2}.wardrobe-print-chip{color:#fff;background:var(--primary);border-color:var(--primary);cursor:pointer;justify-content:center;align-items:center;gap:8px;display:inline-flex}.wardrobe-list-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.wardrobe-list-header strong{font-size:14px}.wardrobe-list-header div{gap:8px;display:flex}.wardrobe-list-header .btn{min-height:36px;padding:7px 12px;font-size:12px}.wardrobe-apk-list{gap:10px;max-height:430px;padding:2px 4px 6px;display:grid;overflow-y:auto}.wardrobe-apk-row{border:1px solid var(--border-color);background:var(--bg-secondary);cursor:pointer;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:72px;padding:10px 12px;display:grid;box-shadow:0 3px 8px #0f172a0f}.wardrobe-apk-row:hover{background:var(--primary-light);border-color:#2563eb59}.wardrobe-row-main{gap:4px;min-width:0;display:grid}.wardrobe-row-main strong{color:#07147d;font-size:14px;font-weight:900}.wardrobe-row-main>span{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-family:monospace;font-size:11px;display:flex;overflow:hidden}.barcode-copy-button{width:20px;height:20px;color:var(--primary);cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;display:inline-flex}.wardrobe-status-badge{border-radius:var(--radius-full);max-width:130px;color:var(--primary);background:var(--primary-light);border:1px solid #2563eb24;justify-content:center;align-items:center;padding:4px 9px;font-size:10px;font-weight:900;display:inline-flex}.wardrobe-status-badge.available,.wardrobe-status-badge.delivered{color:var(--success);background:var(--success-light);border-color:#10b9813d}.wardrobe-status-badge.collected,.wardrobe-status-badge.drying,.wardrobe-status-badge.readyforironing{color:var(--warning);background:var(--warning-light);border-color:#f59e0b3d}.wardrobe-chevron{color:var(--text-muted)}.wardrobe-empty-state{text-align:center;color:var(--text-muted);border:1px dashed var(--border-color);background:var(--bg-primary);border-radius:8px;padding:32px;font-size:13px}.cloth-detail-sheet{border-radius:22px 22px 14px 14px;width:min(440px,100vw - 28px);max-height:84vh;padding:18px 22px 24px;overflow-y:auto}.cloth-sheet-handle{border-radius:var(--radius-full);background:var(--border-color);width:44px;height:4px;margin:0 auto 18px}.cloth-sheet-header{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;display:grid}.cloth-avatar.large{border-radius:var(--radius-full);width:58px;height:58px}.cloth-sheet-header h3{margin:0;font-size:20px}.cloth-sheet-header span{color:var(--text-muted);font-size:13px}.cloth-barcode-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;margin-top:22px;padding:16px 18px}.cloth-barcode-card>div{justify-content:center;min-height:150px}.cloth-sheet-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.cloth-workflow-control{border-top:1px solid var(--border-color);gap:8px;margin-top:20px;padding-top:16px;display:grid}.cloth-status-select{--status-color:#9ca3af;position:relative}.cloth-status-select.green{--status-color:#4caf50}.cloth-status-select.orange{--status-color:#ff9800}.cloth-status-select.blue{--status-color:#2196f3}.cloth-status-select.cyan{--status-color:#00bcd4}.cloth-status-select.amber{--status-color:#ffc107}.cloth-status-select.purple{--status-color:#9c27b0}.cloth-status-select.teal{--status-color:#009688}.cloth-status-select.bluegrey{--status-color:#607d8b}.cloth-status-select.red{--status-color:#f44336}.cloth-status-select.grey{--status-color:#9e9e9e}.cloth-status-select .form-select{border-color:color-mix(in srgb, var(--status-color) 42%, var(--border-color));padding-left:42px}.cloth-status-select-icon{z-index:2;color:var(--status-color);pointer-events:none;display:inline-flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.cloth-workflow-control label,.cloth-sheet-history strong,.cloth-comments-box strong,.cloth-process-toggle strong{color:#07147d;font-size:13px;font-weight:900}[data-theme=dark] .cloth-workflow-control label,[data-theme=dark] .cloth-sheet-history strong,[data-theme=dark] .cloth-comments-box strong,[data-theme=dark] .cloth-process-toggle strong{color:var(--text-primary)}.cloth-process-panel{border-top:1px solid var(--border-color);gap:8px;padding-top:14px;display:grid}.cloth-process-toggle{width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;display:flex}.cloth-process-toggle svg{color:var(--text-secondary);transition:transform var(--transition-fast)}.cloth-process-toggle svg.open{transform:rotate(90deg)}.cloth-process-timeline{gap:0;padding:8px 0 2px;display:grid}.cloth-process-step{--status-color:#9ca3af;grid-template-columns:24px minmax(0,1fr);column-gap:16px;min-height:48px;display:grid;position:relative}.cloth-process-step.green{--status-color:#4caf50}.cloth-process-step.orange{--status-color:#ff9800}.cloth-process-step.blue{--status-color:#2196f3}.cloth-process-step.cyan{--status-color:#00bcd4}.cloth-process-step.amber{--status-color:#ffc107}.cloth-process-step.purple{--status-color:#9c27b0}.cloth-process-step.teal{--status-color:#009688}.cloth-process-step.bluegrey{--status-color:#607d8b}.cloth-process-step.red{--status-color:#f44336}.cloth-process-step.grey{--status-color:#9e9e9e}.cloth-process-node{z-index:1;border:2px solid var(--status-color);border-radius:var(--radius-full);color:#fff;background:var(--bg-secondary);justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.cloth-process-step.completed .cloth-process-node{background:var(--status-color)}.cloth-process-line{background:var(--border-color);width:2px;position:absolute;top:22px;bottom:0;left:10px}.cloth-process-step.completed .cloth-process-line{background:var(--status-color)}.cloth-process-copy{gap:2px;padding-top:1px;display:grid}.cloth-process-copy span{color:var(--text-muted);font-size:13px}.cloth-process-step.completed .cloth-process-copy span{color:var(--text-primary)}.cloth-process-step.current .cloth-process-copy span{color:var(--status-color);font-weight:800}.cloth-process-copy small{color:var(--text-muted);font-size:11px}.cloth-sheet-history{border-top:1px solid var(--border-color);gap:10px;margin-top:16px;padding-top:14px;display:grid}.cloth-sheet-history>span{color:var(--text-muted);font-size:12px}.cloth-comments-box{border-top:1px solid var(--border-color);gap:12px;margin-top:18px;padding-top:16px;display:grid}.cloth-comments-box strong{align-items:center;gap:8px;display:inline-flex}.cloth-comments-box>div,.cloth-comments-box>form{grid-template-columns:minmax(0,1fr) 48px;gap:10px;margin:0;display:grid}.cloth-comments-box>span{color:var(--text-muted);text-align:center;font-size:12px}@media (width<=760px){.wardrobe-location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wardrobe-filter-row{grid-template-columns:1fr 1fr .9fr}.wardrobe-list-header{flex-direction:column;align-items:stretch}.wardrobe-list-header div,.wardrobe-list-header .btn{width:100%}.wardrobe-apk-row{grid-template-columns:auto minmax(0,1fr) auto auto}.wardrobe-status-badge{max-width:96px}}.timeline-logs{flex-direction:column;gap:16px;margin-top:10px;padding-left:20px;display:flex;position:relative}.timeline-logs:before{content:"";background:var(--border-color);width:2px;position:absolute;top:4px;bottom:4px;left:6px}.timeline-item{position:relative}.timeline-marker{border-radius:var(--radius-full);background:var(--bg-secondary);border:3px solid var(--primary);width:14px;height:14px;position:absolute;top:4px;left:-20px}.timeline-marker.deactivated{border-color:var(--danger)}.timeline-marker.regenerated{border-color:var(--warning)}.timeline-marker.scan{border-color:var(--success)}.timeline-content{flex-direction:column;gap:2px;display:flex}.timeline-time{color:var(--text-muted);font-size:10px;font-weight:500}.timeline-action{color:var(--text-primary);font-size:13px;font-weight:600}.timeline-message{color:var(--text-secondary);font-size:11px}.csv-upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;background:var(--file-drop-bg);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);padding:32px 16px}.csv-upload-zone:hover{border-color:var(--primary);background:var(--file-drop-hover-bg)}.csv-preview-container{border:1px solid var(--border-color);border-radius:var(--radius-sm);max-height:280px;margin-top:12px;overflow:auto}@media (width<=768px){.student-cards-grid{grid-template-columns:1fr}.hide-on-mobile{display:none!important}.activity-filter-grid{grid-template-columns:1fr 1fr}.activity-filter-grid label:first-child{grid-column:1/-1}.activity-log-foot{flex-direction:column;gap:5px}}@media (width<=540px){.activity-date-range{grid-template-columns:1fr}.activity-log-list{max-height:none}}@media (width>=769px){.hide-on-desktop-tablet{display:none!important}}.print-label-scale-wrapper{transform-origin:50%;transition:transform .2s}@media (height<=720px){.print-label-scale-wrapper{transform:scale(.85)}}@media (height<=640px){.print-label-scale-wrapper{transform:scale(.7)}}.modal-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.print-barcode-overlay{z-index:1200;justify-content:center;align-items:center}.print-barcode-modal{flex-direction:column;width:min(90vw,820px);height:min(90vh,680px);display:flex;overflow:hidden}.print-barcode-body{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);min-height:0;padding:18px 20px 20px;overflow:hidden}.print-preview-column,.print-dialog-checklist-col{flex-direction:column;gap:14px;min-height:0;display:flex}.print-dialog-checklist-col{border-left:1px solid var(--border-color);padding-left:20px}.print-checklist-header{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:10px;display:flex}.print-checklist-actions{gap:8px;display:flex}.print-cloth-select-list{background:#f8fafc;border:1px solid #dbeafe;border-radius:8px;flex-direction:column;flex:1;gap:7px;min-height:0;padding:8px;display:flex;overflow-y:auto}.print-cloth-select-row{cursor:pointer;min-height:58px;transition:border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;border:1px solid #e2e8f0;border-radius:7px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.print-cloth-select-row:hover{background:#eff6ff;border-color:#bfdbfe}.print-cloth-select-row.selected{box-shadow:inset 3px 0 0 var(--primary);background:#eff6ff;border-color:#93c5fd}.print-cloth-select-row input{width:14px;height:14px;accent-color:var(--primary);cursor:pointer}.print-cloth-select-copy{min-width:0}.print-cloth-select-copy div,.print-cloth-select-copy span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.print-cloth-select-copy div{color:#0f172a;font-size:13px;font-weight:800}.print-cloth-select-copy span{color:#475569;margin-top:2px;font-family:monospace;font-size:11px;font-weight:700}@media (width<=560px){.modal-grid{grid-template-columns:1fr;gap:10px}.print-barcode-modal{width:94vw;height:90vh}.print-barcode-body{grid-template-rows:auto;grid-template-columns:1fr;overflow-y:auto}.print-dialog-checklist-col{border-left:0;padding-left:0}.print-cloth-select-list{flex:none;max-height:260px}}.detail-metrics-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=768px){.detail-metrics-grid{grid-template-columns:1fr 1fr;gap:8px}}@media (width<=480px){.detail-metrics-grid{grid-template-columns:1fr}}.badge-laundry-available{background:var(--success-light);color:var(--success)}.badge-laundry-collected{background:var(--warning-light);color:var(--warning)}.badge-laundry-washing{background:var(--primary-light);color:var(--primary)}.badge-laundry-drying{background:var(--warning-light);color:var(--warning)}.badge-laundry-ironing{background:var(--primary-light);color:var(--primary)}.badge-laundry-ready{background:var(--info-light);color:var(--info)}.badge-laundry-delivered{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color)}.badge-laundry-rewash{background:var(--danger-light);color:var(--danger)}.detail-info-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=768px){.detail-info-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.detail-info-grid{grid-template-columns:1fr}}.print-label-card{box-sizing:border-box;background:#fff;border:1.5px solid #a1a1aa;flex-direction:column;justify-content:space-between;align-items:center;margin:0;padding:0;display:flex;overflow:hidden}.print-label-card.size-40x80{color:#000;background-color:#fff;border:1px solid #ccc;border-radius:4px;flex-direction:column;width:40mm;height:80mm;display:flex;overflow:hidden}.print-label-card.size-60x40{border-radius:8px;justify-content:flex-start;width:60mm;height:40mm;padding-bottom:4px}.print-label-card.size-60x40 .stitching-area{padding:2.5px 6px;font-size:7px}.print-label-card.size-60x40 .logo-bar{margin-bottom:2px;padding:3px 0}.print-label-card.size-60x40 .logo-bar .logo-img{width:12px;height:12px}.print-label-card.size-60x40 .logo-bar .logo-text{font-size:11px}.print-label-card.size-60x40 .barcode-wrapper{width:88%;height:18mm;margin-bottom:3px}.print-label-card.size-60x40 .barcode-wrapper .barcode-text{font-size:8px}.print-label-card.size-60x40 .highlight-row{padding:0 6px}.print-label-card.size-60x40 .highlight-row .h-box{border-radius:2.5px;padding:2.5px 4px;font-size:7.5px}.print-label-card.size-60x40 .cloth-title{margin-top:1px;font-size:8px}.print-label-card.size-50x35{border-radius:6px;width:50mm;height:35mm;padding-bottom:3px}.print-label-card.size-50x35 .stitching-area{padding:2px 4px;font-size:6px}.print-label-card.size-50x35 .logo-bar{padding:2px 0}.print-label-card.size-50x35 .logo-bar .logo-img{width:10px;height:10px}.print-label-card.size-50x35 .logo-bar .logo-text{font-size:9px}.print-label-card.size-50x35 .barcode-wrapper{width:88%;height:11mm}.print-label-card.size-50x35 .barcode-wrapper .barcode-text{font-size:7px}.print-label-card.size-50x35 .highlight-row{padding:0 5px}.print-label-card.size-50x35 .highlight-row .h-box{border-radius:2px;padding:2px 3px;font-size:6.5px}.print-label-card.size-50x35 .cloth-title{margin-top:1px;font-size:7px}.print-label-card.size-40x30{border-radius:5px;width:40mm;height:30mm;padding-bottom:2px}.print-label-card.size-40x30 .stitching-area{padding:1.5px 3px;font-size:5px}.print-label-card.size-40x30 .logo-bar{padding:1.5px 0}.print-label-card.size-40x30 .logo-bar .logo-img{width:8px;height:8px}.print-label-card.size-40x30 .logo-bar .logo-text{font-size:8px}.print-label-card.size-40x30 .barcode-wrapper{width:88%;height:9.5mm}.print-label-card.size-40x30 .barcode-wrapper .barcode-text{font-size:6px}.print-label-card.size-40x30 .highlight-row{padding:0 4px}.print-label-card.size-40x30 .highlight-row .h-box{border-radius:1.5px;padding:1.5px 2px;font-size:5.5px}.print-label-card.size-40x30 .cloth-title{margin-top:.5px;font-size:6px}.print-label-card.size-35x35{border-radius:4px;width:35mm;height:35mm;padding-bottom:2px}.print-label-card.size-35x35 .stitching-area{padding:1px 2px;font-size:5px}.print-label-card.size-35x35 .logo-bar{padding:1px 0}.print-label-card.size-35x35 .logo-bar .logo-img{width:8px;height:8px}.print-label-card.size-35x35 .logo-bar .logo-text{font-size:7px}.print-label-card.size-35x35 .barcode-wrapper{justify-content:center;align-items:center;width:100%;height:14mm;margin-top:1mm;display:flex}.print-label-card.size-35x35 .barcode-wrapper .barcode-text{font-size:6px}.print-label-card.size-35x35 .highlight-row{padding:0 2px}.print-label-card.size-35x35 .highlight-row .h-box{border-radius:1px;padding:1px 1.5px;font-size:5px}.print-label-card.size-35x35 .cloth-title{margin-top:1px;font-size:6px}.print-label-card .stitching-area{color:#fff;text-align:center;letter-spacing:.5px;box-sizing:border-box;background:#000;width:100%;font-weight:700}.print-label-card .logo-bar{box-sizing:border-box;background:#e3f2fd;justify-content:center;align-items:center;width:100%;display:flex}.print-label-card .logo-bar .logo-img{display:block}.print-label-card .logo-bar .logo-text{color:#1565c0;letter-spacing:.5px;margin-left:3px;font-weight:700}.print-label-card .barcode-wrapper{box-sizing:border-box;flex-direction:column;flex:none;justify-content:center;align-items:center;margin:0 auto;padding:0;display:flex;overflow:hidden}.print-label-card .barcode-wrapper svg{flex:auto;width:100%;min-width:0;height:auto;max-height:100%;margin:0 auto;display:block}.print-label-card .barcode-wrapper .barcode-text{color:#000;text-align:center;width:100%;margin-top:1px;font-family:monospace;font-weight:700;line-height:1}.print-label-card .highlight-row{box-sizing:border-box;justify-content:space-evenly;width:100%;display:flex}.print-label-card .highlight-row .h-box{text-align:center;box-sizing:border-box;font-weight:700;display:inline-block}.print-label-card .wing-box{color:#000;background:#e8eaf6}.print-label-card .room-box{color:#000;background:#e8f5e9}.print-label-card .bed-box{color:#000;background:#f3e5f5}.print-label-card .roll-box{color:#000;background:#fff8e1}.print-label-card .linen-box{color:#000;background:#fce4ec}.print-label-card .count-box{color:#000;background:#eceff1}.print-label-card .cloth-title{color:#000;text-align:center;box-sizing:border-box;font-weight:700}#print-root{display:none}@page size-60x40{size:60mm 40mm;margin:0}@page size-50x35{size:50mm 35mm;margin:0}@page size-40x30{size:40mm 30mm;margin:0}@page size-35x35{size:35mm 35mm;margin:0}@media print{body{background:#fff!important;margin:0!important;padding:0!important}body>*{display:none!important}body>#print-root{z-index:99999!important;flex-direction:column!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:flex!important;position:absolute!important;top:0!important;left:0!important}.print-label-card{page-break-after:always;page-break-inside:avoid;break-after:page}.print-label-card.size-60x40{page:size-60x40;width:60mm;height:40mm}.print-label-card.size-50x35{page:size-50x35;width:50mm;height:35mm}.print-label-card.size-40x30{page:size-40x30;width:40mm;height:30mm}.print-label-card.size-35x35{page:size-35x35;width:35mm;height:35mm}}.toast-container{z-index:9999;border-radius:var(--radius-md);opacity:0;pointer-events:none;justify-content:space-between;align-items:center;gap:10px;min-width:300px;padding:14px 24px;font-size:14px;font-weight:600;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s;display:flex;position:fixed;top:24px;right:24px;transform:translateY(-100px);box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #00000026}.toast-container.show{opacity:1;pointer-events:auto;transform:translateY(0)}.toast-success{color:#fff;background-color:#10b981;border-left:5px solid #047857}.toast-error{color:#fff;background-color:#ef4444;border-left:5px solid #b91c1c}.toast-close-btn{color:#fffc;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;font-weight:700;line-height:1}.toast-close-btn:hover{color:#fff}.app-toast-stack{z-index:100000;pointer-events:none;gap:10px;width:min(420px,100vw - 28px);display:grid;position:fixed;top:24px;right:24px}.app-toast{color:#fff;pointer-events:auto;border-radius:12px;align-items:center;gap:12px;min-height:46px;padding:12px 14px 12px 16px;font-weight:800;animation:.22s ease-out toast-slide-up;display:flex;box-shadow:0 18px 40px #0f172a38}.app-toast-success{background:#10b981;border-left:5px solid #047857}.app-toast-error{background:#ef4444;border-left:5px solid #b91c1c}.app-toast-warning{background:#f59e0b;border-left:5px solid #d97706}.app-toast span{flex:1;line-height:1.35}.app-toast button{color:#fff;cursor:pointer;background:#ffffff2e;border:0;border-radius:8px;width:26px;height:26px;font-size:18px;font-weight:900;line-height:1}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.status-toggle-switch{cursor:pointer;box-sizing:border-box;background-color:#0000;border:1.5px solid;border-radius:20px;outline:none;align-items:center;width:90px;height:30px;padding:0;transition:all .25s ease-in-out;display:flex;position:relative}.status-toggle-switch:disabled{cursor:not-allowed;opacity:.6}.status-toggle-switch.active{background-color:#4caf501f;border-color:#4caf5066}.status-toggle-switch.inactive{background-color:#f443361f;border-color:#f4433666}.status-toggle-knob{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;transition:all .25s cubic-bezier(.25,.8,.25,1);display:flex;position:absolute;top:2.5px}.status-toggle-switch.active .status-toggle-knob{background-color:#4caf50;left:calc(100% - 25px);box-shadow:0 1.5px 3px #4caf5040}.status-toggle-switch.inactive .status-toggle-knob{background-color:#f44336;left:3px;box-shadow:0 1.5px 3px #f4433640}.status-toggle-label{font-size:9.5px;font-weight:700;transition:all .25s ease-in-out;position:absolute;top:50%;transform:translateY(-50%)}.status-toggle-switch.active .status-toggle-label{color:#4caf50;left:10px}.status-toggle-switch.inactive .status-toggle-label{color:#f44336;right:10px}.monthly-summary-grid>div.wash-frequency-clickable-card{cursor:pointer;transition:all .2s}.monthly-summary-grid>div.wash-frequency-clickable-card:hover{background:var(--bg-primary);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #0f172a14}.input-with-icon-wrap{align-items:center;width:100%;display:flex;position:relative}.input-with-icon-wrap .input-icon{color:var(--text-muted);pointer-events:none;transition:color .2s;position:absolute;left:12px}.input-with-icon-wrap .form-input,.input-with-icon-wrap .form-select{padding-left:36px!important}.input-with-icon-wrap:focus-within .input-icon{color:var(--primary)}.form-input.invalid,.form-select.invalid{border-color:var(--danger)!important;background-color:#ef444405!important}.form-input.invalid:focus,.form-select.invalid:focus{box-shadow:0 0 0 3px #ef444426!important}.report-modal-backdrop{z-index:99999!important;justify-content:center!important;align-items:center!important;padding:24px!important}.report-modal-backdrop .cloth-detail-sheet{z-index:100000!important;opacity:1!important;visibility:visible!important;background:var(--bg-primary)!important;border-radius:22px!important;width:min(430px,100vw - 40px)!important;max-height:min(78vh,680px)!important;padding:18px 22px 24px!important;display:block!important;position:fixed!important;top:50%!important;left:50%!important;overflow-y:auto!important;transform:translate(-50%,-50%)!important;box-shadow:0 24px 60px #0f172a59!important}@media (width<=640px){.report-modal-backdrop{align-items:flex-end!important;padding:0!important}.report-modal-backdrop .cloth-detail-sheet{border-radius:22px 22px 0 0!important;width:100%!important;max-height:86vh!important;top:auto!important;bottom:0!important;left:0!important;transform:none!important}}.staff-card-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.user-tabs{border:1px solid var(--border-color);background:var(--bg-primary);width:min(100%,1600px);min-height:54px;box-shadow:var(--shadow-sm);border-radius:16px;grid-template-columns:repeat(3,1fr);align-self:stretch;margin:4px 0 0;padding:7px;display:grid}.user-tabs button{min-height:42px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);background:0 0;border:0;border-radius:12px;font-size:15px;font-weight:800}.user-tabs button.active{background:var(--primary);color:var(--text-inverse);box-shadow:0 8px 18px #2563eb2e}.staff-user-card,.staff-role-card{border:1px solid var(--border-color);background:var(--bg-primary);min-height:112px;box-shadow:var(--shadow-sm);border-radius:16px;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px 16px 22px;display:grid;position:relative;overflow:hidden}.staff-role-card{grid-template-columns:auto minmax(0,1fr) auto;min-height:82px}.staff-user-card:before{content:"";background:var(--primary);width:6px;position:absolute;inset:0 auto 0 0}.staff-user-card.role-danger:before{background:var(--danger)}.staff-user-card.role-warning:before{background:var(--warning)}.staff-user-card.role-secondary:before{background:var(--text-muted)}.staff-avatar{border:1.5px solid var(--border-color);background:var(--bg-secondary);width:50px;height:50px;color:var(--primary);border-radius:12px;place-items:center;font-size:22px;font-weight:900;display:grid}.staff-user-card.role-danger .staff-avatar{color:var(--danger);background:#ef444414;border-color:#ef44443d}.staff-user-card.role-warning .staff-avatar{color:var(--warning);background:#f59e0b14;border-color:#f59e0b3d}.staff-user-info{gap:7px;min-width:0;display:grid}.staff-user-info strong{color:var(--text-primary);font-size:17px;font-weight:900;line-height:1.15}.staff-user-info>span,.staff-phone{color:var(--text-secondary);font-size:13px;font-weight:700}.staff-phone{align-items:center;gap:6px;display:inline-flex}.staff-badges{flex-wrap:wrap;gap:6px;display:flex}.staff-actions{align-items:center;gap:8px;display:inline-flex}.icon-btn.danger{color:var(--danger)}.status-toggle{cursor:pointer;width:64px;height:34px;transition:background var(--transition-fast);background:#94a3b84d;border:0;border-radius:999px;padding:4px}.status-toggle span{background:var(--primary);width:26px;height:26px;transition:transform var(--transition-fast), background var(--transition-fast);border-radius:50%;display:block;box-shadow:0 3px 8px #0f172a2e}.status-toggle.active{background:#2563eb3d}.status-toggle.active span{transform:translate(30px)}.status-toggle.inactive span{background:var(--text-muted)}.search-filter-container{border:1px solid var(--border-color);background:var(--bg-primary);min-height:54px;color:var(--text-muted);border-radius:14px;align-items:center;gap:12px;padding:0 16px;display:flex}.search-filter-container input{width:100%;min-width:0;color:var(--text-primary);background:0 0;border:0;outline:0;font-size:15px;font-weight:700}.search-filter-container input::placeholder{color:var(--text-muted)}.permissions-mobile-shell{align-self:stretch;gap:14px;width:min(100%,1600px);display:grid}.permissions-editor{gap:14px;display:grid}.role-select-card{border:1.5px solid var(--border-color);background:linear-gradient(180deg, var(--bg-primary), var(--bg-secondary));min-height:70px;color:var(--primary);cursor:pointer;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:12px 16px 12px 18px;display:grid;position:relative}.role-select-card>span{background:var(--bg-secondary);color:var(--text-muted);padding:0 8px;font-size:12px;font-weight:700;position:absolute;top:-10px;left:22px}.role-select-card select{width:100%;min-width:0;height:48px;color:var(--text-primary);cursor:pointer;background:0 0;border:0;outline:0;font-size:18px;font-weight:900}.permissions-panel{border:1.5px solid var(--border-color);background:var(--bg-secondary);box-shadow:inset 0 1px 0 #ffffff8c, var(--shadow-sm);border-radius:20px;gap:14px;padding:22px;display:grid}.permissions-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.permissions-panel-header h3{color:var(--text-primary);margin:0;font-size:18px;font-weight:900}.permission-edit-btn{min-height:36px;color:var(--primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;font-size:15px;font-weight:900;display:inline-flex}.permission-edit-actions{gap:8px;display:inline-flex}.permissions-toolbar{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:14px;align-items:end;gap:12px;padding:16px;display:flex}.permissions-toolbar .form-select{max-width:360px}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.permission-group-card{border:1.5px solid var(--border-color);background:var(--bg-primary);border-radius:16px;gap:14px;padding:18px 20px;display:grid;box-shadow:0 8px 22px #0f172a0a}.permission-group-card h4{color:var(--text-primary);border-bottom:2px solid #2563eb73;align-items:center;gap:8px;margin:0;padding-bottom:12px;font-size:14px;font-weight:900;display:inline-flex}.permission-row-grid{grid-template-columns:repeat(2,minmax(120px,1fr));gap:14px 20px;display:grid}.permission-row{background:var(--bg-secondary);min-height:40px;color:var(--text-secondary);text-transform:uppercase;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:900;display:inline-flex}.permission-row input{width:22px;height:22px;accent-color:var(--primary);appearance:none;cursor:pointer;background:#fff;border:2px solid #2563eb73;border-radius:5px;flex:none;box-shadow:inset 0 0 0 1px #ffffffd9}.permission-row:has(input:checked){color:var(--text-primary);background:#2563eb12;border-color:#2563eb38}.permission-row input:checked{border-color:var(--primary);background-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 9.2l3.1 3.1L14.2 5.2' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:18px 18px}.permission-row input:disabled{cursor:default;opacity:.9}.user-form-modal{max-width:620px}.account-info-card{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:12px;gap:16px;padding:16px;display:grid}.account-info-card h4{color:var(--primary);margin:0;font-size:15px;font-weight:900}.input-with-icon{position:relative}.input-with-icon>svg{z-index:1;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-with-icon .form-input,.input-with-icon .form-select{padding-left:44px}.phone-input-row{grid-template-columns:96px minmax(0,1fr);gap:10px;display:grid}.country-code-box{border:1px solid var(--border-color);background:var(--bg-secondary);min-height:48px;color:var(--text-primary);border-radius:12px;justify-content:center;align-items:center;gap:8px;display:flex}.modal-sm{max-width:460px}@media (width<=720px){.user-tabs,.permissions-mobile-shell{width:100%}.staff-user-card,.staff-role-card{grid-template-columns:50px minmax(0,1fr)}.staff-actions{grid-column:1/-1;justify-content:flex-end}.permissions-toolbar{flex-direction:column;align-items:stretch}.permissions-toolbar .form-select{max-width:none}.phone-input-row{grid-template-columns:88px minmax(0,1fr)}.permission-row-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1100px){.permission-grid{grid-template-columns:1fr}}[data-theme=dark] .permissions-panel{box-shadow:inset 0 1px 0 #ffffff0a, var(--shadow-sm);background:#0f172ac7}[data-theme=dark] .permission-group-card h4{border-bottom-color:#3b82f68c}[data-theme=dark] .permission-row:has(input:checked){background:#3b82f624;border-color:#3b82f65c}[data-theme=dark] .permission-row input{background:#fff;border-color:#60a5fab3}[data-theme=dark] .permission-row input:checked{background-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 9.2l3.1 3.1L14.2 5.2' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:18px 18px}.today-stat-card{cursor:pointer;transition:transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast)}.today-stat-card:hover{border-color:#2563eb59;transform:translateY(-1px);box-shadow:0 12px 26px #2563eb14}.dashboard-detail-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#0f172a73;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.dashboard-detail-modal{background:var(--bg-primary);border:1px solid var(--surface-glass-border);border-radius:var(--radius-md);flex-direction:column;width:100%;max-width:480px;max-height:80vh;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.dashboard-detail-modal .modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.dashboard-detail-modal .modal-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:800}.dashboard-detail-modal .modal-header p{color:var(--text-secondary);margin-top:2px;font-size:12px}.dashboard-detail-modal .modal-close-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.dashboard-detail-modal .modal-close-btn:hover{background:var(--border-color);color:var(--text-primary)}.dashboard-detail-modal .modal-body{flex:1;padding:20px;overflow-y:auto}.dashboard-detail-modal .empty-modal-state{text-align:center;color:var(--text-muted);border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);padding:30px 10px;font-size:13px}.dashboard-detail-modal .modal-list{flex-direction:column;gap:10px;display:flex}.dashboard-detail-modal .modal-list-row{border-radius:var(--radius-sm);border:1px solid var(--surface-glass-border);background:var(--surface-glass);align-items:center;gap:12px;padding:10px 12px;display:flex}.dashboard-detail-modal .modal-item-icon{border-radius:var(--radius-sm);background:var(--border-color);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.dashboard-detail-modal .modal-item-info{flex-direction:column;flex:1;gap:2px;display:flex}.dashboard-detail-modal .modal-item-info strong{color:var(--text-primary);font-size:13px;font-weight:700}.dashboard-detail-modal .modal-item-info span{color:var(--text-secondary);font-size:11px}.dashboard-detail-modal .modal-item-time{color:var(--text-muted);font-size:11px;font-weight:700}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pipeline-grid{justify-content:space-between;align-items:center;gap:12px;padding:15px 5px;display:flex;position:relative;overflow-x:auto}.pipeline-grid:before{content:"";background:var(--border-color);z-index:1;height:2px;position:absolute;top:42px;left:24px;right:24px}.pipeline-card-mobile{cursor:pointer;z-index:2;background:0 0;border:none;outline:none;flex-direction:column;flex:1;align-items:center;min-width:76px;padding:0;display:flex;position:relative}.pipeline-circle{border-radius:var(--radius-full);background:var(--bg-primary);border:2px solid var(--border-color);width:54px;height:54px;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 4px 6px -1px #0000000d}.pipeline-card-mobile.active .pipeline-circle{color:#fff}.pipeline-card-mobile.active.neutral .pipeline-circle{background:#9ca3af;border-color:#9ca3af}.pipeline-card-mobile.active.indigo .pipeline-circle{background:var(--primary);border-color:var(--primary)}.pipeline-card-mobile.active.info .pipeline-circle{background:var(--info);border-color:var(--info)}.pipeline-card-mobile.active.cyan .pipeline-circle{background:#06b6d4;border-color:#06b6d4}.pipeline-card-mobile.active.warning .pipeline-circle{background:var(--warning);border-color:var(--warning)}.pipeline-card-mobile.active.danger .pipeline-circle{background:var(--danger);border-color:var(--danger)}.pipeline-card-mobile.active.success .pipeline-circle{background:var(--success);border-color:var(--success)}.pipeline-card-mobile.active.primary .pipeline-circle{background:var(--primary);border-color:var(--primary)}.pipeline-badge{background:var(--danger);color:#fff;border-radius:var(--radius-full);border:1.5px solid var(--bg-primary);z-index:3;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;display:flex;position:absolute;top:-6px;right:-6px;box-shadow:0 2px 4px #0000001a}.pipeline-label{color:var(--text-secondary);text-align:center;white-space:nowrap;transition:color var(--transition-fast);margin-top:8px;font-size:11px;font-weight:700}.pipeline-card-mobile:hover .pipeline-circle{transform:scale(1.05)}.pipeline-card-mobile.selected .pipeline-circle{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb40}.pipeline-card-mobile.selected .pipeline-label{color:var(--primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.dashboard-detail-modal{border-radius:20px!important}.dashboard-detail-modal .modal-header h3{color:var(--text-primary);font-size:18px;font-weight:800}.dashboard-detail-modal .modal-header{border-bottom:1px solid var(--border-color);padding:18px 24px}.dashboard-detail-modal .modal-body{padding:24px}.modal-list-card{border:1px solid var(--border-color);background:var(--surface-glass);transition:transform var(--transition-fast), border-color var(--transition-fast);border-radius:16px;align-items:center;gap:16px;margin-bottom:12px;padding:12px 12px 12px 16px;display:flex}.modal-list-card:hover{border-color:var(--surface-glass-border)}.modal-item-circle-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.modal-item-info{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:12px;display:flex;overflow:hidden}.modal-item-title{color:var(--text-primary);font-size:15px;font-weight:700}.modal-item-student-row{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.student-name{color:var(--text-primary);white-space:nowrap;font-weight:600}.modal-item-location{color:var(--text-muted);white-space:nowrap;margin-left:4px}.modal-item-barcode-row{color:var(--text-muted);align-items:center;gap:8px;font-family:monospace;font-size:11px;display:flex}.barcode-copy-btn{color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px 4px;display:flex}.barcode-copy-btn:hover{background:var(--border-color);color:var(--primary)}.modal-item-meta-col{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.status-pill-badge{text-transform:capitalize;letter-spacing:.01em;border-radius:9999px;padding:3px 10px;font-size:10.5px;font-weight:700}.status-pill-badge.collected{color:#166534;background:#4ade801f}.status-pill-badge.delivered{color:#1e40af;background:#3b82f61f}.status-pill-badge.rewash{color:#92400e;background:#f59e0b1f}.status-pill-badge.readyforwash,.status-pill-badge.washing{color:#0891b2;background:#06b6d41f}.status-pill-badge.readyforextract,.status-pill-badge.extracting{color:#6d28d9;background:#8b5cf61f}.status-pill-badge.readyfordry,.status-pill-badge.drying{color:#854d0e;background:#eab3081f}.status-pill-badge.readyforironing,.status-pill-badge.ironing{color:#991b1b;background:#ef44441f}.status-pill-badge.completed{color:#166534;background:#22c55e1f}[data-theme=dark] .status-pill-badge.collected{color:#4ade80;background:#4ade8026}[data-theme=dark] .status-pill-badge.delivered{color:#60a5fa;background:#3b82f626}[data-theme=dark] .status-pill-badge.rewash{color:#fbbf24;background:#f59e0b26}[data-theme=dark] .status-pill-badge.readyforwash,[data-theme=dark] .status-pill-badge.washing{color:#22d3ee;background:#06b6d426}[data-theme=dark] .status-pill-badge.readyforextract,[data-theme=dark] .status-pill-badge.extracting{color:#a78bfa;background:#8b5cf626}[data-theme=dark] .status-pill-badge.readyfordry,[data-theme=dark] .status-pill-badge.drying{color:#facc15;background:#eab30826}[data-theme=dark] .status-pill-badge.readyforironing,[data-theme=dark] .status-pill-badge.ironing{color:#f87171;background:#ef444426}[data-theme=dark] .status-pill-badge.completed{color:#4ade80;background:#22c55e26}.time-text{color:var(--text-secondary);font-size:11px;font-weight:500}.sorting-bulk-actions{flex-direction:column;gap:12px;padding:4px 0 8px;display:flex}.sorting-filter-chips{gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.filter-chip{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);white-space:nowrap;cursor:pointer;border-radius:20px;padding:6px 12px;font-size:12px;font-weight:700;transition:all .2s}.filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.sorting-bulk-controls{justify-content:space-between;align-items:center;padding:0 9px;display:flex}.batch-inline-cloth-wrapper{flex-direction:column;display:flex}.cloth-checkbox,.sorting-bulk-controls input[type=checkbox]{appearance:none;cursor:pointer;background:#fff;border:2px solid #2563eb73;border-radius:4px;flex-shrink:0;width:16px;height:16px;transition:all .2s;box-shadow:inset 0 0 0 1px #ffffffd9}.cloth-checkbox:checked,.sorting-bulk-controls input[type=checkbox]:checked{border-color:var(--primary);background-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 9.2l3.1 3.1L14.2 5.2' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:14px 14px}[data-theme=dark] .cloth-checkbox,[data-theme=dark] .sorting-bulk-controls input[type=checkbox]{background:#fff;border-color:#60a5fab3}.move-batch-modal{max-width:400px}.mobile-target-batch-card{border-bottom:1px solid var(--border-color);cursor:pointer;align-items:center;gap:16px;padding:16px;transition:background-color .2s;display:flex}.mobile-target-batch-card:hover{background-color:var(--bg-secondary)}.mobile-target-batch-card:last-child{border-bottom:none}.mtb-icon{color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.mtb-info{flex-direction:column;flex:1;gap:4px;display:flex}.mtb-info h4{color:var(--primary);margin:0;font-size:15px;font-weight:800}.mtb-info span{color:var(--text-secondary);font-size:12px;font-weight:500}.mtb-chevron{color:var(--border-color);transition:color .2s}.mobile-target-batch-card:hover .mtb-chevron{color:var(--primary)}.today-stat-card img{object-fit:contain;width:28px;height:28px}.pipeline-circle img{object-fit:contain;width:30px;height:30px;transition:transform var(--transition-fast), filter var(--transition-fast)}.pipeline-card-mobile:hover .pipeline-circle img{transform:scale(1.05)}[data-theme=dark] .monthly-student-strip strong,[data-theme=dark] .monthly-calendar-nav strong,[data-theme=dark] .wardrobe-row-main strong,[data-theme=dark] .cloth-sheet-history strong,[data-theme=dark] .cloth-comments-box strong,[data-theme=dark] .cloth-process-toggle strong{color:var(--text-primary)}.maintenance-alert-popup{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:24px;width:min(92vw,480px);overflow:hidden;box-shadow:0 25px 50px -12px #00000073}.alert-header-due{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);border-bottom:0;align-items:center;gap:16px;padding:20px 24px;display:flex}.alert-header-icon-wrap{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 4px 12px #0000001a}.alert-header-due h3{color:#fff;margin:0;font-size:20px;font-weight:800}.alert-header-due span{opacity:.9;margin-top:2px;font-size:13px;font-weight:700;display:block}.alert-intro-text{color:var(--text-secondary);margin-bottom:16px;font-size:14px;line-height:1.5}.due-alerts-list{flex-direction:column;gap:12px;max-height:260px;margin-bottom:8px;padding-right:4px;display:flex;overflow-y:auto}.due-alert-item{border:1px solid var(--border-color);background:var(--bg-primary);box-shadow:var(--shadow-sm);border-radius:16px;padding:16px;transition:all .2s}.due-alert-item:hover{box-shadow:var(--shadow-md);border-color:var(--primary-glow);transform:translateY(-2px)}.due-alert-machine{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.due-alert-machine strong{color:var(--text-primary);font-size:15px;font-weight:700}.due-alert-tag{color:#d97706;text-transform:uppercase;letter-spacing:.05em;background:#fef3c7;border:1px solid #f59e0b33;border-radius:100px;align-items:center;gap:6px;padding:3px 10px;font-size:10px;font-weight:800;display:inline-flex}[data-theme=dark] .due-alert-tag{color:#fbbf24;background:#f59e0b26;border-color:#f59e0b40}.due-alert-pulse-dot{background-color:#d97706;border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite alert-pulse-orange;display:inline-block}[data-theme=dark] .due-alert-pulse-dot{background-color:#fbbf24}@keyframes alert-pulse-orange{0%{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.3)}to{opacity:.6;transform:scale(.85)}}.due-alert-description{color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13.5px;line-height:1.5}.due-alert-meta{color:var(--text-muted);border-top:1px dashed var(--border-color);justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;font-size:12.5px;display:flex}.due-alert-date{align-items:center;gap:6px;display:flex}.due-alert-cost{color:var(--text-secondary);font-weight:500}.due-alert-cost strong{color:var(--text-primary);font-weight:700}.alert-confirm-btn{border-radius:14px;justify-content:center;width:100%;height:48px;font-size:15px;font-weight:800}[data-theme=dark] .due-alert-item{border-color:#ffffff14}.confirm-modal-content{max-width:420px!important}.confirm-details-box{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:8px;margin-top:14px;padding:12px 14px;display:flex}.confirm-detail-row{color:var(--text-secondary);justify-content:space-between;font-size:13px;display:flex}.confirm-detail-row strong{color:var(--text-primary)}.deletion-pending-banner{border:1px dashed var(--danger);border-radius:var(--radius-md);color:var(--text-primary);background:#ef444414;align-items:flex-start;gap:12px;margin-top:12px;padding:16px;display:flex}.deletion-pending-banner .warning-icon{color:var(--danger);flex-shrink:0;margin-top:2px}.deletion-pending-banner .banner-content{flex-direction:column;gap:4px;display:flex}.deletion-pending-banner .banner-content strong{color:var(--danger);font-size:14px;font-weight:600}.deletion-pending-banner .banner-content p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.45}.laundry-complaints-modal{flex-direction:column;width:95%;max-width:960px;height:88vh;min-height:550px;display:flex}.complaints-modal-body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:20px;display:flex;overflow:hidden}.complaints-list{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow-y:auto}.raise-complaint-modal,.complaint-detail-modal,.status-update-modal{flex-direction:column;width:95%;max-width:760px;height:88vh;min-height:550px;display:flex}.complaints-filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.search-input-wrapper{flex:1;min-width:280px;position:relative}.search-input-wrapper .search-icon{color:#94a3b8;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input-wrapper .search-input{width:100%;padding-left:36px;padding-right:32px}.search-input-wrapper .clear-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.filter-selects{gap:10px;display:flex}.select-with-icon{align-items:center;display:flex;position:relative}.select-with-icon svg{color:#64748b;pointer-events:none;position:absolute;left:10px}.select-with-icon select{padding-left:30px;font-size:13px}.complaints-list{flex-direction:column;gap:12px;display:flex}.complaint-card{background:var(--bg-surface,#fff);border:1px solid var(--border-color,#e2e8f0);cursor:pointer;border-radius:12px;flex-direction:column;gap:8px;padding:16px;transition:all .2s;display:flex}.complaint-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb14}.complaint-card-header{justify-content:space-between;align-items:center;display:flex}.complaint-number{color:#2563eb;font-size:15px;font-weight:700}.status-badge{letter-spacing:.5px;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700}.status-badge.open{color:#1d4ed8;background:#dbeafe}.status-badge.under-review{color:#7e22ce;background:#f3e8ff}.status-badge.in-progress{color:#b45309;background:#fef3c7}.status-badge.resolved{color:#15803d;background:#dcfce7}.status-badge.rejected{color:#b91c1c;background:#fee2e2}.status-badge.closed{color:#475569;background:#f1f5f9}.location-tag{color:#64748b;font-size:12px;font-weight:600}.category-chip{color:#ea580c;background:#f973161a;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.barcode-tag{color:#334155;align-items:center;gap:4px;font-size:12px;display:flex}.attachments-badge{color:#2563eb;align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.inner-modal-overlay{z-index:1100}.raise-complaint-modal,.complaint-detail-modal,.status-update-modal{flex-direction:column;width:92%;max-width:750px;max-height:85vh;display:flex}.form-body,.complaint-detail-body{flex-direction:column;gap:16px;padding:20px;display:flex;overflow-y:auto}.form-section{border:1px solid var(--border-color,#e2e8f0);background:var(--bg-surface-secondary,#f8fafc);border-radius:10px;padding:16px}.section-title{color:#1e293b;align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.readonly-box{background:#00000005;border-radius:8px;padding:8px}.three-column-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.two-column-form{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.full-width{grid-column:1/-1}.student-search-container{position:relative}.student-search-dropdown{z-index:50;background:#fff;border:1px solid #cbd5e1;border-radius:8px;max-height:200px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 10px 25px #00000026}.search-result-item{cursor:pointer;border-bottom:1px solid #f1f5f9;padding:10px 14px}.search-result-item:hover{background:#f1f5f9}.search-result-item .result-name{color:#0f172a;font-size:13px}.search-result-item .result-sub{color:#64748b;font-size:11px}.selected-student-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-top:12px;padding:12px;font-size:13px}.summary-row{color:#166534;flex-wrap:wrap;gap:16px;display:flex}.attachment-upload-area{flex-direction:column;gap:12px;display:flex}.attachments-preview-grid{flex-wrap:wrap;gap:10px;display:flex}.preview-thumb-container{width:70px;height:70px;position:relative}.thumb-img{object-fit:cover;cursor:pointer;border:1px solid #cbd5e1;border-radius:8px;width:70px;height:70px}.remove-thumb-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex;position:absolute;top:-6px;right:-6px}.detail-section-card{background:var(--bg-surface,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:10px;padding:16px}.detail-section-card h4{color:#0f172a;align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;font-size:13px;display:grid}.resolution-box{background:#f0fdf4;border-left:3px solid #22c55e;border-radius:4px;margin-top:6px;padding:8px 12px}.history-timeline{flex-direction:column;gap:12px;padding-left:12px;display:flex;position:relative}.timeline-item{border-left:2px solid #cbd5e1;padding-left:16px;position:relative}.timeline-badge{background:#2563eb;border-radius:50%;width:8px;height:8px;position:absolute;top:4px;left:-5px}.timeline-header{justify-content:space-between;font-size:13px;display:flex}.timeline-note{color:#475569;margin-top:4px;font-size:12px;font-style:italic}.image-preview-overlay{z-index:1200;background:#000000d9;justify-content:center;align-items:center;display:flex}.image-preview-content{max-width:90vw;max-height:90vh;position:relative}.image-preview-content img{object-fit:contain;border-radius:8px;max-width:100%;max-height:85vh}.close-preview-btn{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:50%;width:32px;height:32px;font-size:18px;position:absolute;top:-12px;right:-12px}
