:root{--brand-primary: #073590;--brand-primary-light: #0d4bb8;--brand-primary-dark: #052668;--brand-accent: #f1c933;--brand-accent-light: #f4d659;--brand-accent-dark: #d4af1a;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-300: #86efac;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-success-800: #166534;--color-success-900: #14532d;--color-success-950: #052e16;--color-warning-50: #fff7ed;--color-warning-100: #ffedd5;--color-warning-200: #fed7aa;--color-warning-300: #fdba74;--color-warning-400: #fb923c;--color-warning-500: #f97316;--color-warning-600: #ea580c;--color-warning-700: #c2410c;--color-warning-800: #9a3412;--color-warning-900: #7c2d12;--color-warning-950: #431407;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-200: #fecaca;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-error-800: #991b1b;--color-error-900: #7f1d1d;--color-error-950: #450a0a;--color-info-50: #eff6ff;--color-info-100: #dbeafe;--color-info-200: #bfdbfe;--color-info-300: #93c5fd;--color-info-400: #60a5fa;--color-info-500: #3b82f6;--color-info-600: #2563eb;--color-info-700: #1d4ed8;--color-info-800: #1e40af;--color-info-900: #1e3a8a;--color-info-950: #172554;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-neutral-950: #020617;--glass-white: rgba(255, 255, 255, .7);--glass-white-strong: rgba(255, 255, 255, .85);--glass-white-subtle: rgba(255, 255, 255, .5);--glass-border: rgba(255, 255, 255, .3);--glass-border-strong: rgba(255, 255, 255, .5);--glass-shadow: rgba(31, 38, 135, .15);--glass-highlight: rgba(255, 255, 255, .8);--overlay-light: rgba(0, 0, 0, .1);--overlay-medium: rgba(0, 0, 0, .3);--overlay-heavy: rgba(0, 0, 0, .5);--overlay-dark: rgba(0, 0, 0, .7);--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "Fira Code", "Consolas", "Monaco", "Courier New", monospace;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-size-xs: clamp(.75rem, .7rem + .25vw, .875rem);--font-size-sm: clamp(.875rem, .8rem + .375vw, 1rem);--font-size-base: clamp(1rem, .9rem + .5vw, 1.125rem);--font-size-lg: clamp(1.125rem, 1rem + .625vw, 1.25rem);--font-size-xl: clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--font-size-2xl: clamp(1.5rem, 1.3rem + 1vw, 1.875rem);--font-size-3xl: clamp(1.875rem, 1.6rem + 1.375vw, 2.25rem);--font-size-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 3rem);--font-size-5xl: clamp(3rem, 2.5rem + 2.5vw, 4rem);--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0em;--letter-spacing-wide: .025em;--letter-spacing-wider: .05em;--space-0: 0;--space-0-5: .125rem;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-2-5: .625rem;--space-3: .75rem;--space-3-5: .875rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--radius-none: 0;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-glass: 0 8px 32px 0 rgba(31, 38, 135, .15);--shadow-glass-lg: 0 8px 32px 0 rgba(31, 38, 135, .2), 0 0 0 1px rgba(255, 255, 255, .1) inset;--shadow-glass-xl: 0 12px 48px 0 rgba(31, 38, 135, .25), 0 0 0 1px rgba(255, 255, 255, .15) inset;--shadow-primary: 0 10px 25px -5px rgba(7, 53, 144, .3);--shadow-accent: 0 10px 25px -5px rgba(241, 201, 51, .3);--shadow-success: 0 10px 25px -5px rgba(34, 197, 94, .3);--shadow-error: 0 10px 25px -5px rgba(239, 68, 68, .3);--blur-none: 0;--blur-sm: blur(4px);--blur-md: blur(8px);--blur-lg: blur(12px);--blur-xl: blur(16px);--blur-2xl: blur(24px);--blur-3xl: blur(40px);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-slower: .5s cubic-bezier(.4, 0, .2, 1);--transition-all-fast: all var(--transition-fast);--transition-all-normal: all var(--transition-normal);--transition-colors: color var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal);--transition-transform: transform var(--transition-normal);--transition-opacity: opacity var(--transition-normal);--z-index-base: 0;--z-index-dropdown: 100;--z-index-sticky: 200;--z-index-fixed: 300;--z-index-modal-backdrop: 400;--z-index-modal: 500;--z-index-popover: 600;--z-index-tooltip: 700;--z-index-notification: 800;--z-index-max: 9999;--button-height-sm: 2rem;--button-height-md: 2.5rem;--button-height-lg: 3rem;--button-padding-x-sm: var(--space-3);--button-padding-x-md: var(--space-4);--button-padding-x-lg: var(--space-6);--input-height-sm: 2rem;--input-height-md: 2.5rem;--input-height-lg: 3rem;--input-padding-x: var(--space-3);--input-border-width: 1px;--card-padding-sm: var(--space-4);--card-padding-md: var(--space-6);--card-padding-lg: var(--space-8);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--text-primary: var(--color-neutral-900);--text-secondary: var(--color-neutral-600);--text-tertiary: var(--color-neutral-500);--text-disabled: var(--color-neutral-400);--text-inverse: var(--color-neutral-50);--text-link: var(--brand-primary);--text-link-hover: var(--brand-primary-light);--bg-primary: var(--color-neutral-50);--bg-secondary: var(--color-neutral-100);--bg-tertiary: var(--color-neutral-200);--bg-inverse: var(--color-neutral-900);--bg-overlay: var(--overlay-medium);--border-primary: var(--color-neutral-300);--border-secondary: var(--color-neutral-200);--border-focus: var(--brand-primary);--border-error: var(--color-error-500);--border-success: var(--color-success-500);--state-hover-opacity: .9;--state-active-opacity: .8;--state-disabled-opacity: .5;--state-focus-ring: 0 0 0 3px rgba(7, 53, 144, .1);--state-focus-ring-error: 0 0 0 3px rgba(239, 68, 68, .1)}[data-theme=dark]{--glass-white: rgba(30, 41, 59, .7);--glass-white-strong: rgba(30, 41, 59, .85);--glass-white-subtle: rgba(30, 41, 59, .5);--glass-border: rgba(148, 163, 184, .2);--glass-border-strong: rgba(148, 163, 184, .3);--glass-shadow: rgba(0, 0, 0, .3);--glass-highlight: rgba(148, 163, 184, .1);--overlay-light: rgba(255, 255, 255, .05);--overlay-medium: rgba(255, 255, 255, .1);--overlay-heavy: rgba(255, 255, 255, .2);--overlay-dark: rgba(0, 0, 0, .5);--text-primary: var(--color-neutral-50);--text-secondary: var(--color-neutral-300);--text-tertiary: var(--color-neutral-400);--text-disabled: var(--color-neutral-600);--text-inverse: var(--color-neutral-900);--text-link: var(--brand-accent-light);--text-link-hover: var(--brand-accent);--bg-primary: var(--color-neutral-900);--bg-secondary: var(--color-neutral-800);--bg-tertiary: var(--color-neutral-700);--bg-inverse: var(--color-neutral-50);--bg-overlay: var(--overlay-dark);--border-primary: var(--color-neutral-700);--border-secondary: var(--color-neutral-800);--border-focus: var(--brand-accent);--border-error: var(--color-error-400);--border-success: var(--color-success-400);--state-hover-opacity: .85;--state-active-opacity: .75;--state-disabled-opacity: .4;--state-focus-ring: 0 0 0 3px rgba(241, 201, 51, .2);--state-focus-ring-error: 0 0 0 3px rgba(239, 68, 68, .2);--shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, .4);--shadow-glass-lg: 0 8px 32px 0 rgba(0, 0, 0, .5), 0 0 0 1px rgba(148, 163, 184, .1) inset;--shadow-glass-xl: 0 12px 48px 0 rgba(0, 0, 0, .6), 0 0 0 1px rgba(148, 163, 184, .15) inset;--shadow-primary: 0 10px 25px -5px rgba(13, 75, 184, .4);--shadow-accent: 0 10px 25px -5px rgba(241, 201, 51, .4);--shadow-success: 0 10px 25px -5px rgba(34, 197, 94, .4);--shadow-error: 0 10px 25px -5px rgba(239, 68, 68, .4)}.glass{background:var(--glass-white);backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass)}.glass-strong{background:var(--glass-white-strong);backdrop-filter:var(--blur-xl);-webkit-backdrop-filter:var(--blur-xl);border:1px solid var(--glass-border-strong);box-shadow:var(--shadow-glass-lg)}.glass-subtle{background:var(--glass-white-subtle);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass)}.focus-ring:focus-visible{outline:none;box-shadow:var(--state-focus-ring)}.transition-colors{transition:var(--transition-colors)}.transition-all{transition:var(--transition-all-normal)}.transition-transform{transition:var(--transition-transform)}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-normal: 0ms;--transition-slow: 0ms;--transition-slower: 0ms}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--glass-border: rgba(0, 0, 0, 1);--border-primary: var(--color-neutral-900)}[data-theme=dark]{--glass-border: rgba(255, 255, 255, 1);--border-primary: var(--color-neutral-100)}}@media print{:root{--shadow-glass: none;--shadow-glass-lg: none;--shadow-glass-xl: none;--blur-sm: none;--blur-md: none;--blur-lg: none;--blur-xl: none}.glass,.glass-strong,.glass-subtle{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--color-neutral-300)}}:root{--primary-color: #073590;--accent-color: #f1c933;--ryanair-blue: #073590;--ryanair-yellow: #f1c933;--light-gray: #f3f3f3;--dark-gray: #333;--white: #fff;--border-color: #ddd;--success-color: #28a745;--warning-color: #ffc107;--danger-color: #dc3545;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--text-primary: #1a1a1a;--text-secondary: #6b7280;--border: #e5e7eb;--shadow: rgba(0, 0, 0, .1)}[data-theme=dark]{--primary-color: #4a7dc9;--accent-color: #ffd93d;--ryanair-blue: #4a7dc9;--ryanair-yellow: #ffd93d;--light-gray: #2a2a2a;--dark-gray: #e5e5e5;--white: #1a1a1a;--border-color: #404040;--success-color: #34d058;--warning-color: #ffb700;--danger-color: #f85149;--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--text-primary: #e5e5e5;--text-secondary: #a0a0a0;--border: #404040;--shadow: rgba(0, 0, 0, .5)}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.loading-container-compact{padding:10px;min-height:auto}.spinner-small{width:24px;height:24px;margin-bottom:8px;border-left-color:var(--ryanair-blue)}.spinner-tiny{width:12px;height:12px;border-color:#ffffff4d;border-top-color:#fff}.spinner-medium{width:16px;height:16px;border-left-color:#fff;border-width:3px}.loading-message{font-size:13px;color:#555}.error-details{white-space:pre-wrap;margin-top:20px}.button-margin-top{margin-top:20px}.separator-line{margin:20px 0;border:0;border-top:1px solid var(--border-color)}.inline-flex-gap{display:inline-flex;align-items:center;gap:8px}.dropdown-visible{display:block}.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}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary-color);color:var(--white);padding:8px;text-decoration:none;z-index:100}.skip-link:focus{top:0}:focus{outline:2px solid var(--accent-color);outline-offset:2px}@media (prefers-contrast: high){:root{--primary-color: #000080;--accent-color: #ffff00;--border-color: #000}}*{box-sizing:border-box;margin:0;padding:0}.error-boundary-fallback{display:flex;justify-content:center;align-items:center;min-height:400px;padding:20px;background-color:var(--light-gray)}.error-boundary-content{text-align:center;max-width:600px;padding:40px;background-color:var(--white);border-radius:8px;box-shadow:0 4px 6px #0000001a}.error-boundary-content h2{color:var(--danger-color);margin-bottom:15px;font-size:24px}.error-boundary-content p{color:var(--dark-gray);margin-bottom:20px;font-size:16px}.error-boundary-content details{text-align:left;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:10px;margin-top:20px}.error-boundary-content summary{cursor:pointer;font-weight:700;color:var(--dark-gray);margin-bottom:10px}.error-boundary-content details p{font-family:monospace;font-size:12px;color:#dc3545;white-space:pre-wrap;overflow-x:auto}body{font-family:var(--font-family-base);margin:0;padding:0;background-color:var(--light-gray);color:var(--dark-gray);line-height:1.6;font-size:14px}.container{max-width:1400px;margin:0 auto;padding:20px}header{background-color:var(--ryanair-blue);color:var(--white);padding:15px 0;box-shadow:0 2px 5px #0000001a;margin-bottom:20px}header .container{display:flex;justify-content:space-between;align-items:center}.logo{font-size:22px;font-weight:700;display:flex;align-items:center}.logo svg{margin-right:10px}.app-wrapper{display:flex;flex-direction:column;gap:25px}.search-panel,.results-panel,.settings-panel{background-color:var(--white);border-radius:12px;box-shadow:0 4px 16px #00000014;padding:20px;transition:box-shadow .3s ease;margin-bottom:20px}.search-panel:hover,.results-panel:hover,.settings-panel:hover{box-shadow:0 6px 20px #0735901a}.settings-panel{padding:0;overflow:hidden}h2,h3{color:var(--ryanair-blue);margin-top:0;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid var(--ryanair-yellow);font-size:1.4rem;font-weight:600;letter-spacing:.5px;position:relative}h2:after{content:"";position:absolute;bottom:-2px;left:0;width:80px;height:2px;background:var(--ryanair-blue)}h3{font-size:1.2rem;margin-bottom:16px;padding-bottom:8px}.form-group{margin-bottom:12px;position:relative;transition:transform .2s}.form-group:focus-within{transform:translateY(-2px)}.form-group label{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:500;color:var(--ryanair-blue);font-size:.9rem;letter-spacing:.3px;line-height:1.4}.label-icon{font-size:1.1em;filter:grayscale(20%);flex-shrink:0;width:1.2em;text-align:center}.form-group label>span:not(.label-icon){flex:1}.form-group input,.form-group select{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;transition:all .2s ease;box-shadow:0 1px 3px #0000000a;background-color:#fff;line-height:1.5}.form-group input:focus,.form-group select:focus{border-color:var(--ryanair-blue);outline:none;box-shadow:0 0 0 3px #07359026;background-color:#f0f5ff}input[type=date]{position:relative;min-height:calc(18px + 1.5em)}input[type=date]::-webkit-calendar-picker-indicator{position:absolute;right:10px;top:50%;transform:translateY(-50%);opacity:.6;cursor:pointer;transition:opacity .2s}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}button{cursor:pointer;font-weight:500;transition:all .2s;font-family:inherit}.btn{display:inline-block;padding:10px 18px;border-radius:6px;font-size:14px;text-align:center;border:none;font-weight:500;letter-spacing:.3px;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;line-height:1.5}.btn-primary{background:linear-gradient(135deg,var(--ryanair-blue) 0%,#052a73 100%);color:var(--white);position:relative;overflow:hidden;font-weight:600;text-transform:uppercase;letter-spacing:.5px;min-width:150px}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#052a73 0%,var(--ryanair-blue) 100%);transform:translateY(-2px);box-shadow:0 6px 20px #0735904d}.btn-primary:disabled{background-color:#a0b0c5;cursor:not-allowed;opacity:.7}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #0000001a}.btn-primary:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.btn-primary:focus:not(:active):after{animation:ripple 1s ease-out}@keyframes ripple{0%{transform:scale(0) translate(-50%,-50%);opacity:.5}20%{transform:scale(25) translate(-50%,-50%);opacity:.3}to{opacity:0;transform:scale(40) translate(-50%,-50%)}}.btn-secondary{background-color:#6c757d;color:#fff;padding:6px 12px;font-size:13px}.btn-secondary:hover:not(:disabled){background-color:#5a6268;transform:translateY(-1px);box-shadow:0 2px 5px #0000001a}.btn-secondary:disabled{background-color:#adb5bd;cursor:not-allowed;opacity:.7}.btn-success{background-color:var(--success-color);color:var(--white)}.btn-success:hover:not(:disabled){background-color:#218838;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.btn-success:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #0000001a}.btn-block{display:block;width:100%}.search-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}@media (max-width: 992px){.search-form-grid{grid-template-columns:1fr}}.airports-row{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 768px){.airports-row{grid-template-columns:1fr}}.search-form-grid .form-group:nth-child(3),.search-form-grid .form-group:nth-child(4){grid-column:span 1}.search-form-grid .form-group:nth-child(5),.search-form-grid .form-group:nth-child(6){grid-column:span 1}.search-form-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;padding-top:16px;margin-top:16px;border-top:2px solid rgba(7,53,144,.1);position:relative}.search-form-footer:before{content:"";position:absolute;top:-2px;left:50%;transform:translate(-50%);width:60px;height:2px;background:var(--ryanair-yellow)}.airlines-selection{display:flex;align-items:center;gap:16px;padding:10px 12px;margin-top:12px;background:linear-gradient(135deg,#07359008,#f1c93308);border-radius:12px;border:1px solid rgba(7,53,144,.1)}.airlines-label{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-primary);font-size:.9rem;white-space:nowrap}.airlines-label .label-icon{color:var(--ryanair-blue)}.airlines-checkboxes{display:flex;gap:12px;flex-wrap:wrap}.airline-checkbox{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;border:2px solid var(--border-color);background:var(--bg-primary);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.airline-checkbox:hover{border-color:var(--ryanair-blue);transform:translateY(-1px);box-shadow:0 2px 8px #07359026}[data-theme=dark] .airline-checkbox:hover{border-color:var(--ryanair-yellow);box-shadow:0 2px 8px #ffd93d33}.airline-checkbox:not(.checked){opacity:.7}.airline-checkbox:not(.checked):hover{opacity:1}.airline-checkbox.checked{border-color:var(--ryanair-blue);border-width:2px;background:linear-gradient(135deg,#07359026,#f1c9331f);box-shadow:0 0 0 2px #07359026,inset 0 1px #ffffff80}[data-theme=dark] .airline-checkbox.checked{border-color:var(--ryanair-yellow);background:linear-gradient(135deg,#4a7dc94d,#ffd93d33);box-shadow:0 0 0 2px #ffd93d40,inset 0 1px #ffffff1a}[data-theme=dark] .airline-checkbox.checked .airline-name{color:var(--ryanair-yellow)}.airline-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.airline-logo{display:flex;align-items:center;justify-content:center;width:32px;height:22px;border-radius:4px;font-weight:700;font-size:.75rem;color:#fff}.airline-logo.ryanair{background:linear-gradient(135deg,#073590,#0a4bb8)}.airline-logo.wizzair{background:linear-gradient(135deg,#c6007e,#e91e8c)}.airline-name{font-weight:500;font-size:.9rem;color:var(--text-primary)}.airline-checkbox.checked .airline-name{font-weight:600}.mixed-airlines-checkbox{display:flex;align-items:center;gap:8px;padding:10px 16px;margin-top:12px;border-radius:8px;border:2px dashed var(--border-color);background:linear-gradient(135deg,#07359005,#c6007e05);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;width:100%}.mixed-airlines-checkbox:hover{border-color:var(--ryanair-blue);background:linear-gradient(135deg,#0735900d,#c6007e0d)}.mixed-airlines-checkbox.checked{border-style:solid;border-color:var(--ryanair-blue);background:linear-gradient(135deg,#07359014,#c6007e14)}.mixed-airlines-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.mixed-airlines-icon{display:flex;align-items:center;justify-content:center;width:28px;height:22px;border-radius:4px;font-weight:700;font-size:1rem;background:linear-gradient(135deg,#073590,#c6007e);color:#fff}.mixed-airlines-text{font-size:.85rem;color:var(--text-secondary)}.mixed-airlines-checkbox.checked .mixed-airlines-text{font-weight:600;color:var(--text-primary)}@media (max-width: 600px){.airlines-selection{flex-direction:column;align-items:flex-start;gap:12px}.airlines-checkboxes{width:100%}.airline-checkbox{flex:1;justify-content:center}.mixed-airlines-checkbox{flex-direction:row;text-align:left}}.api-status-container{display:flex;align-items:center;gap:10px;background-color:#07359008;padding:8px 12px;border-radius:6px;min-height:38px}.api-status{font-size:.85rem;font-weight:500;transition:color .3s}.api-status.testing{color:#6c757d}.api-status.success{color:var(--success-color)}.api-status.error{color:var(--danger-color)}.airport-input-container{position:relative}.airport-input-container .dropdown{position:absolute;width:100%;max-height:200px;overflow-y:auto;background:var(--white);border:1px solid var(--border-color);border-radius:4px;z-index:1000;margin-top:2px;box-shadow:0 4px 8px #0000001a}.dropdown-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--light-gray);font-size:14px}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background-color:#0735901f}.dropdown-item.highlight{background-color:#07359033}.airport-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.airport-tag{display:inline-flex;align-items:center;background:linear-gradient(135deg,#0735901a,#f1c9331a);border:1px solid rgba(7,53,144,.2);border-radius:20px;padding:6px 14px;font-size:.85rem;font-weight:600;color:var(--ryanair-blue);transition:all .2s ease;position:relative;overflow:hidden}.airport-tag:before{content:"✈️";margin-right:6px;font-size:.9em}.airport-tag:hover{background:linear-gradient(135deg,#07359026,#f1c93326);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.remove-tag{margin-left:6px;cursor:pointer;font-weight:700;color:#666;opacity:.7;padding:0 4px;border-radius:50%;line-height:1;transition:all .2s ease}.remove-tag:hover{opacity:1;color:var(--danger-color);background-color:#dc35451a;transform:scale(1.1)}.airport-group-selector-container{position:relative}.airport-group-selector-container .group-dropdown{position:absolute;top:calc(100% + 4px);left:0;width:100%;max-height:400px;overflow-y:auto;background:var(--white);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 24px #07359026;z-index:1200;padding:12px 0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.airport-group-selector-container .group-dropdown:after{content:"";position:absolute;top:-8px;left:32px;border-width:8px;border-style:solid;border-color:transparent transparent var(--white) transparent}.airport-group-selector-container .group-category+.group-category{border-top:2px solid rgba(13,71,161,.08);margin-top:12px;padding-top:12px}.group-category{padding:8px 16px 12px}.category-header{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:#0d47a1;cursor:pointer;padding:10px 8px;-webkit-user-select:none;user-select:none;border-radius:6px;transition:background-color .2s ease}.category-header:hover{background-color:#0d47a10d}.category-header:focus{outline:none;box-shadow:none}.category-icon{font-size:14px;transition:transform .2s ease;color:#5c6bc0}.category-label{display:flex;align-items:center;gap:8px;font-size:15px}.category-groups{margin-top:10px;display:flex;flex-direction:column;gap:10px}.group-item{border:1px solid rgba(13,71,161,.25);border-radius:8px;padding:14px 16px;cursor:pointer;background:#f9fbff;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background-color .15s ease;display:flex;flex-direction:column;gap:8px;touch-action:manipulation}.group-item:hover,.group-item.highlight{border-color:#0d47a180;background:#fff;box-shadow:0 8px 20px #0d47a126;transform:translateY(-2px)}.group-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.group-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:11px;padding:5px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;flex-shrink:0}.group-name{font-size:17px;font-weight:700;color:#0d47a1;flex:1;text-align:left;line-height:1.3}.group-item-details{display:flex;align-items:center;gap:12px;font-size:14px;color:#546e7a;flex-wrap:wrap}.group-code{font-weight:700;color:#0d47a1;font-family:Courier New,monospace;background:#0d47a114;padding:3px 8px;border-radius:4px;font-size:12px}.group-airport-count{font-weight:600;color:#5c6bc0}.group-description{font-size:14px;color:#607d8b;line-height:1.5;margin-top:4px}.group-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.airport-group-selector-container .group-tag{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1px solid rgba(13,71,161,.25);border-radius:999px;padding:6px 12px;font-size:13px;color:#0d47a1;box-shadow:0 2px 6px #0d47a114}.airport-group-selector-container .group-tag-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;color:inherit}.airport-group-selector-container .group-tag-name{font-weight:600}.airport-group-selector-container .group-tag-count{font-size:12px;opacity:.8}.airport-group-selector-container .remove-tag{color:#0d47a1;background:#0d47a114;border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;margin-left:4px}.airport-group-selector-container .remove-tag:hover,.airport-group-selector-container .remove-tag:focus{background:#0d47a12e;color:#0a357d}.airport-group-selector-container .loading-message,.airport-group-selector-container .no-groups-message{padding:20px;text-align:center;color:#607d8b}.group-item.selected{background:#e8f5e9;border-color:#388e3c4d}.group-item.selected .group-name{color:#2e7d32}.selected-indicator{color:#4caf50;font-weight:700;font-size:16px}.selected-badge{display:inline-flex;align-items:center;padding:2px 8px;background:#4caf50;color:#fff;border-radius:12px;font-size:11px;font-weight:600;margin-left:auto}@media (max-width: 768px){.airport-group-selector-container .group-dropdown{position:fixed;left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:calc(100% - 32px);max-width:480px;max-height:70vh;border-radius:16px;padding:12px;box-shadow:0 8px 32px #0000004d;z-index:9999}.airport-group-selector-container .group-dropdown:after{display:none}.airport-group-selector-container:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9998;display:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.airport-group-selector-container:has(.dropdown-visible):before{display:block}.group-item{font-size:14px;padding:16px 14px;min-height:56px}.category-header{padding:14px 0;min-height:48px;font-size:15px}.airport-group-selector-container .remove-tag{width:44px;height:44px;padding:10px;margin-left:8px}.airport-group-selector-container .group-tag{font-size:14px;padding:10px 14px;min-height:44px}.group-description{display:none}.category-groups{position:relative}.airport-group-selector-container .loading-message{padding:16px;font-size:14px}.selected-badge{font-size:12px;padding:4px 10px}}.table-container{width:100%;overflow-x:auto;margin-bottom:20px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 8px 32px #1f26871a}.drag-instructions{text-align:center;margin:8px 0;color:#555;font-style:italic;background:#f8f9fa99;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:6px 12px;border-radius:8px;font-size:.85em;border:1px solid rgba(0,0,0,.05)}.flight-table{width:100%;min-width:800px;border-collapse:collapse}.flight-table th,.flight-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;font-size:13px;vertical-align:middle}.flight-table th.center-align,.flight-table td.center-align{text-align:center}.flight-table th.right-align,.flight-table td.right-align{text-align:right}.flight-table th{background:linear-gradient(135deg,#f8f9fae6,#e9ecefe6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-weight:600;color:var(--dark-gray);position:sticky;top:0;z-index:10;border-bottom-width:2px;border-bottom-color:#0000001a;cursor:grab;transition:all .3s cubic-bezier(.4,0,.2,1)}.flight-table th:hover{background:linear-gradient(135deg,#e9eceff2,#dee2e6f2);box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.flight-table th:active{cursor:grabbing;background:linear-gradient(135deg,#ffcd00e6,#ffdc3ce6);color:var(--dark-gray);transform:translateY(0)}.flight-table tbody tr{transition:all .2s ease}.flight-table tbody tr:hover{background:linear-gradient(90deg,#0735900a,#0735900f);box-shadow:0 2px 8px #07359014;transform:scale(1.002)}.flight-table tbody tr:nth-child(2n){background-color:#f8f9fa4d}.flight-table tbody tr:nth-child(2n):hover{background:linear-gradient(90deg,#0735900d,#07359012)}.time-cell{padding:8px 12px!important;border-radius:8px;text-align:center!important;font-weight:600;min-width:70px;box-shadow:0 2px 4px #0000000d;transition:all .2s ease}.airline-cell{min-width:50px}.airline-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:6px;font-weight:700;font-size:.8rem;color:#fff;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #00000026;transition:transform .2s ease}.airline-badge:hover{transform:scale(1.05)}.airline-badge.ryanair{background:linear-gradient(135deg,#073590,#0a4bb8)}.airline-badge.wizzair{background:linear-gradient(135deg,#c6007e,#e91e8c)}.airline-badge:not(.ryanair):not(.wizzair){background:linear-gradient(135deg,#6c757d,#868e96)}.mixed-airline-badges{display:flex;align-items:center;justify-content:center;gap:4px}.mixed-airline-badges .airline-badge{padding:3px 6px;font-size:.7rem}.airline-separator{font-weight:700;color:var(--text-secondary);font-size:.75rem}.price-cell{font-weight:600;color:var(--ryanair-blue);min-width:90px;position:relative}.price-link{display:block;color:var(--ryanair-blue);text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);padding:8px 12px;border-radius:8px;font-size:1.05em;font-weight:700}.price-link:hover{background:linear-gradient(135deg,#ffcd0033,#ffdc3c4d);color:var(--dark-gray);transform:translateY(-2px);box-shadow:0 4px 12px #ffcd004d}.time-early-morning{background:linear-gradient(135deg,#e8f5e9cc,#c8e6c999);color:#1b5e20;border:1px solid rgba(27,94,32,.2)}.time-morning{background:linear-gradient(135deg,#e3f2fdcc,#bbdefb99);color:#0d47a1;border:1px solid rgba(13,71,161,.2)}.time-afternoon{background:linear-gradient(135deg,#fff8e1cc,#ffecb399);color:#ff6f00;border:1px solid rgba(255,111,0,.2)}.time-night{background:linear-gradient(135deg,#ede7f6cc,#d1c4e999);color:#4a148c;border:1px solid rgba(74,20,140,.2)}.time-unknown{background:linear-gradient(135deg,#f5f5f5cc,#e0e0e099);color:#616161;border:1px solid rgba(97,97,97,.2)}.airport-cell{font-weight:500;text-align:left!important;line-height:1.4;min-width:120px;max-width:140px;white-space:normal;overflow:hidden;text-overflow:ellipsis}.airport-code{font-size:.8em;color:#666;font-weight:400;display:block;margin-top:3px}.airport-flag,.airport-icon{margin-right:5px;font-size:1.1em;vertical-align:middle}.settings-panel .collapse-toggle{padding:16px 24px;background-color:#f8f9fa;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid var(--border-color)}.settings-panel .collapse-toggle:hover{background-color:#e9ecef}.settings-panel .collapse-toggle .icon{transition:transform .3s ease-out;font-weight:700;color:var(--primary-color);font-size:1.2em}.settings-panel .collapse-toggle.collapsed .icon{transform:rotate(-90deg)}.settings-panel .collapse-content{padding:24px;transition:max-height .35s ease-out,opacity .3s ease-out,padding .3s ease-out,visibility .3s ease-out;max-height:1000px;overflow:hidden;opacity:1;visibility:visible}.settings-panel .collapse-content.collapsed{max-height:0;opacity:0;padding-top:0;padding-bottom:0;border-top:none;visibility:hidden}.column-section{margin-bottom:20px}.column-section-title{font-weight:600;margin-bottom:12px;color:var(--ryanair-blue);font-size:1rem}.column-options{display:flex;flex-wrap:wrap;gap:10px 20px}.column-toggle{display:flex;align-items:center;cursor:pointer;padding:4px 0}.column-toggle input[type=checkbox]{margin-right:8px;width:16px;height:16px;cursor:pointer;accent-color:var(--ryanair-blue)}.column-toggle label{margin-bottom:0;font-weight:400;color:var(--dark-gray);font-size:14px;-webkit-user-select:none;user-select:none}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:#666;min-height:150px}.spinner{display:inline-block;width:36px;height:36px;border:4px solid rgba(0,0,0,.1);border-radius:50%;border-left-color:var(--ryanair-blue);animation:spin 1s linear infinite;margin-bottom:15px}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background-color:#dc35450d;color:#721c24;padding:15px 20px;border:1px solid rgba(220,53,69,.2);border-left:5px solid var(--danger-color);border-radius:6px;margin-bottom:20px}.error-message .error-title{font-weight:600;margin-bottom:8px;font-size:1.1em}.no-results{text-align:center;padding:40px 20px;color:#666;background-color:#f8f9fa;border-radius:8px;border:1px dashed var(--border-color);margin-top:20px}.no-results-container{margin-top:20px;min-height:200px;display:flex;align-items:center;justify-content:center}.no-results p{margin:0 0 10px;font-size:1.1rem}.no-results-hint{font-size:.9rem;color:#999}.active-filters-info{margin:16px 0;padding:12px 16px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px;text-align:left;display:inline-block}.active-filters-label{font-weight:600;color:#856404;margin-bottom:8px!important;font-size:.95rem}.active-filters-list{list-style:none;padding:0;margin:0}.active-filters-list li{padding:4px 0;color:#856404;font-size:.9rem}.active-filters-list li:before{content:"• ";color:#ffc107}.results-header{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid var(--border-color);gap:15px}.results-count{font-weight:600;color:var(--dark-gray);font-size:1.1em}.sort-controls{display:flex;align-items:center;gap:8px}.sort-controls label{margin-bottom:0;font-weight:500;font-size:.9rem;color:#555}.sort-controls select{padding:6px 10px;font-size:14px;min-width:180px;border-radius:4px;border:1px solid var(--border-color)}.filter-panel{background:#fff;padding:0;margin-bottom:20px;border-radius:8px;border:1px solid #e9ecef;box-shadow:0 2px 4px #0000000a;overflow:hidden}.filter-panel-header{background:linear-gradient(135deg,var(--ryanair-blue) 0%,#052a73 100%);color:#fff;padding:12px 20px;font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:8px;width:100%;border:none;cursor:pointer;text-align:left;transition:background .2s ease}.filter-panel-header:hover{background:linear-gradient(135deg,#052a73,#041d52)}.filter-panel-header:focus{outline:2px solid var(--ryanair-yellow);outline-offset:-2px}.filter-panel-header:focus-visible{outline:3px solid var(--ryanair-yellow);outline-offset:-3px}.filter-panel-header:before{content:"🔍";font-size:1.1em}.filter-panel-content{padding:20px;background:#fafafa}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}.filter-row:last-of-type{margin-bottom:20px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-label{font-size:.8rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:8px;line-height:1.4}.filter-label .label-icon{font-size:1em;opacity:.8;flex-shrink:0;width:1.2em;text-align:center}.filter-input-group{display:flex;align-items:center;gap:8px;background:#fff;padding:10px;border-radius:6px;border:1px solid #e0e0e0;transition:all .2s ease}.filter-input-group:hover{border-color:var(--ryanair-blue);box-shadow:0 2px 8px #00000014}.filter-input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:all .2s ease;background:#fff;flex:1}.filter-input:focus{border-color:var(--ryanair-blue);outline:none;box-shadow:0 0 0 2px #0735901a}.filter-group-full{width:100%}.filter-airlines{display:flex;gap:12px;flex-wrap:wrap}.filter-airline-checkbox{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;border:2px solid var(--border-color);background:var(--bg-primary);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.filter-airline-checkbox:hover{border-color:var(--ryanair-blue);transform:translateY(-1px);box-shadow:0 2px 8px #07359026}.filter-airline-checkbox.checked{border-color:var(--ryanair-blue);background:linear-gradient(135deg,#07359014,#f1c93314)}.filter-airline-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.filter-airline-checkbox span:last-child{font-weight:500;font-size:.9rem}.filter-airline-checkbox.checked span:last-child{font-weight:600}.filter-input[type=number]{width:70px;text-align:center}.time-input{width:90px!important}.filter-separator{color:#999;font-weight:600;font-size:.9em}.filter-reset-btn{background-color:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px;margin:0 auto}.filter-reset-btn:hover{background-color:#5a6268;transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.filter-reset-btn:before{content:"↺";font-size:1.2em}.deduplication-stats{background-color:#07359008;padding:15px 20px;margin-bottom:20px;border-radius:6px;border-left:4px solid var(--ryanair-blue);box-shadow:0 1px 3px #0000000a}.deduplication-stats h4{margin-top:0;margin-bottom:12px;color:var(--ryanair-blue);font-size:1.1rem;font-weight:600}.stats-row{display:flex;flex-wrap:wrap;gap:10px 25px;margin-bottom:8px;font-size:14px;color:#555}.stat-item{display:flex;align-items:center}.stat-value{font-weight:600;margin-left:6px;color:var(--dark-gray)}.savings-value{color:var(--success-color);font-weight:700}.buy-ticket{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff!important;padding:8px 16px;border-radius:8px;text-decoration:none!important;font-weight:600;font-size:13px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #28a74540;border:none;white-space:nowrap;min-width:110px;text-align:center;position:relative;overflow:hidden}.buy-ticket:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.buy-ticket:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1ea87a);transform:translateY(-2px);box-shadow:0 4px 16px #28a74559;color:#fff!important}.buy-ticket:hover:not(:disabled):before{left:100%}.buy-ticket:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #28a74540}.buy-ticket:disabled{background:linear-gradient(135deg,#a3d9b199,#a3d9b166);cursor:not-allowed;opacity:.6}.buy-ticket svg{flex-shrink:0}.buy-ticket span{flex-shrink:0}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:700}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.tooltip{position:relative;display:inline-block;cursor:help;border-bottom:1px dotted #666}.tooltip .tooltip-text{visibility:hidden;position:absolute;z-index:1;bottom:125%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:5px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;transition:opacity .2s}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}@media (max-width: 992px){.search-form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media (max-width: 768px){body{font-size:13px}.container{padding:15px}h2{font-size:1.2rem;margin-bottom:18px}h3{font-size:1.1rem;margin-bottom:14px}.search-form-footer{flex-direction:column;align-items:stretch}.api-status-container{justify-content:space-between}.search-form-footer .btn-primary{width:100%}.results-header{flex-direction:column;align-items:flex-start}.filter-panel{flex-direction:column;align-items:stretch}.filter-group{justify-content:space-between}.filter-input[type=number]{width:60px}.flight-table th,.flight-table td{font-size:12px;padding:8px 6px}.airport-cell{min-width:120px}.price-cell{min-width:80px}.buy-ticket{font-size:12px;padding:5px 10px;min-width:80px}}@media (max-width: 576px){.logo{font-size:18px}.search-form-grid,.settings-grid{grid-template-columns:1fr}.column-options{gap:8px 15px}.column-toggle label{font-size:13px}}.time-legend{background-color:#f8f9fa;padding:15px;margin-bottom:20px;border-radius:6px;border:1px solid #e9ecef}.time-legend h4{margin:0 0 10px;color:var(--ryanair-blue);font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.legend-items{display:flex;flex-wrap:wrap;gap:15px}.legend-item{display:flex;align-items:center;gap:8px}.legend-color{display:inline-block;width:24px;height:24px;border-radius:4px;border:1px solid rgba(0,0,0,.1);box-shadow:inset 0 1px 2px #0000000d}.legend-label{font-size:13px;color:#555;font-weight:500}.App{min-height:100vh;display:flex;flex-direction:column;background-color:var(--light-gray)}.App-header{background:var(--glass-white);backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);position:sticky;top:0;z-index:var(--z-index-sticky);border-bottom:1px solid var(--glass-border);box-shadow:var(--shadow-glass);padding:var(--space-3) var(--space-6);transition:var(--transition-all-normal)}.App-header.scrolled{box-shadow:var(--shadow-glass-lg);background:var(--glass-white-strong)}.App-header h1{margin:0 0 var(--space-2) 0;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);color:var(--brand-primary);background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.App-header nav{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-1)}.App-header nav a{color:var(--text-primary);text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-full);background:#ffffff80;border:1px solid var(--glass-border);transition:var(--transition-all-normal);margin-left:0}.App-header nav a:hover{background:var(--glass-white-strong);border-color:var(--brand-primary);color:var(--brand-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.App-header nav a:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.App-header nav span{color:var(--text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-full);background:var(--glass-white-subtle);border:1px solid var(--glass-border)}.App-header nav button{background:linear-gradient(135deg,var(--brand-accent) 0%,var(--brand-accent-dark) 100%);color:var(--color-neutral-900);border:none;padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-all-normal);box-shadow:var(--shadow-sm)}.App-header nav button:hover{background:linear-gradient(135deg,var(--brand-accent-light) 0%,var(--brand-accent) 100%);transform:translateY(-2px);box-shadow:var(--shadow-accent)}.App-header nav button:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.header-controls{position:absolute;top:var(--space-3);right:var(--space-6);display:flex;align-items:center;gap:var(--space-3)}.settings-toggle{background:var(--glass-white-subtle);color:var(--text-primary);border:1px solid var(--glass-border);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition-all-normal);box-shadow:var(--shadow-xs)}.settings-toggle:hover{background:var(--glass-white-strong);border-color:var(--brand-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.settings-toggle:active{transform:translateY(0);box-shadow:var(--shadow-xs)}main{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}footer{background-color:#f8f9fa;border-top:1px solid var(--border-color);padding:1rem 2rem;text-align:center;color:#666;font-size:.85rem}.search-panel{background:#fff;box-shadow:0 4px 20px #00000014;transition:transform .2s ease;position:relative;overflow:hidden}.search-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--ryanair-blue) 0%,var(--ryanair-yellow) 100%)}.search-panel:hover{transform:translateY(-2px);box-shadow:0 6px 25px #0000001a}.results-panel{background:#fff;animation:fadeInUp .3s ease-out}.search-warnings{background-color:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-left:5px solid var(--warning-color);border-radius:6px;padding:15px 20px;margin-bottom:20px}.search-warnings h4{color:#856404;margin:0 0 10px;font-size:1rem}.search-warnings ul{margin:0;padding-left:20px}.search-warnings li{color:#856404;margin-bottom:5px}.loading-container{animation:fadeIn .3s ease-out}@media (max-width: 768px){.time-legend{padding:12px}.legend-items{flex-direction:column;gap:10px}.filter-row{grid-template-columns:1fr}.filter-input[type=number]{width:60px}.time-input{width:80px!important}.filter-panel-content{padding:16px}.App-header{padding:var(--space-2) var(--space-3)}.App-header h1{font-size:var(--font-size-lg);margin-bottom:var(--space-1)}.App-header nav{gap:var(--space-1-5)}.App-header nav a,.App-header nav button,.App-header nav span{font-size:var(--font-size-xs);padding:var(--space-1-5) var(--space-3)}.header-controls{position:static;width:100%;justify-content:flex-end;margin-top:var(--space-2)}.settings-toggle{flex:1;max-width:200px}main{padding:1rem}}.time-range-selector{display:flex;align-items:center;gap:10px;width:100%}.time-select-wrapper{display:flex;flex-direction:column;gap:4px;flex:1}.time-select-label{font-size:.7rem;color:#999;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.time-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer;transition:all .2s ease;width:100%}.time-select:focus{border-color:var(--ryanair-blue);outline:none;box-shadow:0 0 0 2px #0735901a}.time-select:hover{border-color:var(--ryanair-blue)}.time-range-separator{color:#999;font-weight:600;margin-top:20px}.results-panel.no-flights-match{min-height:400px}.filter-panel{transition:none}.pagination-container{text-align:center;margin:40px 0;padding:20px;border-top:1px solid #e0e0e0}.load-more-button{background-color:var(--ryanair-blue);color:#fff;border:none;padding:12px 30px;font-size:16px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .3s ease}.load-more-button:hover:not(:disabled){background-color:var(--ryanair-yellow);color:var(--ryanair-blue);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.load-more-button:disabled{opacity:.6;cursor:not-allowed}.pagination-info{margin-top:10px;color:#666;font-size:14px}.selection-mode-toggle{grid-column:1 / -1;margin-bottom:1rem}.toggle-buttons{display:flex;gap:.5rem;margin-top:.5rem}.btn-toggle{flex:1;padding:.5rem 1rem;border:2px solid #ddd;background-color:#fff;color:#333;cursor:pointer;border-radius:4px;transition:all .2s ease;font-size:14px}.btn-toggle:hover:not(:disabled){border-color:var(--ryanair-blue);background-color:#f0f0f0}.btn-toggle.active{border-color:var(--ryanair-blue);background-color:var(--ryanair-blue);color:#fff;font-weight:700}.btn-toggle:disabled{opacity:.5;cursor:not-allowed}.selection-summary{grid-column:1 / -1;padding:.75rem;background-color:#f0f8ff;border-left:3px solid var(--ryanair-blue);border-radius:4px;margin-bottom:.5rem}.selection-summary small{color:#666;font-size:.875rem}.group-tag{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:#2196f3}.group-airport-count{font-size:.85em;color:#666;font-style:italic;margin-left:4px}.input-spinner{font-size:.875rem;color:#666;margin-top:.25rem;font-style:italic}.dropdown-item .group-airport-count{display:inline-block;margin-left:5px}.search-context{background:linear-gradient(135deg,#e3f2fd,#f3f4f6);border:1px solid #90caf9;border-radius:8px;padding:16px 20px;margin-bottom:20px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;box-shadow:0 2px 8px #0d47a114}.search-context-section{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-context-section strong{color:#0d47a1;font-weight:600;font-size:14px}.search-context .context-item{background:#fff;padding:4px 12px;border-radius:16px;font-size:13px;color:#555;border:1px solid rgba(13,71,161,.2);margin-right:6px}.search-context .context-item:last-child{margin-right:0}.filter-toggle-hint{font-size:.75rem;color:#fffc;font-weight:400;margin-left:8px}@media (max-width: 768px){.selection-mode-toggle{margin-bottom:.75rem}.toggle-buttons{flex-direction:column;gap:.25rem}.btn-toggle{width:100%}.selection-summary{font-size:.75rem;padding:.5rem}.search-context{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 16px}.search-context-section{flex-direction:column;align-items:flex-start;gap:6px}.filter-panel-header{padding:10px 16px;font-size:.85rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out forwards}.animate-fade-in-slow{animation:fadeIn var(--transition-slow) ease-out forwards}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out forwards}.animate-slide-in-right{animation:slideInRight var(--transition-normal) ease-out forwards}.animate-slide-in-left{animation:slideInLeft var(--transition-normal) ease-out forwards}.animate-scale-in{animation:scaleIn var(--transition-normal) ease-out forwards}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,var(--color-neutral-200) 0%,var(--color-neutral-100) 50%,var(--color-neutral-200) 100%);background-size:1000px 100%;animation:shimmer 2s infinite linear}[data-theme=dark] .animate-shimmer{background:linear-gradient(90deg,var(--color-neutral-800) 0%,var(--color-neutral-700) 50%,var(--color-neutral-800) 100%);background-size:1000px 100%}.animate-shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}.stagger-animation>*{opacity:0;animation:fadeInUp var(--transition-slow) ease-out forwards}.stagger-animation>*:nth-child(1){animation-delay:50ms}.stagger-animation>*:nth-child(2){animation-delay:.1s}.stagger-animation>*:nth-child(3){animation-delay:.15s}.stagger-animation>*:nth-child(4){animation-delay:.2s}.stagger-animation>*:nth-child(5){animation-delay:.25s}.stagger-animation>*:nth-child(6){animation-delay:.3s}.stagger-animation>*:nth-child(7){animation-delay:.35s}.stagger-animation>*:nth-child(8){animation-delay:.4s}.stagger-animation>*:nth-child(9){animation-delay:.45s}.stagger-animation>*:nth-child(10){animation-delay:.5s}.stagger-animation>*:nth-child(n+11){animation-delay:.55s}button,.btn,a.button,input[type=submit],input[type=button]{transition:all var(--transition-normal);position:relative;overflow:hidden}button:hover:not(:disabled),.btn:hover:not(:disabled),a.button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}button:active:not(:disabled),.btn:active:not(:disabled),a.button:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}button:disabled,.btn:disabled,a.button:disabled{opacity:var(--state-disabled-opacity);cursor:not-allowed;transform:none!important}button:after,.btn: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;pointer-events:none}button:active:after:not(:disabled),.btn:active:after:not(:disabled){width:300px;height:300px;opacity:0}.focus-ring:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:none;box-shadow:var(--state-focus-ring);border-radius:var(--radius-sm)}.focus-ring-error:focus-visible{box-shadow:var(--state-focus-ring-error)}.focus-ring-success:focus-visible{box-shadow:0 0 0 3px #22c55e33}.focus-ring-accent:focus-visible{box-shadow:0 0 0 3px #f1c9334d}.focus-ring-inset:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--border-focus)}.card,.glass-card{transition:all var(--transition-normal)}.card:hover,.glass-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}a{transition:color var(--transition-fast),opacity var(--transition-fast)}a:hover{opacity:var(--state-hover-opacity)}input,textarea,select{transition:all var(--transition-normal)}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--border-focus)}.skeleton{background:linear-gradient(90deg,var(--color-neutral-200) 0%,var(--color-neutral-100) 50%,var(--color-neutral-200) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}[data-theme=dark] .skeleton{background:linear-gradient(90deg,var(--color-neutral-800) 0%,var(--color-neutral-700) 50%,var(--color-neutral-800) 100%);background-size:200% 100%}.page-enter{animation:fadeInUp var(--transition-slower) ease-out}.component-mount,.modal-enter{animation:scaleIn var(--transition-normal) ease-out}.toast-enter{animation:slideInRight var(--transition-normal) ease-out}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-fade-in,.animate-fade-in-slow,.animate-fade-in-up,.animate-slide-in-right,.animate-slide-in-left,.animate-scale-in,.animate-pulse,.animate-bounce,.animate-shimmer,.animate-shake,.stagger-animation>*{animation:none!important;opacity:1!important;transform:none!important}button:hover,.btn:hover,.card:hover,.glass-card:hover{transform:none!important}}:root{--ease-in-out-smooth: cubic-bezier(.4, 0, .2, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out-circ: cubic-bezier(.85, 0, .15, 1);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem}.spinner{border:3px solid var(--bg-secondary);border-top:3px solid var(--ryanair-yellow);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:2rem}.access-denied h2{color:var(--color-error-500);margin-bottom:1rem}.access-denied p{color:var(--text-secondary);margin-bottom:2rem}.access-denied button{background-color:var(--ryanair-yellow);color:var(--ryanair-blue);border:none;padding:.75rem 2rem;border-radius:4px;font-weight:700;cursor:pointer;transition:background-color .3s}.access-denied button:hover{background-color:var(--ryanair-yellow-dark)}:root{--toast-z-index: var(--z-index-notification);--toast-width: 400px;--toast-min-height: 64px;--toast-padding: var(--space-4) var(--space-5);--toast-gap: var(--space-3)}.toast-container{position:fixed;top:var(--space-5);right:var(--space-5);z-index:var(--toast-z-index);display:flex;flex-direction:column;gap:var(--toast-gap);pointer-events:none;max-width:var(--toast-width);width:100%}.toast{background:var(--glass-white-strong);backdrop-filter:var(--blur-xl);-webkit-backdrop-filter:var(--blur-xl);border:1px solid var(--glass-border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-glass-lg);min-height:var(--toast-min-height);padding:var(--toast-padding);display:flex;align-items:flex-start;gap:var(--space-3);position:relative;pointer-events:all;transform:translate(100%);opacity:0;transition:var(--transition-all-normal);word-wrap:break-word;overflow-wrap:break-word}.toast.toast-entering{transform:translate(0);opacity:1}.toast.toast-exiting{transform:translate(100%);opacity:0;pointer-events:none}.toast.toast-success{border-left:4px solid var(--color-success-500);box-shadow:var(--shadow-glass-lg),var(--shadow-success);color:var(--text-primary)}.toast.toast-error{border-left:4px solid var(--color-error-500);box-shadow:var(--shadow-glass-lg),var(--shadow-error);color:var(--text-primary)}.toast.toast-warning{border-left:4px solid var(--color-warning-500);box-shadow:var(--shadow-glass-lg),0 10px 25px -5px #f973164d;color:var(--text-primary)}.toast.toast-info{border-left:4px solid var(--color-info-500);box-shadow:var(--shadow-glass-lg),0 10px 25px -5px #3b82f64d;color:var(--text-primary)}.toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:var(--space-0-5);line-height:1}.toast-success .toast-icon{color:var(--color-success-600)}.toast-error .toast-icon{color:var(--color-error-600)}.toast-warning .toast-icon{color:var(--color-warning-600)}.toast-info .toast-icon{color:var(--color-info-600)}.toast-content{flex:1;min-width:0}.toast-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);line-height:var(--line-height-snug);margin:0 0 var(--space-1) 0;color:var(--text-primary)}.toast-message{font-size:var(--font-size-xs);line-height:var(--line-height-normal);margin:0;color:var(--text-secondary)}.toast-close{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;line-height:1;transition:var(--transition-colors);border-radius:var(--radius-sm);margin-left:var(--space-2);margin-top:calc(-1 * var(--space-0-5));flex-shrink:0}.toast-close:hover{color:var(--text-primary);background:var(--overlay-light)}.toast-close:focus-visible{outline:none;box-shadow:var(--state-focus-ring)}.toast-progress{position:absolute;bottom:0;left:0;height:4px;background:#0003;border-radius:0 0 var(--radius-xl) var(--radius-xl);transform-origin:left;animation-timing-function:linear;animation-fill-mode:forwards;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm)}.toast-success .toast-progress{background:linear-gradient(90deg,var(--color-success-500),var(--color-success-600))}.toast-error .toast-progress{background:linear-gradient(90deg,var(--color-error-500),var(--color-error-600))}.toast-warning .toast-progress{background:linear-gradient(90deg,var(--color-warning-500),var(--color-warning-600))}.toast-info .toast-progress{background:linear-gradient(90deg,var(--color-info-500),var(--color-info-600))}.toast-progress.animate-5s{animation:shrink 5s}.toast-progress.animate-3s{animation:shrink 3s}.toast-progress.animate-7s{animation:shrink 7s}@keyframes shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width: 768px){.toast-container{left:var(--space-5);right:var(--space-5);max-width:none;top:var(--space-20)}.toast{padding:var(--space-3-5) var(--space-4);transform:translateY(-100%)}.toast.toast-entering{transform:translateY(0)}.toast.toast-exiting{transform:translateY(-100%)}}@media (prefers-contrast: high){.toast{border-width:2px;backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}[data-theme=dark] .toast{background:var(--color-neutral-800)}.toast-close:focus-visible{outline:3px solid currentColor;outline-offset:2px;box-shadow:none}}@media (prefers-reduced-motion: reduce){.toast{transition:opacity var(--transition-fast)}.toast-progress{animation:none;display:none}}@media print{.toast-container{display:none}}.search-progress{background:var(--bg-secondary, #f5f5f5);border-radius:8px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.search-progress-complete{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #4CAF50}.search-progress-error{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:1px solid #f44336}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-title{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text-primary, #333)}.progress-spinner{animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.progress-success{color:#4caf50}.progress-error{color:#f44336}.progress-message{font-size:14px}.progress-cancel{background:transparent;border:1px solid #999;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:14px;color:#666;display:flex;align-items:center;justify-content:center;transition:all .2s}.progress-cancel:hover{background:#f44336;border-color:#f44336;color:#fff}.progress-bar-container{position:relative;height:24px;background:var(--bg-tertiary, #e0e0e0);border-radius:12px;overflow:hidden;margin-bottom:12px}.progress-bar{height:100%;background:linear-gradient(90deg,#2196f3,#1976d2);border-radius:12px;transition:width .3s ease}.progress-bar-animated{background:linear-gradient(90deg,#2196f3,#64b5f6,#2196f3,#64b5f6,#2196f3);background-size:200% 100%;animation:shimmer 2s infinite linear}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-percent{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.airlines-progress{display:flex;gap:16px;flex-wrap:wrap}.airline-progress{flex:1;min-width:200px;padding:12px;background:var(--bg-primary, white);border-radius:8px;border:1px solid var(--border-color, #ddd)}.airline-ryanair{border-left:4px solid #073590}.airline-wizzair{border-left:4px solid #c6007e}.airline-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.airline-icon{font-size:16px}.airline-name{font-weight:600;font-size:13px;color:var(--text-primary, #333)}.airline-status{margin-left:auto;font-size:11px;color:var(--text-secondary, #666);text-transform:uppercase}.airline-bar-container{height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.airline-bar{height:100%;border-radius:3px;transition:width .3s ease}.airline-bar-pending{background:#bdbdbd}.airline-bar-searching{background:linear-gradient(90deg,#2196f3,#64b5f6,#2196f3);background-size:200% 100%;animation:shimmer 1.5s infinite linear}.airline-bar-complete{background:#4caf50}.airline-bar-error{background:#f44336}.airline-result{margin-top:8px;font-size:12px;color:#4caf50}.airline-routes{margin-top:4px;font-size:11px;color:var(--text-secondary, #666)}.airline-error{margin-top:8px;font-size:11px;color:#f44336}.progress-elapsed{text-align:right;font-size:11px;color:var(--text-secondary, #666);margin-top:8px}@media (prefers-color-scheme: dark){.search-progress{background:#2d2d2d}.search-progress-complete{background:linear-gradient(135deg,#1b5e20,#2e7d32)}.search-progress-error{background:linear-gradient(135deg,#b71c1c,#c62828)}.progress-bar-container{background:#424242}.airline-progress{background:#1e1e1e;border-color:#444}.airline-bar-container{background:#424242}}@media (max-width: 600px){.airlines-progress{flex-direction:column}.airline-progress{min-width:unset}}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;min-height:200px}.loading-spinner{border:3px solid #f3f3f3;border-top:3px solid #003580;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.theme-toggle-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:12px;cursor:pointer;font-size:.875rem;font-weight:500;font-family:inherit;background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);box-shadow:0 2px 8px #0000001a,0 1px 2px #0000000f;transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--text-primary, #1a1a1a)}[data-theme=dark] .theme-toggle-button{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-primary, #ffffff);box-shadow:0 2px 8px #0000004d,0 1px 2px #0003}.theme-toggle-button:hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-1px);box-shadow:0 4px 12px #00000026,0 2px 4px #00000014}[data-theme=dark] .theme-toggle-button:hover{background:#ffffff1a;border-color:#fff3;box-shadow:0 4px 12px #0006,0 2px 4px #00000040}.theme-toggle-button:focus{outline:none;border-color:#3b82f680;box-shadow:0 0 0 3px #3b82f61a,0 4px 12px #00000026}[data-theme=dark] .theme-toggle-button:focus{border-color:#60a5fa80;box-shadow:0 0 0 3px #60a5fa26,0 4px 12px #0006}.theme-toggle-button:active{transform:translateY(0);box-shadow:0 1px 4px #0000001a,0 .5px 1px #0000000d}.theme-toggle-icon-wrapper{display:flex;align-items:center;justify-content:center;animation:iconRotateIn .4s cubic-bezier(.4,0,.2,1)}@keyframes iconRotateIn{0%{transform:rotate(-180deg) scale(.8);opacity:0}50%{transform:rotate(-90deg) scale(.9);opacity:.5}to{transform:rotate(0) scale(1);opacity:1}}.theme-toggle-icon{width:1.25rem;height:1.25rem;stroke-width:2;transition:transform .3s ease}.theme-toggle-button:hover .theme-toggle-icon{transform:scale(1.1)}.theme-toggle-label{font-weight:600;letter-spacing:.01em}.theme-toggle-hint{font-size:.75rem;opacity:.6;font-weight:400}@media (max-width: 640px){.theme-toggle-button{padding:.5rem;gap:0}.theme-toggle-label,.theme-toggle-hint{display:none}.theme-toggle-icon{width:1.5rem;height:1.5rem}}@media (prefers-contrast: high){.theme-toggle-button{border-width:2px;border-color:currentColor}}@media (prefers-reduced-motion: reduce){.theme-toggle-button,.theme-toggle-icon,.theme-toggle-icon-wrapper{transition:none;animation:none}}.theme-toggle-button:focus-visible{outline:2px solid rgba(59,130,246,.8);outline-offset:2px}[data-theme=dark] .theme-toggle-button:focus-visible{outline-color:#60a5facc}
