.badge-warning{background-color:#ffc107;color:#212529;border-radius:12px;padding:2px 10px;font-size:.95em;display:inline-block;font-weight:500}:root{color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:#f8f9fa;color:#333;line-height:1.6}.app-container{display:flex;min-height:100vh}.sidebar{width:300px;background-color:#fff;border-right:1px solid #e9ecef;display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto}.sidebar-header{padding:24px 20px;border-bottom:1px solid #e9ecef}.sidebar-header h2{font-size:20px;font-weight:600;color:#2c3e50;margin-bottom:4px}.admin-label{font-size:14px;color:#6c757d;font-weight:400}.sidebar-nav{flex:1;padding:16px 0}.sidebar-nav ul{list-style:none}.sidebar-nav li{margin-bottom:4px}.nav-item{display:flex;align-items:center;padding:12px 20px;text-decoration:none;color:#495057;transition:all .2s ease;border-radius:0}.nav-item:hover{background-color:#f8f9fa;color:#2c3e50}.nav-item.active{background-color:#fef1f5;color:#ee3c76;border-right:3px solid #EE3C76}.nav-item i{width:20px;margin-right:12px;font-size:16px}.main-content{flex:1;margin-left:300px;padding:24px 32px;max-width:calc(100vw - 300px);width:calc(100vw - 300px)}.main-header{margin-bottom:32px}.main-header h1{font-size:32px;font-weight:600;color:#2c3e50;margin-bottom:8px}.subtitle{color:#6c757d;font-size:16px}.filter-tabs{display:flex;margin-bottom:24px;border-bottom:1px solid #e9ecef}.tab-button{background:none;border:none;padding:12px 16px;font-size:14px;font-weight:500;color:#6c757d;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;margin-right:8px}.tab-button:hover{color:#495057}.tab-button.active{color:#ee3c76;border-bottom-color:#ee3c76}.search-container{margin-bottom:32px}.search-box{position:relative;max-width:400px}.search-box i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6c757d}.search-box input{width:100%;padding:12px 12px 12px 40px;border:1px solid #dee2e6;border-radius:8px;font-size:14px;background-color:#fff;transition:border-color .2s ease}.search-box input:focus{outline:none;border-color:#ee3c76;box-shadow:0 0 0 3px #ee3c761a}.status-section{margin-bottom:32px;width:100%}.status-section h3{font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:16px}.status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,200px));gap:16px;width:100%;max-width:none;justify-content:start}.status-card{background:#fff;padding:20px;border-radius:12px;border:1px solid #e9ecef;transition:all .2s ease;cursor:pointer}.status-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.status-card.total{border-color:#ee3c76;background:linear-gradient(135deg,#ee3c76,#d63384);color:#fff}.status-label{font-size:14px;font-weight:500;margin-bottom:8px;color:#6c757d}.status-card.total .status-label{color:#ffffffe6}.status-count{font-size:28px;font-weight:700;color:#2c3e50}.status-card.total .status-count{color:#fff}.messages-section{width:100%}.messages-section h3{font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:16px}.table-container{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;width:100%}.messages-table{width:100%;border-collapse:collapse}.messages-table th{background-color:#f8f9fa;padding:16px;text-align:left;font-weight:600;color:#495057;border-bottom:1px solid #dee2e6;font-size:14px}.messages-table td{padding:16px;border-bottom:1px solid #f1f3f4;vertical-align:top}.messages-table tr:hover{background-color:#f8f9fa}.messages-table tr:last-child td{border-bottom:none}.quick-actions-grid{display:grid;grid-template-columns:repeat(4,200px);gap:20px;width:100%;max-width:none;justify-content:start}@media(max-width:1200px){.quick-actions-grid{grid-template-columns:repeat(2,200px)}}@media(max-width:768px){.quick-actions-grid{grid-template-columns:200px}}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;font-size:14px;font-weight:500;border-radius:8px;transition:all .2s ease;min-height:80px;justify-content:center;width:100%}.quick-action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ee3c7640}.quick-action-btn i{font-size:18px;margin-bottom:4px}.timeslots-table{width:100%;border-collapse:collapse}.timeslots-table th{background-color:#f8f9fa;padding:16px;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.timeslots-table td{padding:16px;border-bottom:1px solid #f1f3f4;vertical-align:middle}.timeslots-table tr:hover{background-color:#f8f9fa}.timeslots-table tr:last-child td{border-bottom:none}.actions-column{width:120px;text-align:center}.action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:13px;border-radius:6px;transition:all .2s ease}.action-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #ee3c764d}.building-code-cell{font-family:Consolas,Monaco,monospace;font-size:14px;font-weight:600;color:#495057}.building-name-cell{font-size:14px;color:#6c757d}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-created{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.status-submitted{background-color:#d1ecf1;color:#0c5460;border:1px solid #b8daff}.status-completed{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.last-message{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6c757d;font-size:14px}.time-ago{color:#6c757d;font-size:14px}.action-buttons{display:flex;gap:8px}.btn{padding:6px 12px;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.btn-primary{background-color:#ee3c76;color:#fff}.btn-primary:hover{background-color:#d63384}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover{background-color:#5a6268}.btn-sm{padding:4px 8px;font-size:11px}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#00000080}.modal-content{background-color:#fff;margin:10% auto;padding:0;border-radius:12px;width:90%;max-width:600px;box-shadow:0 10px 30px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e9ecef}.modal-header h3{font-size:18px;font-weight:600;color:#2c3e50}.close{font-size:24px;font-weight:700;cursor:pointer;color:#6c757d;transition:color .2s ease}.close:hover{color:#495057}.modal-body{padding:24px}.info-group{margin-bottom:20px}.info-group label{display:block;font-weight:600;color:#495057;margin-bottom:6px;font-size:14px}.info-group span,.info-group select{display:block;padding:8px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;width:100%}.info-group select{background-color:#fff;cursor:pointer}.message-text{background-color:#f8f9fa;padding:12px;border-radius:6px;border:1px solid #e9ecef;min-height:60px;font-size:14px;line-height:1.5}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e9ecef;background-color:#f8f9fa;border-radius:0 0 12px 12px}.dashboard-controls{display:flex;gap:24px;margin-bottom:24px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{font-weight:600;color:#495057;font-size:14px}.view-buttons{display:flex;gap:8px}.view-buttons .btn{padding:8px 16px;font-size:14px;border-radius:6px}.site-selector{padding:8px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;background-color:#fff;min-width:200px}.site-selector:focus{outline:none;border-color:#ee3c76;box-shadow:0 0 0 3px #ee3c761a}.timeslot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:20px}.timeslot-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:16px;transition:all .2s ease}.timeslot-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.timeslot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.timeslot-date{font-weight:600;color:#2c3e50;font-size:16px}.timeslot-time{font-size:14px;color:#6c757d;margin-bottom:8px;font-family:Consolas,Monaco,monospace}.timeslot-site{display:flex;align-items:center;gap:8px;font-size:14px;color:#495057;margin-bottom:6px}.timeslot-site i{color:#ee3c76}.timeslot-code{font-family:Consolas,Monaco,monospace;font-size:12px;color:#6c757d;margin-bottom:8px}.timeslot-bookings{display:flex;align-items:center;gap:6px;font-size:14px;color:#495057}.timeslot-bookings i{color:#28a745}.site-edit-container{width:100%}.form-section{background:#fff;padding:24px;border-radius:12px;margin-bottom:24px;box-shadow:0 2px 8px #0000001a}.form-section h3{color:#2c3e50;margin-bottom:20px;font-size:18px;font-weight:600}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:600;color:#495057;font-size:14px}.form-control{width:100%;padding:12px;border:1px solid #dee2e6;border-radius:6px;font-size:14px;background-color:#fff;color:#212529;transition:border-color .2s ease}input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):not([type=reset]),textarea,select{background-color:#fff;color:#212529}input::-moz-placeholder,textarea::-moz-placeholder{color:#6c757d;opacity:1}input::placeholder,textarea::placeholder{color:#6c757d;opacity:1}.form-control:focus{outline:none;border-color:#ee3c76;box-shadow:0 0 0 3px #ee3c761a}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus,.form-control:-webkit-autofill,.form-control:-webkit-autofill:hover,.form-control:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #ffffff inset!important;-webkit-text-fill-color:#212529!important;caret-color:#212529}.form-control.disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.timeslot-form{background:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:20px;border:1px solid #dee2e6}.date-input-group{display:flex;gap:8px}.date-input-group .form-control{flex:1}.selected-dates{margin-top:16px}.date-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.date-tag{background:#ee3c76;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;display:flex;align-items:center;gap:6px}.remove-date{background:none;border:none;color:#fff;cursor:pointer;font-size:16px;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%}.remove-date:hover{background:#fff3}.form-actions{display:flex;gap:12px;margin-top:20px}.bottom-actions{justify-content:flex-end;padding-top:20px;border-top:1px solid #dee2e6}.timeslots-list{margin-top:20px}.error-banner{padding:12px 16px;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:6px;margin-bottom:24px;display:flex;align-items:center;gap:8px}.error-banner i{color:#721c24}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#6c757d}.loading-container i{font-size:24px;margin-bottom:16px}.badge{display:inline-block;padding:4px 8px;font-size:12px;font-weight:600;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.badge-success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.badge-danger{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.badge-secondary{background-color:#e9ecef;color:#495057;border:1px solid #dee2e6}.table-responsive{overflow-x:auto;border-radius:8px;border:1px solid #dee2e6}.table th{background-color:#f8f9fa;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.5px;padding:16px 12px;border-bottom:2px solid #dee2e6}.table td{padding:12px;vertical-align:middle;border-bottom:1px solid #dee2e6}.table tbody tr:hover{background-color:#f8f9fa}.btn-sm{padding:6px 12px;font-size:14px;border-radius:4px}.btn-danger{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-danger:hover{background-color:#c82333;border-color:#bd2130}.btn-secondary{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-secondary:hover{background-color:#5a6268;border-color:#545b62}input[type=date],input[type=time],input[type=number],select{transition:border-color .3s,box-shadow .3s}input[type=date]:focus,input[type=time]:focus,input[type=number]:focus,select:focus{outline:none;border-color:#ee3c76;box-shadow:0 0 0 3px #ee3c761a}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.loading-container i{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.timeslot-dashboard{width:100%}.dashboard-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.control-group{display:flex;gap:8px}.control-group .btn{padding:8px 16px;border-radius:6px;border:1px solid #dee2e6;font-size:14px;font-weight:500}.site-selector select{width:300px}.calendar-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.calendar-grid{display:grid;grid-template-columns:80px repeat(7,1fr);gap:2px;width:100%}.time-header{background:#f8f9fa;border-radius:8px 8px 0 0}.day-header{background:#f8f9fa;padding:16px;text-align:center;font-weight:600;color:#2c3e50;border-radius:8px 8px 0 0;border:1px solid #e9ecef}.time-slot-label{background:#f8f9fa;padding:16px;text-align:center;font-weight:600;color:#495057;border:1px solid #e9ecef;display:flex;align-items:center;justify-content:center}.time-slot{min-height:120px;border:1px solid #e9ecef;padding:8px;background:#fff}.booking-card{width:100%;height:100%;min-height:100px;border-radius:8px;padding:12px;color:#fff;font-size:12px;display:flex;flex-direction:column;justify-content:space-between}.booking-status{font-weight:600;font-size:14px;margin-bottom:4px}.booking-type{font-size:11px;opacity:.9;margin-bottom:8px}.booking-order{font-size:10px;opacity:.8;margin-top:auto}.empty-slot{width:100%;height:100px;background:transparent}.status-legend{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.status-legend h4{margin-bottom:16px;color:#2c3e50;font-size:16px;font-weight:600}.legend-items{display:flex;flex-wrap:wrap;gap:20px}.legend-item{display:flex;align-items:center;gap:8px}.legend-color{width:16px;height:16px;border-radius:4px}.legend-item span{font-size:14px;color:#495057;font-weight:500}@media(max-width:1024px){.calendar-grid{grid-template-columns:80px repeat(3,1fr)}.legend-items{justify-content:center}}@media(max-width:768px){.dashboard-controls{flex-direction:column;gap:16px}.site-selector select{width:100%}.calendar-grid{grid-template-columns:60px 1fr}.day-header{padding:12px 8px;font-size:12px}.time-slot-label{padding:12px 4px;font-size:12px}.booking-card{min-height:80px;padding:8px}}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.italic{font-style:italic}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
