@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap";@import"https://fonts.googleapis.com/css?family=Plus%20Jakarta%20Sans:700|Plus%20Jakarta%20Sans:400";.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}button{background-color:var(--primary);color:var(--background);border:none;cursor:pointer;font-size:var(--font-size-base);padding:var(--spacing-xm) var(--spacing-mmd);border-radius:6px}.action-btn{background-color:var(--primary);color:var(--background);border:none;cursor:pointer;font-size:var(--font-size-base);padding:var(--spacing-xm);border-radius:var(--border-radius);margin-top:var(--spacing-xm);transition:background-color .2s}.action-btn:disabled,.action-btn.disabled{pointer-events:none;cursor:not-allowed;background-color:var(--background-400)}.action-btn:hover:not(:disabled):not(.disabled){background-color:var(--primary-hover)}.action-buttons{display:flex;gap:var(--spacing-xs)!important}.action-buttons button{border:none;padding:var(--spacing-xs) var(--spacing-sm);border-radius:100px;cursor:pointer;font-family:Plus Jakarta Sans,sans-serif;transition:background-color .2s}.primary-action-btn{background-color:var(--primary);color:var(--background);border:none;border-radius:6px;font-size:var(--font-size-base);font-weight:400;cursor:pointer;transition:background .2s;display:inline-flex;align-items:center}.primary-action-btn:hover{background-color:var(--primary-hover)}.primary-action-btn .primary-action-icon{margin-right:.5em;display:flex;align-items:center;justify-content:center;height:1em}.primary-action-icon{display:flex;align-items:center;justify-content:center;margin-right:.25rem}.secondary-action-btn{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border:1px solid var(--border-light, #d1d5db);background:var(--background-25, #fafafa);color:var(--text-600, #6b7280);border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s ease}.secondary-action-btn:hover{background:var(--background-50, #f9fafb);border-color:var(--border-medium, #9ca3af);color:var(--text-700, #374151)}.secondary-action-btn:disabled{opacity:.5;cursor:not-allowed}.action-buttons{display:flex;gap:.5rem;align-items:center}.notification-button{background-color:var(--background-100);color:var(--text);position:relative}.notification-button:hover{background-color:var(--background-200)}.notification-badge{position:absolute;top:-8px;right:-8px;background:linear-gradient(135deg,#ff4757,#ff3742);color:#fff;border-radius:50%;font-size:12px;font-weight:700;line-height:1;padding:4px 6px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #ff47574d;border:2px solid var(--background);z-index:1;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 2px 4px #ff47574d}50%{transform:scale(1.1);box-shadow:0 4px 8px #ff475780}}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:Plus Jakarta Sans,sans-serif}.loading-overlay-spinner{width:50px;height:50px;margin-bottom:20px;border:4px solid #e5e7eb;border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}.loading-overlay-text{color:var(--muted);font-size:var(--font-size-sm)}.loading-spinner{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-600);font-family:Plus Jakarta Sans,sans-serif}.loading-spinner:before{content:"";width:50px;height:50px;margin-bottom:20px;border:4px solid var(--background-200);border-top:4px solid var(--primary);border-radius:50%;animation:elegantSpin 1s ease-in-out infinite;box-shadow:0 4px 20px #0000001a}.loading-spinner:after{content:"Loading...";font-weight:600;color:var(--text-700);font-size:16px;letter-spacing:.5px;animation:fadeInOut 1.5s ease-in-out infinite}@keyframes elegantSpin{0%{transform:rotate(0);border-top-color:var(--primary)}25%{border-top-color:var(--primary)}50%{transform:rotate(180deg);border-top-color:var(--primary)}75%{border-top-color:var(--primary)}to{transform:rotate(360deg);border-top-color:var(--primary)}}@keyframes fadeInOut{0%,to{opacity:.7}50%{opacity:1}}:root{--loading-primary: var(--primary, #4a69bd);--loading-secondary: var(--secondary, #3c8dbc);--loading-accent: var(--accent, #27ae60);--loading-error: var(--error, #e74c3c);--loading-warning: var(--warning, #f39c12);--loading-background: var(--background, #ffffff);--loading-text: var(--text, #333333);--loading-subtle: rgba(0, 0, 0, .1);--loading-shadow: rgba(0, 0, 0, .1)}.progress-container{width:100%;margin:.5rem 0}.progress-label{font-size:.875rem;font-weight:500;color:var(--loading-text);margin-bottom:.25rem;opacity:.8}.progress-bar{position:relative;width:100%;background-color:var(--loading-subtle);border-radius:.5rem;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.progress-container.small .progress-bar{height:.375rem}.progress-container.medium .progress-bar{height:.5rem}.progress-container.large .progress-bar{height:.75rem}.progress-fill{height:100%;transition:width .6s cubic-bezier(.4,0,.2,1);border-radius:inherit;position:relative;overflow:hidden}.progress-bar.primary .progress-fill{background:linear-gradient(90deg,var(--loading-primary),#6c8cd5)}.progress-bar.secondary .progress-fill{background:linear-gradient(90deg,var(--loading-secondary),#5da3d4)}.progress-bar.accent .progress-fill{background:linear-gradient(90deg,var(--loading-accent),#4ecf7a)}.progress-bar.warning .progress-fill{background:linear-gradient(90deg,var(--loading-warning),#f5b041)}.progress-bar.error .progress-fill{background:linear-gradient(90deg,var(--loading-error),#ec7063)}.progress-bar.animated .progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:progress-shine 2s infinite}.progress-bar.indeterminate .progress-fill{width:30%!important;animation:progress-indeterminate 2s cubic-bezier(.4,0,.2,1) infinite}.progress-percentage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);z-index:2}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}.loading-spinner-circle{position:relative;display:inline-block}.loading-spinner-container.small .loading-spinner-circle{width:1.5rem;height:1.5rem}.loading-spinner-container.medium .loading-spinner-circle{width:2.5rem;height:2.5rem}.loading-spinner-container.large .loading-spinner-circle{width:3.5rem;height:3.5rem}.spinner-inner{width:100%;height:100%;border:2px solid var(--loading-subtle);border-radius:50%;border-top-color:var(--loading-primary);animation:spinner-rotate 1s linear infinite}.loading-spinner-container.primary .spinner-inner{border-top-color:var(--loading-primary);border-right-color:var(--loading-primary)}.loading-spinner-container.secondary .spinner-inner{border-top-color:var(--loading-secondary);border-right-color:var(--loading-secondary)}.loading-spinner-container.accent .spinner-inner{border-top-color:var(--loading-accent);border-right-color:var(--loading-accent)}.loading-spinner-container.subtle .spinner-inner{border:2px solid rgba(0,0,0,.05);border-top-color:#0003}.loading-text{font-size:.875rem;color:var(--loading-text);opacity:.7;font-weight:500;text-align:center}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.skeleton-container{display:flex;gap:1rem;padding:1rem 0}.skeleton-avatar{width:3rem;height:3rem;border-radius:50%;background:linear-gradient(90deg,var(--loading-subtle) 25%,rgba(255,255,255,.5) 50%,var(--loading-subtle) 75%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite;flex-shrink:0}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.skeleton-line{height:1rem;background:linear-gradient(90deg,var(--loading-subtle) 25%,rgba(255,255,255,.5) 50%,var(--loading-subtle) 75%);background-size:200% 100%;border-radius:.25rem;animation:skeleton-shimmer 2s infinite}.loading-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:.375rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap}.loading-button.small{padding:.375rem .75rem;font-size:.875rem}.loading-button.medium{padding:.5rem 1rem;font-size:.875rem}.loading-button.large{padding:.75rem 1.5rem;font-size:1rem}.loading-button.primary{background-color:var(--loading-primary);color:#fff}.loading-button.primary:hover:not(:disabled){background-color:color-mix(in srgb,var(--loading-primary) 85%,black);transform:translateY(-1px);box-shadow:0 4px 12px #4a69bd4d}.loading-button.secondary{background-color:var(--loading-secondary);color:#fff}.loading-button.secondary:hover:not(:disabled){background-color:color-mix(in srgb,var(--loading-secondary) 85%,black)}.loading-button:disabled{cursor:not-allowed;opacity:.6;transform:none!important;box-shadow:none!important}.loading-button.loading{pointer-events:none}.loading-text-hidden{opacity:0}.button-spinner{width:1rem;height:1rem;border:1.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spinner-rotate .8s linear infinite}.optimistic-indicator{position:fixed;z-index:1000;padding:.75rem 1rem;background-color:#fffffff2;border:1px solid var(--loading-subtle);border-radius:.5rem;box-shadow:0 4px 12px var(--loading-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:slide-in-smooth .3s cubic-bezier(.4,0,.2,1)}.optimistic-indicator.top-right{top:1rem;right:1rem}.optimistic-indicator.top-left{top:1rem;left:1rem}.optimistic-indicator.bottom-right{bottom:1rem;right:1rem}.optimistic-indicator.bottom-left{bottom:1rem;left:1rem}.optimistic-content{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--loading-text);font-weight:500}.optimistic-spinner{width:1rem;height:1rem;border:1.5px solid var(--loading-subtle);border-top-color:var(--loading-primary);border-radius:50%;animation:spinner-rotate 1s linear infinite}.form-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:inherit}.form-loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center}.form-loading-message{font-size:1rem;color:var(--loading-text);font-weight:500}.inline-loader{display:inline-flex;align-items:center;justify-content:center}.inline-spinner{display:flex;gap:.25rem}.dot{width:.375rem;height:.375rem;background-color:var(--loading-primary);border-radius:50%;animation:dot-bounce 1.4s infinite both}.inline-loader.small .dot{width:.25rem;height:.25rem}.inline-loader.large .dot{width:.5rem;height:.5rem}.inline-loader.subtle .dot{background-color:var(--loading-subtle)}.dot-2{animation-delay:.16s}.dot-3{animation-delay:.32s}.page-loading-state{display:flex;align-items:center;justify-content:center;min-height:50vh;padding:2rem}.page-loading-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center;max-width:400px}.page-loading-title{margin:0;font-size:1.5rem;font-weight:600;color:var(--loading-text)}.page-loading-subtitle{margin:0;font-size:1rem;color:var(--loading-text);opacity:.7;line-height:1.5}.page-loading-progress{width:100%;max-width:300px}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes progress-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(300%)}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slide-in-smooth{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes dot-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}@media (max-width: 768px){.optimistic-indicator{left:1rem;right:1rem;width:auto}.optimistic-indicator.top-right,.optimistic-indicator.top-left{top:1rem;left:1rem;right:1rem}.optimistic-indicator.bottom-right,.optimistic-indicator.bottom-left{bottom:1rem;left:1rem;right:1rem}.form-loading-content,.page-loading-content{padding:1rem}}@media (prefers-reduced-motion: reduce){.progress-fill,.spinner-inner,.skeleton-line,.skeleton-avatar,.button-spinner,.optimistic-spinner,.dot{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){.progress-bar{border:2px solid}.loading-spinner-circle .spinner-inner{border-width:3px}.skeleton-line,.skeleton-avatar{border:1px solid}}.minimal-loading-indicator{position:fixed;z-index:999;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease-in-out;cursor:default;pointer-events:none;box-shadow:0 1px 3px #0000001a}.minimal-loading-indicator.top-right{top:1rem;right:1rem}.minimal-loading-indicator.top-left{top:1rem;left:1rem}.minimal-loading-indicator.bottom-right{bottom:1rem;right:1rem}.minimal-loading-indicator.bottom-left{bottom:1rem;left:1rem}.minimal-loading-indicator.center-right{top:50%;right:1rem;transform:translateY(-50%)}.minimal-loading-indicator.center-left{top:50%;left:1rem;transform:translateY(-50%)}.minimal-loading-indicator.micro{width:.75rem;height:.75rem}.minimal-loading-indicator.small{width:1rem;height:1rem}.minimal-loading-indicator.medium{width:1.25rem;height:1.25rem}.minimal-loading-indicator.large{width:1.5rem;height:1.5rem}.loading-dot{width:100%;height:100%;border-radius:50%;transition:all .3s ease}.minimal-loading-indicator.default .loading-dot{background-color:#3498db}.minimal-loading-indicator.primary .loading-dot{background-color:var(--primary, #4a69bd)}.minimal-loading-indicator.accent .loading-dot{background-color:var(--accent, #27ae60)}.minimal-loading-indicator.subtle{background:transparent;border:none;box-shadow:none}.minimal-loading-indicator.subtle .loading-dot{background-color:#3b82f699;border:1px solid rgba(59,130,246,.3)}.minimal-loading-indicator.ghost{background:transparent;border:none;box-shadow:none}.minimal-loading-indicator.ghost .loading-dot{background-color:#00000026;border:1px solid rgba(0,0,0,.1)}.minimal-loading-indicator .loading-dot{background-color:var(--custom-color, inherit)}.minimal-loading-indicator.pulse .loading-dot{animation:pulse-gentle 2s infinite}.minimal-loading-indicator.subtle.pulse .loading-dot{animation:pulse-subtle 3s infinite}.minimal-loading-indicator.ghost.pulse .loading-dot{animation:pulse-ghost 4s infinite}.minimal-loading-indicator.static .loading-dot{animation:none;opacity:.7}.minimal-loading-indicator.fade-in{animation:fade-in .3s ease-in-out}.minimal-loading-indicator.timeout-warning{background-color:#fff3cd;border:1px solid #ffeaa7;box-shadow:0 2px 8px #ffc1074d;animation:gentle-shake .5s ease-in-out}.minimal-loading-indicator.timeout-warning .loading-dot{background-color:#ff6b35;animation:timeout-pulse 1.5s infinite}.minimal-loading-indicator.warning{background-color:#fff3cd;border:1px solid #ffeaa7}.minimal-loading-indicator.warning .loading-dot{background-color:#ff6b35}.timeout-message{position:absolute;bottom:-2.5rem;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap;z-index:1000;animation:fadeInUp .3s ease-out}.timeout-message:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(0,0,0,.8)}@keyframes gentle-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes timeout-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes pulse-gentle{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@keyframes pulse-subtle{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:.7;transform:scale(1)}}@keyframes pulse-ghost{0%,to{opacity:.15;transform:scale(.95)}50%{opacity:.3;transform:scale(1)}}@keyframes fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.minimal-loading-indicator:hover{opacity:.9;transform:scale(1.02)}.minimal-loading-indicator.center-right:hover,.minimal-loading-indicator.center-left:hover{transform:translateY(-50%) scale(1.02)}@media (max-width: 768px){.minimal-loading-indicator.top-right,.minimal-loading-indicator.top-left{top:.5rem}.minimal-loading-indicator.top-right{right:.5rem}.minimal-loading-indicator.top-left{left:.5rem}.minimal-loading-indicator.bottom-right,.minimal-loading-indicator.bottom-left{bottom:.5rem}.minimal-loading-indicator.bottom-right{right:.5rem}.minimal-loading-indicator.bottom-left{left:.5rem}.minimal-loading-indicator.center-right{right:.5rem}.minimal-loading-indicator.center-left{left:.5rem}.minimal-loading-indicator.small{width:.875rem;height:.875rem}.minimal-loading-indicator.medium{width:1rem;height:1rem}}@media (prefers-reduced-motion: reduce){.loading-dot{animation:none!important}.minimal-loading-indicator .loading-dot{opacity:.6!important}.minimal-loading-indicator.fade-in{animation:none}}@media (prefers-contrast: high){.minimal-loading-indicator{border:2px solid;background:#fff}.loading-dot{border:1px solid;background:#000!important}}@media (prefers-color-scheme: dark){.minimal-loading-indicator.subtle .loading-dot{background-color:#93c5fd99;border:1px solid rgba(147,197,253,.3)}.minimal-loading-indicator.ghost .loading-dot{background-color:#fff3;border:1px solid rgba(255,255,255,.1)}}.global-container{padding:var(--spacing-xl) var(--spacing-xl)}.global-content{max-width:var(--container-max-width);margin:0 auto;background:var(--background);border-radius:12px}.header-row{align-items:center;margin-bottom:var(--spacing-mmd)}.header-row-title{display:flex;justify-content:space-between}.header-row-subtitle{font-size:var(--font-size-base);margin-top:var(--spacing-xm);opacity:.7}@media (max-width: 768px){.global-container{padding:var(--spacing-ml) var(--spacing-ml)}}.tab-switcher,.view-selector{display:flex;border-radius:4px;overflow-x:auto;margin-bottom:var(--spacing-sm);white-space:nowrap;gap:0}.tab-btn,.view-selector button{background:var(--background-40);border-radius:100px;border:none;padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--background-600);font-family:Plus Jakarta Sans,sans-serif;font-weight:400;transition:background-color .2s;margin-right:var(--spacing-xs);flex:0 0 auto}.tab-btn.active,.view-selector button.active{background-color:var(--primary);color:var(--background);font-weight:400}.tab-btn:not(.active):hover,.view-selector button:not(.active):hover{background-color:var(--background-100)}.tab-count{margin-left:var(--spacing-xs);background-color:var(--background-200);color:var(--background-600);font-size:.75em;font-weight:600;padding:2px 6px;border-radius:12px;min-width:18px;text-align:center;display:inline-block}.tab-btn.active .tab-count{background-color:#fff3;color:var(--background)}.driver-coordination-panel{padding:20px;background:#f8f9fa;border-radius:8px}.coordination-section{margin-bottom:30px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.coordination-section h3{margin:0 0 20px;color:#2c3e50;font-size:1.4rem;border-bottom:2px solid #e9ecef;padding-bottom:10px}.pickup-requests-list{display:grid;gap:15px}.pickup-request-card{border:2px solid #e9ecef;border-radius:8px;padding:15px;background:#fff;transition:all .3s ease}.pickup-request-card.urgent{border-color:#dc3545;background:#fff5f5;box-shadow:0 4px 12px #dc354533}.pickup-request-card.normal{border-color:#28a745;background:#f8fff9}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.request-header h4{margin:0;color:#2c3e50;font-size:1.2rem}.urgency-badge{padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700}.urgency-badge.urgent{background:#dc3545;color:#fff;animation:pulse 2s infinite}.urgency-badge.normal{background:#28a745;color:#fff}.request-details{margin-bottom:15px}.request-details p{margin:5px 0;color:#6c757d}.assignment-actions{border-top:1px solid #e9ecef;padding-top:15px}.driver-selection{margin-bottom:10px}.driver-selection label{display:block;margin-bottom:5px;font-weight:700;color:#495057}.driver-selection select{width:100%;padding:8px 12px;border:1px solid #ced4da;border-radius:4px;background:#fff;font-size:14px}.urgent-button{background:#ff6b35;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:700;transition:background .3s ease}.urgent-button:hover{background:#e55529}.urgent-button:disabled{background:#ccc;cursor:not-allowed}.no-drivers-available{padding:10px;background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;text-align:center}.no-requests,.no-drivers,.no-busy-drivers{text-align:center;padding:20px;color:#6c757d;font-style:italic}.drivers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.driver-card{border:2px solid;border-radius:8px;padding:15px;background:#fff;transition:transform .2s ease}.driver-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.driver-card.available{border-color:#28a745;background:#f8fff9}.driver-card.busy{border-color:#ffc107;background:#fffbf0}.driver-info h4{margin:0 0 10px;color:#2c3e50;font-size:1.1rem}.driver-info p{margin:5px 0;color:#6c757d;font-size:.9rem}.driver-status{margin-top:10px}.status-badge{padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700}.status-badge.available{background:#28a745;color:#fff}.status-badge.busy{background:#ffc107;color:#212529}.pasig-zone-map{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-top:15px}.zone-legend{background:#f8f9fa;padding:20px;border-radius:8px;border:1px solid #e9ecef}.zone-legend h4{margin:0 0 15px;color:#495057;font-size:1.1rem;text-align:center}.zone-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.zone-item{padding:12px;border-radius:6px;border-left:4px solid;background:#fff;box-shadow:0 1px 3px #0000001a}.zone-item.north{border-left-color:#007bff;background:linear-gradient(135deg,#f8f9ff,#fff)}.zone-item.south{border-left-color:#28a745;background:linear-gradient(135deg,#f8fff9,#fff)}.zone-item.east{border-left-color:#ffc107;background:linear-gradient(135deg,#fffbf0,#fff)}.zone-item.west{border-left-color:#dc3545;background:linear-gradient(135deg,#fff5f5,#fff)}.zone-item.central{border-left-color:#6f42c1;background:linear-gradient(135deg,#f8f5ff,#fff)}.zone-item.ortigas{border-left-color:#fd7e14;background:linear-gradient(135deg,#fff8f5,#fff)}.zone-item strong{display:block;margin-bottom:8px;font-size:.9rem}.zone-item ul{margin:0;padding-left:16px}.zone-item li{margin-bottom:4px;font-size:.8rem;color:#6c757d}.coordination-tips{background:#f8f9fa;padding:15px;border-radius:6px;border:1px solid #e9ecef}.coordination-tips h4{margin:0 0 12px;color:#495057;font-size:1rem}.coordination-tips ul{margin:0;padding-left:18px}.coordination-tips li{margin-bottom:8px;color:#6c757d;font-size:.85rem;line-height:1.4}.coordination-tips strong{color:#495057}.coord-header{margin-bottom:20px}.coord-header h3{display:flex;align-items:center;gap:8px;color:#2c3e50;margin:0}.coord-header i{color:#3498db}.pickup-request-card.new-request{animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.pickup-buttons{display:flex;gap:15px;margin-top:10px;flex-wrap:wrap}.pickup-buttons .request-pickup-button,.pickup-buttons .urgent-pickup-button{flex:1;min-width:140px}.driver-info-enhanced{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:12px;margin-top:8px}.driver-details{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.driver-detail-item{display:flex;align-items:center;font-size:.9rem;color:#495057}.driver-detail-item i{margin-right:6px;color:#6c757d;width:14px}.driver-last-dropoff{grid-column:1 / -1;padding-top:8px;border-top:1px solid #dee2e6;font-size:.85rem;color:#6c757d}.driver-availability-status{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.driver-availability-status.available{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.driver-availability-status.busy{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.coord-section.available-drivers .driver-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:15px;margin-bottom:12px;transition:all .3s ease}.coord-section.available-drivers .driver-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff26}.driver-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.driver-card-header h5{margin:0;color:#2c3e50;font-size:1.1rem}.driver-card-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.driver-info-row{display:flex;align-items:center;font-size:.9rem;color:#495057}.driver-info-row i{margin-right:8px;color:#6c757d;width:16px;text-align:center}.driver-last-activity{grid-column:1 / -1;padding-top:10px;border-top:1px solid #e9ecef;font-size:.85rem;color:#6c757d;font-style:italic}.no-last-activity{color:#adb5bd}.pickup-assignment-info{background:#f8f9fa;padding:15px;border-radius:6px;border-left:4px solid #007bff;margin-bottom:15px}.pickup-assignment-badge{display:inline-block;background:#007bff;color:#fff;padding:6px 12px;border-radius:4px;font-size:.9rem;font-weight:600;margin-bottom:10px}.pickup-assignment-info p{margin:8px 0;color:#495057}.pickup-assignment-info .phone-link{color:#007bff;text-decoration:none;font-weight:500}.pickup-assignment-info .phone-link:hover{text-decoration:underline}.confirmation-timer{color:#dc3545;font-weight:600}.pickup-assignment-buttons{text-align:center;margin-top:15px}.confirm-pickup-button{background:#28a745;color:#fff;border:none;padding:10px 20px;border-radius:4px;font-weight:600;cursor:pointer;transition:background-color .2s}.confirm-pickup-button:hover:not(:disabled){background:#218838}.confirm-pickup-button:disabled{background:#6c757d;cursor:not-allowed}.active-pickup-banner{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border-radius:8px;margin-bottom:20px;box-shadow:0 4px 20px #dc35454d;animation:pulseGlow 2s infinite;position:relative;overflow:hidden}@keyframes pulseGlow{0%{box-shadow:0 4px 20px #dc35454d}50%{box-shadow:0 6px 30px #dc354580}to{box-shadow:0 4px 20px #dc35454d}}.banner-content{display:flex;align-items:center;justify-content:space-between;padding:20px;gap:20px}.pickup-urgency-indicator{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.9rem}.pickup-urgency-indicator i{font-size:1.2rem;animation:flash 1s infinite}@keyframes flash{0%,50%{opacity:1}51%,to{opacity:.5}}.pickup-banner-details{flex:1;text-align:center}.therapist-name-emphasis{font-size:1.5rem;font-weight:700;margin:0 0 8px;text-shadow:0 1px 3px rgba(0,0,0,.3)}.pickup-location-emphasis{font-size:1.1rem;margin:0;opacity:.9}.banner-timer{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.9rem;opacity:.9}.banner-actions .view-pickup-btn{background:#fff3;border:2px solid white;color:#fff;padding:12px 20px;border-radius:6px;font-weight:700;cursor:pointer;transition:all .3s ease}.banner-actions .view-pickup-btn:hover{background:#fff;color:#dc3545}.banner-warning{background:#0003;padding:12px 20px;display:flex;align-items:center;gap:10px;font-size:.9rem;border-top:1px solid rgba(255,255,255,.2)}.pickup-assignment-urgent{background:#fff;border-radius:12px;padding:0;box-shadow:0 8px 25px #00000026;border:3px solid;overflow:hidden;margin-bottom:20px}.pickup-assignment-urgent.normal{border-color:#28a745;padding:var(--spacing-sm)}.pickup-assignment-urgent.urgent{border-color:#ffc107;animation:urgentPulse 2s infinite;padding:var(--spacing-sm)}.pickup-assignment-urgent.critical{border-color:#dc3545;animation:criticalPulse 1s infinite;padding:var(--spacing-sm)}@keyframes urgentPulse{0%,to{border-color:#ffc107;box-shadow:0 8px 25px #ffc1074d}50%{border-color:#e0a800;box-shadow:0 12px 35px #ffc10780}}@keyframes criticalPulse{0%,to{border-color:#dc3545;box-shadow:0 8px 25px #dc354566}50%{border-color:#c82333;box-shadow:0 12px 35px #dc354599}}.therapist-priority-info{background:#f8f9fa;padding:20px}.pickup-assignment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.therapist-pickup-title{margin:0;font-size:1.4rem;color:#2c3e50;display:flex;align-items:center;font-weight:700}.therapist-pickup-title i{color:#007bff;font-size:1.2rem}.countdown-timer{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;font-weight:700;font-size:1rem}.countdown-timer.normal{background:#d4edda;color:#155724}.countdown-timer.urgent{background:#fff3cd;color:#856404}.countdown-timer.critical{background:#f8d7da;color:#721c24;animation:flash 1s infinite}.countdown-timer i{font-size:1.1rem}.timer-text{font-family:Courier New,monospace;font-size:1.1rem}.therapist-contact-priority{margin-top:15px}.contact-item{display:block;align-items:center;font-size:1.1rem}.contact-item i{color:#28a745;width:20px;text-align:center}.phone-link-priority{color:#007bff;text-decoration:none;font-weight:600;font-size:1.1rem;padding:8px 12px;background:#e3f2fd;border-radius:6px;transition:all .3s ease}.phone-link-priority:hover{background:#bbdefb;text-decoration:none}.no-phone{color:#6c757d;font-style:italic}.section-title{margin:0 0 12px;font-size:1.1rem;color:#2c3e50;display:flex;align-items:center;font-weight:600;border-bottom:2px solid #e9ecef;padding-bottom:8px}.section-title i{color:#007bff}.session-completion-info{background:#fff;border-bottom:1px solid #e9ecef}.completion-details{display:grid;gap:8px}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.detail-label{font-weight:600;color:#495057}.detail-value{color:#2c3e50;font-weight:500}.pickup-location-priority{background:#fff8e1;padding:20px;border-bottom:1px solid #e9ecef}.location-details{margin-top:12px}.location-address{font-size:1.2rem;font-weight:700;color:#2c3e50;margin:0 0 8px;padding:12px;background:#fff;border-radius:6px;border-left:4px solid #ff9800}.client-context{color:#6c757d;margin:0;font-style:italic}.auto-disable-warning{background:#fff3cd;padding:20px;border-bottom:1px solid #e9ecef}.warning-content{display:flex;align-items:flex-start;gap:12px}.warning-content i{color:#856404;font-size:1.3rem;margin-top:2px}.warning-text strong{color:#856404;font-size:1.1rem}.warning-text p{margin:8px 0 0;color:#6c757d;line-height:1.4}.pickup-confirmation-action{background:#fff;padding:20px;text-align:center}.confirm-pickup-button-priority{background:#28a745;color:#fff;border:none;padding:15px 30px;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:10px;min-width:200px;justify-content:center}.confirm-pickup-button-priority:hover:not(:disabled){background:#218838;transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.confirm-pickup-button-priority.urgent{background:#ffc107;color:#212529}.confirm-pickup-button-priority.urgent:hover:not(:disabled){background:#e0a800}.confirm-pickup-button-priority.critical{background:#dc3545;animation:criticalButtonPulse 1s infinite}@keyframes criticalButtonPulse{0%,to{background:#dc3545}50%{background:#c82333}}.confirm-pickup-button-priority:disabled{background:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.confirm-pickup-button-priority i{font-size:1rem}.pickup-priority-notice{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:12px;margin:10px 0;color:#856404;text-align:center;font-size:.9rem}.pickup-priority-notice i{margin-right:8px}.disabled-due-pickup{opacity:.6;pointer-events:none;position:relative}.disabled-due-pickup:after{content:"Disabled until pickup confirmed";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000c;color:#fff;padding:8px 12px;border-radius:4px;font-size:.8rem;white-space:nowrap;z-index:10}.vehicle-badge{padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:600;margin-left:8px;display:inline-block}.vehicle-badge.company-car{background-color:#0d6efd;color:#fff;border:1px solid #0b5ed7}.vehicle-badge.motorcycle{background-color:#28a745;color:#fff;border:1px solid #1e7e34}.header-badges{display:flex;align-items:center;gap:8px}.therapist-name{display:block}.pickup-status{padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:600;white-space:nowrap}.pickup-status.picked_up{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.pickup-status.waiting{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}@media (max-width: 768px){.banner-content{flex-direction:column;text-align:center;gap:15px}.pickup-assignment-header{flex-direction:column;gap:10px;text-align:center}.therapist-pickup-title{font-size:1.2rem}.countdown-timer{justify-content:center}.detail-item{flex-direction:column;align-items:flex-start;gap:4px}.location-address{font-size:1rem}.confirm-pickup-button-priority{width:100%;min-width:auto}}.pickup-notice{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;padding:12px;margin-bottom:20px;color:#856404}.pickup-notice p{margin:0}.pickup-priority-notice{background:#fff3cd;border:1px solid #ffc107;border-radius:4px;padding:10px;margin:8px 0;color:#856404;font-size:.9rem;text-align:center}.disabled-due-pickup{background:#e9ecef!important;color:#6c757d!important;border-color:#ced4da!important;cursor:not-allowed!important;opacity:.6}.disabled-due-pickup:hover{background:#e9ecef!important}.zone-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:700;margin-left:8px}.zone-badge.north-pasig{background:#007bff;color:#fff}.zone-badge.south-pasig{background:#28a745;color:#fff}.zone-badge.east-pasig{background:#ffc107;color:#212529}.zone-badge.west-pasig{background:#dc3545;color:#fff}.zone-badge.central-pasig{background:#6f42c1;color:#fff}.zone-badge.ortigas-cbd{background:#fd7e14;color:#fff}.therapist-dashboard{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid #e5e7eb}.dashboard-header h1{margin:0;color:var(--text);font-size:var(--font-size-xxl);font-weight:700}.dashboard-header p{margin:0;color:var(--background-600);font-size:var(--font-size-md)}.action-buttons{display:flex;gap:var(--spacing-sm)}.logout-button{background-color:var(--error);color:var(--background);border:none;padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;cursor:pointer;font-weight:700;transition:background-color .2s}.logout-button:hover{background-color:var(--error-hover)}.appointments-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-md)}.appointment-card{background-color:var(--background);border-radius:8px;box-shadow:0 2px 8px #00000012;overflow:visible;transition:transform .2s,box-shadow .2s;border-left:4px solid var(--primary)}.appointment-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.appointment-header{display:flex;justify-content:space-between;align-items:center;background-color:var(--background-50);padding:var(--spacing-sm);border-bottom:1px solid var(--background-200)}.appointment-header h3{margin:0;font-size:var(--font-size-md);color:var(--text);font-weight:700}.status-badge{padding:4px 8px;border-radius:4px;font-size:var(--font-size-sm);font-weight:700}.status-pending{background-color:var(--primary-100);color:var(--primary-700)}.status-confirmed{background-color:var(--accent-100);color:var(--accent-700)}.status-in-progress{background-color:var(--secondary-100);color:var(--secondary-700)}.status-completed{background-color:var(--secondary-50);color:var(--secondary-800)}.status-cancelled{background-color:var(--error);color:var(--background)}.status-therapist-confirmed{background-color:#dcfce7;color:#166534}.status-driver-confirmed{background-color:#dbeafe;color:#1e40af}.status-journey-started{background-color:#fef3c7;color:#92400e}.status-arrived{background-color:#f3e8ff;color:#6b21a8}.status-dropped-off{background-color:#e0f2fe;color:#0277bd;border:2px solid #0277bd}.status-session-started{background-color:#f0f9ff;color:#0369a1}.status-payment-requested{background-color:#fef7cd;color:#a16207}.status-payment-completed{background-color:#d1fae5;color:#047857}.status-pickup-requested{background-color:#ede9fe;color:#7c3aed}.appointment-details{padding:var(--spacing-sm)}.appointment-details p{margin:8px 0;line-height:1.4;color:var(--text);font-size:var(--font-size-sm)}.appointment-actions{display:flex;padding:var(--spacing-sm);border-top:1px solid var(--background-100);justify-content:flex-end;gap:var(--spacing-xs)}.appointment-actions button{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:var(--font-size-sm);font-weight:700;transition:background-color .2s}.accept-button{background-color:var(--accent);color:var(--background)}.accept-button:hover{background-color:var(--accent-700)}.reject-button{background-color:var(--error);color:var(--background)}.reject-button:hover{background-color:var(--primary-400)}.start-button{background-color:var(--secondary);color:var(--background)}.start-button:hover{background-color:var(--secondary-700)}.complete-button{background-color:var(--primary);color:var(--background)}.complete-button:hover{background-color:var(--primary-700)}.loading-spinner{text-align:center;padding:var(--spacing-lg);font-size:var(--font-size-md);color:var(--background-700)}.error-message{background-color:var(--error);color:var(--background);padding:var(--spacing-sm);border-radius:4px;margin-bottom:var(--spacing-md);text-align:center}.no-appointments{text-align:center;padding:var(--spacing-lg);color:var(--background-700);font-style:italic}.therapist-team{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:8px 12px;margin:10px 0;font-size:.9rem;color:#495057}.therapist-team strong{color:#343a40}.therapist-team .therapist-list{margin-top:4px}.therapist-team .therapist-name{display:block;font-weight:500;color:#2c3e50;line-height:1.4;margin-bottom:4px}.therapist-team .therapist-specialization{color:#6c757d;font-style:italic;font-weight:400}.pickup-buttons{display:flex;gap:10px;margin-top:8px}.request-pickup-button{background-color:var(--primary);color:var(--background)}.request-pickup-button:hover{background-color:var(--primary-700)}.urgent-pickup-button{background-color:#ff6b35;color:var(--background)}.urgent-pickup-button:hover{background-color:#e55529}.pickup-actions{display:flex;flex-direction:column}.pickup-info{margin:0 0 8px;font-size:var(--font-size-sm);color:var(--background-600)}.completed-transport-card{border-left:4px solid #22c55e!important;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);box-shadow:0 2px 8px #22c55e26}.completed-transport-card:hover{box-shadow:0 4px 12px #22c55e40}.completed-transport-card .appointment-header{background-color:#f0fdf4;border-bottom:1px solid #bbf7d0}.status-transport-completed{background-color:#22c55e;color:#fff;padding:6px 12px;border-radius:6px;font-size:var(--font-size-sm);font-weight:700;display:inline-flex;align-items:center;gap:4px}.completed-transport-card .appointment-details p{color:#15803d}.completed-transport-card .appointment-details p strong{color:#166534}.waiting-operator-status{text-align:center;padding:var(--spacing-md);background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:8px;margin:var(--spacing-sm) 0}.waiting-badge{display:inline-flex;align-items:center;gap:.5rem;background-color:#f59e0b;color:#fff;padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem;margin-bottom:.5rem;box-shadow:0 2px 4px #f59e0b4d}.waiting-operator-status p{margin:.5rem 0;color:#92400e;font-weight:500}.workflow-reminder{margin-top:.75rem;padding:.5rem;background-color:#f59e0b1a;border-radius:4px;border-left:3px solid #f59e0b}.workflow-reminder small{color:#78350f;font-weight:500;font-size:.8rem}.dashboard-loading-minimal{display:flex;justify-content:center;align-items:center;min-height:200px;margin:2rem 0}@media (max-width: 768px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.appointments-list{grid-template-columns:1fr}.appointment-actions{justify-content:space-between}.view-selector{width:100%}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.section-header h2{margin:0;color:var(--text);font-size:var(--font-size-xl);font-weight:600}.view-completed-btn{background-color:var(--primary);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-sm);border-radius:6px;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:background-color .2s ease}.view-completed-btn:hover{background-color:var(--primary-hover)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal{background:var(--background);border-radius:12px;padding:2rem 2.5rem;min-width:500px;max-width:90vw;max-height:90vh;box-shadow:0 8px 32px #0000002e;position:relative;animation:fadeIn .2s;overflow:hidden;display:flex;flex-direction:column}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-shrink:0}.modal-header h2{margin:0;color:var(--text);font-size:var(--font-size-xl);font-weight:600}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .2s ease,background-color .2s ease}.close-btn:hover{color:var(--text);background-color:var(--background-hover)}.modal-content{flex:1;overflow-y:auto;margin-right:-.5rem;padding-right:.5rem}.modal-content .appointments-list{grid-template-columns:1fr;gap:var(--spacing-sm)}.modal-content .appointment-card{margin-bottom:0}.attendance-component{max-width:1200px;margin:0 auto}.attendance-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.refresh-btn{display:flex;align-items:center;justify-content:center;padding:8px 12px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.refresh-btn:hover:not(:disabled){background-color:#0056b3}.refresh-btn:disabled{background-color:#6c757d;cursor:not-allowed}.error-message{background-color:#f8d7da;color:#721c24;padding:12px;border-radius:4px;margin-bottom:20px;border:1px solid #f5c6cb}.attendance-dashboard{display:flex;flex-direction:column;gap:20px}.current-time{display:flex;align-items:center;gap:8px;font-size:1.2em;font-weight:700}.current-date{font-size:1.1em;opacity:.9}.attendance-status-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a;border:1px solid #e9ecef}.status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.status-header h3{margin:0;color:#333}.status-indicator{padding:8px 16px;border-radius:20px;color:#fff;font-weight:700;font-size:.9em;text-transform:uppercase;letter-spacing:.5px}.attendance-details{display:grid;gap:12px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f1f3f4}.detail-row .label{font-weight:500;color:#666}.detail-row .value{font-weight:700;color:#333}.attendance-actions-panel{display:flex;justify-content:center;padding:20px;background:#f8f9fa;border-radius:8px;border:2px dashed #dee2e6}.check-in-btn,.check-out-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;font-size:1.1em;font-weight:700;border:none;border-radius:6px;cursor:pointer;transition:all .2s;min-width:150px;justify-content:center}.check-in-btn{background-color:#28a745;color:#fff}.check-in-btn:hover:not(:disabled){background-color:#218838;transform:translateY(-1px)}.check-out-btn{background-color:#dc3545;color:#fff}.check-out-btn:hover:not(:disabled){background-color:#c82333;transform:translateY(-1px)}.check-in-btn:disabled,.check-out-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.65;transform:none}.check-in-btn.late-checkin:disabled{background-color:#6c757d;color:#fff}.attendance-completed{display:flex;align-items:center;gap:8px;color:#28a745;font-weight:700;font-size:1.1em}.attendance-info{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;border:1px solid #e9ecef}.info-card h4{margin-top:0;margin-bottom:16px;color:#333;font-size:1.1em}.info-card ul{margin:0;padding-left:20px}.info-card li{margin-bottom:8px;color:#666;line-height:1.5}.info-card strong{color:#333}.late-warning{background-color:#fff3cd;color:#856404;padding:12px;border-radius:4px;margin-bottom:15px;border:1px solid #ffeaa7;font-size:14px}.check-in-section{display:flex;flex-direction:column;gap:10px}.check-in-btn.late-checkin{background-color:#ffc107;color:#212529}.check-in-btn.late-checkin:hover:not(:disabled){background-color:#e0a800}.attendance-management-panel{margin:10px 0}.attendance-header{justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;background-color:#f8f9fa;border-radius:8px}.date-selector{gap:10px;display:flex;flex-direction:column;gap:12px;margin-top:16px;padding:16px;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.date-selector label{font-weight:600;color:#495057}.date-input{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px}.attendance-summary{margin-bottom:25px}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:20px}.stat-card{background:#fff;padding:20px;border-radius:8px;text-align:center;box-shadow:0 2px 4px #0000001a;border-left:4px solid}.stat-card.present{border-left-color:#28a745}.stat-card.late{border-left-color:#ffc107}.stat-card.absent{border-left-color:#dc3545}.stat-card.pending{border-left-color:#007bff}.attendance-list{display:flex;flex-direction:column;gap:15px}.attendance-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000000d}.attendance-info{display:inline-grid;gap:30px;flex:1;margin-bottom:30px}.staff-details h4{margin:0 0 8px;color:#2c3e50}.role-badge{background-color:#6c757d;color:#fff;padding:2px 8px;border-radius:12px;font-size:12px;text-transform:capitalize}.time-details{display:flex;flex-direction:column;gap:5px}.time-row{display:flex;gap:10px}.time-row .label{font-weight:600;color:#495057;min-width:80px}.time-row .value{color:#6c757d}.attendance-status{display:flex;flex-direction:column;gap:10px;align-items:flex-end}.approve-btn{background-color:#28a745;color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer}.approve-btn:hover:not(:disabled){background-color:#218838}.attendance-guidelines{margin-top:30px;padding:20px;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #007bff}.attendance-guidelines h4{margin:0 0 15px;color:#2c3e50}.attendance-guidelines ul{margin:0;padding-left:20px}.attendance-guidelines li{margin-bottom:8px;color:#495057}.edit-actions{display:flex;gap:8px;align-items:center}.edit-btn,.note-btn,.save-btn,.cancel-btn{display:flex;align-items:center;justify-content:center;padding:8px 12px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;gap:6px;box-shadow:0 2px 4px #0000001a}.edit-btn{background-color:#ffc107;color:#212529}.edit-btn:hover:not(:disabled){background-color:#e0a800;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.note-btn{background-color:#6f42c1;color:#fff}.note-btn:hover:not(:disabled){background-color:#5a32a3;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.save-btn{background-color:#28a745;color:#fff}.save-btn:hover:not(:disabled){background-color:#218838;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.cancel-btn{background-color:#dc3545;color:#fff}.cancel-btn:hover:not(:disabled){background-color:#c82333;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.edit-btn:disabled,.note-btn:disabled,.save-btn:disabled,.cancel-btn:disabled{background-color:#6c757d;cursor:not-allowed;transform:none;box-shadow:0 2px 4px #0000001a}.edit-actions .loading{opacity:.7;pointer-events:none}.attendance-details .detail-row{transition:background-color .2s ease}.attendance-details .detail-row:hover{background-color:#f8f9fa}.attendance-success{background-color:#d4edda;color:#155724;padding:12px;border-radius:4px;margin-bottom:20px;border:1px solid #c3e6cb}.time-input{padding:4px 8px;border:1px solid #ced4da;border-radius:4px;font-size:14px;width:120px}.time-input:focus{outline:none;border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40}.notes-textarea{padding:8px;border:1px solid #ced4da;border-radius:4px;font-size:14px;resize:vertical;min-height:60px;width:100%;max-width:300px}.notes-textarea:focus{outline:none;border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;color:#333}.modal-close-btn{background:none;border:none;font-size:20px;cursor:pointer;color:#6c757d;padding:4px;border-radius:4px;transition:background-color .2s}.modal-close-btn:hover{background-color:#f8f9fa;color:#495057}.modal-body{padding:20px}.note-textarea{width:100%;min-height:120px;padding:12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;resize:vertical;font-family:inherit}.note-textarea:focus{outline:none;border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid #e9ecef}.save-note-btn{background-color:#007bff;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;transition:background-color .2s}.save-note-btn:hover:not(:disabled){background-color:#0056b3}.save-note-btn:disabled{background-color:#6c757d;cursor:not-allowed}.cancel-note-btn{background-color:#6c757d;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;transition:background-color .2s}.cancel-note-btn:hover{background-color:#545b62}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f0f0f0}.detail-row:last-child{border-bottom:none}.detail-row .label{font-weight:500;color:#495057;min-width:120px}.detail-row .value{color:#212529;flex:1;text-align:right}@media (max-width: 768px){.edit-actions{flex-direction:column;gap:8px}.edit-btn,.note-btn,.save-btn,.cancel-btn{width:100%;justify-content:center}.detail-row{flex-direction:column;align-items:flex-start;gap:8px}.detail-row .value{text-align:left;width:100%}.time-input,.notes-textarea{width:100%;max-width:none}.modal-content{width:95%;margin:10px}}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.rejection-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.rejection-modal{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.rejection-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0;border-bottom:1px solid #e0e0e0;margin-bottom:20px}.rejection-modal-header h3{margin:0;color:#333;font-size:18px;font-weight:600}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.close-button:hover{background-color:#f0f0f0;color:#333}.rejection-form{padding:0 24px 24px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.reason-options{display:flex;flex-direction:column;gap:8px}.radio-option{display:flex;align-items:center;cursor:pointer;padding:8px;border-radius:4px;transition:background-color .2s}.radio-option:hover{background-color:#f8f9fa}.radio-option input[type=radio]{margin-right:8px;cursor:pointer}.radio-option input[type=radio]:checked+span,.radio-option:has(input[type=radio]:checked){color:#007bff;font-weight:500}textarea{width:100%;min-height:80px;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px;resize:vertical;box-sizing:border-box}textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.rejection-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid #e0e0e0}.cancel-button,.submit-rejection-button{padding:10px 20px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:#6c757d;color:#fff}.cancel-button:hover:not(:disabled){background-color:#5a6268}.submit-rejection-button{background-color:#dc3545;color:#fff}.submit-rejection-button:hover:not(:disabled){background-color:#c82333}.cancel-button:disabled,.submit-rejection-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 600px){.rejection-modal{width:95%;margin:10px}.rejection-modal-header{padding:16px 20px 0}.rejection-form{padding:0 20px 20px}.rejection-modal-actions{flex-direction:column}.cancel-button,.submit-rejection-button{width:100%}}.calendar-wrapper{display:flex;flex-direction:column;width:100%;max-width:1200px;margin:0 auto;border-radius:8px;background-color:var(--background, #ffffff)}.calendar-container{width:100%}.calendar-header{display:flex;align-items:center;justify-content:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);background-color:var(--background);border-radius:8px}.calendar-nav-buttons{display:flex;gap:var(--spacing-xm);align-items:center}.calendar-header button{background:var(--background);border:1px solid var(--background-100);cursor:pointer;font-size:var(--font-size-base);padding:0;display:flex;align-items:center;justify-content:center;color:var(--background-500);border-radius:50%;min-width:35px;height:35px;width:35px;transition:background .2s}.calendar-header button:hover{background:var(--background-50)}.calendar-header h2{margin:0;font-size:var(--font-size-xl);font-weight:700;color:var(--text);text-align:left}.calendar-days{display:grid!important;grid-template-columns:repeat(7,1fr)!important;border:1px solid var(--background-200, #cccccc);border-radius:12px;overflow:hidden;box-shadow:0 2px 12px #0000000f;width:100%;gap:0}.day-header{background-color:var(--background-200, #cccccc);border-bottom:1px solid var(--background-300, #b3b3b3);padding:var(--spacing-sm, 1rem);color:var(--background-600, #666666);font-size:var(--font-size-sm, .8rem);text-transform:uppercase;letter-spacing:.5px;font-weight:400;display:grid;place-items:center;min-height:40px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:var(--spacing-xm, .75rem);border:.5px solid var(--background-100, #e6e6e6);background-color:var(--background, #ffffff);font-size:var(--font-size-base, 1rem);color:var(--text, #0f0c05);position:relative;transition:all .3s ease;min-height:80px;cursor:pointer}.empty-day{background-color:var(--background-50, #f2f2f2)}.day{cursor:pointer}.day-number{font-weight:500;line-height:1;position:relative;z-index:2;margin-top:auto}.today{background-color:var(--primary-100);border:2px solid var(--primary-300);font-weight:700}.today .day-number{color:var(--primary-800);font-weight:700}.today-label{font-size:var(--font-size-xs);color:var(--primary-700);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.client-labels{position:absolute;top:2px;left:2px;right:2px;display:flex;flex-direction:column;gap:1px;z-index:1;max-height:40px;overflow:hidden}.client-label{font-size:8.5px;line-height:1.3;padding:2px 4px;background-color:var(--accent-400);color:#fff;border-radius:3px;font-weight:600;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;border:1px solid rgba(255,255,255,.5);box-shadow:0 2px 4px #0003}.client-label.more-clients{background-color:var(--primary-500);font-style:italic}.client-label.status-pending{background-color:#f59e0b!important;color:#fff!important;border-color:#d97706!important}.client-label.status-confirmed{background-color:#3b82f6}.client-label.status-active{background-color:#8b5cf6}.client-label.status-session{background-color:#10b981}.client-label.status-completed{background-color:#22c55e}.client-label.status-cancelled{background-color:#ef4444}.client-label.status-default{background-color:var(--accent-400)}.past-day{background-color:var(--background-50);color:var(--text-400)}.past-day .day-number{color:var(--text-400)}.appointment-day{background-color:var(--primary-50);border-left:3px solid var(--primary-400)}.appointment-day .day-number{color:var(--primary-800);font-weight:600}.day:hover{background-color:var(--accent-100);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.appointment-day:hover{background-color:#f7e3a1;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.today:hover{background-color:var(--primary-200);transform:translateY(-1px);box-shadow:0 2px 8px #4b3b0633}.past-day:hover{background-color:var(--background-100);transform:translateY(-.5px);box-shadow:0 1px 4px #0000000d}.selected-day{background-color:var(--primary);color:var(--background);font-weight:700;border:2px solid var(--primary-700)}.selected-day .day-number,.selected-day .today-label{color:var(--background)}.day-view-container{width:100%;max-width:1000px;margin:0 auto;padding:var(--spacing-md)}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding:var(--spacing-md);background-color:var(--background);border-radius:8px;border:1px solid var(--background-100);box-shadow:0 1px 3px #0000000d}.day-header h2{margin:0;color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.back-button{background:var(--primary);color:var(--background);border:none;padding:var(--spacing-xs) var(--spacing-sm);border-radius:6px;cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:var(--spacing-xs)}.back-button:hover{background:var(--primary-600);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.time-slots{margin-top:var(--spacing-md);background-color:var(--background-50);padding:var(--spacing-md);border-radius:8px;box-shadow:0 1px 3px #0000000d}.time-slots h3{margin-top:0;margin-bottom:var(--spacing-md);border-bottom:1px solid var(--background-200);padding-bottom:var(--spacing-xs);color:var(--primary-700)}.time-slot{padding:var(--spacing-sm) var(--spacing-xs);text-align:center;border:1px solid var(--background-200);border-radius:6px;cursor:pointer;transition:all .2s ease;background:var(--background);color:var(--text);font-size:var(--font-size-sm);font-weight:500;min-height:40px;display:flex;align-items:center;justify-content:center}.time-slot:hover{background-color:var(--accent-100);border-color:var(--accent-300);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.selected-time{background-color:var(--primary);color:var(--background);font-weight:700;border-color:var(--primary);box-shadow:0 2px 6px rgba(var(--primary-rgb),.3)}.time-slot{display:flex;align-items:center;gap:8px;padding:8px 12px;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;font-weight:500}.time-slot-time{font-size:var(--font-size-sm)}.time-slot:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.time-slot.selected-time{font-weight:600;box-shadow:0 2px 8px #00000026}.time-slot.past{cursor:not-allowed!important;opacity:.5}.time-slot-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;padding:12px;background-color:var(--background-50);border-radius:6px;border:1px solid var(--background-100)}.legend-item{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--text-secondary)}.legend-item span:first-child{font-size:12px;flex-shrink:0}.legend-circle{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px;border:1px solid rgba(0,0,0,.1)}.availability-info{display:grid;grid-template-areas:"therapists drivers" "bookings bookings";grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--spacing-sm);padding:var(--spacing-md)}.therapists-section{grid-area:therapists;background-color:var(--background-50);padding:var(--spacing-sm);border-radius:8px;box-shadow:0 1px 3px #0000000d;border:1px solid var(--background-100)}.drivers-section{grid-area:drivers;background-color:var(--background-50);padding:var(--spacing-sm);border-radius:8px;box-shadow:0 1px 3px #0000000d;border:1px solid var(--background-100)}.therapists-section h3,.drivers-section h3{margin-top:0;border-bottom:1px solid var(--background-200);padding-bottom:var(--spacing-xs);color:var(--primary-700)}.therapists-section ul,.drivers-section ul{list-style-type:none;padding:0}.therapists-section li,.drivers-section li{padding:var(--spacing-xs) 0;border-bottom:1px solid var(--background-100)}.past-date-indicator{background-color:var(--background-300);color:var(--text-secondary);padding:4px 12px;border-radius:4px;font-size:var(--font-size-sm);font-weight:500}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--spacing-sm);max-height:400px;overflow-y:auto;padding:var(--spacing-xs)}.time-slots-preview{margin-top:var(--spacing-lg);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:8px;background-color:var(--background)}.time-slots-preview h3{margin:0 0 var(--spacing-md) 0;color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.time-slots-grid-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:4px;margin-bottom:var(--spacing-md);max-height:200px;overflow-y:auto}.time-slot-preview{display:flex;align-items:center;justify-content:center;padding:4px 6px;border-radius:4px;cursor:pointer;transition:all .2s ease;min-height:32px;font-size:var(--font-size-sm);font-weight:500;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.time-slot-preview:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.time-slot-preview.past{cursor:not-allowed;opacity:.6}.time-preview{font-size:10px;font-weight:600;text-align:center}.time-slot-legend-compact{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.time-slot-legend-compact .legend-item{display:flex;align-items:center;gap:4px;white-space:nowrap}.time-slot-legend-compact .legend-circle{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.calendar-view{padding:var(--spacing-md)}.calendar-view h2{margin-bottom:var(--spacing-md);color:var(--text);display:flex;align-items:center;gap:var(--spacing-sm)}.calendar-view h2:before{content:"📅";font-size:1.2em}.calendar-status-legend{margin-top:var(--spacing-md);padding:var(--spacing-sm);background-color:var(--background-50);border-radius:8px;border:1px solid var(--background-200)}.calendar-status-legend h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-sm);color:var(--text-600);font-weight:600}.status-legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-xs)}.status-legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs)}.status-legend-color{width:12px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.3)}@media (max-width: 768px){.time-slots-grid-compact{grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:3px}.time-slot-preview{min-height:28px;padding:3px 4px}.time-preview{font-size:9px}.time-slot-legend-compact{gap:var(--spacing-xs)}.time-slot-legend-compact .legend-circle{width:10px;height:10px}}.websocket-status-indicator{position:fixed;top:20px;right:20px;width:5px;height:5px;z-index:1000;cursor:help;opacity:.3;transition:opacity .3s ease}.websocket-status-indicator:hover{opacity:.8}.status-dot{display:block;width:100%;height:100%;border-radius:50%;transition:all .3s ease}.websocket-status-indicator.connected .status-dot{background-color:#4caf50}.websocket-status-indicator.connected{display:none}.websocket-status-indicator.disconnected .status-dot{background-color:#ff9800;animation:pulse-subtle 3s infinite}.websocket-status-indicator.connecting .status-dot{background-color:#2196f3;animation:blink-subtle 2s infinite}.websocket-status-indicator.error .status-dot{background-color:#f44336;animation:pulse-subtle 2s infinite}.websocket-status-indicator.disabled .status-dot{background-color:#9e9e9e}.websocket-notification{position:fixed;bottom:20px;right:20px;padding:8px 12px;border-radius:6px;display:flex;align-items:center;font-size:13px;transition:all .3s ease;z-index:1001;box-shadow:0 2px 12px #0000001a;animation:slide-in-subtle .3s ease;max-width:280px;border-left:3px solid transparent;opacity:.95}.websocket-notification.connected{background-color:#e8f5e9;color:#2e7d32;border-left-color:#4caf50}.websocket-notification.disconnected{background-color:#fff3e0;color:#f57c00;border-left-color:#ff9800}.websocket-notification.connecting{background-color:#e3f2fd;color:#1565c0;border-left-color:#2196f3}.websocket-notification.error{background-color:#ffebee;color:#c62828;border-left-color:#f44336}.websocket-notification.disabled{background-color:#f5f5f5;color:#616161;border-left-color:#9e9e9e}.notification-icon{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:8px;flex-shrink:0}.websocket-notification.connected .notification-icon{background-color:#4caf50}.websocket-notification.disconnected .notification-icon{background-color:#ff9800}.websocket-notification.connecting .notification-icon{background-color:#2196f3;animation:blink-subtle 2s infinite}.websocket-notification.error .notification-icon{background-color:#f44336}.websocket-notification.disabled .notification-icon{background-color:#9e9e9e}.notification-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.retry-button{background-color:#fffc;border:1px solid rgba(0,0,0,.1);border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.retry-button:hover{background-color:#ffffffe6}.close-button{background:none;border:none;cursor:pointer;font-size:16px;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:inherit;opacity:.7;transition:opacity .2s ease}.close-button:hover{opacity:1}@keyframes blink-subtle{0%{opacity:.6}50%{opacity:.3}to{opacity:.6}}@keyframes pulse-subtle{0%{opacity:.6;transform:scale(1)}50%{opacity:.4;transform:scale(1.05)}to{opacity:.6;transform:scale(1)}}@keyframes slide-in-subtle{0%{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:.95}}@keyframes blink{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes slide-in{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.main-layout{display:flex;height:100vh;background-color:var(--background)}.sidebar{width:280px;background-color:var(--background-25);border-right:1px solid var(--background-100);display:flex;flex-direction:column;padding:var(--spacing-mmd)}.logo img{max-width:5.5rem;height:5.5rem;border-radius:14px}.logo{margin-left:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.nav-links a,.bottom-links a,.notification-link a{text-decoration:none;color:var(--text);padding:var(--spacing-xm) var(--spacing-sm);border-radius:6px;font-size:var(--font-size-base);font-family:Plus Jakarta Sans,sans-serif;font-weight:400;cursor:pointer;display:flex;align-items:center;gap:.5em;transition:background-color .2s,color .2s}.sublinks a,.sublink-parent{transition:background-color .2s,color .2s}.divider{height:1px;background:var(--background-200);margin:var(--spacing-sm) 0;border:none}.nav-links a.active-link,.bottom-links a.active-link,.notification-link a.active-link{background-color:var(--primary);color:var(--background);font-weight:400}.nav-links a:hover:not(.active-link),.bottom-links a:hover:not(.active-link),.notification-link a:hover:not(.active-link){background-color:var(--background-100)}.sublinks{display:flex;flex-direction:column;padding-left:var(--spacing-md);max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .3s}.sublinks.open{max-height:500px;opacity:1;pointer-events:auto;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .3s}.sublinks a{font-size:var(--font-size-base);padding:calc(var(--spacing-xm)) var(--spacing-sm);color:var(--text);border-radius:6px;background:none;display:flex;align-items:center;gap:.5em;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);white-space:normal;word-break:break-word}.sublinks.open a{opacity:1;transform:translateY(0);pointer-events:auto;transition:background-color .2s,color .2s,opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}.sublinks.open a,.sublinks.open a.active-link{transition:background-color .2s,color .2s,opacity .3s,transform .3s}.sublinks.open a:nth-child(1){transition-delay:0s,0s,.05s,.05s}.sublinks.open a:nth-child(2){transition-delay:0s,0s,.12s,.12s}.sublinks.open a:nth-child(3){transition-delay:0s,0s,.19s,.19s}.sublinks:not(.open) a{opacity:0;transform:translateY(-10px);pointer-events:none;transition-delay:.19s,.19s}.sublinks:not(.open) a:nth-child(2){transition-delay:.12s,.12s}.sublinks:not(.open) a:nth-child(1){transition-delay:.05s,.05s}.sublink-parent.open+.sublinks,.sublinks[style*="display: flex"]{max-height:500px;opacity:1;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .3s}.sublinks a.active-link{background-color:var(--primary);color:var(--background)}.sublinks a:hover:not(.active-link){background-color:var(--background-100)}.sidebar-link:hover,.sidebar-link.active-link,.sidebar-sublink-parent:hover,.sidebar-sublink-parent.active-link{background:var(--background-100)}.sidebar-link-content{display:flex;flex:1 1 auto;min-width:0;gap:.5em;align-items:center;white-space:normal;word-break:break-word}.dropdown-icon{display:flex;align-items:center;margin-left:auto;font-size:1em;transition:transform .3s}.dropdown-icon.open{transform:rotate(180deg)}.content{flex:1;display:flex;flex-direction:column;overflow-y:auto}.add-button{background-color:var(--primary);color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;align-self:flex-start;margin-bottom:20px;font-weight:700}.add-button:hover{background-color:var(--primary-hover)}.content-body{flex:1}.main-layout__sidebar-icon{margin-right:.5em;font-size:1.2em}.main-layout__dropdown-arrow{margin-right:0;font-size:1.2em}:root{--sidebar-sublink-icon-size: 1.1em}.sidebar a svg{flex:0 0 auto;min-width:var(--sidebar-sublink-icon-size);min-height:var(--sidebar-sublink-icon-size);max-width:var(--sidebar-sublink-icon-size);max-height:var(--sidebar-sublink-icon-size);font-size:var(--sidebar-sublink-icon-size)!important;display:inline-block}.hamburger-menu{display:none;background:none;border:none;padding:0;margin-left:auto;cursor:pointer;align-items:center;justify-content:center;z-index:20;color:var(--text)}.hamburger-menu.close-btn{align-self:flex-end;margin-bottom:var(--spacing-mm);color:var(--text)}@media (max-width: 768px){.main-layout{flex-direction:column;height:auto}.sidebar{width:100vw;min-width:0;max-width:100vw;flex-direction:row;align-items:center;padding:0 var(--spacing-xm);overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid var(--background-100);background:var(--background-25);position:sticky;top:0;z-index:10;height:56px;white-space:nowrap;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}.logo{margin:0;flex-shrink:0;display:flex;align-items:center;height:100%}.logo img{max-width:2.5rem;height:2.5rem;border-radius:8px}.hamburger-menu{display:flex}.nav-links.hide-on-mobile,.notification-link.hide-on-mobile,.bottom-links.hide-on-mobile{display:none!important}.mobile-drawer{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000059;z-index:1000;display:flex;flex-direction:column;align-items:flex-end}.drawer-links{background:var(--background);width:80vw;max-width:340px;height:100vh;box-shadow:-2px 0 12px #00000014;padding:var(--spacing-mm) var(--spacing-mm);display:flex;flex-direction:column;overflow-y:auto}.drawer-links .nav-links,.drawer-links .bottom-links,.drawer-links .notification-link{display:flex;flex-direction:column;width:100%}.drawer-links .divider{margin:12px 0}}.sidebar-sublink-parent{display:flex;align-items:center;gap:.5em;color:var(--text);text-decoration:none;border-radius:4px;transition:background .2s;justify-content:space-between;width:100%;cursor:pointer;background:none;border:none;font:inherit;padding:var(--spacing-xm) var(--spacing-sm)}.sidebar-sublink-parent:hover,.sidebar-sublink-parent.active-link{background:var(--background-100)}.server-pagination{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:1rem 0;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.pagination-controls{display:flex;align-items:center;gap:.5rem}.nav-button{padding:var(--spacing-xs);width:2.5rem;height:2.5rem;background:var(--primary);color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.nav-button:hover:not(:disabled){background:var(--primary-hover, var(--primary))}.nav-button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.page-numbers{display:flex;gap:.25rem;align-items:center}.page-numbers button{min-width:2.5rem;height:2.5rem;border:1px solid #dee2e6;background:#fff;color:#495057;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.page-numbers button:hover{background:#e9ecef;border-color:#adb5bd}.page-numbers button.active{background:#007bff;color:#fff;border-color:#007bff}.ellipsis{padding:0 .5rem;color:#6c757d;font-size:.9rem}.pagination-info{font-size:.85rem;color:#6c757d;text-align:center}@media (max-width: 768px){.server-pagination{padding:.75rem}.pagination-controls{flex-wrap:wrap;justify-content:center}.nav-button{width:2rem;height:2rem;font-size:.9rem;padding:var(--spacing-xs)}.page-numbers button{min-width:2rem;height:2rem;font-size:.8rem}}.appointments-pagination .server-pagination{margin-top:1rem;background:transparent;border:none;padding:.5rem 0}.server-pagination.simplified{background:transparent;border:none;padding:1rem 0}.simplified-controls{gap:1rem;justify-content:center}@media (max-width: 768px){.simplified-controls{gap:.75rem}}.status-dropdown-container{position:relative;display:inline-block;z-index:100}.status-badge.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s ease;position:relative;padding-right:24px!important}.status-badge.clickable:hover{opacity:.8;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.status-badge.updating{opacity:.7;cursor:wait;pointer-events:none}.dropdown-arrow{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:.8em;opacity:.7;transition:transform .2s ease}.status-badge.clickable[aria-expanded=true] .dropdown-arrow{transform:translateY(-50%) rotate(180deg)}.loading-spinner{display:inline-block;width:12px;height:12px;border:2px solid #ffffff;border-radius:50%;border-top-color:transparent;animation:spin 1s linear infinite;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}.status-dropdown-menu{position:absolute;top:100%;left:0;z-index:1200;min-width:200px;max-width:280px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;margin-top:4px;animation:dropdown-appear .2s ease-out}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.status-dropdown-header{padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #e9ecef;font-weight:600;font-size:.9em;color:#495057;text-align:center}.status-dropdown-option{display:flex;align-items:center;width:100%;padding:10px 16px;border:none;background:#fff;text-align:left;cursor:pointer;font-size:.9em;color:#333;transition:all .15s ease;position:relative}.status-dropdown-option:hover:not(:disabled){background:#f8f9fa;color:var(--status-color, #007bff)}.status-dropdown-option:disabled{cursor:not-allowed;opacity:.6}.status-dropdown-option.current{background:#e7f3ff;color:#0056b3;font-weight:600}.current-indicator{margin-left:auto;color:#28a745;font-weight:700}@media (max-width: 768px){.status-dropdown-menu{min-width:180px;max-width:250px}.status-dropdown-option{padding:12px 14px;font-size:.85em}.status-dropdown-header{padding:10px 14px;font-size:.85em}}@media (prefers-contrast: high){.status-dropdown-menu{border-width:2px;box-shadow:0 2px 8px #0000004d}.status-dropdown-option:hover:not(:disabled){background:#000;color:#fff}}@media (prefers-reduced-motion: reduce){.status-badge.clickable,.dropdown-arrow,.status-dropdown-option{transition:none}.status-dropdown-menu,.loading-spinner{animation:none}}.status-badge.clickable:focus{outline:2px solid #007bff;outline-offset:2px}.status-dropdown-option:focus{outline:2px solid #007bff;outline-offset:-2px;background:#e7f3ff}.status-dropdown-container,.status-dropdown-menu{z-index:1200}@media (prefers-color-scheme: dark){.status-dropdown-menu{background:#2c2c2c;border-color:#404040;color:#fff}.status-dropdown-header{background:#1e1e1e;border-color:#404040;color:#fff}.status-dropdown-option{background:#2c2c2c;color:#fff}.status-dropdown-option:hover:not(:disabled){background:#404040}.status-dropdown-option.current{background:#1a365d;color:#63b3ed}}.appointment-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.appointment-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e9ecef}.appointment-header h4{margin:0;font-size:1.2em;font-weight:600;color:#2c3e50}.status-badge{padding:6px 12px;border-radius:20px;font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.pending{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.status-badge.confirmed{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-badge.driver-confirmed{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.status-badge.in-progress{background-color:#cce7ff;color:#004085;border:1px solid #b3d9ff}.status-badge.awaiting-payment{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.status-badge.completed{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-badge.rejected{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.appointment-details{display:grid;gap:8px;margin-bottom:16px}.appointment-details p{margin:0;font-size:.9em;line-height:1.4}.appointment-details strong{color:#495057;font-weight:600}.client-info{background-color:#f8f9fa;padding:12px;border-radius:8px;margin:8px 0}.services-info{background-color:#e9f7ef;padding:12px;border-radius:8px;margin:8px 0}.services-list{margin:8px 0;padding-left:20px}.services-list li{margin-bottom:4px;font-size:.85em}.therapist-info{background-color:#fff3e0;padding:12px;border-radius:8px;margin:8px 0}.acceptance-indicator{display:inline-flex;align-items:center;padding:4px 8px;border-radius:16px;font-size:.8em;font-weight:500;margin:4px 0}.acceptance-indicator.accepted{background-color:#d4edda;color:#155724}.acceptance-indicator.pending{background-color:#fff3cd;color:#856404}.acceptance-indicator.no-therapist{background-color:#f8d7da;color:#721c24}.urgency-indicator{padding:6px 10px;border-radius:20px;font-size:.8em;font-weight:600;margin:8px 0;display:inline-block}.urgency-normal{background-color:#e9ecef;color:#495057}.urgency-medium{background-color:#fff3cd;color:#856404}.urgency-high{background-color:#f8d7da;color:#721c24}.urgency-critical{background-color:#d32f2f;color:#fff;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.appointment-actions{margin-top:16px;padding-top:12px;border-top:1px solid #e9ecef}.appointment-actions button{margin-right:8px;margin-bottom:8px}@media (max-width: 768px){.appointment-card{padding:16px}.appointment-header{flex-direction:column;align-items:flex-start;gap:8px}.appointment-details{font-size:.85em}}.appointments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;margin:20px 0}@media (max-width: 768px){.appointments-grid{grid-template-columns:1fr;gap:16px}}.loading-message,.error-message,.no-appointments{text-align:center;padding:40px 20px;background-color:#f8f9fa;border-radius:8px;margin:20px 0}.error-message{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.loading-message{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.no-appointments{background-color:#e2e3e5;color:#495057;border:1px solid #d6d8db}.appointment-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-bottom:16px;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s ease,transform .2s ease;contain:layout style paint;will-change:transform}.appointment-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.appointment-card--rejected{border-left:4px solid #e74c3c;background-color:#fdf2f2}.appointment-card--overdue{border-left:4px solid #dc3545;background-color:#f8d7da}.appointment-card--approaching-deadline{border-left:4px solid #ffc107;background-color:#fff3cd}.appointment-card--payment-pending{border-left:4px solid #28a745;background-color:#f8fff9}.appointment-card--pending-acceptance{border-left:4px solid #ffc107}.appointment-card--critical{border-left:4px solid #dc3545;box-shadow:0 4px 12px #dc354526}.appointment-card--high{border-left:4px solid #fd7e14;box-shadow:0 4px 12px #fd7e1426}.appointment-card--medium{border-left:4px solid #ffc107;box-shadow:0 4px 12px #ffc10726}.appointment-card--normal{border-left:4px solid #6c757d}.therapist-dashboard .appointment-card{border-left:4px solid var(--primary, #3498db)}.appointment-card--virtualized{box-sizing:border-box;margin-bottom:0;border-bottom:1px solid #eee;contain:content;will-change:scroll-position}.appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:12px;border-bottom:1px solid #e9ecef}.appointment-header h3,.appointment-header h4{margin:0;color:#2c3e50;font-size:1.3rem;font-weight:600}.appointment-details p{margin:8px 0;color:#495057;line-height:1.5}.appointment-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}@media (max-width: 768px){.appointment-card{padding:16px;margin-bottom:12px}.appointment-header{flex-direction:column;align-items:flex-start;gap:10px}.appointment-actions{justify-content:center;flex-wrap:wrap}}@media (max-width: 480px){.appointment-card{padding:12px}.appointment-header h3,.appointment-header h4{font-size:1.1rem}}@keyframes appointment-pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.appointment-card--timeout{animation:appointment-pulse 2s infinite}@media print{.appointment-card{box-shadow:none;border:1px solid #ccc;break-inside:avoid;margin-bottom:12px}.appointment-card:hover{transform:none}}.blocked-error{background-color:#fff3cd;border:2px solid #ffc107;border-radius:8px;margin:16px 0}.blocked-request-error{padding:20px;text-align:left}.blocked-request-error h4{color:#856404;margin:0 0 12px;font-size:18px}.blocked-request-error p{color:#856404;margin:8px 0;font-size:14px}.error-help{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:12px;margin:12px 0}.error-help p{margin:0 0 8px;font-weight:600;color:#495057}.error-help ul{margin:8px 0 0;padding-left:20px}.error-help li{color:#495057;margin:4px 0;font-size:13px;line-height:1.4}.general-error{padding:16px;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24}.general-error h4{margin:0 0 8px;font-size:16px}.retry-button:hover{opacity:.9;transform:translateY(-1px)}.retry-button:active{transform:translateY(0)}@media (max-width: 768px){.blocked-request-error{padding:16px}.blocked-request-error h4{font-size:16px}.error-help{padding:10px}}.operator-dashboard{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.dashboard-header h1{color:#2c3e50;margin:0;font-size:2.5rem}.dashboard-header p{color:#7f8c8d;margin:5px 0 0;font-size:1.1rem}.loading-spinner{text-align:center;padding:40px;font-size:1.1rem;color:#7f8c8d;animation:spin 2s linear infinite}.error-message{background-color:#f8d7da;color:#721c24;padding:15px;border-radius:5px;margin-bottom:20px;border:1px solid #f5c6cb}.appointments-list{display:grid;gap:20px}.appointment-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s}.appointment-card:hover{box-shadow:0 4px 8px #00000026}.appointment-card.rejected{border-left:4px solid #e74c3c;background-color:#fdf2f2}.appointment-card.overdue{border-left:4px solid #dc3545;background-color:#f8d7da}.appointment-card.approaching-deadline{border-left:4px solid #ffc107;background-color:#fff3cd}.appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.appointment-header h3{margin:0;color:#2c3e50;font-size:1.3rem}.status-badge{display:inline-block;padding:6px 14px;border-radius:20px;border:2px solid transparent;min-height:26px;vertical-align:middle;position:relative;z-index:10;font-family:Plus Jakarta Sans,Arial,sans-serif!important;font-size:14px!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.5px!important;line-height:1.2;white-space:nowrap;color:#000!important;text-shadow:none!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;background:#fff!important;border:2px solid #333!important;box-shadow:0 2px 8px #00000026!important;transition:transform .2s ease,box-shadow .2s ease;contain:layout style paint;opacity:1!important;visibility:visible!important}.status-badge *{color:#000!important;font-size:inherit!important;font-weight:inherit!important}.status-badge:empty:before{content:"EMPTY BADGE";color:red!important;font-weight:700!important}.appointment-card .status-badge,.booking-card .status-badge,.attendance-card .status-badge{opacity:1!important;visibility:visible!important;display:inline-block!important}.status-pending{background-color:#fff3cd!important;color:#000!important;border-color:#ffecb5!important}.status-confirmed{background-color:#d4edda!important;color:#000!important;border-color:#badbcc!important}.status-rejected,.status-cancelled{background-color:#f8d7da!important;color:#000!important;border-color:#f1aeb5!important}.status-completed{background-color:#d1ecf1!important;color:#000!important;border-color:#b6effb!important}.status-overdue{background-color:#f8d7da!important;color:#000!important;border-color:#f1aeb5!important}.status-warning{background-color:#fff3cd!important;color:#000!important;border-color:#ffecb5!important}.status-unknown{background-color:#e9ecef;color:#212529;border-color:#c9ccce}.status-in-progress{background-color:#cce5ff;color:#003d82;border-color:#9ec5fe}.status-driver-confirmed{background-color:#e3f2fd;color:#0d47a1;border-color:#bbdefb}.status-therapist-confirmed{background-color:#f3e5f5;color:#4a148c;border-color:#ce93d8}.status-pickup-requested{background-color:#fff8e1;color:#e65100;border-color:#ffcc02}.status-journey-started{background-color:#e8f5e9;color:#1b5e20;border-color:#a5d6a7}.status-arrived{background-color:#e1f5fe;color:#01579b;border-color:#81d4fa}.status-dropped-off{background-color:#f1f8e9;color:#33691e;border-color:#aed581}.status-session-started{background-color:#fce4ec;color:#880e4f;border-color:#f48fb1}.status-payment-requested{background-color:#fff3e0;color:#bf360c;border-color:#ffb74d}.status-payment-completed{background-color:#e8f5e9;color:#2e7d32;border-color:#81c784}.status-timeout{background-color:#ffebee;color:#b71c1c;border-color:#ef9a9a;animation:pulse 2s infinite}.status-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;z-index:1;position:relative}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.appointment-details{margin-bottom:15px}.appointment-details p{margin:8px 0;color:#495057}.rejection-reason{background-color:#fff3cd;padding:10px;border-radius:5px;border-left:4px solid #ffc107;margin:10px 0}.appointment-actions{display:flex;gap:10px;justify-content:flex-end}.review-button{background-color:#17a2b8;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.review-button:hover{background-color:#138496}.appointment-card.payment-pending{border-left:4px solid #28a745;background-color:#f8fff9}.appointment-card.payment-pending .total-amount{font-weight:700;font-size:1.1rem;color:#28a745;padding:4px 8px;border-radius:4px}.detail-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0;padding:4px 0}.detail-row .label{font-weight:600;color:#495057;margin-right:10px}.detail-row .value{color:#212529;text-align:right;flex-grow:1}.notifications-list{display:grid;gap:15px}.notification-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:15px;border-left:4px solid #3498db}.notification-card h4{margin:0 0 10px;color:#2c3e50;font-size:1rem}.notification-card p{margin:5px 0;color:#495057}.notification-time{font-size:.8rem;color:#7f8c8d;font-style:italic}.no-appointments,.no-notifications{text-align:center;padding:40px;color:#7f8c8d;font-size:1.1rem;background-color:#f8f9fa;border-radius:8px}.timeout-controls{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-bottom:20px}.timeout-controls h3{margin:0 0 15px;color:#2c3e50}.auto-cancel-section{display:flex;justify-content:space-between;align-items:center;gap:20px}.auto-cancel-section p{margin:0;color:#495057;flex:1}.auto-cancel-button{background-color:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .3s;white-space:nowrap}.auto-cancel-button:hover:not(:disabled){background-color:#c82333}.auto-cancel-button:disabled{background-color:#6c757d;cursor:not-allowed}.overdue-section,.approaching-deadline-section{margin-bottom:30px}.overdue-section h4,.approaching-deadline-section h4{color:#2c3e50;margin-bottom:15px;font-size:1.2rem}.overdue-section h4{color:#dc3545}.approaching-deadline-section h4{color:#f0ad4e}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.review-modal{background:#fff;border-radius:8px;padding:30px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.review-modal h3{margin:0 0 20px;color:#2c3e50;font-size:1.5rem}.rejection-details{margin-bottom:20px;padding:15px;background-color:#f8f9fa;border-radius:5px;border-left:4px solid #e74c3c}.rejection-reason-text{font-style:italic;color:#495057;margin:10px 0 0}.review-notes{margin-bottom:20px}.review-notes label{display:block;margin-bottom:5px;font-weight:600;color:#2c3e50}.review-notes textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:inherit;resize:vertical;box-sizing:border-box}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.accept-button{background-color:#28a745;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .3s}.accept-button:hover{background-color:#218838}.deny-button{background-color:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .3s}.deny-button:hover{background-color:#c82333}.cancel-button{background-color:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .3s}.cancel-button:hover{background-color:#5a6268}.rejected-by-info{display:flex;align-items:center;gap:8px;margin:8px 0}.rejection-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;position:relative}.rejection-badge:before{content:"";width:6px;height:6px;border-radius:50%;margin-right:6px}.rejection-therapist{background-color:#e3f2fd;color:#1565c0;border:1px solid #bbdefb}.rejection-therapist:before{background-color:#1565c0}.rejection-driver{background-color:#f3e5f5;color:#7b1fa2;border:1px solid #ce93d8}.rejection-driver:before{background-color:#7b1fa2}.rejection-other{background-color:#f5f5f5;color:#616161;border:1px solid #e0e0e0}.rejection-other:before{background-color:#616161}.rejection-unknown{background-color:#ffebee;color:#c62828;border:1px solid #ffcdd2}.rejection-unknown:before{background-color:#c62828}.rejection-reason{background-color:#fff8e1;padding:12px;border-radius:6px;border-left:4px solid #ff9800;margin:10px 0;font-style:italic}.rejection-reason strong{color:#e65100}.acceptance-status{margin:12px 0;padding:10px;background-color:#f8f9fa;border-radius:6px;border-left:3px solid #007bff}.acceptance-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:.85rem;font-weight:600;margin-left:8px}.acceptance-complete{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.acceptance-pending{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.acceptance-none{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.pending-acceptances{margin-top:6px;font-style:italic;color:#6c757d}.pending-acceptances small{font-size:.8rem}.dual-acceptance-status{margin-top:15px;padding:15px;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #3498db}.dual-acceptance-status h4{margin:0 0 10px;color:#2c3e50;font-size:1rem}.acceptance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:15px}.acceptance-item{padding:10px;border-radius:6px;display:flex;flex-direction:column;gap:5px}.acceptance-item.accepted{background-color:#d4edda;border:1px solid #c3e6cb}.acceptance-item.pending{background-color:#fff3cd;border:1px solid #ffeaa7}.acceptance-item .role{font-weight:700;font-size:.9rem;color:#2c3e50}.acceptance-item .status{font-size:.9rem}.acceptance-item.accepted .status{color:#155724}.acceptance-item.pending .status{color:#856404}.acceptance-item small{color:#6c757d;font-size:.8rem}.overall-status{padding:10px;border-radius:6px;text-align:center;margin-bottom:15px}.overall-status.ready{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.overall-status.waiting{background-color:#fff3cd;border:1px solid #ffeaa7;color:#856404}.operator-actions{display:flex;flex-direction:column;gap:10px}.blocked-actions{display:flex;flex-direction:column;gap:5px}.confirm-button{background-color:#28a745;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.confirm-button:hover:not(:disabled){background-color:#218838}.confirm-button.disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.acceptance-indicator{margin-left:8px;font-weight:700}.acceptance-indicator.accepted{color:#28a745}.acceptance-indicator.pending{color:#ffc107}.pending-acceptance .appointment-card{border-left:4px solid #ffc107}.warning-status{background-color:#fff3cd;color:#856404;padding:8px 12px;border-radius:4px;border:1px solid #ffeaa7;text-align:center;font-size:.9rem}.waiting-text{color:#6c757d;font-style:italic;margin-top:5px;display:block}.therapists-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.therapist-item{display:inline-flex;align-items:center}.therapists-list,.therapist-list{margin-top:4px}.therapist-name{display:block;font-weight:500;color:#2c3e50;line-height:1.4;margin-bottom:4px}.therapist-specialization{color:#6c757d;font-style:italic;font-weight:400}.no-therapist{color:#6c757d;font-style:italic}.acceptance-indicator.partial{color:#f39c12}.acceptance-indicator.all-accepted{color:#27ae60}.acceptance-indicator.none-accepted{color:#e74c3c}.acceptance-indicator.no-therapist{color:#999}.stats-dashboard{margin:var(--spacing-mmd) 0;padding:0}.stats-card h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-md);font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:15px}.operator-stat-item{text-align:center;padding:var(--spacing-mmd);background:var(--primary-50);border-radius:var(--border-radius)}.operator-stat-number{display:block;font-size:var(--font-size-xxl);font-weight:700;margin-bottom:.25rem}.operator-stat-label{display:block;opacity:.6;font-size:.9rem}.dashboard-container{display:flex;gap:var(--spacing-md);align-items:flex-start}.operator-dashboard .tab-switcher{flex-direction:column;padding:var(--spacing-mm) var(--spacing-mxs);border-radius:var(--border-radius);background-color:var(--background-25);margin:0;height:auto;flex-shrink:0}.operator-dashboard .tab-btn{padding:var(--spacing-xs) var(--spacing-xm);padding-right:var(--spacing-sm);font-size:var(--font-size-base);border-radius:var(--border-radius);margin:0;text-align:left;background-color:transparent}.operator-dashboard .tab-btn.active,.operator-dashboard .view-selector button.active{background-color:var(--secondary-100);color:var(--text)}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.stat-item{padding:12px}.stat-number{font-size:1.5rem}}@media (max-width: 768px){.dashboard-header{flex-direction:column;gap:15px;align-items:flex-start}.view-selector{flex-wrap:wrap}.appointment-header{flex-direction:column;align-items:flex-start;gap:10px}.appointment-actions{justify-content:center}.modal-actions{flex-direction:column}.review-modal{margin:20px;width:calc(100% - 40px)}}.notifications-content{display:flex;flex-direction:column;height:100%;min-height:500px}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #e0e0e0;background:#fff;border-radius:8px 8px 0 0;margin-bottom:0}.notifications-header h3{margin:0;color:#2c3e50;font-size:1.4rem}.notification-summary{display:flex;gap:15px;align-items:center}.notification-count{color:#7f8c8d;font-size:.9rem}.unread-count{background:#e74c3c;color:#fff;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:700}.notification-panel-wrapper{flex:1;background:#fff;border-radius:0 0 8px 8px;overflow:hidden;border:1px solid #e0e0e0;border-top:none}.notification-panel-wrapper .notificationCenter{border:none!important;border-radius:0!important;box-shadow:none!important;height:100%;max-height:500px;overflow-y:auto}.notification-panel-wrapper .notificationHeader{display:none!important}.appointments-pagination{margin-top:24px;padding-top:20px;border-top:1px solid #e9ecef}.appointments-list .appointments-pagination .pagination-info{color:#495057;font-weight:600}.appointments-list .sort-indicator{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;font-size:14px;color:#495057}.appointments-list .sort-indicator i{color:#007bff}.appointments-list .appointment-card{margin-bottom:16px}.appointments-list .appointment-card:last-of-type{margin-bottom:0}@media (max-width: 768px){.appointments-pagination{margin-top:16px;padding-top:16px}.appointments-list .sort-indicator{font-size:13px;padding:10px 12px}}.appointments-list .pagination-performance-indicator{display:flex;align-items:center;justify-content:center;margin-top:12px;font-size:12px;color:#6c757d;gap:8px}.appointments-list .pagination-performance-indicator .loading-dot{width:6px;height:6px;background-color:#007bff;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:1}to{transform:scale(.8);opacity:.5}}.filter-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;gap:16px;flex-wrap:wrap}.filter-section{display:flex;align-items:center;gap:8px}.filter-section label{font-weight:600;color:#495057;font-size:14px}.filter-select{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;background-color:#fff;font-size:14px;min-width:200px;cursor:pointer}.filter-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.quick-filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.quick-filter-btn{padding:8px 12px;border:1px solid #dee2e6;background-color:#fff;color:#495057;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;display:flex;align-items:center;gap:4px}.quick-filter-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.quick-filter-btn.active{background-color:#007bff;color:#fff;border-color:#007bff}.quick-filter-btn.active:hover{background-color:#0056b3;border-color:#0056b3}.sort-indicator{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 16px;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;font-size:14px;color:#495057;flex-wrap:wrap}.sort-indicator i{color:#007bff;margin-right:8px}.filter-info{font-size:12px;color:#6c757d;font-style:italic}@media (max-width: 768px){.filter-controls{flex-direction:column;align-items:stretch;gap:12px}.filter-section{justify-content:space-between}.filter-select{min-width:auto;flex:1}.quick-filter-buttons{justify-content:center}.quick-filter-btn{flex:1;min-width:0;padding:10px 8px;font-size:12px}.sort-indicator{flex-direction:column;align-items:flex-start;gap:8px}.filter-info{align-self:stretch;text-align:center}}.appointments-list .empty-state{text-align:center;padding:40px 20px;color:#6c757d}.appointments-list .empty-state i{font-size:48px;margin-bottom:16px;color:#dee2e6}.appointments-list .empty-state p{margin:0;font-size:16px}.status-badge{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif!important}.status-badge:empty:before{content:"DEBUG: Empty badge!"!important;background:red!important;color:#fff!important;padding:2px!important}.operator-attendance-controls{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding:16px;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.operator-attendance-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.operator-status-label{font-weight:600;color:#495057;min-width:fit-content}.operator-times{display:flex;gap:16px;align-items:center}.check-time{font-size:14px;color:#6c757d;font-weight:500}.no-record{font-size:14px;color:#6c757d;font-style:italic}.operator-attendance-buttons{display:grid;gap:8px;flex-wrap:wrap}.check-in-btn{background-color:#28a745!important;color:#fff!important;border:none!important;padding:6px 12px!important;border-radius:4px!important;font-size:14px!important;cursor:pointer!important;transition:background-color .2s!important}.check-in-btn:hover:not(:disabled){background-color:#218838!important}.check-in-btn:disabled{background-color:#6c757d!important;cursor:not-allowed!important}.check-out-btn{background-color:#dc3545!important;color:#fff!important;border:none!important;padding:6px 12px!important;border-radius:4px!important;font-size:14px!important;cursor:pointer!important;transition:background-color .2s!important}.check-out-btn:hover:not(:disabled){background-color:#c82333!important}.check-out-btn:disabled{background-color:#6c757d!important;cursor:not-allowed!important}@media (max-width: 768px){.operator-attendance-controls{padding:12px}.operator-attendance-status{flex-direction:column;align-items:flex-start;gap:8px}.operator-times{gap:12px}.operator-attendance-buttons{width:100%}.check-in-btn,.check-out-btn{flex:1;min-width:120px}}.status-badge{display:inline-block;padding:6px 14px;border-radius:20px;border:2px solid transparent;min-height:26px;vertical-align:middle;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;line-height:1.2;white-space:nowrap;color:#000!important;text-shadow:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease,box-shadow .2s ease;contain:layout style paint;opacity:1;visibility:visible}.status-badge:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.status-badge *{color:inherit!important;font-size:inherit!important;font-weight:inherit!important}.status-badge:empty:before{content:"EMPTY BADGE";color:#dc3545!important;font-weight:700!important;background:#fff3cd;padding:2px 4px;border-radius:4px}.status-badge--pending{background-color:#fff3cd;color:#856404!important;border-color:#ffecb5}.status-badge--confirmed{background-color:#d4edda;color:#155724!important;border-color:#badbcc}.status-badge--rejected,.status-badge--cancelled{background-color:#f8d7da;color:#721c24!important;border-color:#f1aeb5}.status-badge--completed{background-color:#d1ecf1;color:#0c5460!important;border-color:#b6effb}.status-badge--overdue{background-color:#f8d7da;color:#721c24!important;border-color:#f1aeb5;animation:status-pulse 2s infinite}.status-badge--warning{background-color:#fff3cd;color:#856404!important;border-color:#ffecb5}.status-badge--unknown{background-color:#e9ecef;color:#212529!important;border-color:#c9ccce}.status-badge--in-progress{background-color:#cce5ff;color:#003d82!important;border-color:#9ec5fe}.status-badge--driver-confirmed{background-color:#e3f2fd;color:#0d47a1!important;border-color:#bbdefb}.status-badge--therapist-confirmed{background-color:#f3e5f5;color:#4a148c!important;border-color:#ce93d8}.status-badge--pickup-requested{background-color:#fff8e1;color:#e65100!important;border-color:#ffcc02}.status-badge--journey-started{background-color:#e8f5e9;color:#1b5e20!important;border-color:#a5d6a7}.status-badge--arrived{background-color:#e1f5fe;color:#01579b!important;border-color:#81d4fa}.status-badge--dropped-off{background-color:#f1f8e9;color:#33691e!important;border-color:#aed581}.status-badge--session-started{background-color:#fce4ec;color:#880e4f!important;border-color:#f48fb1}.status-badge--payment-requested{background-color:#fff3e0;color:#bf360c!important;border-color:#ffb74d}.status-badge--payment-completed{background-color:#e8f5e9;color:#2e7d32!important;border-color:#81c784}.status-badge--timeout{background-color:#ffebee;color:#b71c1c!important;border-color:#ef9a9a;animation:status-pulse 2s infinite}.status-badge--small{padding:4px 8px;font-size:12px;min-height:20px}.status-badge--large{padding:8px 16px;font-size:16px;min-height:32px}.status-badge--rounded{border-radius:4px}.status-badge--square{border-radius:0}.status-badge--pill{border-radius:50px}.status-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative;z-index:1}.status-badges--vertical{flex-direction:column;align-items:flex-start}.status-badges--center{justify-content:center}.status-badges--end{justify-content:flex-end}@keyframes status-pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}@keyframes status-glow{0%{box-shadow:0 2px 4px #0000001a}50%{box-shadow:0 4px 16px #3b82f64d}to{box-shadow:0 2px 4px #0000001a}}.status-badge--animated{animation:status-glow 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.status-badge{transition:none}.status-badge--overdue,.status-badge--timeout,.status-badge--animated{animation:none}}@media (prefers-contrast: high){.status-badge{border:2px solid currentColor;font-weight:900}}@media (max-width: 768px){.status-badge{font-size:12px;padding:4px 8px;min-height:20px}.status-badges{gap:4px}}@media (max-width: 480px){.status-badge{font-size:11px;padding:3px 6px;min-height:18px}}@media print{.status-badge{background:transparent!important;color:#000!important;border:1px solid #000!important;box-shadow:none}.status-badge:hover{transform:none}}.appointments-container{contain:content;will-change:scroll-position}.appointments-container.virtualized{overflow-y:auto;scroll-behavior:smooth;transform:translateZ(0);-webkit-overflow-scrolling:touch}.appointment-card{contain:layout style paint;will-change:transform}.performance-toggle{background:linear-gradient(45deg,#007bff,#0056b3);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease;margin-left:10px}.performance-toggle:hover{transform:translateY(-1px);box-shadow:0 4px 8px #007bff4d}.performance-toggle.active{background:linear-gradient(45deg,#28a745,#1e7e34)}.performance-controls{display:flex;align-items:center;gap:10px}.appointments-list{min-height:400px}.filter-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.filter-section{display:flex;align-items:center;gap:10px}.quick-filter-buttons{display:flex;gap:8px}.quick-filter-btn{padding:8px 12px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease}.quick-filter-btn:hover{background:#f8f9fa;border-color:#007bff}.quick-filter-btn.active{background:#007bff;color:#fff;border-color:#007bff}.sort-indicator{display:flex;align-items:center;gap:10px;margin-bottom:15px;padding:10px;background:#f8f9fa;border-radius:6px;border-left:4px solid #007bff}.filter-info{color:#6c757d;font-size:14px;margin-left:auto}.empty-state{text-align:center;padding:60px 20px;color:#6c757d}.empty-state i{font-size:48px;margin-bottom:16px;opacity:.5}.error-text{color:#dc3545;font-size:14px;margin-top:10px;padding:10px;background:#f8d7da;border-radius:4px}.appointments-container.virtualized .appointment-card{box-sizing:border-box;padding:15px;margin-bottom:0;border-bottom:1px solid #eee}@media (prefers-reduced-motion: no-preference){.appointments-container.virtualized{scroll-behavior:smooth}}@media (prefers-reduced-motion: reduce){.performance-toggle,.quick-filter-btn{transition:none}.performance-toggle:hover{transform:none}}@media (max-width: 768px){.filter-controls{flex-direction:column;align-items:stretch}.performance-controls{justify-content:center}.quick-filter-buttons{justify-content:center;flex-wrap:wrap}.sort-indicator{flex-direction:column;align-items:flex-start;gap:5px}.filter-info{margin-left:0}}.sort-indicator{display:flex;align-items:center;gap:8px;padding:12px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:8px;margin-bottom:16px;font-size:14px;color:#495057;box-shadow:0 2px 4px #0000000d}.sort-indicator i{color:#6c757d;font-size:16px}.status-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.urgency-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:1px solid;transition:all .2s ease}.urgency-critical{background-color:#dc3545;color:#fff;border-color:#dc3545}.urgency-high{background-color:#fd7e14;color:#fff;border-color:#fd7e14}.urgency-medium{background-color:#ffc107;color:#212529;border-color:#ffc107}.urgency-normal{background-color:#6c757d;color:#fff;border-color:#6c757d}.appointment-card.critical{border-left:4px solid #dc3545;box-shadow:0 4px 12px #dc354526}.appointment-card.high{border-left:4px solid #fd7e14;box-shadow:0 4px 12px #fd7e1426}.appointment-card.medium{border-left:4px solid #ffc107;box-shadow:0 4px 12px #ffc10726}.appointment-card.normal{border-left:4px solid #6c757d}.urgency-badge:hover{transform:scale(1.05);box-shadow:0 2px 4px #0003}@media (max-width: 768px){.status-badges{flex-direction:column;align-items:flex-start}.sort-indicator{flex-direction:column;align-items:flex-start;gap:4px;text-align:left}.urgency-badge{font-size:11px;padding:3px 6px}}.appointment-card.critical .appointment-header h3{color:#dc3545;font-weight:700}.appointment-card.high .appointment-header h3{color:#fd7e14;font-weight:600}.appointment-card.critical{position:relative;overflow:hidden}.appointment-card.critical:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#dc3545,#ff6b6b,#dc3545);animation:urgency-wave 3s ease-in-out infinite}@keyframes urgency-wave{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}.urgency-legend{display:flex;gap:12px;margin-bottom:16px;padding:8px;background:#f8f9fa;border-radius:6px;font-size:12px}.urgency-legend-item{display:flex;align-items:center;gap:4px}.post-service-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.post-service-modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.post-service-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0;background:#f8f9fa;border-radius:12px 12px 0 0}.post-service-modal-header h3{margin:0;color:#2c3e50;font-size:1.25rem;font-weight:600}.close-button{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-button:hover:not(:disabled){background:#f0f0f0;color:#333}.close-button:disabled{opacity:.5;cursor:not-allowed}.post-service-modal-content{padding:24px}.modal-description{color:#555;font-size:1rem;margin-bottom:24px;line-height:1.5;text-align:center;background:#e8f4fd;padding:16px;border-radius:8px;border-left:4px solid #3498db}.materials-check-list{display:flex;flex-direction:column;gap:16px}.material-check-item{border:1px solid #e0e0e0;border-radius:8px;padding:16px;background:#fafafa;transition:all .2s ease}.material-check-item:hover{border-color:#3498db;background:#f0f8ff}.material-info{margin-bottom:12px}.material-name{font-weight:600;color:#2c3e50;font-size:1.1rem;margin-bottom:4px}.material-details{color:#666;font-size:.9rem}.material-status-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.status-label{font-weight:500;color:#555;font-size:.95rem}.radio-group{display:flex;gap:16px}.radio-option{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.95rem;color:#555;transition:color .2s ease}.radio-option:hover{color:#333}.radio-option input[type=radio]{margin:0;transform:scale(1.1);accent-color:#3498db}.radio-option input[type=radio]:disabled{opacity:.5;cursor:not-allowed}.radio-option span{-webkit-user-select:none;user-select:none}.post-service-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e0e0e0;background:#f8f9fa;border-radius:0 0 12px 12px}.cancel-button,.submit-button{padding:10px 20px;border:none;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.cancel-button{background:#6c757d;color:#fff}.cancel-button:hover:not(:disabled){background:#5a6268}.submit-button{background:#28a745;color:#fff}.submit-button:hover:not(:disabled){background:#218838}.cancel-button:disabled,.submit-button:disabled{opacity:.6;cursor:not-allowed}.loading-spinner{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.spinner-inner{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.submit-button{display:flex;align-items:center;justify-content:center}@media (max-width: 768px){.post-service-modal-overlay{padding:10px}.post-service-modal{max-height:90vh}.material-status-controls{flex-direction:column;align-items:flex-start}.radio-group{justify-content:center;width:100%}}html{font-size:100%;color:var(--text);background:var(--background)}body{color:var(--text);background:var(--background)}body,input,button,textarea,select,label,a,p,div,span{font-family:Plus Jakarta Sans,sans-serif!important;font-weight:400}h1,h2,h3,h4,h5{font-family:Plus Jakarta Sans,sans-serif!important;font-weight:700}h1{font-size:var(--font-size-xxxl)}h2{font-size:var(--font-size-xxl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md)}small{font-size:var(--font-size-sm)}:root{--text: #0f0c05;--background: #ffffff;--primary: #4b3b06;--primary-hover: var(--primary-900);--primary-hovered: var(--primary-700);--secondary: #adbdae;--accent: #9ab096;--muted: var(--background-500);--muted-100: var(--background-400);--muted-200: var(--background-700);--muted-background: var(--background-100);--muted-background-hover: var(--background-200);--error: #ff312e;--error-hover: #cc0300;--success: #99c21e;--danger: #dc3545;--warning: #ffc107;--info: #17a2b8;--border-color: var(--background-200);--border-light: var(--background-100);--border-hover: var(--background-300);--border-radius: 8px;--focus-color: var(--background-600);--input-bg: var(--background-35);--text-50: #f9f5ec;--text-100: #f2ebd9;--text-200: #e6d6b3;--text-300: #d9c28c;--text-400: #ccad66;--text-500: #bf9940;--text-600: #997a33;--text-700: #735c26;--text-800: #4d3d19;--text-900: #261f0d;--text-950: #130f06;--background-25: #fafafa;--background-35: #f8f8f8;--background-40: #f6f6f6;--background-50: #f2f2f2;--background-100: #e6e6e6;--background-200: #cccccc;--background-300: #b3b3b3;--background-400: #999999;--background-500: #808080;--background-600: #666666;--background-700: #4d4d4d;--background-800: #333333;--background-900: #1a1a1a;--background-950: #0d0d0d;--primary-50: #fdf8e7;--primary-100: #fbf1d0;--primary-200: #f7e3a1;--primary-300: #f4d571;--primary-400: #f0c742;--primary-500: #ecb913;--primary-600: #bd940f;--primary-700: #8e6f0b;--primary-800: #5e4a08;--primary-900: #2f2504;--primary-950: #181302;--secondary-50: #f1f4f1;--secondary-100: #e3e8e3;--secondary-200: #c6d2c7;--secondary-300: #aabbab;--secondary-400: #8ea48f;--secondary-500: #718e73;--secondary-600: #5b715c;--secondary-700: #445545;--secondary-800: #2d392e;--secondary-900: #171c17;--secondary-950: #0b0e0c;--accent-50: #f1f4f0;--accent-100: #e3e9e2;--accent-200: #c7d3c5;--accent-300: #abbda8;--accent-400: #8fa78b;--accent-500: #73916e;--accent-600: #5c7458;--accent-700: #455742;--accent-800: #2e3a2c;--accent-900: #171d16;--accent-950: #0c0f0b;--success-bg: #e6f4ea;--success-text: #137333;--success-rgb: 25, 135, 84;--error-bg: #fce8e6;--error-text: #d93025;--error-rgb: 220, 53, 69;--warning-bg: #fff3cd;--warning-text: #856404;--warning-rgb: 255, 193, 7;--info-bg: #d1ecf1;--info-text: #0c5460;--info-rgb: 23, 162, 184;--danger-rgb: 220, 53, 69;--success-700: #198754;--warning-700: #b45309;--info-700: #0c5460;--danger-700: #842029;--font-size-xs: .7rem;--font-size-sm: .8rem;--font-size-base: 1rem;--font-size-md: 1.25rem;--font-size-lg: 1.563rem;--font-size-xl: 1.954rem;--font-size-xxl: 2.442rem;--font-size-xxxl: 3.053rem;--spacing-xxs: .25rem;--spacing-xs: .5rem;--spacing-xm: .75rem;--spacing-sm: 1rem;--spacing-mxs: 1.25rem;--spacing-mm: 1.5rem;--spacing-mmd: 1.75rem;--spacing-md: 2rem;--spacing-ms: 2.25rem;--spacing-ml: 2.5rem;--spacing-mxl: 2.75rem;--spacing-lg: 3rem;--spacing-xl: 4rem;--spacing-xxl: 5rem;--spacing-xxxl: 6rem;--container-max-width: 1000px}@media (max-width: 768px){:root{--font-size-xs: .7rem;--font-size-sm: .84rem;--font-size-base: 1rem;--font-size-md: 1.2rem;--font-size-lg: 1.44rem;--font-size-xl: 1.728rem;--font-size-xxl: 2.074rem;--font-size-xxxl: 2.488rem}}.DisabledAccountAlert-module__alertContainer___C6GCy{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.DisabledAccountAlert-module__alertCard___pJPjz{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px;width:100%;overflow:hidden;animation:DisabledAccountAlert-module__slideIn___bhaYf .3s ease-out}@keyframes DisabledAccountAlert-module__slideIn___bhaYf{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.DisabledAccountAlert-module__alertIcon___DfQ0M{background:linear-gradient(135deg,#fef3c7,#fbbf24);padding:1.5rem;display:flex;align-items:center;justify-content:center}.DisabledAccountAlert-module__warningIcon___47NpH{width:3rem;height:3rem;color:#d97706}.DisabledAccountAlert-module__alertContent___RgF3C{padding:2rem}.DisabledAccountAlert-module__alertTitle___uR0i6{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 1rem;text-align:center}.DisabledAccountAlert-module__alertMessage___MeuiG{margin-bottom:1.5rem}.DisabledAccountAlert-module__alertMessage___MeuiG p{color:#374151;line-height:1.6;margin:0;text-align:center}.DisabledAccountAlert-module__reasonsList___z1Q7j{background:#f9fafb;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.DisabledAccountAlert-module__reasonsTitle___hmFLS{font-weight:600;color:#374151;margin:0 0 .5rem;font-size:.9rem}.DisabledAccountAlert-module__reasonsList___z1Q7j ul{margin:0;padding-left:1.25rem;color:#6b7280}.DisabledAccountAlert-module__reasonsList___z1Q7j li{margin-bottom:.25rem;font-size:.9rem}.DisabledAccountAlert-module__contactInfo___qkjVG{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;padding:1rem;margin-bottom:2rem}.DisabledAccountAlert-module__contactInfo___qkjVG p{margin:0;color:#1e40af;text-align:center;font-size:.95rem}.DisabledAccountAlert-module__actionButtons___WCSSJ{display:flex;gap:.75rem;flex-direction:column}.DisabledAccountAlert-module__primaryButton___SyOhW,.DisabledAccountAlert-module__secondaryButton___oXNgl{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem;transition:all .2s ease;cursor:pointer;border:none;text-decoration:none}.DisabledAccountAlert-module__primaryButton___SyOhW{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.DisabledAccountAlert-module__primaryButton___SyOhW:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.DisabledAccountAlert-module__secondaryButton___oXNgl{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.DisabledAccountAlert-module__secondaryButton___oXNgl:hover{background:#e5e7eb;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.DisabledAccountAlert-module__buttonIcon___DjHRU{width:1.25rem;height:1.25rem}.DisabledAccountAlert-module__pollingStatus___Auhmv{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;padding:1rem;margin:1rem 0}.DisabledAccountAlert-module__pollingActive___xhNGb{color:#0369a1;font-weight:600;margin:0 0 .5rem}.DisabledAccountAlert-module__pollingComplete___dx4Fx{color:#059669;font-weight:600;margin:0}.DisabledAccountAlert-module__pollingProgress___I0obw{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#0369a1}.DisabledAccountAlert-module__loadingSpinner___aT1e9{width:16px;height:16px;border:2px solid #e5e7eb;border-top:2px solid #0ea5e9;border-radius:50%;animation:DisabledAccountAlert-module__spin___9Lyjo 1s linear infinite}@keyframes DisabledAccountAlert-module__spin___9Lyjo{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.DisabledAccountAlert-module__retryInfo___5AicZ{margin-top:.5rem;font-size:.875rem;color:#374151;font-style:italic}.DisabledAccountAlert-module__retryButton___j-QTo{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease;margin-right:.5rem}.DisabledAccountAlert-module__retryButton___j-QTo:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.DisabledAccountAlert-module__retryButton___j-QTo:disabled{opacity:.6;cursor:not-allowed;transform:none}.DisabledAccountAlert-module__stopButton___2LZwD{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease;margin-right:.5rem}.DisabledAccountAlert-module__stopButton___2LZwD:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}@media (min-width: 640px){.DisabledAccountAlert-module__actionButtons___WCSSJ{flex-direction:row}.DisabledAccountAlert-module__primaryButton___SyOhW,.DisabledAccountAlert-module__secondaryButton___oXNgl{flex:1}}@media (max-width: 480px){.DisabledAccountAlert-module__alertContainer___C6GCy{padding:.5rem}.DisabledAccountAlert-module__alertContent___RgF3C{padding:1.5rem}.DisabledAccountAlert-module__alertTitle___uR0i6{font-size:1.25rem}}.form-blueprint-container{width:100%;display:flex;flex-direction:column;align-items:flex-start;max-width:350px}.form-blueprint-logo{max-width:100%;display:flex;justify-content:flex-start;margin-bottom:var(--spacing-ml)}.form-blueprint-logo img{max-width:90px;height:auto;border-radius:12px}.form-blueprint-header{color:var(--text);font-size:var(--font-size-xxl);margin:0;margin-bottom:var(--spacing-ml)}.form-blueprint-form{width:100%;display:flex;flex-direction:column}.form-blueprint-links{text-align:center;font-size:var(--font-size-sm);color:var(--muted);margin:0 auto;width:100%;max-width:none;display:block;margin-top:var(--spacing-md)}.form-blueprint-link-anchor{color:var(--primary);text-decoration:none}.form-blueprint-link-anchor:hover{text-decoration:underline}@media (max-width: 768px){.form-blueprint-container{max-width:400px;border-radius:var(--border-radius);width:auto;max-width:min(400px,calc(100vw - 100px))}}.global-form-field-group{margin-bottom:var(--spacing-xm);display:flex;flex-direction:column;align-items:stretch}.global-form-field-label-row{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:2px}.global-form-field-label{font-size:var(--font-size-sm);color:var(--muted);font-weight:400}.global-form-field-input,.global-form-field-select{width:100%;font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--input-bg);color:var(--text);outline:none;transition:border-color .2s;padding:var(--spacing-xs) var(--spacing-xm)}.global-form-field-textarea{width:100%;min-height:5.5em;font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--input-bg);color:var(--text);outline:none;transition:border-color .2s;padding:var(--spacing-xs) var(--spacing-sm);resize:vertical;line-height:1.5;box-sizing:border-box;display:block;text-align:left}.global-form-field-textarea:focus{border-color:var(--border-color)!important;box-shadow:none!important;outline:none!important}.flex-row-fields{display:flex;gap:var(--spacing-md)}.flex-row-fields>*{flex:1;min-width:0}.global-form-field-error{color:var(--error);font-size:var(--font-size-sm);margin-top:var(--spacing-xxs);margin-left:0;font-weight:400}.global-form-field-relative-wrapper{position:relative;width:100%}.inputIconBtn{position:absolute;right:var(--spacing-xxs);top:50%;transform:translateY(-50%);background:none;border:none;padding:0;margin:0;cursor:pointer;color:var(--muted);display:flex;align-items:center;z-index:2;height:32px;width:32px}.passwordFieldWrapper .global-form-field-input[type=password],.passwordFieldWrapper .global-form-field-input[type=text]{padding-right:36px!important}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input:focus,textarea:focus,select:focus{border-color:var(--focus-color)!important}
