.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:inherit}.loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.empty-state-icon{font-size:4rem;margin-bottom:var(--spacing-lg);opacity:.4;display:block}.empty-state-description{font-size:var(--font-size-base);line-height:1.6;max-width:400px;margin:0 auto}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-success{background:var(--success-bg);color:var(--success-text)}.status-warning{background:var(--warning-bg);color:var(--warning-text)}.status-error{background:var(--danger-bg);color:var(--danger-text)}.status-info{background:#e8f0fe;color:#1967d2}.progress-bar{width:100%;height:8px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;margin:var(--spacing-sm) 0}.progress-fill{height:100%;background:linear-gradient(90deg,var(--success),var(--primary));transition:width var(--transition-slow);border-radius:inherit}.progress-fill.warning{background:linear-gradient(90deg,var(--warning),var(--danger))}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border);margin:calc(-1 * var(--spacing-lg)) calc(-1 * var(--spacing-lg)) var(--spacing-lg) calc(-1 * var(--spacing-lg))}.card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text);margin:0}.card-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);margin:var(--space-1) 0 0 0}.card-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border)}.clickable{cursor:pointer;transition:all var(--transition-fast)}.clickable:hover{transform:translateY(-1px)}.clickable:active{transform:translateY(0)}.focus-ring:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 4px var(--primary-focus)}.hide-on-mobile{display:none}.show-on-mobile{display:block}@media (min-width: 768px){.hide-on-mobile{display:block}.show-on-mobile{display:none}}.fade-in{animation:fadeIn var(--transition-slow) ease}.slide-up{animation:slideUp var(--transition-slow) ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stagger-item{animation:slideUp var(--transition-slow) ease both}.stagger-item:nth-child(1){animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.form-grid{display:grid;gap:var(--spacing-md)}@media (min-width: 768px){.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:1fr 1fr 1fr}}.btn-icon{display:inline-flex;align-items:center;gap:var(--space-2)}.btn-icon-only{padding:var(--spacing-sm);min-width:44px;min-height:44px;justify-content:center}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-striped tbody tr:nth-child(2n){background:var(--light-gray)}.table-hover tbody tr:hover{background:#f1f3f4}@media (max-width: 767px){.table-mobile{border:none}.table-mobile thead{display:none}.table-mobile tbody,.table-mobile tr,.table-mobile td{display:block;width:100%}.table-mobile tr{margin-bottom:var(--spacing-md);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-md)}.table-mobile td{text-align:right;padding:var(--space-1) 0;border:none;position:relative;padding-left:50%}.table-mobile td:before{content:attr(data-label);position:absolute;left:0;width:45%;padding-right:var(--spacing-sm);text-align:left;font-weight:600;color:var(--text-secondary);font-size:var(--font-size-sm)}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #4285F4;--primary-hover: #1a73e8;--primary-focus: rgba(66, 133, 244, .25);--success: #34A853;--success-bg: #e6f4ea;--success-text: #137333;--warning: #FBBC04;--warning-bg: #fef7e0;--warning-text: #b95000;--danger: #EA4335;--danger-bg: #fce8e6;--danger-text: #c5221f;--background: #FFFFFF;--text: #202124;--text-secondary: #5f6368;--light-gray: #F8F9FA;--border: #E0E0E0;--border-hover: #dadce0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-8);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base: 16px;--font-size-sm: 14px;--font-size-lg: 18px;--font-size-xl: 24px;--line-height: 1.5;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--border-radius-sm: var(--radius-sm);--border-radius-md: var(--radius-md);--border-radius-lg: var(--radius-lg);--shadow-1: 0 1px 2px rgba(0,0,0,.05);--shadow-2: 0 2px 4px rgba(0,0,0,.1);--shadow-3: 0 4px 8px rgba(0,0,0,.15);--shadow-sm: var(--shadow-1);--shadow-md: var(--shadow-2);--shadow-lg: var(--shadow-3);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--text);background:var(--light-gray);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;text-size-adjust:100%}.container{width:100%;max-width:100%;padding:var(--spacing-md);margin:0 auto}@media (min-width: 480px){.container{max-width:456px}}@media (min-width: 640px){.container{max-width:616px;padding:var(--spacing-lg)}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 1024px){.container{max-width:992px}}@media (min-width: 1280px){.container{max-width:1200px}}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-md)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:12px 24px;font-size:var(--font-size-base);font-weight:500;text-align:center;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);min-height:44px;min-width:44px;width:100%;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}button:focus-visible,.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 4px var(--primary-focus)}button:disabled,.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}@media (hover: none) and (pointer: coarse){button:active,.btn:active{transform:scale(.98);transition:transform .1s}}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-2)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#2d8e47;transform:translateY(-1px);box-shadow:var(--shadow-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#c5221f;transform:translateY(-1px);box-shadow:var(--shadow-2)}.btn-secondary{background:var(--light-gray);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border-hover);transform:translateY(-1px);box-shadow:var(--shadow-2)}input,select,textarea{width:100%;padding:12px;font-size:var(--font-size-base);border:2px solid var(--border);background:#fff;transition:all var(--transition-base);min-height:44px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius-md)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-focus)}input:invalid:not(:placeholder-shown),select:invalid:not(:placeholder-shown),textarea:invalid:not(:placeholder-shown){border-color:var(--danger)}input.valid:not(:placeholder-shown),select.valid:not(:placeholder-shown),textarea.valid:not(:placeholder-shown){border-color:var(--success)}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M10.293 3.293L6 7.586 1.707 3.293A1 1 0 00.293 4.707l5 5a1 1 0 001.414 0l5-5a1 1 0 10-1.414-1.414z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;font-size:var(--font-size-sm);color:var(--text)}.form-group{margin-bottom:var(--spacing-md);position:relative}.form-error{color:var(--danger);font-size:var(--font-size-sm);margin-top:var(--spacing-xs);display:flex;align-items:center;gap:var(--space-1)}.form-error:before{content:"⚠️";font-size:.875em}.form-success{color:var(--success);font-size:var(--font-size-sm);margin-top:var(--spacing-xs);display:flex;align-items:center;gap:var(--space-1)}.form-success:before{content:"✅";font-size:.875em}.card{background:#fff;border-radius:var(--border-radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md)}.booking-card{padding:var(--spacing-md);border-radius:var(--border-radius-md);border:1px solid var(--border);margin-bottom:var(--spacing-sm);background:#fff;transition:box-shadow .2s}.booking-card:hover{box-shadow:var(--shadow-md)}.capacity-bar{display:flex;height:24px;border-radius:var(--border-radius-lg);overflow:hidden;background:var(--border);margin:var(--spacing-sm) 0}.capacity-fill{background:linear-gradient(90deg,var(--success),var(--warning));transition:width .3s}.capacity-full{background:var(--danger)}.highlight{background:#fff3cd;border:2px solid #ffc107;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.loading{opacity:.6;pointer-events:none}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);display:flex;align-items:flex-start;gap:var(--space-3);border-left:4px solid;font-weight:500}.alert-success{background:var(--success-bg);color:var(--success-text);border-left-color:var(--success)}.alert-error{background:var(--danger-bg);color:var(--danger-text);border-left-color:var(--danger)}.alert-warning{background:var(--warning-bg);color:var(--warning-text);border-left-color:var(--warning)}.alert-info{background:#e8f0fe;color:#1967d2;border-left-color:#4285f4}.alert:before{content:"";display:inline-block;width:20px;height:20px;flex-shrink:0;margin-top:1px}.alert-success:before{content:"✅"}.alert-error:before{content:"❌"}.alert-warning:before{content:"⚠️"}.alert-info:before{content:"ℹ️"}table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md);background:#fff;border-radius:var(--border-radius-md);overflow:hidden}th,td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border)}th{background:var(--light-gray);font-weight:600;font-size:var(--font-size-sm);text-transform:uppercase}tr:hover{background:var(--light-gray)}.text-center{text-align:center}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.hidden{display:none}.flex{display:flex}.flex-column{flex-direction:column}.flex-center{justify-content:center;align-items:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}@media (min-width: 480px){button,.btn{width:auto;min-width:120px}}@media (min-width: 640px){h1{font-size:28px}h2{font-size:20px}.card{padding:var(--spacing-lg)}}@media (min-width: 768px){h1{font-size:32px}h2{font-size:24px}@media (hover: hover) and (pointer: fine){button:hover:not(:disabled),.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-2)}.booking-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-3)}}}@media (min-width: 1024px){.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}}@media (min-width: 1280px){h1{font-size:36px}h2{font-size:28px}}@media print{body{background:#fff}.no-print{display:none!important}.card{box-shadow:none;border:1px solid var(--border)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){:root{--border: #000000;--text: #000000;--background: #ffffff}button,.btn{border:2px solid currentColor}}.focus-visible:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 4px var(--primary-focus)}.card,.booking-card,.form-group{contain:layout style paint}.optimized-transition{transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);will-change:transform,box-shadow}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-title{height:1.5em;width:60%;margin-bottom:1em}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5;display:block}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text)}.empty-state-description{font-size:var(--font-size-sm);line-height:1.6}.form-field{position:relative}.form-field.valid:after{content:"✓";position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--success);font-weight:700}.form-field.invalid:after{content:"✗";position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--danger);font-weight:700}.height-transition{overflow:hidden;transition:max-height var(--transition-slow) ease}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple:active:after{width:300px;height:300px}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.z-10{z-index:10}.text-start{text-align:start}.text-end{text-align:end}.mx-auto{margin-inline:auto}.px-md{padding-inline:var(--spacing-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus{outline:2px solid var(--primary);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:6px;background:var(--primary);color:#fff;padding:8px;text-decoration:none;border-radius:4px;z-index:1000;transition:top .3s}.skip-link:focus{top:6px}.skip-links{position:absolute;top:-100px;left:0;z-index:10000}.skip-links .skip-link{position:absolute;top:0;left:0;background:#000;color:#fff;padding:.5rem 1rem;text-decoration:none;font-weight:600;border-radius:0 0 4px;transition:top .3s ease}.skip-links .skip-link:focus{top:100px}.skip-links .skip-link:nth-child(2){top:40px}.skip-links .skip-link:nth-child(2):focus{top:140px}.skip-links .skip-link:nth-child(3){top:80px}.skip-links .skip-link:nth-child(3):focus{top:180px}@media (prefers-contrast: high){:root{--primary: #0000FF;--success: #00FF00;--warning: #FFFF00;--danger: #FF0000;--text: #000000;--background: #FFFFFF}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.ripple{display:none}}.alert-icon{font-size:1.2em;margin-right:.5em}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline:3px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 3px #4285f44d}.form-error[role=alert]{border-left:4px solid var(--danger);padding-left:.75rem}.form-success[aria-live=polite]{border-left:4px solid var(--success);padding-left:.75rem}.alert[role=alert]{border-left:4px solid var(--warning);padding-left:.75rem}.loading-spinner[aria-hidden=true]+span[aria-live=polite]{font-style:italic}.btn:focus{transform:translateY(-1px);box-shadow:0 4px 8px #0003}.form-input:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4285f41a;transform:translateY(-1px)}
