:root{--bg: #0a0a0f;--bg-secondary: #0f0f17;--surface: #151520;--surface-2: #1a1a28;--surface-elevated: #1f1f30;--surface-hover: #252538;--text: #f5f5f7;--text-muted: #a0a0b0;--text-disabled: #606070;--text-inverse: #0a0a0f;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .12);--border-focus: var(--brand-500);--brand-400: #a78bfa;--brand-500: #8b5cf6;--brand-600: #7c3aed;--brand-700: #6d28d9;--brand-800: #5b21b6;--primary: var(--brand-500);--primary-hover: var(--brand-600);--primary-alpha: rgba(139, 92, 246, .1);--primary-contrast: #ffffff;--gradient-brand: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 100%);--gradient-brand-hover: linear-gradient(135deg, #7c3aed 0%, #8b5cf6 100%);--gradient-surface: linear-gradient(135deg, #151520 0%, #1a1a28 100%);--accent-pink: #ec4899;--accent-pink-light: #f472b6;--danger: #ef4444;--danger-hover: #dc2626;--danger-light: rgba(239, 68, 68, .1);--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .1);--success: #10b981;--success-light: rgba(16, 185, 129, .1);--info: #3b82f6;--info-light: rgba(59, 130, 246, .1);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6);--shadow-brand: 0 8px 32px rgba(139, 92, 246, .3);--shadow-brand-lg: 0 12px 48px rgba(139, 92, 246, .4);--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-base-mobile: 1.0625rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--z-dropdown: 1030;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}[data-theme=light]{--bg: #ffffff;--bg-secondary: #f8f9fa;--surface: #ffffff;--surface-2: #f8f9fa;--surface-elevated: #ffffff;--surface-hover: #f1f3f5;--text: #1a1a1a;--text-muted: #6b7280;--text-disabled: #9ca3af;--text-inverse: #ffffff;--border: rgba(0, 0, 0, .1);--border-hover: rgba(0, 0, 0, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--shadow-brand: 0 8px 32px rgba(139, 92, 246, .2);--shadow-brand-lg: 0 12px 48px rgba(139, 92, 246, .25)}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%;font-size:16px}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;padding:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;color:var(--text);background-color:var(--bg);transition:background-color var(--transition-base),color var(--transition-base);overflow-x:hidden;overflow-y:auto;width:100%;max-width:100vw}body.is-scroll-locked{overflow:hidden!important}@media(max-width:768px){body{font-size:var(--text-base-mobile)}}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;line-height:var(--leading-tight);font-weight:var(--font-weight-semibold);color:var(--text)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.app-bg{position:fixed;inset:0;z-index:-1;background:var(--bg);overflow:hidden}.app-bg:before,.app-bg:after{content:"";position:absolute;border-radius:50%;filter:blur(100px);opacity:.12;pointer-events:none}.app-bg:before{width:800px;height:800px;top:-300px;right:-300px;background:radial-gradient(circle,var(--brand-500) 0%,transparent 75%);animation:float 30s ease-in-out infinite}.app-bg:after{width:700px;height:700px;bottom:-250px;left:-250px;background:radial-gradient(circle,var(--accent-pink) 0%,transparent 75%);animation:float 35s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,-20px) scale(1.05)}}body{position:relative}.app-container,.admin-layout{position:relative;z-index:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:1.5;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:var(--radius-xl);transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity var(--transition-base);pointer-events:none}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--gradient-brand);color:var(--primary-contrast);border-color:transparent;box-shadow:var(--shadow-brand);position:relative}.btn-primary>*{position:relative;z-index:1}.btn-primary:hover:not(:disabled){background:var(--gradient-brand-hover);box-shadow:var(--shadow-brand-lg);transform:translateY(-1px);color:var(--primary-contrast)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-brand);background:var(--gradient-brand);color:var(--primary-contrast)}.btn-primary:focus-visible{outline:2px solid var(--primary-contrast);outline-offset:2px}.btn-secondary{background:var(--surface-2);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:var(--text);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface);border-color:var(--border)}.btn-ghost:active:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:var(--text-inverse);border-color:transparent;box-shadow:0 4px 16px #ef44444d}.btn-danger:hover:not(:disabled){background:var(--danger-hover);box-shadow:0 6px 24px #ef444466;transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 16px #ef44444d}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);border-radius:var(--radius-lg)}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--text-base);border-radius:var(--radius-2xl)}.btn-block{display:flex;width:100%}.btn-loading{position:relative;color:transparent;pointer-events:none}.btn-loading:after{content:"";position:absolute;top:50%;left:50%;width:1em;height:1em;margin-top:-.5em;margin-left:-.5em;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.card{display:block;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md);overflow:hidden;transition:box-shadow var(--transition-base),border-color var(--transition-base);width:100%;max-width:100%}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-hover)}.card-header{padding:var(--space-xl);border-bottom:1px solid var(--border);background:var(--surface)}.card-header:empty{display:none}.card-body{padding:var(--space-xl)}.card-footer{padding:var(--space-xl);border-top:1px solid var(--border);background:var(--surface)}.card-footer:empty{display:none}.card-body:first-child{padding-top:var(--space-xl)}.card-body:last-child{padding-bottom:var(--space-xl)}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;margin-bottom:var(--space-sm);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text);letter-spacing:-.01em}.form-label-required:after{content:" *";color:var(--danger)}.form-input,.form-textarea,.form-select{display:block;width:100%;padding:var(--space-md) var(--space-lg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-xl);transition:all var(--transition-base);-webkit-appearance:none;appearance:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-disabled);opacity:1}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;background:var(--surface-elevated);border-color:var(--border-focus);box-shadow:0 0 0 3px #8b5cf61a,var(--shadow-sm)}.form-input:disabled,.form-textarea:disabled,.form-select:disabled{opacity:.5;cursor:not-allowed;background:var(--surface)}.form-textarea{min-height:120px;resize:vertical}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23a0a0b0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--space-lg) center;background-repeat:no-repeat;background-size:1.25em 1.25em;padding-right:3rem}.form-help{display:block;margin-top:var(--space-xs);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-relaxed)}.form-error{display:block;margin-top:var(--space-xs);font-size:var(--text-sm);color:var(--danger);font-weight:var(--font-weight-medium)}.form-input-error,.form-textarea-error,.form-select-error{border-color:var(--danger);background:#ef44440d}.form-input-error:focus,.form-textarea-error:focus,.form-select-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44441a,var(--shadow-sm)}.form-check{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md)}.form-check-input{flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.125rem;cursor:pointer;accent-color:var(--brand-500)}.form-check-label{font-size:var(--text-sm);color:var(--text);cursor:pointer;line-height:var(--leading-relaxed)}.form-tabs{width:100%;max-width:100%;display:flex;flex-direction:column}.form-tabs-nav{display:flex;gap:var(--space-xs);border-bottom:1px solid var(--border);margin-bottom:var(--space-lg);overflow-x:visible;-webkit-overflow-scrolling:touch}@media(max-width:767px){.form-tabs-nav{overflow-x:auto}}.form-tabs-nav-item{padding:var(--space-md) var(--space-lg);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;position:relative;margin-bottom:-1px}.form-tabs-nav-item:hover:not(.is-active){color:var(--text);background:var(--surface)}.form-tabs-nav-item.is-active{color:var(--brand-400);border-bottom-color:var(--brand-400);font-weight:var(--font-weight-semibold)}.form-tabs-content{width:100%;max-width:100%;flex:1}.form-tabs-pane{display:none}.form-tabs-pane.is-active{display:block}.modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-md);opacity:0;transition:opacity var(--transition-base);pointer-events:none;overflow-y:auto}.modal[hidden]{display:none!important;pointer-events:none!important}.modal.active{opacity:1;pointer-events:auto}.modal-backdrop{position:fixed;inset:0;z-index:calc(var(--z-modal-backdrop) - 1);background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity var(--transition-base);pointer-events:none}.modal.active .modal-backdrop{opacity:1;pointer-events:auto}.modal-dialog{position:relative;z-index:var(--z-modal);width:100%;max-width:32rem;margin:auto;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl),var(--shadow-brand-lg);transform:scale(.95) translateY(10px);transition:transform var(--transition-base),opacity var(--transition-base);opacity:0;pointer-events:auto}.modal.active .modal-dialog{transform:scale(1) translateY(0);opacity:1}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl);border-bottom:1px solid var(--border)}.modal-title{margin:0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--text);letter-spacing:-.02em}.modal-close{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;margin:0;background:transparent;border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-muted);font-size:var(--text-xl);line-height:1;cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent}.modal-close:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text);transform:scale(1.05)}.modal-close:active{transform:scale(.95)}.modal-close:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.modal-body{padding:var(--space-xl);color:var(--text-muted);line-height:var(--leading-relaxed)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-xl);border-top:1px solid var(--border);background:var(--surface);border-radius:0 0 var(--radius-2xl) var(--radius-2xl)}.modal-footer:empty{display:none}@media(max-width:640px){.modal{padding:0;align-items:flex-end}.modal-dialog{max-width:100%;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;margin-bottom:0;transform:translateY(100%)}.modal.active .modal-dialog{transform:translateY(0)}.modal-header,.modal-body,.modal-footer{padding:var(--space-lg)}}.table-wrapper{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;border-radius:var(--radius-xl);border:1px solid var(--border);width:100%;max-width:100%}@media(max-width:768px){.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:100%}}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:var(--surface-elevated)}.table th,.table td{padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--border)}.table th{font-weight:var(--font-weight-semibold);color:var(--text);background:var(--surface);white-space:nowrap;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.table td{color:var(--text-muted)}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:hover{background:var(--surface-hover)}.table tbody tr:last-child td{border-bottom:none}@media(max-width:640px){.table-responsive{display:block}.table-responsive thead{display:none}.table-responsive tbody,.table-responsive tr,.table-responsive td{display:block;width:100%}.table-responsive tr{margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-xl)}.table-responsive td{padding:var(--space-sm) 0;border-bottom:1px solid var(--border);text-align:right}.table-responsive td:last-child{border-bottom:none}.table-responsive td:before{content:attr(data-label) ": ";float:left;font-weight:var(--font-weight-semibold);color:var(--text);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.05em}}.alert{position:relative;padding:var(--space-lg);margin-bottom:var(--space-lg);border:1px solid;border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-base)}.alert-success{background:var(--success-light);border-color:var(--success);color:var(--success)}.alert-danger{background:var(--danger-light);border-color:var(--danger);color:var(--danger)}.alert-warning{background:var(--warning-light);border-color:var(--warning);color:var(--warning)}.alert-info{background:#8b5cf61a;border-color:var(--brand-500);color:var(--brand-400)}.alert-dismissible{padding-right:3rem}.alert-close{position:absolute;top:0;right:0;padding:var(--space-lg);background:none;border:none;color:inherit;font-size:var(--text-xl);line-height:1;cursor:pointer;opacity:.7;transition:opacity var(--transition-base),transform var(--transition-base);-webkit-tap-highlight-color:transparent}.alert-close:hover{opacity:1;transform:scale(1.1)}.alert-close:active{transform:scale(.95)}.alert-close:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:var(--radius-sm)}.empty-state{padding:var(--space-4xl) var(--space-lg);text-align:center}.empty-state-icon{margin-bottom:var(--space-xl);font-size:var(--text-5xl);color:var(--text-muted);opacity:.6}.empty-state-title{margin:0 0 var(--space-md);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--text);letter-spacing:-.02em}.empty-state-description{margin:0 0 var(--space-xl);font-size:var(--text-base);color:var(--text-muted);line-height:var(--leading-relaxed);max-width:32rem;margin-left:auto;margin-right:auto}.empty-state-actions{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);flex-wrap:wrap}.auth-container{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.auth-card{width:100%;max-width:28rem}.auth-header{text-align:center;margin-bottom:var(--space-2xl)}.auth-logo{display:flex;justify-content:center;margin-bottom:var(--space-lg)}.auth-title{margin:0 0 var(--space-sm);font-size:var(--text-3xl);font-weight:var(--font-weight-bold);color:var(--text);letter-spacing:-.02em}.auth-subtitle{margin:0;font-size:var(--text-base);color:var(--text-muted);line-height:var(--leading-relaxed)}@media(max-width:768px){.auth-subtitle{font-size:var(--text-base-mobile)}.auth-title{font-size:var(--text-2xl)}}.auth-options{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);flex-wrap:wrap;gap:var(--space-sm)}.auth-link{font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;transition:color var(--transition-base)}.auth-link:hover{color:var(--brand-400)}.auth-link-primary{color:var(--brand-500);font-weight:var(--font-weight-medium)}.auth-link-primary:hover{color:var(--brand-400)}.auth-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--text-sm);color:var(--text-muted)}.auth-footer .auth-link{margin-left:var(--space-xs)}.btn-block{width:100%}.player-selector,.player-selector-input-wrapper{position:relative;width:100%}.player-selector-search{width:100%;padding:var(--space-sm) var(--space-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition-base);box-sizing:border-box}.player-selector-search::placeholder{color:var(--text-muted)}.player-selector-search:focus{outline:none;background:var(--surface-elevated);border-color:var(--border-focus);box-shadow:0 0 0 3px #8b5cf61a}.player-selector-search:disabled{opacity:.6;cursor:not-allowed;background:var(--surface)}.player-selector-options{position:absolute;top:100%;left:0;right:0;margin-top:var(--space-xs);max-height:300px;overflow-y:auto;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:1000;display:none}.player-selector.open .player-selector-options{display:block}.player-selector-option{padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background-color var(--transition-base);border-bottom:1px solid var(--border)}.player-selector-option:last-child{border-bottom:none}.player-selector-option:hover{background:var(--surface-hover)}.player-selector-option-name{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text);margin-bottom:var(--space-xs)}.player-selector-option-email{font-size:var(--text-xs);color:var(--text-muted)}.player-selector-loading,.player-selector-empty,.player-selector-error{padding:var(--space-md);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.player-selector-error{color:var(--danger)}.player-selector-selected{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md);min-height:2.5rem}.player-selector-tag{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text)}.player-selector-tag-label{font-weight:var(--font-weight-medium)}.player-selector-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.player-selector-tag-remove:hover{background:var(--surface-hover);color:var(--text)}.player-selector-tag-remove svg{width:14px;height:14px}.player-selector-help{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-relaxed)}.bookings-board-page{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.bookings-board-header{flex-shrink:0;position:sticky;top:0;z-index:30;background:var(--surface-elevated);border-bottom:1px solid var(--border);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.bookings-board-header-main{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.bookings-board-title{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--text);margin:0 0 var(--space-md) 0}.bookings-board-date-nav{display:flex;align-items:center;gap:var(--space-sm)}.bookings-board-nav-btn,.bookings-board-today-btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg)}.bookings-board-date-input{padding:var(--space-sm) var(--space-md);font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer}.bookings-board-date-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #8b5cf61a}.bookings-board-header-actions{display:flex;gap:var(--space-sm);align-items:center}.bookings-board-grid-shell{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.bookings-board-grid-viewport{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;position:relative;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) rgba(255,255,255,.05)}.bookings-board-grid-viewport::-webkit-scrollbar{width:10px;height:10px}.bookings-board-grid-viewport::-webkit-scrollbar-track{background:#ffffff0d;border-radius:999px}.bookings-board-grid-viewport::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:999px;border:2px solid transparent;background-clip:padding-box}.bookings-board-grid-viewport::-webkit-scrollbar-thumb:hover{background:#ffffff40;background-clip:padding-box}@media(max-width:767px){.bookings-board-grid-viewport:after{content:"← Swipe to view more courts →";position:sticky;right:var(--space-md);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--text-muted);pointer-events:none;z-index:10;background:linear-gradient(to right,transparent,var(--surface-elevated) 50%);padding-left:var(--space-xl)}}.bookings-board-grid-wrapper{display:grid;grid-template-rows:auto 1fr;min-height:0;width:100%;--slot-height: 44px}@media(max-width:768px){.bookings-board-grid-wrapper{--slot-height: 52px}}.bookings-board-grid-header{display:grid;grid-template-columns:80px repeat(var(--courts-count, 1),220px);position:sticky;top:0;z-index:50;background:var(--surface-elevated);border-bottom:2px solid var(--border);box-shadow:0 2px 4px #0000001a;min-width:calc(80px + (var(--courts-count, 1) * 220px));width:max-content;flex-shrink:0;--slot-height: 44px}@media(max-width:768px){.bookings-board-grid-header{--slot-height: 52px}}.bookings-board-time-header-cell{height:var(--slot-height, 44px);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--text-muted);background:var(--surface-elevated);border-right:2px solid var(--border);position:sticky;top:0;left:0;z-index:60}.bookings-board-court-header-cell{height:var(--slot-height, 44px);padding:var(--space-sm) var(--space-md);background:var(--surface-elevated);display:flex;flex-direction:column;justify-content:center;gap:var(--space-xs);white-space:nowrap;border-right:1px solid var(--border)}.bookings-board-grid-body{display:grid;grid-template-columns:80px repeat(var(--courts-count, 1),220px);grid-auto-rows:var(--slot-height, 44px);min-width:calc(80px + (var(--courts-count, 1) * 220px));width:max-content;border-right:1px solid var(--border);position:relative;flex-shrink:0;--slot-height: 44px}@media(max-width:768px){.bookings-board-grid-body{--slot-height: 52px}}.bookings-board-time-col{position:sticky;left:0;z-index:25;background:var(--surface-elevated);border-right:2px solid var(--border);display:grid;grid-auto-rows:var(--slot-height, 44px);width:80px;min-width:80px;max-width:80px}.bookings-board-time-slot{height:var(--slot-height, 44px);min-height:var(--slot-height, 44px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--text-muted);background:var(--surface-elevated);position:sticky;left:0;z-index:25}.bookings-board-court-col{min-width:220px;width:220px;max-width:220px;border-right:1px solid var(--border);display:grid;grid-auto-rows:var(--slot-height, 44px);position:relative;padding:0}.bookings-board-court-code,.bookings-board-court-hours{font-size:var(--text-xs);color:var(--text-muted)}.bookings-board-court-status{font-size:var(--text-xs);color:var(--danger);font-weight:var(--font-weight-medium)}.bookings-board-slot{height:var(--slot-height, 44px);min-height:var(--slot-height, 44px);border-bottom:1px solid var(--border);position:relative;background:var(--surface-2);transition:background-color var(--transition-base)}.bookings-board-slot.is-unavailable{background:var(--surface);opacity:.4;pointer-events:none}.bookings-board-slot[data-slot-clickable]{cursor:pointer}.bookings-board-slot[data-slot-clickable]:hover{background:var(--surface-hover)}.bookings-board-slot.is-closed{background:var(--surface);opacity:.5}.bookings-board-slot.is-covered{background:var(--surface);opacity:.3;pointer-events:none}.bookings-board-slot.is-break{background:var(--bg-subtle);opacity:.7}.bookings-board-slot.has-booking{padding:var(--space-xs)}.bookings-board-booking-block{border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);display:flex;flex-direction:column;justify-content:center;gap:var(--space-xs);cursor:pointer;transition:all var(--transition-base);background:var(--brand-500);color:var(--surface);font-size:var(--text-xs);line-height:var(--leading-tight);inset-inline:6px;box-shadow:0 1px 3px #0003;overflow:hidden;min-height:32px;z-index:10}.bookings-board-booking-block:hover{opacity:.9;transform:scale(1.02)}.bookings-board-booking-time{font-weight:var(--font-weight-semibold);font-size:var(--text-xs)}.bookings-board-booking-info{font-size:var(--text-xs);opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookings-board-break-indicator{height:100%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.bookings-board-booking-block[data-booking-status=draft]{background:var(--text-muted)}.bookings-board-booking-block[data-booking-status=confirmed]{background:var(--brand-500)}.bookings-board-booking-block[data-booking-status=no_show]{background:var(--warning)}.bookings-board-booking-block[data-booking-status=canceled]{background:var(--danger);opacity:.6}.bookings-board-now-line{position:absolute;left:80px;right:0;height:2px;background:var(--brand-500);z-index:35;pointer-events:none;box-shadow:0 0 4px #8b5cf680}.bookings-board-now-line:before{content:"";position:absolute;left:-8px;top:-4px;width:10px;height:10px;background:var(--brand-500);border-radius:50%;box-shadow:0 0 4px #8b5cf680}.container{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:var(--space-lg);padding-right:var(--space-lg)}@media(min-width:640px){.container{padding-left:var(--space-xl);padding-right:var(--space-xl)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-center{text-align:center}.text-muted{color:var(--text-muted)}
