@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}@tailwind base;@tailwind components;@tailwind utilities;:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #dbeafe;--secondary: #14b8a6;--secondary-hover: #0f766e;--secondary-light: #ccfbf1;--bg: #f8fafc;--bg-subtle: #f1f5f9;--sidebar: #0f172a;--sidebar-hover: #1e293b;--card: #ffffff;--card-muted: #f8fafc;--text: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--border: #e2e8f0;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--info: #0ea5e9;--chart-revenue: #2563eb;--chart-bookings: #14b8a6;--chart-pending: #f59e0b;--chart-cancelled: #ef4444;--chart-growth: #8b5cf6;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 10px 28px rgba(15, 23, 42, .08);--shadow-lg: 0 24px 48px rgba(15, 23, 42, .12);--border-radius: 16px;--transition: all .2s ease-in-out}[data-theme=dark]{--bg: #020617;--bg-subtle: #0f172a;--card: #0f172a;--card-muted: #111827;--text: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--border: #1e293b}.btn-primary{@apply px-4 py-2 text-white font-medium rounded-2xl shadow-sm transition-all duration-200;background:var(--primary)}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-secondary{@apply px-4 py-2 font-medium rounded-2xl shadow-sm transition-all duration-200;background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-success{@apply px-3 py-1.5 text-white text-sm font-medium rounded-xl shadow-sm transition-all duration-200;background:var(--success)}.btn-warning{@apply px-3 py-1.5 text-white text-sm font-medium rounded-xl shadow-sm transition-all duration-200;background:var(--warning)}.btn-danger{@apply px-3 py-1.5 text-white text-sm font-medium rounded-xl shadow-sm transition-all duration-200;background:var(--danger)}.card{@apply rounded-2xl p-6 transition-shadow duration-200;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.card-dark{@apply rounded-2xl p-6 transition-shadow duration-200;background:var(--sidebar);color:var(--text-inverse);border:1px solid rgba(148,163,184,.16);box-shadow:var(--shadow-md)}.input-field{@apply px-4 py-3 rounded-2xl transition-all duration-200;border:1px solid var(--border);background:var(--card)}.status-badge{@apply px-3 py-1 text-xs font-medium rounded-full;}.status-pending{background:#f59e0b1f;color:#b45309}.status-confirmed{background:#2563eb1f;color:var(--primary-hover)}.status-completed{background:#22c55e1f;color:#15803d}.status-cancelled{background:#ef44441f;color:#b91c1c}.spinner{@apply inline-block w-4 h-4 border-2 rounded-full animate-spin;border-color:#94a3b840;border-top-color:var(--primary)}.notification{@apply p-4 rounded-lg border-l-4 shadow-md mb-4;}.notification-success{@apply bg-green-50 border-green-400 text-green-800;}.notification-error{@apply bg-red-50 border-red-400 text-red-800;}.notification-info{@apply bg-blue-50 border-blue-400 text-blue-800;}@media (max-width: 768px){.mobile-grid{@apply grid-cols-1 gap-4;}.mobile-hidden{@apply hidden;}}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,sans-serif}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}:root{--bg-canvas: #f8fafc;--bg-shell: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);--bg-sidebar: #0f172a;--bg-header: rgba(255, 255, 255, .92);--bg-surface: #ffffff;--bg-surface-strong: #ffffff;--bg-surface-muted: #f1f5f9;--bg-accent: #2563eb;--bg-accent-soft: rgba(37, 99, 235, .08);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--border-soft: #e2e8f0;--border-strong: rgba(37, 99, 235, .18);--shadow-soft: 0 16px 36px rgba(15, 23, 42, .06);--shadow-card: 0 1px 3px rgba(15, 23, 42, .08);--shadow-elevated: 0 24px 48px rgba(15, 23, 42, .12);--success-color: #22c55e;--warning-color: #f59e0b;--error-color: #ef4444;--info-color: #0ea5e9;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--sidebar-width: 284px;--sidebar-collapsed-width: 92px;--header-height: 88px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:Inter,Segoe UI,sans-serif;background:var(--bg-shell);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}.admin-shell{min-height:100vh;background:radial-gradient(circle at top right,rgba(37,99,235,.12),transparent 26%),radial-gradient(circle at bottom left,rgba(20,184,166,.1),transparent 28%),var(--bg-shell)}.admin-main{min-height:100vh}.admin-content{width:100%;max-width:none;margin:0;padding:24px 20px 36px}.page-container{display:flex;flex-direction:column;gap:20px}.page-shell{background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);padding:28px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.page-heading{display:flex;flex-direction:column;gap:8px}.page-kicker{font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bg-accent)}.page-title{margin:0;font-size:clamp(1.6rem,2vw,2.35rem);font-weight:700;line-height:1.1}.page-subtitle{margin:0;max-width:780px;color:var(--text-secondary);font-size:.98rem}.page-actions{display:flex;align-items:center;gap:12px}.breadcrumb{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;width:fit-content;background:#fffffff5;border:1px solid var(--border-soft);border-radius:999px;color:var(--text-secondary);font-size:.86rem}.breadcrumb-item{display:inline-flex;align-items:center;gap:10px}.breadcrumb-item:not(:last-child):after{content:"•";color:#2563eb73}.breadcrumb-link{color:var(--bg-accent);text-decoration:none;font-weight:600}.page-transition{animation:fadeUp .28s ease}.card-enhanced,.dashboard-card{background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:20px;box-shadow:var(--shadow-card)}.dashboard-card{padding:24px}.dashboard-grid{display:grid;gap:24px;grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr)}.dashboard-stack{display:flex;flex-direction:column;gap:24px}.stats-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{position:relative;overflow:hidden;padding:20px;border-radius:18px;background:var(--bg-surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-card)}.stat-card:after{content:"";position:absolute;inset:auto -20px -32px auto;width:96px;height:96px;border-radius:50%;background:#2563eb14}.stat-label{margin:0 0 10px;color:var(--text-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.stat-value{margin:0;font-size:2rem;font-weight:700;line-height:1}.stat-trend{margin-top:12px;font-size:.92rem;color:var(--text-secondary)}.dashboard-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.dashboard-toolbar-title{margin:0;font-size:1.15rem;font-weight:700}.dashboard-toolbar-subtitle{margin:4px 0 0;color:var(--text-secondary);font-size:.92rem}.page-section{display:flex;flex-direction:column;gap:24px}.page-section-card{background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:20px;box-shadow:var(--shadow-card)}.dashboard-filters{display:flex;flex-wrap:wrap;gap:12px}.booking-list{display:flex;flex-direction:column;gap:16px}.booking-card{padding:20px;border-radius:18px;border:1px solid var(--border-soft);background:var(--bg-surface);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.booking-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px #0f172a14;border-color:#2563eb38}.booking-card.is-selected{border-color:#2563eb61;box-shadow:0 18px 38px #2563eb1a}.section-title{margin:0 0 4px;font-size:1.15rem;font-weight:700}.section-subtitle{margin:0;color:var(--text-secondary);font-size:.92rem}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top left,rgba(37,99,235,.16),transparent 24%),radial-gradient(circle at bottom right,rgba(20,184,166,.12),transparent 28%),linear-gradient(180deg,#f8fafc,#eef2ff)}.auth-card{width:100%;max-width:1040px;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr);background:#fffffff5;border:1px solid var(--border-soft);border-radius:28px;overflow:hidden;box-shadow:var(--shadow-elevated)}.auth-brand{padding:44px;background:radial-gradient(circle at top right,rgba(37,99,235,.22),transparent 28%),radial-gradient(circle at bottom left,rgba(20,184,166,.16),transparent 28%),linear-gradient(165deg,#0f172a,#1e293b);color:var(--text-inverse)}.auth-brand-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:#ffffff14;border:1px solid rgba(148,163,184,.18);font-size:.84rem;font-weight:600;letter-spacing:.04em;color:#e2e8f0eb}.auth-brand h1{margin:22px 0 12px;font-size:clamp(2rem,4vw,3.4rem);line-height:.98}.auth-brand p{max-width:440px;color:#e2e8f0cc;font-size:1rem}.auth-feature-list{display:grid;gap:14px;margin-top:28px}.auth-feature{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:18px;background:#ffffff0f;border:1px solid rgba(148,163,184,.16)}.auth-form{padding:44px;display:flex;flex-direction:column;justify-content:center}.auth-form h2{margin:0 0 8px;font-size:2rem}.auth-form p{margin:0 0 24px;color:var(--text-secondary)}.status-card{width:100%;max-width:520px;background:#fffffff5;border:1px solid var(--border-soft);border-radius:24px;box-shadow:var(--shadow-elevated);padding:40px;text-align:center}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1199px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 899px){.admin-content{padding:20px 16px 28px}.auth-card{grid-template-columns:1fr}.auth-brand,.auth-form{padding:28px}.page-shell{padding:20px}}@media (max-width: 599px){.admin-content{padding:16px 12px 24px}.page-header,.dashboard-toolbar{flex-direction:column;align-items:flex-start}.stats-grid{grid-template-columns:1fr}.breadcrumb{width:100%;border-radius:18px}.page-shell{padding:16px;border-radius:24px}}
