*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}:root{--bg-page:#f0f4f8;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-selected:#eff6ff;--bg-selected-strong:#dbeafe;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--text-on-accent:#fff;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-light:#93c5fd;--accent-bg:#eff6ff;--success:#16a34a;--success-bg:#f0fdf4;--warning:#d97706;--warning-bg:#fffbeb;--error:#dc2626;--error-bg:#fef2f2;--border:#e2e8f0;--border-focus:#2563eb;--border-selected:#2563eb;--mav-primary:#1e3a5f;--mav-light:#e8eef5;--obb-primary:#c8102e;--obb-light:#fce8ec;--regiojet-primary:#f5a623;--regiojet-light:#fef3d8;--optout-primary:#64748b;--optout-light:#f1f5f9;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001a;--shadow-card:0 1px 3px #0000000f, 0 4px 12px #0000000a;--font-xs:.75rem;--font-sm:.875rem;--font-base:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:1.875rem;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--z-base:1;--z-dropdown:10;--z-sticky:20;--z-overlay:100;--z-modal:200}.loading-screen{justify-content:center;align-items:center;gap:var(--space-lg);min-height:100vh;color:var(--text-secondary);flex-direction:column;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal) forwards}.slide-up{animation:slideUp var(--transition-slow) forwards}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.survey-container{max-width:720px;padding:var(--space-md);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}@media (width>=768px){.survey-container{padding:var(--space-xl) var(--space-lg)}}.progress-wrapper{z-index:var(--z-sticky);background:var(--bg-page);padding:var(--space-sm) 0 var(--space-md);position:sticky;top:0}.progress-bar-track{background:var(--border);border-radius:var(--radius-full);height:4px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), #60a5fa);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow);min-width:2%}.progress-label{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-xs);text-align:right}.section-wrapper{animation:fadeIn var(--transition-normal) forwards;flex:1}.section-title{font-size:var(--font-lg);color:var(--text-secondary);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border);font-weight:600}@media (width>=768px){.section-title{font-size:var(--font-xl)}}.question-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-card);animation:slideUp var(--transition-normal) forwards;animation-delay:calc(var(--card-index,0) * 80ms);opacity:0}@media (width>=768px){.question-card{padding:var(--space-xl)}}.question-label{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--space-sm);font-weight:600;line-height:1.4}.question-hint{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--space-md);font-style:italic}.question-explanation{font-size:var(--font-sm);color:var(--text-secondary);background:var(--accent-bg);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-md);border-left:3px solid var(--accent-light);line-height:1.5}.question-error{font-size:var(--font-sm);color:var(--error);margin-top:var(--space-sm);display:none}.question-error.visible{animation:fadeIn var(--transition-fast) forwards;display:block}.navigation-wrapper{gap:var(--space-md);padding:var(--space-lg) 0;margin-top:auto;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:inherit;font-size:var(--font-base);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;min-height:48px;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--text-on-accent);flex:1}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-secondary:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-action{background:var(--success);color:var(--text-on-accent);width:100%;font-size:var(--font-lg);padding:1rem}.btn-action:hover{filter:brightness(1.1);box-shadow:var(--shadow-md);transform:translateY(-1px)}.info-content{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card);color:var(--text-primary);line-height:1.7}@media (width>=768px){.info-content{padding:var(--space-xl) var(--space-2xl)}}.info-content h2{font-size:var(--font-xl);margin-bottom:var(--space-md);color:var(--text-primary);font-weight:700}.info-content p{margin-bottom:var(--space-md)}.info-content p:last-child{margin-bottom:0}.screenout-wrapper{text-align:center;min-height:60vh;padding:var(--space-xl);flex-direction:column;justify-content:center;align-items:center;display:flex}.screenout-icon{margin-bottom:var(--space-lg);font-size:3rem}.screenout-message{font-size:var(--font-lg);color:var(--text-secondary);max-width:480px}.end-screen{text-align:center;min-height:60vh;padding:var(--space-xl);justify-content:center;align-items:center;gap:var(--space-lg);flex-direction:column;display:flex}.end-screen h2{font-size:var(--font-2xl);color:var(--text-primary)}.end-screen p{color:var(--text-secondary);max-width:480px}.option-list{gap:var(--space-sm);flex-direction:column;display:flex}.option-item{align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;position:relative}.option-item:hover{border-color:var(--accent-light);background:var(--bg-card-hover)}.option-item.selected{border-color:var(--border-selected);background:var(--bg-selected)}.option-item.disabled{opacity:.4;pointer-events:none}.option-item input[type=radio],.option-item input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.radio-indicator{border:2px solid var(--border);width:22px;height:22px;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.option-item.selected .radio-indicator{border-color:var(--accent)}.radio-indicator:after{content:"";background:var(--accent);width:10px;height:10px;transition:transform var(--transition-fast);border-radius:50%;transform:scale(0)}.option-item.selected .radio-indicator:after{transform:scale(1)}.checkbox-indicator{border:2px solid var(--border);border-radius:var(--radius-sm);width:22px;height:22px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.option-item.selected .checkbox-indicator{border-color:var(--accent);background:var(--accent)}.checkbox-indicator:after{content:"";width:6px;height:10px;transition:transform var(--transition-fast);border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)scale(0)}.option-item.selected .checkbox-indicator:after{transform:rotate(45deg)scale(1)}.option-label-text{font-size:var(--font-base);color:var(--text-primary);flex:1;line-height:1.4}.option-text-input{margin-top:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-sm);color:var(--text-primary);background:var(--bg-card);transition:border-color var(--transition-fast)}.option-text-input:focus{border-color:var(--border-focus);outline:none}.option-text-input:disabled{opacity:.5}.input-wrapper{position:relative}.text-input,.number-input,.date-input,.time-input{width:100%;padding:.875rem var(--space-md);border:2px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-lg);color:var(--text-primary);background:var(--bg-card);transition:border-color var(--transition-fast);min-height:48px}.text-input:focus,.number-input:focus,.date-input:focus,.time-input:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 3px #2563eb1a}.input-suffix{right:var(--space-md);color:var(--text-muted);font-size:var(--font-sm);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.input-unknown-checkbox{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;display:flex}.input-unknown-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.input-error .text-input,.input-error .number-input,.input-error .date-input,.input-error .time-input,.input-error .option-item{border-color:var(--error)}.matrix-wrapper{-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--space-lg));padding:0 var(--space-lg);overflow-x:auto}.matrix-table{border-collapse:collapse;width:100%;min-width:600px}.matrix-table th{font-size:var(--font-xs);color:var(--text-secondary);padding:var(--space-sm) var(--space-xs);text-align:center;vertical-align:bottom;font-weight:500;line-height:1.3}.matrix-table th:first-child{text-align:left;min-width:140px}.matrix-table td{padding:var(--space-sm) var(--space-xs);text-align:center;border-top:1px solid var(--border)}.matrix-table td:first-child{text-align:left;font-weight:500;font-size:var(--font-sm);color:var(--text-primary)}.matrix-radio{appearance:none;border:2px solid var(--border);cursor:pointer;width:24px;height:24px;transition:all var(--transition-fast);border-radius:50%;position:relative}.matrix-radio:checked{border-color:var(--accent)}.matrix-radio:checked:after{content:"";background:var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:4px}.matrix-radio:hover{border-color:var(--accent-light)}@media (width<=767px){.matrix-wrapper{margin:0;padding:0;overflow-x:visible}.matrix-table{display:none}.matrix-mobile{gap:var(--space-md);flex-direction:column;display:flex}.matrix-mobile-row{background:var(--bg-card-hover);border-radius:var(--radius-md);padding:var(--space-md)}.matrix-mobile-row-label{margin-bottom:var(--space-sm);font-weight:600;font-size:var(--font-base)}.matrix-mobile-options{gap:var(--space-xs);flex-direction:column;display:flex}.matrix-mobile-option{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);display:flex}.matrix-mobile-option:hover,.matrix-mobile-option.selected{background:var(--bg-selected)}.matrix-mobile-option .matrix-radio{flex-shrink:0}.matrix-mobile-option-text{font-size:var(--font-sm);color:var(--text-primary)}}@media (width>=768px){.matrix-mobile{display:none}}.sp-wrapper{animation:fadeIn var(--transition-normal) forwards}.sp-task-label{font-size:var(--font-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.sp-timer-wrapper{margin-bottom:var(--space-lg)}.sp-timer-track{background:var(--border);border-radius:var(--radius-full);height:4px;overflow:hidden}.sp-timer-fill{background:var(--accent);border-radius:var(--radius-full);width:0%;height:100%;transition:width 1s linear}.sp-timer-fill.complete{background:var(--success)}.sp-timer-label{font-size:var(--font-xs);color:var(--text-muted);text-align:center;margin-top:var(--space-xs)}.sp-cards-grid{gap:var(--space-md);flex-direction:column;display:flex}@media (width>=768px){.sp-cards-grid{gap:var(--space-md);grid-template-rows:auto repeat(4,auto);grid-template-columns:repeat(3,1fr);display:grid}.sp-card{grid-template-rows:subgrid;grid-row:span 5;min-width:0;display:grid}.sp-card-body{display:contents}.sp-card.optout-card .sp-card-body{grid-row:2/span 4;display:flex}}.sp-card{border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-card);-webkit-tap-highlight-color:transparent;overflow:hidden}.sp-card:hover{border-color:var(--accent-light);box-shadow:var(--shadow-md)}.sp-card.selected{border-color:var(--border-selected);box-shadow:0 0 0 2px var(--accent), var(--shadow-md)}.sp-card-header{padding:var(--space-md);text-align:center;font-weight:700;font-size:var(--font-base);color:var(--text-on-accent);letter-spacing:.02em;justify-content:center;align-items:center;display:flex}.sp-card.sp-card-alt1 .sp-card-header{background:var(--accent);color:var(--text-on-accent)}.sp-card.sp-card-alt2 .sp-card-header{background:var(--mav-primary,#1a5276);color:var(--text-on-accent)}.sp-card.sp-card-optout .sp-card-header{background:var(--optout-primary)}.sp-card.selected .sp-card-header{box-shadow:inset 0 -2px 8px #00000026}.sp-card-body{padding:var(--space-md)}.sp-attribute{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:4px;min-width:0;display:flex}.sp-attribute:last-child{border-bottom:none}.sp-attribute-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;word-break:break-word;max-width:100%;font-size:.65rem;font-weight:600}.sp-attribute-value{font-size:var(--font-sm);color:var(--text-primary);word-break:break-word;max-width:100%;font-weight:700;line-height:1.3}.sp-attribute-value.price{color:var(--accent);font-size:1.25rem}.sp-card.optout-card{border-style:dashed}.sp-card.optout-card .sp-card-body{text-align:center;min-height:120px;color:var(--text-secondary);justify-content:center;align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.sp-card.optout-card .sp-card-body .optout-icon{font-size:var(--font-2xl);opacity:.5}.sp-card.optout-card .sp-card-body .optout-text{font-size:var(--font-sm);font-weight:500}.sp-card.optout-card.selected{border-color:var(--optout-primary);background:var(--optout-light);box-shadow:0 0 0 2px var(--optout-primary), var(--shadow-md)}@media (width<=767px){.sp-card{flex-direction:column;display:flex}.sp-card-header{padding:var(--space-sm) var(--space-md);font-size:var(--font-sm)}.sp-card-body{padding:var(--space-sm) var(--space-md)}.sp-attribute{padding:var(--space-xs) 0}.sp-card.selected:after{content:"✓";top:var(--space-sm);right:var(--space-sm);background:var(--accent);color:#fff;width:28px;height:28px;font-size:var(--font-sm);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute}.sp-card{position:relative}.sp-card.optout-card .sp-card-body{min-height:60px;padding:var(--space-md);flex-direction:row}}.sp-attr-table{border-collapse:collapse;width:100%;margin:var(--space-md) 0}.sp-attr-table th,.sp-attr-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--border);font-size:var(--font-sm)}.sp-attr-table th{background:var(--bg-card-hover);color:var(--text-primary);font-weight:600}.sp-attr-table td:first-child{white-space:nowrap;font-weight:500}
