:root{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #f8f9fa;--text-primary: #1e293b;--text-secondary: #64748b;--text-tertiary: #94a3b8;--border-color: #e2e8f0;--border-light: #cbd5e1;--accent-primary: #0ea5e9;--accent-dark: #0284c7;--accent-darker: #0369a1;--success-bg: #dcfce7;--success-text: #166534;--success-border: #22c55e;--error-bg: #fee2e2;--error-text: #991b1b;--error-border: #dc2626;--warning-bg: #fef3c7;--warning-text: #92400e;--info-bg: #dbeafe;--info-text: #0c4a6e;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #1e293b;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--border-color: #334155;--border-light: #475569;--accent-primary: #38bdf8;--accent-dark: #0ea5e9;--accent-darker: #0284c7;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .5)}[data-font-size=small]{--font-size-xs: .65rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.25rem;--font-size-3xl: 1.5rem}[data-font-size=large]{--font-size-xs: .875rem;--font-size-sm: 1rem;--font-size-base: 1.125rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.875rem;--font-size-3xl: 2.25rem}.loading-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:var(--font-size-lg)}.app-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-primary);color:var(--text-primary);animation:fadeIn .3s ease-in;transition:background-color .3s ease,color .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}.main-content{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:12px 20px 30px}@media (min-width: 1920px){.main-content{max-width:1800px;padding:40px 30px}}@media (min-width: 2560px){.main-content{max-width:2400px;padding:50px 40px}}@media (max-width: 768px){.main-content{padding:12px 10px 70px}}.toast-container{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;pointer-events:none;z-index:1000}.toast-container>*{pointer-events:auto}@media (max-width: 768px){button,a,input[type=button],input[type=submit],input[type=reset],.clickable{min-height:44px;min-width:44px}button:not([class*=dot]):not([class*=mini]),.link-btn,.day-nav-btn,input[type=button],input[type=submit],input[type=reset]{padding:12px 16px!important}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],textarea,select{min-height:44px;padding:12px 14px!important;font-size:16px}textarea{min-height:120px;padding:12px 14px!important}input[type=checkbox],input[type=radio]{min-width:24px;min-height:24px;margin:8px;cursor:pointer}label{padding:8px 4px;display:block;cursor:pointer}button+button,.link-btn+.link-btn,.day-nav-btn+.day-nav-btn{margin-left:8px}.day-selector .day-nav-btn{min-height:44px;min-width:44px;padding:10px 14px;font-size:.9rem}.day-dot{min-width:44px!important;width:44px!important;height:44px!important;padding:0}.mobile-tab{min-height:48px;padding:12px 8px!important;font-size:.95rem}.location-card,.dinner-card,.accommodation-card,.booking-card,.location-content,.edit-controls,.dinner-edit-controls{padding:16px!important}.edit-btn,.delete-btn,.status-btn{min-height:44px;padding:12px 14px!important;font-size:.9rem}.modal input,.modal textarea,.modal select{width:100%;margin-bottom:12px}select{padding:12px 14px}.modal-buttons button{min-height:44px;flex:1;padding:12px 14px!important}}@media (max-width: 480px){button,.link-btn,.day-nav-btn,input[type=button],input[type=submit],input[type=reset]{padding:14px 12px!important;font-size:.95rem}.day-selector .day-nav-btn{flex:1;min-width:auto}.form-row,.form-group{display:flex;flex-direction:column}.form-row input,.form-row select,.form-group input,.form-group select{width:100%;margin-bottom:12px}.location-card{margin-bottom:16px}.day-detail{padding:12px}.detail-section{padding:0 8px}}.gesture-feedback{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:9999;opacity:0;transition:opacity .15s ease-out}.gesture-feedback.active{opacity:1}.gesture-feedback.left:before,.gesture-feedback.right:before,.gesture-feedback.up:before,.gesture-feedback.down:before{content:"";display:block;width:60px;height:60px;background:#0000004d;border-radius:50%;position:relative}.gesture-feedback.left:after,.gesture-feedback.right:after,.gesture-feedback.up:after,.gesture-feedback.down:after{content:"";display:block;position:absolute;top:50%;left:50%;width:0;height:0;border-style:solid}.gesture-feedback.left:after{border-width:8px 12px 8px 0;border-color:transparent white transparent transparent;transform:translate(-66%,-50%)}.gesture-feedback.right:after{border-width:8px 0 8px 12px;border-color:transparent transparent transparent white;transform:translate(-34%,-50%)}.gesture-feedback.up:after{border-width:0 8px 12px 8px;border-color:transparent transparent white transparent;transform:translate(-50%,-66%)}.gesture-feedback.down:after{border-width:12px 8px 0 8px;border-color:white transparent transparent transparent;transform:translate(-50%,-34%)}@media (max-width: 768px){button,.link-btn,.day-nav-btn,.mobile-tab,a{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,.1)}}@media (hover: none) and (pointer: coarse){button:active,a:active,.link-btn:active,.day-nav-btn:active,.mobile-tab:active{background-color:var(--active-bg, rgba(0, 0, 0, .1));transform:scale(.98)}}@media (max-width: 768px){input,textarea,select{font-size:16px!important}}.sidebar,.itinerary-main,.modal-content,[class*=scrollable]{-webkit-overflow-scrolling:touch}@supports (scroll-behavior: smooth){html{scroll-behavior:smooth}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px 20px;background:linear-gradient(135deg,#ef44440d,#f59e0b0d);border-radius:12px;margin:20px 0}.error-boundary-critical{min-height:100vh}.error-content{max-width:500px;width:100%;text-align:center;padding:40px;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;border:1px solid #fee2e2}.error-icon{font-size:48px;margin-bottom:16px;display:block}.error-boundary h1{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 12px}.error-message{font-size:15px;color:#6b7280;margin:0 0 20px;line-height:1.6}.error-details{margin:20px 0;text-align:left;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px}.error-details summary{cursor:pointer;font-weight:600;color:#dc2626;padding:8px;-webkit-user-select:none;user-select:none}.error-details summary:hover{background:#dc26260d;border-radius:4px}.error-stack{margin-top:12px;padding-top:12px;border-top:1px solid #fecaca}.error-stack p{margin:8px 0;font-size:13px;color:#7f1d1d}.error-stack pre{background:#7f1d1d;color:#fecaca;padding:12px;border-radius:6px;overflow-x:auto;font-size:11px;margin:8px 0;line-height:1.4;max-height:300px}.error-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;justify-content:center}.error-button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1;min-width:120px}.error-button-primary{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.error-button-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.error-button-primary:active{transform:translateY(0)}.error-button-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.error-button-secondary:hover{background:#e5e7eb}.error-fallback{display:flex;align-items:center;justify-content:center;min-height:200px;padding:20px;background:#fef2f2;border:2px solid #fecaca;border-radius:8px;margin:16px 0}.error-fallback-content{text-align:center;max-width:400px}.error-fallback-icon{font-size:36px;display:block;margin-bottom:12px}.error-fallback-content h3{font-size:16px;font-weight:600;color:#991b1b;margin:0 0 8px}.error-fallback-content p{font-size:13px;color:#7f1d1d;margin:0 0 12px}.error-fallback-details{background:#fee2e2!important;padding:8px 12px;border-radius:4px;font-family:monospace;font-size:12px!important;margin:8px 0!important}.error-fallback-button{padding:8px 16px;background:#dc2626;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease}.error-fallback-button:hover{background:#b91c1c}@media (max-width: 640px){.error-boundary{min-height:300px;padding:20px 12px}.error-content{padding:24px 16px}.error-icon{font-size:36px}.error-boundary h1{font-size:20px}.error-message{font-size:14px}.error-actions{flex-direction:column}.error-button{width:100%;min-width:unset}.error-stack pre{font-size:10px;max-height:200px}}@media (prefers-color-scheme: dark){.error-boundary{background:linear-gradient(135deg,#7f1d1d33,#78350f33)}.error-content{background:#1f2937;border-color:#7f1d1d;color:#f3f4f6}.error-boundary h1{color:#f3f4f6}.error-message{color:#d1d5db}.error-details{background:#7f1d1d;border-color:#b91c1c}.error-details summary{color:#fecaca}.error-button-secondary{background:#374151;color:#f3f4f6;border-color:#4b5563}.error-button-secondary:hover{background:#4b5563}}.toast{position:fixed;bottom:20px;right:20px;padding:14px 20px;border-radius:8px;font-weight:500;font-size:.95rem;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:10px;animation:slideIn .3s ease-out;z-index:1000;max-width:400px}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{background:#dcfce7;color:#166534;border-left:4px solid #22c55e}.toast-error{background:#fee2e2;color:#991b1b;border-left:4px solid #ef4444}.toast-info{background:#dbeafe;color:#0c4a6e;border-left:4px solid #3b82f6}.toast-icon{font-weight:700;font-size:1.1rem}@media (max-width: 768px){.toast{bottom:10px;right:10px;left:10px;max-width:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:#333;background:#f5f5f5}html,body,#root{height:100%;width:100%}.container{max-width:1400px;margin:0 auto;padding:20px}@media (min-width: 1920px){.container{max-width:1800px;padding:30px}}@media (min-width: 2560px){.container{max-width:2400px;padding:40px}}.flex{display:flex}.flex-col{flex-direction:column}.gap-4{gap:1rem}.gap-2{gap:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.rounded{border-radius:.5rem}.rounded-lg{border-radius:.75rem}.shadow{box-shadow:0 1px 3px #0000001a}.shadow-lg{box-shadow:0 10px 25px #0000001a}.bg-white{background:#fff}.bg-blue{background:linear-gradient(135deg,#0ea5e9,#2563eb)}.text-white{color:#fff}.text-center{text-align:center}.w-full{width:100%}.h-full{height:100%}button{cursor:pointer;border:none;border-radius:.5rem;padding:.5rem 1rem;font-size:1rem;transition:all .3s ease}button:hover{opacity:.9}input,textarea,select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:.5rem;font-size:1rem;font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a}@media (max-width: 768px){.container{padding:10px}.flex{flex-direction:column}}
