.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,sans-serif;min-height:100vh}.input-group{margin-bottom:1rem}.error-message,.success-message{margin:1rem 0}@media (max-width:768px){.button{width:100%}}.landing-page{background:#25377f;justify-content:center;min-height:100vh;padding:2rem;position:relative}.beheer-button,.landing-page{align-items:center;display:flex}.beheer-button{background:#fff;border:2px solid #e0e0e0;border-radius:10px;box-shadow:0 4px 12px #0000001a;cursor:pointer;gap:.5rem;padding:.75rem 1rem;position:absolute;right:2rem;top:2rem;transition:all .3s ease}.beheer-button:hover{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-color:#25377f;box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}.beheer-icon{font-size:1rem}.beheer-text{color:#25377f;font-size:.9rem;font-weight:600}.landing-container{background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000001a;max-width:600px;padding:3rem;text-align:center;width:100%}.bike-image-container{margin-bottom:3rem}.bike-icon{animation:bounce 2s infinite;font-size:4rem;margin-bottom:1rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.bike-image-container h1{color:#25377f;font-size:2.5rem;font-weight:700;margin-bottom:1rem}.bike-image-container p{color:#25377f;font-size:1.2rem;margin:0}.options-container{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.option-button{background:#fff;border:2px solid #e0e0e0;border-radius:15px;cursor:pointer;overflow:hidden;padding:2rem;position:relative;text-align:left;transition:all .3s ease}.option-button:hover{box-shadow:0 10px 25px #00000026;transform:translateY(-5px)}.option-button.new-reservation:hover{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#25377f}.option-button.edit-reservation:hover{background:linear-gradient(135deg,#f3e5f5,#e8eaf6);border-color:#25377f}.option-button.admin-panel:hover{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-color:#25377f}.button-icon{display:block;font-size:2rem;margin-bottom:1rem}.button-text{color:#25377f;display:block;font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.button-description{color:#25377f;display:block;font-size:1rem;line-height:1.4}.footer-info{color:#25377f;font-size:.9rem}.footer-info p{margin:0}@media (max-width:768px){.landing-container{margin:1rem;padding:2rem}.bike-image-container h1{font-size:2rem}.option-button{padding:1.5rem}.button-text{font-size:1.3rem}}.day-view{background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1rem}.day-view-header{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1rem}.day-view-header h4{color:#25377f;font-size:1rem;font-weight:600;margin:0}.day-view-date{color:#4a5568;font-size:.85rem}.day-view-status{color:#4a5568;font-size:.9rem;padding:1.5rem;text-align:center}.day-view-status-error{color:#c53030}.day-view-track{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;position:relative}.day-view-hours{bottom:12px;bottom:var(--day-view-inset,12px);top:12px;top:var(--day-view-inset,12px)}.day-view-hour,.day-view-hours{left:0;position:absolute;right:0}.day-view-hour{align-items:center;display:flex;gap:.5rem;pointer-events:none;transform:translateY(-50%)}.day-view-hour-label{font-feature-settings:"tnum";color:#718096;flex-shrink:0;font-size:.75rem;font-variant-numeric:tabular-nums;padding-left:.5rem;width:3.25rem}.day-view-hour-line{background:#e2e8f0;flex:1 1;height:1px}.day-view-blocks{bottom:12px;bottom:var(--day-view-inset,12px);left:3.75rem;position:absolute;right:.5rem;top:12px;top:var(--day-view-inset,12px)}.day-view-block{border-radius:6px;box-sizing:border-box;display:flex;flex-direction:column;gap:.1rem;justify-content:center;left:0;overflow:hidden;padding:.2rem .6rem;position:absolute;right:0}.day-view-block-title{font-size:.8rem;font-weight:600;line-height:1.2;white-space:nowrap}.day-view-block-time{font-feature-settings:"tnum";font-size:.75rem;font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap}.day-view-block-busy{background:#fdecea;border:1px solid #c0392b;border-left-width:4px;color:#922b21}.day-view-block-selection{background:#25377f1f;border:1px dashed #25377f;border-left:4px solid #25377f;color:#25377f;z-index:2}.day-view-empty{color:#2f855a;font-size:.85rem;margin:.75rem 0 0;text-align:center}.day-view-legend{border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem;padding-top:.75rem}.day-view-legend .legend-item{align-items:center;color:#4a5568;display:flex;font-size:.8rem;gap:.4rem}.legend-swatch{border:1px solid;border-radius:3px;flex-shrink:0;height:14px;width:14px}.legend-swatch-free{background:#fff;border-color:#cbd5e0}.legend-swatch-busy{background:#fdecea;border-color:#c0392b}.legend-swatch-selection{background:#25377f1f;border-color:#25377f}.day-view-privacy{color:#6b7280;font-size:.75rem;font-style:italic;margin:.75rem 0 0;text-align:center}@media (max-width:768px){.day-view{padding:.75rem}.day-view-hour-label{padding-left:.35rem;width:2.75rem}.day-view-blocks{left:3.1rem;right:.35rem}.day-view-legend{gap:.75rem}}.new-reservation-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:2rem}.new-reservation-container{background:#fff;border-radius:15px;box-shadow:0 10px 30px #0000001a;margin:0 auto;max-width:800px;overflow:hidden}.reference-code-block{background:#fff;border:1px solid #c6f6d5;border-radius:8px;display:flex;flex-direction:column;gap:.4rem;margin:1rem 0;padding:1rem;text-align:center}.reference-code-label{color:#4a5568;font-size:.9rem}.reference-code{color:#25377f;font-size:1.8rem;font-weight:700;letter-spacing:2px;word-break:break-all}.reference-code-hint{color:#4a5568;font-size:.9rem;font-weight:400;line-height:1.5}.reference-code-done{background:#25377f;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.75rem 1.5rem}.reference-code-done:hover{background:#1c2a63}.reservation-form{padding:2rem}.form-section{margin-bottom:2rem}.form-section h3{align-items:center;border-bottom:2px solid #e2e8f0;color:#25377f;display:flex;font-size:1.3rem;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.form-row{grid-gap:1.5rem;gap:1.5rem;margin-bottom:1.5rem}.input-group input:disabled,.input-group select:disabled{background-color:#f7fafc;color:#a0aec0;cursor:not-allowed;opacity:.7}.help-text{color:#6b7280;font-size:.8rem;font-style:italic;margin-top:.25rem}.privacy-notice{background-color:#f7fafc;border-left:3px solid #25377f;border-radius:4px;margin-top:1.5rem;padding:1rem}.privacy-notice small{color:#4a5568;font-size:.85rem;line-height:1.5}.privacy-notice a{color:#25377f;font-weight:600;text-decoration:underline;transition:color .3s ease}.privacy-notice a:hover{color:#1a2759}.form-actions{border-top:1px solid #e2e8f0;gap:1rem;margin-top:2rem;padding-top:2rem}.available-times{background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;margin:2rem;padding:1.5rem}.available-times h4{color:#2d3748;font-size:1.2rem;margin:0 0 1rem}.available-times p{color:#4a5568;font-size:.9rem;margin:0 0 1rem}.time-slots{display:flex;flex-wrap:wrap;gap:.5rem}.time-slot{border-radius:20px;font-size:.9rem;font-weight:500;padding:.5rem 1rem}.time-slot.available{background:#c6f6d5;border:1px solid #9ae6b4;color:#22543d}.time-slot.unavailable{background:#fed7d7;border:1px solid #feb2b2;color:#742a2a}.time-legend{border-top:1px solid #e2e8f0;display:flex;gap:1.5rem;justify-content:center;margin-top:1rem;padding-top:1rem}.legend-item{align-items:center;color:#4a5568;display:flex;font-size:.9rem;gap:.5rem}.legend-dot{border:1px solid;border-radius:50%;height:12px;width:12px}.legend-dot.available{background:#c6f6d5;border-color:#9ae6b4}.legend-dot.unavailable{background:#fed7d7;border-color:#feb2b2}.no-time-slots{background:#fef5e7;border:1px solid #f6e05e;margin:1rem 2rem;padding:2rem;text-align:center}.no-time-slots p{color:#d69e2e;font-weight:500}.no-time-slots ul{margin:1rem auto;max-width:400px}.no-time-slots li{color:#d69e2e;font-weight:400;margin:.5rem 0}.loading-time-slots{background:#e0f2fe;border:1px solid #90cdf4;margin:1rem 2rem;padding:2rem}.loading-time-slots p{color:#2a4365;font-weight:500;margin:0}.time-selection-layout.with-day-view{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.time-selection-layout.with-day-view>*{min-width:0}.time-selection-controls select{max-width:100%}.time-selection-layout.with-day-view .form-row{gap:1rem;grid-template-columns:1fr;margin-bottom:0}.time-selection-controls .loading-time-slots,.time-selection-controls .no-time-slots{margin:0}@media (max-width:768px){.new-reservation-page{padding:1rem}.header{padding:1.5rem}.header h1{font-size:2rem}.back-button{align-self:flex-start;margin-bottom:1rem;position:static;transform:none}.form-row{gap:1rem;grid-template-columns:1fr}.time-selection-layout.with-day-view{gap:1.25rem;grid-template-columns:1fr}.form-actions{flex-direction:column}.button{width:100%}}.edit-reservation-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:2rem}.edit-reservation-container{background:#fff;border-radius:15px;box-shadow:0 10px 30px #0000001a;margin:0 auto;max-width:900px;overflow:hidden}.header{background:#25377f;color:#fff;padding:2rem;position:relative;text-align:center}.back-button{background:#fff3;border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:.9rem;left:2rem;padding:.5rem 1rem;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease}.back-button:hover{background:#ffffff4d}.header h1{font-size:2.5rem;font-weight:700;margin:0 0 .5rem}.header p{font-size:1.1rem;margin:0;opacity:.9}.error-message,.success-message{border-radius:8px;font-weight:500;margin:1rem 2rem;padding:1rem}.error-message{background:#fee;border:1px solid #fed7d7;color:#c53030}.success-message{background:#f0fff4;border:1px solid #c6f6d5;color:#2f855a}.search-section{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:2rem}.search-form{margin:0 auto;max-width:600px}.search-input-group{display:flex;flex-direction:column}.search-input-group label{color:#25377f;font-size:1rem;font-weight:600;margin-bottom:.5rem}.search-input-row{align-items:flex-end;display:flex;gap:1rem}.search-input-row input{border:2px solid #e2e8f0;border-radius:8px;flex:1 1;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.search-input-row input:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1a;outline:none}.button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:.75rem 2rem;transition:all .3s ease}.button.primary{background:#25377f;color:#fff}.button.primary:hover:not(:disabled){background:#1a2759;box-shadow:0 5px 15px #25377f66;transform:translateY(-2px)}.button.secondary{background:#e2e8f0;color:#4a5568}.button.secondary:hover:not(:disabled){background:#cbd5e0}.button.warning{background:#ffc107;color:#212529;font-weight:500}.button.warning:hover:not(:disabled){background:#e0a800;box-shadow:0 5px 15px #ffc10766;transform:translateY(-2px)}.button.danger{background:#e53e3e;color:#fff}.button.danger:hover:not(:disabled){background:#c53030;box-shadow:0 5px 15px #e53e3e66;transform:translateY(-2px)}.button:disabled{cursor:not-allowed;opacity:.6;transform:none}.reservations-section{padding:2rem}.reservations-section h3{border-bottom:2px solid #e2e8f0;color:#25377f;font-size:1.5rem;margin:0 0 2rem;padding-bottom:.5rem}.reservations-list{display:flex;flex-direction:column;gap:1.5rem}.reservation-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;transition:all .3s ease}.reservation-card:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-2px)}.reservation-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.reservation-header h4{color:#25377f;font-size:1.2rem;margin:0}.status-badge{border-radius:20px;font-size:.8rem;font-weight:600;padding:.5rem 1rem;text-transform:uppercase}.status-pending{background:#fef5e7;border:1px solid #f6e05e;color:#d69e2e}.status-confirmed{background:#c6f6d5;border:1px solid #9ae6b4;color:#22543d}.status-completed{background:#bee3f8;border:1px solid #90cdf4;color:#2a4365}.status-cancelled,.status-no-show{background:#fed7d7;border:1px solid #feb2b2;color:#742a2a}.reservation-details{margin-bottom:1.5rem}.detail-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:.5rem 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#25377f;font-weight:600;min-width:120px}.detail-value{color:#25377f;flex:1 1;text-align:right}.cancellation-reason{background:#fed7d7;border-left:3px solid #e53e3e;border-radius:4px;color:#e53e3e;font-style:italic;padding:4px 8px}.reservation-actions{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding-top:1rem}.action-row{align-items:center;display:flex;gap:1rem}.action-row label{color:#4a5568;font-size:.9rem;font-weight:600}.action-row select{border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;padding:.5rem}.action-buttons{display:flex;gap:1rem}.edit-form{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-top:1.5rem;padding:1.5rem}.edit-form h5{color:#2d3748;font-size:1.1rem;margin:0 0 1rem}.edit-inputs{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.edit-inputs .input-group:last-child{grid-column:1/-1}.input-group{display:flex;flex-direction:column}.input-group label{color:#25377f;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.input-group input,.input-group select{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.input-group input:focus,.input-group select:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1a;outline:none}.input-group select:disabled{background-color:#f8fafc;cursor:not-allowed;opacity:.6}.loading-time-slots{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0c4a6e;grid-column:1/-1;padding:1rem;text-align:center}.no-time-slots{background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;grid-column:1/-1;padding:1rem}.no-time-slots p{margin:.5rem 0}.no-time-slots ul{margin:.5rem 0;padding-left:1.5rem;text-align:left}.edit-actions{display:flex;gap:1rem;justify-content:flex-end}.no-reservations{color:#4a5568;padding:3rem 2rem;text-align:center}.no-reservations p{font-size:1.1rem;margin:.5rem 0}@media (max-width:768px){.edit-reservation-page{padding:1rem}.header{padding:1.5rem}.header h1{font-size:2rem}.back-button{align-self:flex-start;margin-bottom:1rem;position:static;transform:none}.search-input-row{align-items:stretch;flex-direction:column}.reservation-header{gap:1rem}.detail-row,.reservation-header{align-items:flex-start;flex-direction:column}.detail-row{gap:.5rem}.detail-value{text-align:left}.reservation-actions{align-items:stretch;flex-direction:column;gap:1rem}.action-row{justify-content:space-between}.action-buttons{justify-content:stretch}.action-buttons .button{flex:1 1}.edit-inputs{grid-template-columns:1fr}.edit-actions{flex-direction:column}}.modal-content{box-shadow:0 20px 40px #0000004d}.modal-header{align-items:center}.modal-header h3{color:#374151}.modal-close{padding:4px;transition:all .2s}textarea{border:1px solid #d1d5db;border-radius:4px;font-family:inherit;font-size:.875rem;min-height:80px;padding:8px 12px;resize:vertical;transition:border-color .15s ease;width:100%}textarea:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1a;outline:none}.admin-panel{background:linear-gradient(135deg,#a8b2d1,#b8c5d1);min-height:100vh;padding:20px}.admin-container{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001a;margin:0 auto;max-width:1200px;overflow:hidden}.admin-header{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;justify-content:space-between;padding:30px}.admin-header,.header-left{align-items:center;display:flex}.header-left{gap:20px}.location-info h1{font-size:2.5rem;font-weight:600;margin:0}.selected-location{font-size:1.1rem;font-weight:400;margin:4px 0 0;opacity:.9}.user-info{align-items:center;display:flex;gap:20px}.user-info span{font-size:1.1rem}.logout-btn{background:#e74c3c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;padding:10px 20px;transition:background-color .3s}.logout-btn:hover{background:#c0392b}.location-selector-container .logout-btn{background:#0000;border:1px solid #324559;border-radius:6px;color:#324559;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;position:absolute;right:20px;top:20px;transition:all .2s ease;z-index:10}.location-selector-container .logout-btn:hover{background:#324559;box-shadow:0 2px 4px #3245594d;color:#fff;transform:translateY(-1px)}.admin-tabs{background:#f8f9fa;border-bottom:1px solid #dee2e6;display:flex}.tab-button{background:#0000;border:none;border-bottom:3px solid #0000;color:#6c757d;cursor:pointer;flex:1 1;font-size:1.1rem;font-weight:500;padding:20px;transition:all .3s}.tab-button:hover{background:#e9ecef;color:#495057}.tab-button.active{background:#fff;border-bottom-color:#324559;color:#324559}.tab-content{padding:30px}.tab-content h2{color:#324559;font-size:1.8rem;margin-bottom:25px;margin-top:0}.settings-tab{display:flex;flex-direction:column;gap:40px}.reservations-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:25px}.location-filter{align-items:center;display:flex;gap:10px}.location-filter label{color:#495057;font-weight:500;white-space:nowrap}.bikes-filters{flex-wrap:wrap;gap:20px;margin-bottom:30px}.bikes-filters,.filter-group{align-items:center;display:flex}.filter-group{gap:10px}.filter-group label{color:#495057;font-size:.9rem;font-weight:500;white-space:nowrap}.filter-select{background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:150px;padding:8px 12px}.filter-select:focus{border-color:#324559;box-shadow:0 0 0 2px #25388033;outline:none}.location-select{background:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:.9rem;min-width:200px;padding:8px 12px}.location-select:focus{border-color:#324559;box-shadow:0 0 0 2px #25388033;outline:none}.cancel-btn{background:#ffc107;border:none;border-radius:4px;color:#212529;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s}.cancel-btn:hover{background:#e0a800;transform:translateY(-1px)}.delete-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background-color .3s}.delete-btn:hover{background:#c82333}.bikes-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:25px}.bikes-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.bike-card{background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 1px 3px #0000001a;overflow:hidden;padding:0;transition:all .2s ease}.bike-card:hover{border-color:#9ca3af;box-shadow:0 4px 6px #0000001a}.bike-card-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;color:#374151;display:flex;justify-content:space-between;padding:16px 20px}.bike-asset-code{color:#324559;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:1.1rem;font-weight:600}.bike-status{border-radius:4px;font-size:.75rem;font-weight:500;letter-spacing:.025em;padding:4px 8px;text-transform:uppercase}.bike-status.available{background:#dcfce7;border:1px solid #bbf7d0;color:#166534}.bike-status.maintenance{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.bike-status.retired{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.bike-card-body{padding:16px 20px}.bike-info{display:flex;flex-direction:column;gap:8px}.info-item{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:6px 0}.info-item:last-child{border-bottom:none}.info-item.notes{align-items:flex-start;flex-direction:column;gap:4px;padding:8px 0}.info-label{color:#6b7280;font-size:.875rem;font-weight:500}.info-value{color:#324559;flex:1 1;font-size:.875rem;font-weight:400;margin-left:12px;text-align:right}.info-item.notes .info-value{color:#6b7280;font-size:.8rem;font-style:normal;line-height:1.4;margin-left:0;text-align:left}.bike-card-actions{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:8px;padding:16px 20px}.action-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;display:flex;flex:1 1;font-size:.8rem;font-weight:500;gap:6px;justify-content:center;min-width:80px;padding:6px 12px;transition:all .15s ease}.action-btn:hover{background:#f3f4f6;border-color:#9ca3af}.action-btn span{font-size:.875rem}.edit-btn{border-color:#324559;color:#324559}.edit-btn:hover{background:#324559;border-color:#324559}.action-btn.delete-btn{border-color:#fee2e2;color:#dc2626}.action-btn.delete-btn:hover{background:#fee2e2;border-color:#fecaca}.loading-state{align-items:center;color:#6c757d;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#324559;height:40px;margin-bottom:20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.empty-state{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:60px 20px}.empty-icon{font-size:2.5rem;margin-bottom:16px;opacity:.4}.modal-overlay{background:#00000080}.modal-content{box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;margin:0 auto;max-width:500px;overflow:hidden;width:90%}.modal-header{border-bottom:1px solid #e5e7eb;padding:20px}.modal-header h3{color:#111827;font-size:1.25rem;margin:0 0 4px}.modal-subtitle{color:#6b7280;font-size:.875rem;font-weight:400;margin:0}.modal-close{border-radius:4px;color:#6b7280;font-size:1.5rem}.modal-close:hover{background:#f3f4f6;color:#374151}.modal-body{padding:20px;text-align:left!important}.modal-body p{color:#374151;font-size:.95rem;line-height:1.6;margin:.5rem 0;text-align:left!important}.loading-message{align-items:center;background:#f0f7ff;border:1px solid #b3d9ff;border-radius:8px;display:flex;flex-direction:column;justify-content:center;margin-top:20px;padding:20px}.loading-message .loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#324559;height:30px;margin-bottom:12px;width:30px}.loading-message p{color:#2d3748;font-size:.95rem;font-weight:500;margin:0}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px}.form-group label{color:#374151;font-size:.875rem;margin-bottom:6px}.required{color:#dc3545;font-weight:700}.form-input,.form-select,.form-textarea{border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;padding:8px 12px;transition:border-color .15s ease}.form-input:focus,.form-select:focus,.form-textarea:focus{box-shadow:0 0 0 3px #2563eb1a}.form-input:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.btn{border-radius:4px;font-size:.875rem;padding:8px 16px;transition:all .15s ease}.btn-secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background:#e5e7eb;border-color:#9ca3af}.settings-tab p{color:#6c757d;margin-bottom:25px}.permission-banner{align-items:flex-start;background:#fff3cd;border:1px solid #ffe69c;border-radius:8px;color:#7a5c00;display:flex;font-size:.95rem;gap:16px;justify-content:space-between;line-height:1.5;margin-bottom:20px;padding:12px 16px;text-align:left}.permission-banner-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1.3rem;line-height:1;padding:0 4px}.setting-group{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;margin-bottom:20px;padding:15px}.setting-group label{align-items:center;color:#495057;cursor:pointer;display:flex;font-size:1.1rem;gap:10px}.setting-group input[type=checkbox]{accent-color:#324559;height:18px;width:18px}@media (max-width:768px){.admin-header{gap:20px}.admin-header,.header-left{flex-direction:column;text-align:center}.header-left{gap:15px}.location-info h1{font-size:2rem}.admin-tabs{flex-direction:column}.reservations-header{gap:15px}.location-filter,.reservations-header{align-items:stretch;flex-direction:column}.location-filter{gap:8px}.bikes-filters{gap:15px}.bikes-filters,.filter-group{align-items:stretch;flex-direction:column}.filter-group{gap:8px}.filter-select,.location-select{min-width:auto;width:100%}.bikes-header{align-items:stretch;flex-direction:column;gap:15px}.bikes-grid{gap:15px;grid-template-columns:1fr}.bike-card-actions{flex-direction:column}.action-btn{min-width:auto;width:100%}.tab-content{padding:20px}}.bike-edit-form{margin:0 auto;max-width:600px;padding:20px}.bike-edit-form .form-group{margin-bottom:20px;width:100%}.bike-edit-form label{color:#2c3e50;display:block;font-size:.9rem;font-weight:600;margin-bottom:8px}.bike-edit-form input,.bike-edit-form select,.bike-edit-form textarea{background-color:#fff;border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;padding:12px;transition:border-color .3s,box-shadow .3s;width:100%}.bike-edit-form input:focus,.bike-edit-form select:focus,.bike-edit-form textarea:focus{border-color:#324559;box-shadow:0 0 0 3px #2538801a;outline:none}.bike-edit-form input.error,.bike-edit-form select.error,.bike-edit-form textarea.error{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a}.bike-edit-form .readonly-field{background-color:#f8f9fa;border-color:#e9ecef;color:#6c757d;cursor:not-allowed}.bike-edit-form .readonly-note{color:#6c757d;display:block;font-size:.8rem;font-style:italic;margin-top:5px}.bike-edit-form .bike-info-section{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:8px;margin-bottom:25px;padding:20px}.bike-edit-form .bike-info-section .info-item{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:8px 0}.bike-edit-form .bike-info-section .info-item:last-child{border-bottom:none}.bike-edit-form .bike-info-section .info-label{color:#2c3e50;font-size:.95rem;font-weight:700;min-width:100px}.bike-edit-form .bike-info-section .info-value{color:#495057;flex:1 1;font-size:.95rem;font-weight:600;margin-left:15px;text-align:right}.bike-edit-form textarea{font-family:inherit;min-height:80px;resize:vertical}.bike-edit-form .error-message{color:#e74c3c;display:block;font-size:.85rem;font-weight:500;margin-top:5px}.bike-edit-form .submit-error{background-color:#fdf2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;margin-bottom:20px;padding:12px;text-align:center}.bike-edit-form .form-actions{border-top:1px solid #e1e8ed;display:flex;gap:15px;justify-content:flex-end;margin-top:30px;padding-top:20px}.bike-edit-form .btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;min-width:100px;padding:12px 24px;transition:all .3s}.bike-edit-form .btn:disabled{cursor:not-allowed;opacity:.6}.bike-edit-form .btn-primary{background:linear-gradient(135deg,#324559,#324559);color:#fff}.bike-edit-form .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#324559,#324559);box-shadow:0 4px 12px #324559;transform:translateY(-1px)}.bike-edit-form .btn-secondary{background:#95a5a6;color:#fff}.bike-edit-form .btn-secondary:hover:not(:disabled){background:#7f8c8d;box-shadow:0 4px 12px #95a5a64d;transform:translateY(-1px)}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}.modal-header{align-items:flex-start;border-bottom:1px solid #e1e8ed;display:flex;justify-content:space-between;margin-bottom:0;padding:20px 20px 0}.modal-header h3{color:#324559;font-size:1.5rem;font-weight:600;margin:0}.modal-subtitle{color:#7f8c8d;font-size:.9rem;margin:4px 0 0}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#95a5a6;cursor:pointer;display:flex;font-size:2rem;height:30px;justify-content:center;padding:0;transition:all .3s;width:30px}.modal-close:hover{background-color:#ecf0f1;color:#e74c3c}@media (max-width:768px){.bike-edit-form .form-actions{flex-direction:column}.bike-edit-form .btn{width:100%}.modal-content{margin:10px;max-height:calc(100vh - 20px);max-width:none;width:calc(100% - 20px)}.bike-edit-form .bike-info-section .info-item{align-items:flex-start;flex-direction:column;gap:5px}.bike-edit-form .bike-info-section .info-value{margin-left:0;text-align:left}}.add-btn{align-items:center;background:linear-gradient(135deg,#324559,#324559 100%);border:none;border-radius:8px;box-shadow:0 2px 4px #324559;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:8px;padding:12px 24px;transition:all .3s ease}.add-btn:hover{background:linear-gradient(135deg,#324559,#324559);box-shadow:0 4px 12px #324559;transform:translateY(-2px)}.add-bike-form,.add-location-form{background:#fff;border-radius:12px;height:100%;padding:0;width:100%}.form-header{align-items:center;background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:20px 30px}.form-header h3{font-size:1.5rem;font-weight:600;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:30px;justify-content:center;padding:0;transition:background-color .3s;width:30px}.close-btn:hover{background:#fff3}.bike-form,.location-form{box-sizing:border-box;flex:1 1;overflow-y:auto;padding:30px;width:100%}.form-group{margin-bottom:20px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}@media (max-width:600px){.form-row{gap:15px;grid-template-columns:1fr}}.form-group label{color:#324559;display:block;font-weight:500;margin-bottom:8px}.form-group label.required:after{color:#e74c3c;content:" *"}.form-input,.form-select,.form-textarea{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:12px 16px;transition:border-color .3s,box-shadow .3s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#324559;box-shadow:0 0 0 3px #2538801a;outline:none}.form-textarea{min-height:80px;resize:vertical}.form-help{color:#7f8c8d;display:block;font-size:.875rem;margin-top:4px}.form-actions{border-top:1px solid #e0e0e0;display:flex;gap:15px;justify-content:flex-end;margin-top:30px;padding-top:20px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;text-decoration:none;transition:all .3s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{border:none;border-radius:8px;box-shadow:0 2px 4px #25388033;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-primary,.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#324559,#324559)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #324559;transform:translateY(-1px)}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover:not(:disabled){background:#7f8c8d;box-shadow:0 4px 12px #95a5a64d;transform:translateY(-1px)}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-bottom:20px;padding:12px 16px}.location-form .form-input.error{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a}.location-form .field-error{color:#e74c3c;display:block;font-size:.85rem;font-weight:500;margin-top:5px}.locations-tab{padding:30px}.locations-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.locations-header h2{color:#2c3e50;font-size:1.8rem;margin:0}.delete-mode-warning,.header-actions{align-items:center;display:flex;gap:10px}.delete-mode-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404;font-size:.95rem;justify-content:center;margin-bottom:20px;padding:12px 16px}.delete-mode-warning .warning-icon{flex-shrink:0;font-size:1.2rem}.locations-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.location-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .3s ease}.location-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.location-card-header{background:linear-gradient(135deg,#324559,#324559);color:#fff;padding:20px}.location-name{font-size:1.2rem;font-weight:600;margin:0}.location-card-body{padding:20px}.location-card-actions{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:8px;padding:16px 20px}.location-info{display:flex;flex-direction:column;gap:12px}.location-info .info-item{align-items:center;display:flex;justify-content:space-between}.location-info .info-label{color:#7f8c8d;font-size:.9rem;font-weight:500}.location-info .info-value{color:#2c3e50;font-weight:500}.location-selector{align-items:center;background:linear-gradient(135deg,#a8b2d1,#b8c5d1);display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:40px 20px;position:relative}.location-selector:before{background:radial-gradient(circle at 20% 80%,#a8b2d133 0,#0000 50%),radial-gradient(circle at 80% 20%,#ffffff26 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.location-selector-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:24px;box-shadow:0 32px 64px #0000001f,0 0 0 1px #fff3;max-width:1400px;overflow:hidden;padding:60px;position:relative;width:100%;z-index:1}.location-selector-header{margin-bottom:60px;position:relative;text-align:center}.location-selector-header:after{background:linear-gradient(90deg,#324559,#324559);border-radius:2px;bottom:-20px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:80px}.location-selector-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#4a5568,#2d3748);-webkit-background-clip:text;background-clip:text;font-size:3.5rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:0 0 16px}.location-selector-header p{color:#718096;font-size:1.25rem;font-weight:400;line-height:1.6;margin:0 auto 30px;max-width:600px}.location-selector-header .header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.add-location-btn{align-items:center;background:linear-gradient(135deg,#324559,#324559);border:none;border-radius:12px;box-shadow:0 4px 16px #5a67d833;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1rem;font-weight:600;gap:12px;overflow:hidden;padding:16px 32px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.add-location-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.add-location-btn:hover:before{left:100%}.add-location-btn:hover{background:linear-gradient(135deg,#324559,#324559);box-shadow:0 12px 32px #324559;transform:translateY(-3px)}.location-selector .delete-mode-warning{margin:20px auto;max-width:800px;text-align:center}.location-selector .locations-grid{display:flex;flex-direction:column;gap:12px;margin-left:auto;margin-right:auto;margin-top:20px;max-width:1000px;width:100%}.location-selector .location-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;cursor:pointer;display:flex;margin-bottom:8px;min-height:80px;overflow:hidden;padding:0;position:relative;transition:all .2s ease}.location-selector .location-card:before{background:#324559;bottom:0;content:"";left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:3px}.location-selector .location-card:hover:before{opacity:1}.location-selector .location-card:hover{border-color:#324559;box-shadow:0 2px 8px #00000026}.location-selector .location-card-header{align-items:center;align-self:stretch;background:#324559;color:#fff;display:flex;flex-shrink:0;gap:12px;max-width:280px;min-width:220px;padding:20px 24px}.location-selector .location-icon{font-size:1.5rem;opacity:.9}.location-selector .location-name{font-size:1.1rem;font-weight:600;line-height:1.3;margin:0;word-break:break-word}.location-selector .location-card-body{align-items:center;background:#fff;display:flex;flex:1 1;justify-content:space-between;min-width:0;padding:20px 24px}.location-selector .location-info{align-items:center;display:flex;flex:1 1;flex-direction:row;gap:24px;min-width:0}.location-selector .info-item{align-items:flex-start;border:none;display:flex;flex-direction:column;flex-shrink:1;gap:4px;min-width:0;padding:0}.location-selector .info-item:hover{background:none;border-radius:0;margin:0;padding:0}.location-selector .info-item:last-child{border-bottom:none}.location-selector .info-label{color:#718096;font-size:.8rem;font-weight:500;letter-spacing:.05em;margin:0;text-transform:uppercase}.location-selector .info-value{color:#324559;font-size:.9rem;font-weight:600;margin:0;overflow-wrap:break-word;text-align:left;word-break:break-word}.location-selector .location-card-footer{align-items:center;background:#0000;display:flex;flex-shrink:0;justify-content:center;min-width:200px;padding:0 24px}.location-selector .location-card-footer .action-btn{align-items:center;background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;min-width:160px;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.location-selector .location-card-footer .action-btn:hover{background:#dc2626;box-shadow:0 4px 12px #ef44444d;transform:translateY(-1px)}.select-location-btn{align-items:center;background:#324559;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;min-width:160px;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.select-location-btn:hover{background:#324559;box-shadow:0 2px 4px #324559;transform:translateY(-1px)}.select-location-btn .arrow{font-size:.9rem;transition:transform .2s ease}.location-selector .location-card:hover .arrow{transform:translateX(2px)}.location-selector .empty-state{background:linear-gradient(135deg,#f8fafc,#fff);border:2px dashed #324559;border-radius:20px;color:#64748b;margin:40px 0;padding:80px 40px;text-align:center}.location-selector .empty-icon{color:#324559;font-size:5rem;margin-bottom:24px;opacity:.6}.location-selector .empty-state h3{color:#324559;font-size:2.2rem;font-weight:700;letter-spacing:-.02em;margin:0 0 16px}.location-selector .empty-state p{font-size:1.2rem;line-height:1.6;margin:0 auto;max-width:500px;opacity:.8}.location-selector .error-state{background:linear-gradient(135deg,#fef2f2,#fff);border:2px solid #ef444433;border-radius:20px;color:#64748b;margin:40px 0;padding:80px 40px;text-align:center}.location-selector .error-icon{color:#ef4444;font-size:5rem;margin-bottom:24px;opacity:.8}.location-selector .error-state h3{color:#324559;font-size:2.2rem;font-weight:700;letter-spacing:-.02em;margin:0 0 16px}.location-selector .error-state p{font-size:1.2rem;line-height:1.6;margin:0 auto 24px;max-width:500px;opacity:.8}.back-to-locations-btn{align-items:center;background:linear-gradient(135deg,#324559,#324559);border:1px solid #fff;border-radius:6px;box-shadow:0 2px 4px #324559;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:6px;margin-bottom:20px;padding:10px 20px;transition:all .2s ease}.back-to-locations-btn:hover{background:linear-gradient(135deg,#324559,#324559);box-shadow:0 2px 8px #324559;transform:translateY(-1px)}@media (max-width:768px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.bike-form,.location-form{padding:20px}.locations-grid{grid-template-columns:1fr}.locations-header{align-items:stretch;flex-direction:column;gap:15px}.header-actions{flex-direction:column;gap:10px}.header-actions .btn{width:100%}.bikes-header{align-items:stretch;flex-direction:column;gap:15px}.location-selector{padding:20px 10px}.location-selector-container{border-radius:16px;padding:40px 20px}.location-selector-header h1{font-size:2rem}.location-selector-header .header-actions{flex-direction:column;width:100%}.add-location-btn,.location-selector-header .header-actions .btn{justify-content:center;width:100%}.location-selector .locations-grid{gap:8px}.location-selector .location-card{flex-direction:column;min-height:auto}.location-selector .location-card-header{max-width:none;min-width:auto;padding:16px 20px;width:100%}.location-selector .location-card-body{align-items:flex-start;flex-direction:column;gap:12px;padding:16px 20px}.location-selector .location-info{flex-direction:column;gap:12px;width:100%}.location-selector .location-card-footer{justify-content:stretch;min-width:auto;padding:16px 20px;width:100%}.location-selector .location-card-footer .action-btn{justify-content:center;min-width:auto;width:100%}.select-location-btn{min-width:auto;width:100%}}.location-managers{text-align:left}.managers-intro h2{color:#2c3e50;font-size:1.4rem;margin:0 0 8px}.managers-intro p{color:#6c757d;line-height:1.6;margin:0 0 20px;max-width:70ch}.visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.managers-message{border-radius:8px;font-size:.95rem;line-height:1.5;margin-bottom:16px;padding:12px 16px}.managers-message-error{background:#fdecea;border:1px solid #f5c6c0;color:#96281b}.managers-message-success{background:#e8f5e9;border:1px solid #c3e6cb;color:#1b5e20}.manager-form{background:#f8f9fa;border:1px solid #dee2e6;border-radius:10px;margin-bottom:24px;padding:20px}.manager-form-fields{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px}.manager-form-group{display:flex;flex:1 1 220px;flex-direction:column;gap:6px}.manager-form-group label{color:#495057;font-size:.85rem;font-weight:600}.manager-form-group input{border:1px solid #ced4da;border-radius:8px;font-family:inherit;font-size:.95rem;padding:10px 12px}.manager-form-group input:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1f;outline:none}.manager-form .btn{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:11px 20px;white-space:nowrap}.manager-form .btn-primary{background:#25377f;color:#fff}.manager-form .btn-primary:hover:not(:disabled){background:#1c2a63}.manager-form .btn:disabled{cursor:not-allowed;opacity:.6}.manager-form-hint{color:#6c757d;font-size:.85rem;margin:14px 0 0}.managers-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px}.managers-search{flex:1 1 260px}.managers-search input{border:1px solid #ced4da;border-radius:8px;font-family:inherit;font-size:.95rem;padding:10px 14px;width:100%}.managers-search input:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1f;outline:none}.managers-count{color:#6c757d;font-size:.85rem;white-space:nowrap}.managers-empty,.managers-loading{background:#f8f9fa;border:1px dashed #dee2e6;border-radius:10px;color:#6c757d;padding:24px;text-align:center}.managers-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;max-height:480px;overflow-y:auto;padding:0 4px 0 0}.manager-row{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:12px 16px}.manager-row:hover{border-color:#ced4da}.manager-identity{display:flex;flex-direction:column;gap:2px;min-width:0}.manager-name{align-items:center;color:#212529;display:flex;flex-wrap:wrap;font-weight:600;gap:8px;word-break:break-word}.manager-email{color:#6c757d;font-size:.85rem;word-break:break-all}.manager-tag{background:#e7eaf6;border-radius:999px;color:#25377f;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.manager-tag.tag-super{background:#fff3cd;color:#7a5c00}.manager-tag.tag-pending{background:#f1f3f5;color:#6c757d}.manager-controls{align-items:center;display:flex;flex-shrink:0;gap:14px}.manager-toggle{align-items:center;cursor:pointer;display:flex;gap:10px;-webkit-user-select:none;user-select:none}.manager-toggle input{height:0;opacity:0;position:absolute;width:0}.manager-toggle-track{background:#ced4da;border-radius:999px;flex-shrink:0;height:24px;position:relative;transition:background .15s ease;width:42px}.manager-toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 3px #00000040;height:18px;left:3px;position:absolute;top:3px;transition:transform .15s ease;width:18px}.manager-toggle input:checked+.manager-toggle-track{background:#25377f}.manager-toggle input:checked+.manager-toggle-track .manager-toggle-thumb{transform:translateX(18px)}.manager-toggle input:focus-visible+.manager-toggle-track{box-shadow:0 0 0 3px #25377f40}.manager-toggle input:disabled+.manager-toggle-track{opacity:.5}.manager-toggle input:disabled~.manager-toggle-label{color:#adb5bd}.manager-toggle-label{color:#495057;font-size:.85rem;white-space:nowrap}.manager-remove{align-items:center;background:#fdf3f2;border:1px solid #f1d4d1;border-radius:8px;color:#c0392b;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:.95rem;height:32px;justify-content:center;line-height:1;transition:background .15s ease,border-color .15s ease;width:32px}.manager-remove:hover:not(:disabled){background:#f8d7da;border-color:#e4a9a3}.manager-remove:disabled{cursor:not-allowed;opacity:.5}.managers-confirm{max-width:460px;padding:28px;text-align:left}.managers-confirm h3{color:#2c3e50;margin:0 0 12px}.managers-confirm p{color:#495057;line-height:1.6;margin:0 0 10px}.managers-confirm-hint{color:#6c757d;font-size:.88rem}.managers-confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.managers-confirm-actions .btn{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:10px 18px}.managers-confirm-actions .btn-secondary{background:#e9ecef;color:#495057}.managers-confirm-actions .btn-danger{background:#c0392b;color:#fff}.managers-confirm-actions .btn-danger:hover{background:#a93226}@media (max-width:640px){.manager-row{align-items:stretch;flex-direction:column;gap:12px}.manager-controls{justify-content:space-between}.managers-toolbar{align-items:stretch;flex-direction:column}.managers-count{white-space:normal}}.my-email-preference{align-items:center;background:#eef1f9;border:1px solid #c9d2ea;border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px 16px}.my-email-preference-toggle{align-items:center;color:#25377f;cursor:pointer;display:flex;font-size:.95rem;gap:10px}.my-email-preference-toggle input{accent-color:#25377f;cursor:pointer;height:18px;width:18px}.my-email-preference-toggle input:disabled{cursor:wait}.my-email-preference-error{color:#a32b1c;font-size:.9rem}.superadmin-users{background:linear-gradient(135deg,#a8b2d1,#b8c5d1);min-height:100vh;padding:32px 24px;text-align:left}.superadmin-users>*{margin-left:auto;margin-right:auto;max-width:1100px}.superadmin-header{align-items:flex-start;background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000014;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px;padding:24px 28px}.superadmin-header h1{color:#25377f;font-size:1.6rem;margin:0 0 8px}.superadmin-header p{color:#6c757d;line-height:1.6;margin:0;max-width:70ch}.superadmin-users .btn{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:10px 18px;white-space:nowrap}.superadmin-users .btn:disabled{cursor:not-allowed;opacity:.6}.superadmin-users .btn-primary{background:#25377f;color:#fff}.superadmin-users .btn-primary:hover:not(:disabled){background:#1c2a63}.superadmin-users .btn-secondary{background:#e9ecef;color:#25377f}.superadmin-users .btn-secondary:hover:not(:disabled){background:#dee2e6}.superadmin-users .btn-quiet{background:#0000;border:1px solid #ced4da;color:#495057;font-size:.85rem;padding:8px 14px}.superadmin-users .btn-quiet:hover:not(:disabled){background:#f1f3f5}.superadmin-users .btn-danger{background:#c0392b;color:#fff}.superadmin-users .btn-danger:hover:not(:disabled){background:#a93226}.superadmin-message{border-radius:8px;font-size:.95rem;line-height:1.5;margin-bottom:16px;padding:12px 16px}.superadmin-message-error{background:#fdecea;border:1px solid #f5c6c0;color:#96281b}.superadmin-message-success{background:#e8f5e9;border:1px solid #c3e6cb;color:#1b5e20}.superadmin-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.superadmin-search{border:1px solid #ced4da;border-radius:8px;flex:1 1 280px;font-family:inherit;font-size:.95rem;padding:11px 14px}.superadmin-search:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1f;outline:none}.superadmin-form{background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000014;margin-bottom:20px;padding:24px}.superadmin-form-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.superadmin-form-group{display:flex;flex:1 1 240px;flex-direction:column;gap:6px}.superadmin-form-group label{color:#495057;font-size:.85rem;font-weight:600}.superadmin-form-group input{border:1px solid #ced4da;border-radius:8px;font-family:inherit;font-size:.95rem;padding:10px 12px}.superadmin-form-group input:focus{border-color:#25377f;box-shadow:0 0 0 3px #25377f1f;outline:none}.superadmin-locations-field{border:1px solid #dee2e6;border-radius:8px;margin:0 0 16px;padding:14px 16px}.superadmin-locations-field legend{color:#495057;font-size:.85rem;font-weight:600;padding:0 6px}.superadmin-location-grid,.superadmin-location-options{display:flex;flex-wrap:wrap;gap:10px 20px}.superadmin-location-option{align-items:center;color:#343a40;cursor:pointer;display:inline-flex;font-size:.9rem;gap:8px}.superadmin-location-option input{accent-color:#25377f;cursor:pointer;height:16px;width:16px}.superadmin-empty,.superadmin-loading{background:#fff;border-radius:12px;color:#495057;padding:28px;text-align:center}.superadmin-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.superadmin-card{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;padding:18px 20px}.superadmin-card.is-inactive{opacity:.7}.superadmin-card-top{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:14px}.superadmin-identity{display:flex;flex-direction:column;gap:2px;min-width:0}.superadmin-name{align-items:center;color:#212529;display:flex;flex-wrap:wrap;font-weight:600;gap:8px;word-break:break-word}.superadmin-email{color:#6c757d;font-size:.85rem;word-break:break-all}.superadmin-tag{background:#e7eaf6;border-radius:999px;color:#25377f;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.superadmin-tag.tag-super{background:#fff3cd;color:#7a5c00}.superadmin-tag.tag-pending{background:#f1f3f5;color:#6c757d}.superadmin-tag.tag-self{background:#e3f2ea;color:#1c6b45}.superadmin-tag.tag-off{background:#f8d7da;color:#96281b}.superadmin-claim{color:#1c6b45;font-size:.85rem}.superadmin-card-actions{align-items:center;display:flex;flex-shrink:0;gap:10px}.superadmin-remove{align-items:center;background:#fdf3f2;border:1px solid #f1d4d1;border-radius:8px;color:#c0392b;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:.95rem;height:32px;justify-content:center;line-height:1;width:32px}.superadmin-remove:hover:not(:disabled){background:#f8d7da;border-color:#e4a9a3}.superadmin-remove:disabled{cursor:not-allowed;opacity:.5}.superadmin-location-grid{border-top:1px solid #f1f3f5;padding-top:14px}.superadmin-no-locations{color:#6c757d;font-size:.9rem}.superadmin-note{background:#fff9e6;border-radius:6px;color:#7a5c00;font-size:.82rem;margin:12px 0 0;padding:8px 12px}.superadmin-confirm{max-width:460px;padding:28px;text-align:left}.superadmin-confirm h3{color:#2c3e50;margin:0 0 12px}.superadmin-confirm p{color:#495057;line-height:1.6;margin:0 0 10px}.superadmin-confirm-hint{color:#6c757d;font-size:.88rem}.superadmin-confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}@media (max-width:640px){.superadmin-users{padding:20px 14px}.superadmin-card-top{align-items:stretch;flex-direction:column}.superadmin-card-actions{justify-content:space-between}}.no-access{align-items:center;background:#25377f;display:flex;justify-content:center;min-height:100vh;padding:24px}.no-access-card{background:#fff;border-radius:16px;box-shadow:0 20px 50px #0003;max-width:560px;padding:40px;text-align:center;width:100%}.no-access-icon{font-size:3rem;margin-bottom:16px}.no-access-card h1{color:#25377f;font-size:1.6rem;margin:0 0 16px}.no-access-card p{color:#3f4a5a;line-height:1.6;margin:0 0 12px}.no-access-help{color:#6c757d;font-size:.95rem}.no-access-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:24px}.no-access-actions .btn{border:none;border-radius:8px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:12px 24px;text-decoration:none}.no-access-actions .btn-primary{background:#25377f;color:#fff}.no-access-actions .btn-primary:hover{background:#1c2a63}.no-access-actions .btn-secondary{background:#e9ecef;color:#25377f}.no-access-actions .btn-secondary:hover{background:#dee2e6}.choose-location{align-items:center;background:#25377f;display:flex;justify-content:center;min-height:100vh;padding:24px}.choose-location-card{background:#fff;border-radius:16px;box-shadow:0 20px 50px #0003;max-width:640px;padding:40px;width:100%}.choose-location-card h1{color:#25377f;font-size:1.6rem;margin:0 0 16px}.choose-location-intro{color:#3f4a5a;line-height:1.6;margin:0 0 20px}.choose-location-notice{align-items:flex-start;background:#eef1f9;border:1px solid #c9d2ea;border-radius:8px;color:#25377f;display:flex;gap:10px;line-height:1.5;margin-bottom:20px;padding:14px 16px}.choose-location-notice-icon{flex-shrink:0}.choose-location-error{background:#fdecea;border:1px solid #f5c2bd;border-radius:8px;color:#a32b1c;line-height:1.5;margin-bottom:20px;padding:14px 16px}.choose-location-empty{color:#3f4a5a;padding:24px 0;text-align:center}.choose-location-help{color:#6c757d;font-size:.95rem}.choose-location-list{grid-gap:10px;display:grid;gap:10px;margin-bottom:24px;max-height:340px;overflow-y:auto}.choose-location-option{align-items:flex-start;background:#fff;border:2px solid #dee2e6;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:4px;padding:14px 16px;text-align:left;transition:border-color .15s ease,background-color .15s ease;width:100%}.choose-location-option:hover:not(:disabled){background:#f6f8fd;border-color:#25377f}.choose-location-option.is-selected{background:#eef1f9;border-color:#25377f}.choose-location-option:disabled{cursor:default;opacity:.6}.choose-location-option-name{color:#25377f;font-size:1.05rem;font-weight:600}.choose-location-option-meta{color:#6c757d;font-size:.9rem}.choose-location-confirm{background:#f8f9fa;border-radius:10px;color:#3f4a5a;line-height:1.6;padding:20px}.choose-location-confirm p{margin:0 0 16px}.choose-location-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.choose-location-actions .btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px}.choose-location-actions .btn-primary{background:#25377f;color:#fff}.choose-location-actions .btn-primary:hover:not(:disabled){background:#1c2a63}.choose-location-actions .btn-primary:disabled{background:#a7aec8;cursor:not-allowed}.choose-location-actions .btn-secondary{background:#e9ecef;color:#25377f}.choose-location-actions .btn-secondary:hover:not(:disabled){background:#dee2e6}.choose-location-actions .btn-secondary:disabled{cursor:not-allowed;opacity:.6}.choose-location-spinner{animation:choose-location-spin 1s linear infinite;border:4px solid #dee2e6;border-radius:50%;border-top-color:#25377f;height:40px;margin:0 auto 16px;width:40px}@keyframes choose-location-spin{to{transform:rotate(1turn)}}@media (max-width:600px){.choose-location-card{padding:24px}.choose-location-actions{justify-content:stretch}.choose-location-actions .btn{flex:1 1}}.week-agenda{background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1rem}.week-agenda-toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.week-agenda-nav{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.week-agenda-nav-btn,.week-agenda-today-btn{background:#fff;border:1px solid #cbd5e0;border-radius:6px;color:#25377f;cursor:pointer;font-size:.85rem;padding:.45rem .75rem}.week-agenda-nav-btn:hover,.week-agenda-today-btn:hover:not(:disabled){background:#eef1f9;border-color:#25377f}.week-agenda-today-btn:disabled{color:#a0aec0;cursor:default}.week-agenda-range{display:flex;flex-direction:column;min-width:11rem;text-align:center}.week-agenda-range strong{color:#25377f;font-size:.95rem}.week-agenda-range span{color:#718096;font-size:.75rem}.week-agenda-filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.week-agenda-search{align-items:center;display:flex;gap:.5rem}.week-agenda-search label{color:#4a5568;font-size:.85rem}.week-agenda-search input{border:1px solid #cbd5e0;border-radius:6px;font-size:.85rem;min-width:15rem;padding:.45rem .6rem}.week-agenda-search input:focus{border-color:#25377f;outline:none}.week-agenda-checkbox{align-items:center;color:#4a5568;cursor:pointer;display:flex;font-size:.85rem;gap:.4rem}.week-agenda-status{color:#4a5568;font-size:.9rem;padding:1.5rem;text-align:center}.week-agenda-scroll{overflow-x:auto}.week-agenda-grid{background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:grid;grid-template-columns:3.75rem repeat(7,minmax(7rem,1fr));min-width:55rem}.week-agenda-corner,.week-agenda-day-head{border-bottom:1px solid #e2e8f0}.week-agenda-day-head{align-items:center;border-left:1px solid #e2e8f0;display:flex;flex-direction:column;gap:.1rem;padding:.5rem .25rem}.week-agenda-weekday{color:#25377f;font-size:.8rem;font-weight:600;text-transform:capitalize}.week-agenda-date{color:#718096;font-size:.75rem}.week-agenda-day-head.is-today{background:#eef1f9}.week-agenda-hours{position:relative}.week-agenda-hours-inner{bottom:12px;bottom:var(--week-agenda-inset,12px);left:0;position:absolute;right:0;top:12px;top:var(--week-agenda-inset,12px)}.week-agenda-hour-label{font-feature-settings:"tnum";color:#718096;font-size:.75rem;font-variant-numeric:tabular-nums;position:absolute;right:.5rem;transform:translateY(-50%)}.week-agenda-day{border-left:1px solid #e2e8f0;position:relative}.week-agenda-day.is-today{background:#fafbff}.week-agenda-blocks,.week-agenda-lines{bottom:12px;bottom:var(--week-agenda-inset,12px);left:0;position:absolute;right:0;top:12px;top:var(--week-agenda-inset,12px)}.week-agenda-hour-line{background:#edf0f5;height:1px;left:0;pointer-events:none;position:absolute;right:0}.week-agenda-block{background:#25377f24;background:var(--block-bg,#25377f24);border:1px solid #25377f;border-left:4px solid #25377f;border:1px solid var(--block-border,#25377f);border-left-width:4px;border-radius:6px;box-sizing:border-box;color:#25377f;color:var(--block-text,#25377f);cursor:pointer;display:flex;flex-direction:column;gap:.1rem;justify-content:center;overflow:hidden;padding:.2rem .4rem;position:absolute;text-align:left;transition:background .15s ease,opacity .15s ease}.week-agenda-block:focus-visible,.week-agenda-block:hover{filter:brightness(.96);outline:none}.week-agenda-block-code{font-size:.78rem;font-weight:600}.week-agenda-block-code,.week-agenda-block-meta{line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-agenda-block-meta{font-feature-settings:"tnum";font-size:.7rem;font-variant-numeric:tabular-nums}.week-agenda-block.is-cancelled{background:#f1f2f4;border-color:#a0aec0;color:#4a5568;filter:none}.week-agenda-block.is-cancelled .week-agenda-block-code{text-decoration:line-through}.week-agenda-block.is-dimmed{background:#f7f8fa;border-color:#d6dae3;color:#a0aec0;filter:none;opacity:.65}.week-agenda-empty{color:#2f855a;font-size:.85rem;margin:.75rem 0 0;text-align:center}.week-agenda-legend{border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem;padding-top:.75rem}.week-agenda-legend .legend-item{align-items:center;color:#4a5568;display:flex;font-size:.8rem;gap:.4rem}.week-agenda-legend .legend-swatch{background:#25377f24;background:var(--block-bg,#25377f24);border:1px solid #25377f;border:1px solid var(--block-border,#25377f);border-radius:3px;flex-shrink:0;height:14px;width:14px}.legend-swatch-cancelled{background:#f1f2f4;border-color:#a0aec0}@media (max-width:768px){.week-agenda{padding:.75rem}.week-agenda-toolbar{align-items:stretch}.week-agenda-search input{flex:1 1;min-width:0}.week-agenda-grid{grid-template-columns:3rem repeat(7,minmax(6rem,1fr));min-width:46rem}}.dev-role-switcher{bottom:16px;font-family:inherit;left:16px;max-width:calc(100vw - 32px);position:fixed;width:320px;z-index:9999}.dev-role-switcher-toggle{align-items:center;background:#1f2937;border:1px solid #3f3f46;border-radius:8px;box-shadow:0 4px 14px #00000040;color:#f9fafb;cursor:pointer;display:flex;font-size:.8rem;gap:8px;padding:8px 12px;width:100%}.dev-role-switcher-toggle:hover{background:#273449}.dev-role-switcher-badge{background:#f59e0b;border-radius:4px;color:#1f2937;flex:none;font-size:.65rem;font-weight:700;letter-spacing:.05em;padding:2px 6px}.dev-role-switcher-current{flex:1 1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.dev-role-switcher-caret{flex:none;opacity:.7}.dev-role-switcher-panel{background:#111827;border:1px solid #3f3f46;border-radius:8px;box-shadow:0 8px 24px #00000059;color:#e5e7eb;margin-top:8px;padding:12px}.dev-role-switcher-intro,.dev-role-switcher-note{color:#9ca3af;font-size:.75rem;line-height:1.4;margin:0 0 10px}.dev-role-switcher-note{margin:10px 0 0}.dev-role-switcher-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.dev-role-switcher-option{background:#1f2937;border:1px solid #374151;border-radius:6px;color:#f9fafb;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 10px;text-align:left;width:100%}.dev-role-switcher-option:hover:not(:disabled){background:#273449;border-color:#4b5563}.dev-role-switcher-option.is-active,.dev-role-switcher-option:disabled{background:#1c2534;border-color:#f59e0b;cursor:default}.dev-role-switcher-option-label{align-items:center;display:flex;font-size:.85rem;font-weight:600;gap:8px}.dev-role-switcher-tag{background:#f59e0b;border-radius:999px;color:#1f2937;font-size:.65rem;font-weight:700;padding:1px 6px}.dev-role-switcher-option-description{color:#cbd5f5;font-size:.75rem}.dev-role-switcher-option-email{color:#9ca3af;font-size:.7rem}@media print{.dev-role-switcher{display:none}}
/*# sourceMappingURL=main.7905d688.css.map*/