.calendar-container{display:flex;flex-direction:column;gap:2rem}.calendar-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.calendar-info h2{color:var(--text-primary);font-size:1.5rem;font-weight:600}.legend{display:flex;gap:1.5rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.legend-dot{font-size:1.25rem}.legend-dot.available{color:#28a745}.legend-dot.partial{color:#6c757d}.legend-dot.booked{color:#dc3545}.calendar{position:relative;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;box-shadow:0 4px 12px var(--shadow)}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000000d;display:flex;align-items:center;justify-content:center;border-radius:12px;font-weight:500;color:var(--text-secondary);z-index:10}.error-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;border-radius:12px;z-index:10}.error-message{text-align:center;padding:2rem;display:flex;flex-direction:column;align-items:center}.error-message h3{color:var(--text-primary);font-size:1.25rem;font-weight:600}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.calendar-header h2{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.nav-button{background:var(--arrow-blue);color:#fff;border:none;border-radius:8px;width:40px;height:40px;font-size:1.5rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.nav-button:hover{background:var(--arrow-blue-light);transform:scale(1.05)}.nav-button:active{transform:scale(.95)}.days-of-week{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}.day-name{text-align:center;font-weight:600;font-size:.875rem;color:var(--text-secondary);padding:.5rem}.calendar-body{display:flex;flex-direction:column;gap:.5rem}.calendar-row{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-primary);cursor:pointer;transition:all .2s ease;position:relative;min-height:70px}.calendar-cell:hover:not(.disabled){border-color:var(--arrow-blue);background:var(--bg-hover);transform:scale(1.05)}.calendar-cell.disabled{opacity:.3;cursor:not-allowed;background:var(--bg-secondary)}.calendar-cell.disabled:hover{transform:none;border-color:var(--border-color)}.calendar-cell.today{background:var(--calendar-today);border-color:#ffc107;font-weight:600}.calendar-cell.selected{background:var(--arrow-blue);color:#fff;border-color:var(--arrow-blue-dark)}.calendar-cell.available{border-color:#28a745;background:var(--calendar-available)}.calendar-cell.partial{border-color:#6c757d;background:#e9ecef}.calendar-cell.unavailable{background:var(--calendar-booked);border-color:#dc3545;cursor:not-allowed}.calendar-cell.unavailable:hover{transform:none;border-color:#dc3545}.date-number{font-size:1rem;font-weight:500}.status-label{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;margin-top:.25rem;text-align:center}.available-label{color:#28a745}.partial-label{color:#6c757d}.unavailable-label{color:#dc3545}.status-indicator{font-size:.5rem;position:absolute;bottom:4px}.available-indicator{color:#28a745}.partial-indicator{color:#6c757d}.unavailable-indicator{color:#dc3545}.mobile-tabs{display:none;position:sticky;top:0;z-index:100;background:var(--bg-primary);border-bottom:2px solid var(--border-color)}.mobile-tab{flex:1;padding:1rem;background:none;border:none;color:var(--text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;position:relative}.mobile-tab.active{color:var(--primary-color);background:var(--bg-secondary)}.mobile-tab .badge{position:absolute;top:.5rem;right:1rem;background:var(--danger-color);color:#fff;font-size:.75rem;padding:.125rem .5rem;border-radius:12px}.calendar-wrapper{display:flex;gap:1.5rem}.bookings-section{flex:0 0 350px;max-height:90vh;overflow-y:auto;border-right:1px solid var(--border-color);padding-right:1.5rem}.calendar-main{flex:1}.bookings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.bookings-header h3{font-size:1.25rem}.pending-badge{background:#dc2626;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600}.booking-filters{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.booking-filters button{padding:.5rem 1rem;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;font-size:.875rem;cursor:pointer}.booking-filters button.active{background:#2563eb;color:#fff;border-color:#2563eb}.bookings-list{display:flex;flex-direction:column;gap:1rem}.booking-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.booking-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.booking-card-header h4{font-size:1.05rem;margin-bottom:.25rem}.booking-date{font-size:.875rem;color:var(--text-secondary)}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-pending{background:#fef3c7;color:#92400e}.status-confirmed{background:#d1fae5;color:#065f46}.status-declined{background:#fee2e2;color:#991b1b}.booking-card-details p{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.booking-card-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.calendar-controls h1{font-size:1.75rem}.theme-toggle{background:var(--bg-secondary);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:1.25rem}.booking-modal-overlay,.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.booking-modal,.modal-content{background:var(--bg-primary);border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d}.modal-content.modal-wide{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3,.modal-content h2{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.close-button,.modal-close{background:transparent;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:.25rem;line-height:1;transition:color .2s ease;position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.close-button:hover,.modal-close:hover{color:var(--text-primary);background:#dc2626;color:#fff}.modal-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem}.modal-content{padding:2rem;position:relative}.booking-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-primary);font-size:.875rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--arrow-blue)}.form-group textarea{resize:vertical;font-family:inherit}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:.5rem;flex-wrap:wrap}.btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:500;font-size:1rem;cursor:pointer;transition:all .2s ease;border:none}.btn-primary{background:var(--arrow-blue);color:#fff}.btn-primary:hover{background:var(--arrow-blue-light);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-hover)}.btn-success{background:#059669;color:#fff}.btn-danger{background:#dc2626;color:#fff}.btn-link{background:none;border:none;color:#2563eb;text-decoration:underline;padding:.25rem .5rem;cursor:pointer;font-size:.875rem}.day-bookings,.day-blocks{margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:8px}.day-bookings h3,.day-blocks h3{font-size:1rem;margin-bottom:.75rem}.day-booking-item,.day-block-item{padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.day-block-item{flex-direction:column;align-items:flex-start}.block-time{font-size:.875rem;color:var(--text-secondary);margin-top:.25rem}.block-notes{font-size:.875rem;color:var(--text-secondary);font-style:italic;margin-top:.25rem}.day-manage-actions{display:flex;gap:.75rem;margin:1.5rem 0;flex-wrap:wrap}.day-form{margin-top:1.5rem;padding:1.5rem;background:var(--bg-secondary);border-radius:8px}.day-form h3{font-size:1.1rem;margin-bottom:1rem}.booking-indicator,.block-indicator{position:absolute;bottom:.25rem;font-size:.625rem;color:#2563eb}.booking-indicator{left:.25rem}.block-indicator{right:.25rem;color:#f59e0b}.calendar-legend{display:flex;gap:1.5rem;margin-top:1.5rem;justify-content:center;flex-wrap:wrap}.calendar-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.legend-dot{width:16px;height:16px;border-radius:4px;border:2px solid}.legend-dot.available{background:#10b9811a;border-color:#10b981}.legend-dot.booked{background:#ef44441a;border-color:#ef4444}.loading,.error-message{text-align:center;padding:2rem;font-size:1rem}.error-message{background:#fee2e2;color:#991b1b;border-radius:8px;margin-bottom:1rem}@media (max-width: 768px){.mobile-tabs{display:flex}.mobile-hidden{display:none!important}.calendar-wrapper{gap:0;padding:0}.bookings-section{flex:1 1 100%;max-height:none;border-right:none;padding:1rem}.calendar-main{flex:1 1 100%;padding:1rem}.calendar-info{flex-direction:column;align-items:flex-start}.calendar{padding:.75rem}.calendar-header h2{font-size:1.1rem}.nav-button{width:36px;height:36px}.calendar-cell{min-height:60px;padding:.25rem}.date-number{font-size:.875rem}.status-label{font-size:.5rem;margin-top:.125rem}.day-name{font-size:.7rem;padding:.25rem}.booking-modal,.modal-content{margin:1rem;padding:1.5rem;max-width:95%}.form-actions{flex-direction:column}.btn{width:100%}}@media (max-width: 480px){.calendar{padding:.5rem}.calendar-header h2{font-size:1rem}.nav-button{width:32px;height:32px;font-size:1.25rem}.calendar-cell{aspect-ratio:auto;min-height:48px;max-height:48px;padding:.15rem}.date-number{font-size:.8rem}.status-label{font-size:.5rem;letter-spacing:0;margin-top:.1rem}.day-name{font-size:.65rem}.calendar-row,.days-of-week{gap:.25rem}.booking-indicator,.block-indicator{font-size:.5rem;bottom:.125rem}.modal-content{padding:1rem;border-radius:8px}.modal-content h2{font-size:1.25rem}.form-group input,.form-group select,.form-group textarea{padding:.5rem;font-size:.95rem}.btn{padding:.5rem 1rem;font-size:.875rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--arrow-blue: #2F6783;--arrow-blue-light: #3d8cb0;--arrow-blue-dark: #1f4556;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-hover: #f1f3f5;--text-primary: #1a1a1a;--text-secondary: #666666;--text-muted: #999999;--border-color: #e1e4e8;--shadow: rgba(0, 0, 0, .1);--calendar-today: #fff3cd;--calendar-selected: var(--arrow-blue);--calendar-available: #d4edda;--calendar-booked: #f8d7da;--calendar-hover: var(--bg-hover)}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-hover: #3a3a3a;--text-primary: #ffffff;--text-secondary: #b3b3b3;--text-muted: #808080;--border-color: #404040;--shadow: rgba(0, 0, 0, .3);--calendar-today: #4a4021;--calendar-available: #1e4d2b;--calendar-booked: #4d1e23;--calendar-hover: var(--bg-hover)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;transition:background-color .3s ease,color .3s ease}#root{min-height:100vh}button{font-family:inherit}*{transition:background-color .2s ease,border-color .2s ease,color .2s ease}
