@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";:root{font-family:Roboto,Noto Sans,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:light}#root{width:100%;min-height:100vh}a{color:var(--button-primary-bg);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-secondary);color:var(--text-primary);font-family:inherit}h1{font-size:2.75rem;line-height:1.2;font-weight:500}button{font-family:inherit}:root{--md-primary: #6750a4;--md-on-primary: #ffffff;--md-secondary: #625b71;--md-on-secondary: #ffffff;--md-surface: #fef7ff;--md-surface-container: #f7f2fa;--md-surface-container-high: #ece6f0;--md-surface-container-highest: #e6e0e9;--md-outline: #79747e;--md-outline-variant: #cac4d0;--md-shadow-1: 0 1px 3px rgba(20, 0, 40, .12), 0 1px 2px rgba(20, 0, 40, .24);--md-shadow-2: 0 4px 8px rgba(20, 0, 40, .14), 0 2px 4px rgba(20, 0, 40, .18);--md-error: #b3261e;--md-on-error: #ffffff;--bg-primary: var(--md-surface);--bg-secondary: var(--md-surface-container);--text-primary: #1c1b1f;--text-secondary: #49454f;--text-heading: #1c1b1f;--border-color: rgba(121, 116, 126, .5);--shadow-color: rgba(20, 0, 40, .12);--input-bg: var(--md-surface);--input-border: var(--md-outline-variant);--button-primary-bg: var(--md-primary);--button-primary-rgb: 103, 80, 164;--button-primary-text: var(--md-on-primary);--button-primary-hover: #4f378b;--button-secondary-bg: var(--md-secondary);--button-secondary-text: var(--md-on-secondary);--button-secondary-hover: #4a4458;--button-success-bg: #386a20;--button-success-text: #ffffff;--button-success-hover: #2f5c1b;--card-bg: var(--md-surface);--info-bg: #ede8fc;--info-text: #1c1b1f;--info-border: rgba(103, 80, 164, .3);--error-bg: #fce8e6;--error-text: #b3261e;--error-border: rgba(179, 38, 30, .4);--empty-bg: var(--md-surface-container-high);--empty-border: rgba(121, 116, 126, .3);--success-bg: #e6f4ea;--success-text: #1b5e20;--success-border: rgba(27, 94, 32, .35);--surface-outline: var(--md-outline);--surface-elevation-1: var(--md-shadow-1);--surface-elevation-2: var(--md-shadow-2)}.light-theme{color-scheme:light;--md-primary: #6750a4;--md-on-primary: #ffffff;--md-secondary: #625b71;--md-on-secondary: #ffffff;--md-surface: #fef7ff;--md-surface-container: #f7f2fa;--md-surface-container-high: #ece6f0;--md-surface-container-highest: #e6e0e9;--bg-primary: var(--md-surface);--bg-secondary: var(--md-surface-container);--text-primary: #1c1b1f;--text-secondary: #49454f;--text-heading: #1c1b1f;--border-color: rgba(121, 116, 126, .5);--shadow-color: rgba(20, 0, 40, .12);--input-bg: var(--md-surface);--input-border: var(--md-outline-variant);--button-primary-bg: var(--md-primary);--button-primary-rgb: 103, 80, 164;--button-primary-text: var(--md-on-primary);--button-primary-hover: #4f378b;--button-secondary-bg: var(--md-secondary);--button-secondary-text: var(--md-on-secondary);--button-secondary-hover: #4a4458;--card-bg: var(--md-surface)}.dark-theme{color-scheme:dark;--md-primary: #d0bcff;--md-on-primary: #381e72;--md-secondary: #ccc2dc;--md-on-secondary: #332d41;--md-surface: #1c1b1f;--md-surface-container: #1f1b24;--md-surface-container-high: #2b2533;--md-surface-container-highest: #363041;--md-outline: #938f99;--md-outline-variant: #49454f;--bg-primary: var(--md-surface-container);--bg-secondary: #1c1b1f;--text-primary: #e6e1e5;--text-secondary: #c6c2c9;--text-heading: #f5eff7;--border-color: rgba(147, 143, 153, .5);--shadow-color: rgba(0, 0, 0, .55);--input-bg: #2b2533;--input-border: var(--md-outline);--button-primary-bg: var(--md-primary);--button-primary-rgb: 208, 188, 255;--button-primary-text: var(--md-on-primary);--button-primary-hover: #b69df8;--button-secondary-bg: var(--md-secondary);--button-secondary-text: var(--md-on-secondary);--button-secondary-hover: #a699c2;--button-success-bg: #63df75;--button-success-text: #003a02;--button-success-hover: #4fc661;--card-bg: var(--md-surface-container-high);--info-bg: #1f1a2b;--info-text: #d7c9ff;--info-border: rgba(208, 188, 255, .35);--error-bg: #3f1214;--error-text: #ffb4ab;--error-border: rgba(255, 180, 171, .4);--empty-bg: #2b2533;--empty-border: rgba(147, 143, 153, .4);--success-bg: #1a3522;--success-text: #a8f3b3;--success-border: rgba(98, 180, 120, .5);--surface-outline: var(--md-outline);--surface-elevation-1: 0 1px 3px rgba(0, 0, 0, .7), 0 1px 2px rgba(0, 0, 0, .6);--surface-elevation-2: 0 4px 10px rgba(0, 0, 0, .65), 0 2px 4px rgba(0, 0, 0, .7)}body{background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}.app,.dark-theme .app{color:var(--text-primary);background-color:var(--bg-secondary)}section{background:var(--card-bg);border-color:var(--border-color);box-shadow:var(--surface-elevation-1);border-radius:20px}.dark-theme section{background-color:var(--card-bg);border-color:var(--border-color)}section h2{color:var(--text-heading)}.input-label{color:var(--text-secondary)}.location-input{background-color:var(--input-bg);color:var(--text-primary);border-color:var(--input-border)}.location-input:focus{border-color:var(--button-primary-bg)}.add-button{background:var(--button-primary-bg);color:var(--button-primary-text)}.add-button:hover:not(:disabled){background:var(--button-primary-hover)}.add-button:disabled{background:var(--button-secondary-bg)}.add-plan-button{background:var(--button-success-bg);color:var(--button-success-text)}.add-plan-button:hover:not(:disabled){background:var(--button-success-hover)}.add-plan-button:disabled{background:var(--button-secondary-bg)}.empty-message{color:var(--text-secondary);background:var(--empty-bg);border-color:var(--empty-border)}.plan-card{background:var(--card-bg);border-color:var(--border-color)}.dark-theme .plan-card{background-color:var(--card-bg);border-color:var(--border-color)}.plan-card:hover{border-color:var(--button-primary-bg);box-shadow:var(--surface-elevation-2)}.destination{color:var(--text-heading)}.date-input{background-color:var(--input-bg);color:var(--text-primary);border-color:var(--input-border)}.date-input:focus{border-color:var(--button-primary-bg)}.dropdown-button{background-color:var(--input-bg);color:var(--text-primary);border-color:var(--input-border)}.dropdown-menu{background-color:var(--bg-primary);border-color:var(--input-border);box-shadow:0 4px 12px var(--shadow-color)}.dark-theme .dropdown-menu{background-color:var(--card-bg);border-color:var(--input-border)}.dropdown-option{color:var(--text-primary);background-color:var(--bg-primary)}.dark-theme .dropdown-option{color:var(--text-primary);background-color:var(--card-bg)}.dropdown-option:hover{background-color:var(--bg-secondary)}.dark-theme .dropdown-option:hover{background-color:var(--bg-secondary);color:var(--text-heading)}.search-input,.dark-theme .search-input{background-color:var(--input-bg);color:var(--text-primary);border-color:var(--input-border)}.dark-theme .location-selector-container{background-color:var(--bg-secondary);border-left:4px solid var(--button-primary-bg)}.dark-theme .step-label{color:var(--text-secondary)}.dark-theme .selected-destination{background:#0c2a30;border-color:#0c5460}.dark-theme .selected-destination-label{color:#8ed8e6}.dark-theme .selected-destination-name{color:#a8d8e6}.dark-theme .loading-spinner{border-color:#ffffff4d;border-top-color:#fff}.dark-theme .reset-button{background:#dc3545;color:#fff}.dark-theme .reset-button:hover{background:#c82333}.theme-toggle-button{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:20px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease;position:fixed;top:1rem;right:1rem;z-index:100}.theme-toggle-button:hover{background-color:var(--button-primary-bg);color:var(--button-primary-text)}.theme-icon{font-size:1.2rem}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}*{box-sizing:border-box}.app{width:100%;max-width:1480px;margin:0 auto;padding:clamp(1rem,4vw,2.5rem);font-family:Roboto,Noto Sans,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.7;color:var(--text-primary);background-color:var(--bg-secondary);min-height:100vh}@media (min-width: 1600px){.app{max-width:1680px}}@media (max-width: 768px){.app{width:100vw;max-width:100vw;margin:0;padding:calc(.75rem + env(safe-area-inset-top,0px)) clamp(1rem,6vw,1.5rem) calc(1.5rem + env(safe-area-inset-bottom,0px))}}button{border:none;background:none;padding:0;margin:0;font-family:inherit;cursor:pointer;outline:none}button::-moz-focus-inner{border:0;padding:0}.app-main{display:grid;gap:3rem}@media (max-width: 768px){.app-main{gap:1.5rem}}section{background:var(--card-bg);border-radius:24px;padding:2rem;box-shadow:var(--surface-elevation-1);border:1px solid var(--border-color)}@media (max-width: 768px){section{padding:1.25rem;border-radius:18px}}section h2{margin:0 0 1.5rem;font-size:1.5rem;color:var(--text-heading);font-weight:600}@media (max-width: 768px){section h2{font-size:1.35rem}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}@media (max-width: 768px){.section-header{flex-direction:column;align-items:flex-start;gap:1rem}}.section-buttons{display:flex;align-items:center;gap:.75rem}@media (max-width: 768px){.section-buttons{width:100%;flex-wrap:wrap;justify-content:flex-start;gap:.5rem}}.section-header h2{margin:0;font-size:1.6rem;color:var(--text-heading);font-weight:600;letter-spacing:.01em}@media (max-width: 768px){.section-header h2{font-size:1.4rem}}.add-travel-button{padding:.65rem 1.5rem;background:var(--button-primary-bg);color:var(--button-primary-text);border:none;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease,background .2s ease;min-width:120px;box-shadow:var(--surface-elevation-1)}@media (max-width: 768px){.add-travel-button{width:100%;min-width:0}}.add-travel-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-1px);box-shadow:var(--surface-elevation-2)}.add-travel-button:disabled{background:rgba(var(--button-primary-rgb),.25);color:var(--text-secondary);cursor:not-allowed}.current-location-button{padding:.75rem 1.5rem;background:var(--button-secondary-bg);color:var(--button-secondary-text);border:none;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease,background .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;align-self:flex-start;box-shadow:var(--surface-elevation-1)}@media (max-width: 768px){.current-location-button{width:100%;align-self:stretch}}.current-location-button:hover:not(:disabled){background:var(--button-secondary-hover);transform:translateY(-1px);box-shadow:var(--surface-elevation-2)}.current-location-button:disabled{opacity:.6;box-shadow:none}.loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.location-error,.location-info{padding:.85rem 1.25rem;border-radius:16px;border:1px solid currentColor;font-size:.95rem;line-height:1.4}.location-error{background:var(--error-bg);color:var(--error-text);border-color:var(--error-border)}.location-info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.weather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.weather-header h5{margin:0;flex:1}.ai-summary-button{flex-shrink:0}.ai-summary-display{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ai-summary-modal-overlay{animation:modalFadeIn .2s ease-out;z-index:10000}.ai-summary-modal-content{animation:modalSlideIn .3s ease-out;z-index:10001}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.dark-theme .ai-summary-modal-overlay{background-color:#000000b3}.dark-theme .ai-summary-modal-content{background-color:var(--bg-primary);box-shadow:0 25px 50px -12px #00000080}.dark-theme .ai-summary-modal-content>div:first-child{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.dark-theme .ai-summary-modal-content button{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.dark-theme .ai-summary-modal-content button:hover{background:var(--bg-primary)}.dark-theme .ai-summary-modal-content>div:last-child{color:var(--text-primary)}@media print{.ai-summary-modal-overlay{position:static!important;background:#fff!important;padding:0!important}.ai-summary-modal-content{box-shadow:none!important;max-width:none!important;max-height:none!important;border-radius:0!important}.ai-summary-modal-content>div:first-child{border-bottom:2px solid #000!important;background:#fff!important}.ai-summary-modal-content button{display:none!important}}.travel-plans-header{flex-wrap:wrap;gap:1rem}@media (max-width: 768px){.travel-plans-header{flex-direction:column;align-items:flex-start}.ai-summary-modal-content{margin:10px;max-height:95vh}.ai-summary-modal-content>div:first-child{padding:16px 20px}.ai-summary-modal-content>div:last-child{padding:20px}}.location-input-form{margin-bottom:1rem}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-label{font-weight:600;color:var(--text-secondary);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.input-container{display:flex;gap:.75rem;align-items:stretch}.location-input{flex:1;padding:.75rem 1rem;border:2px solid var(--input-border);border-radius:8px;font-size:1rem;transition:all .2s ease;background-color:var(--input-bg);color:var(--text-primary)}.location-input:focus{outline:none;border-color:var(--button-primary-bg);box-shadow:0 0 0 3px #007bff1a}.location-input--search{padding-right:3rem}.location-search .location-input{width:100%;display:block}.location-search{position:relative;width:100%;margin-bottom:1.5rem}.location-search--open{margin-bottom:5.5rem}.location-input-wrapper{position:relative}.location-input-spinner{position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:18px;height:18px}.location-input-spinner .loading-spinner{width:18px;height:18px;border:2px solid rgba(0,123,255,.25);border-top-color:var(--button-primary-bg)}.location-results-dropdown{position:relative;width:100%;margin-top:1rem;margin-bottom:2.5rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 16px 40px #0000002e;max-height:18rem;overflow-y:auto;z-index:1;padding:.5rem 0 1.25rem}.location-result-option{padding:.75rem 1.25rem;cursor:pointer;color:var(--text-primary);transition:background-color .2s ease,color .2s ease}.location-result-option+.location-result-option{border-top:1px solid var(--border-color)}.location-result-option:hover{background:var(--bg-secondary)}.location-result-option.is-active{background:#007bff1f;color:var(--text-heading)}.location-result-content{display:flex;align-items:center;gap:.75rem}.location-result-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-results-empty{padding:1rem;text-align:center;color:var(--text-secondary)}.dark-theme .location-result-option.is-active{background:#0069d940}.dark-theme .location-results-dropdown{box-shadow:0 20px 48px #00000073}.add-button{padding:.75rem 1.5rem;background:var(--button-primary-bg);color:var(--button-primary-text);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.add-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-1px)}.add-button:disabled{background:var(--button-secondary-bg);cursor:not-allowed;opacity:.6}.date-range-picker{margin-bottom:1.5rem}.date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.date-input-group{display:flex;flex-direction:column;gap:.5rem}.date-label{font-weight:500;color:var(--text-secondary);font-size:.85rem}.date-input{padding:.75rem;border:2px solid var(--input-border);border-radius:8px;font-size:1rem;transition:all .2s ease;background-color:var(--input-bg);color:var(--text-primary)}.date-input:focus{outline:none;border-color:var(--button-primary-bg);box-shadow:0 0 0 3px #007bff1a}.travel-section h2{margin:0 0 1.5rem;font-size:1.5rem;color:var(--text-heading);font-weight:600}.travel-form{display:flex;flex-direction:column;gap:1.5rem}.progress-step{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;border:2px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);transition:all .3s ease}.progress-step.active{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg);transform:scale(1.1)}.selected-destination{background:#e3f2fd;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #bbdefb;text-align:left}.selected-destination-label{font-weight:600;color:#0d47a1;margin-right:.5rem}.selected-destination-name{color:#1565c0;font-weight:500}.confirmation-actions{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.wizard-primary-button{background:var(--button-primary-bg);color:var(--button-primary-text);border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:160px}.wizard-primary-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.wizard-primary-button:disabled{background:var(--button-secondary-bg);cursor:not-allowed;opacity:.6}.wizard-secondary-button{background:var(--button-secondary-bg);color:var(--button-secondary-text);border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.wizard-secondary-button:hover{background:var(--button-secondary-hover);transform:translateY(-1px)}.wizard-back-button{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:1rem}.wizard-back-button:hover{background:var(--bg-secondary);border-color:var(--text-secondary);color:var(--text-primary)}.add-plan-button{background:var(--button-success-bg);color:var(--button-success-text);border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:160px;margin-top:1rem}.add-plan-button:hover:not(:disabled){background:var(--button-success-hover);transform:translateY(-1px);box-shadow:0 4px 12px #28a7454d}.add-plan-button:disabled{background:var(--button-secondary-bg);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.location-list{width:100%}.plans-container{display:flex;flex-direction:column;gap:1rem}.plan-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:.75rem;margin-bottom:1rem;box-shadow:0 2px 4px var(--shadow-color);transition:border-color .2s ease,box-shadow .2s ease;width:100%;box-sizing:border-box}.plan-card:hover{border-color:var(--button-primary-bg);box-shadow:0 4px 12px var(--shadow-color)}.plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.destination{font-size:1.25rem;font-weight:600;color:var(--text-heading);margin:0;flex-grow:1;min-width:0;word-break:break-word}.delete-button{background:var(--button-danger-bg);color:var(--button-danger-text);border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:1.2rem;line-height:1;padding:0;flex-shrink:0}.delete-button:hover{background:var(--button-danger-hover);transform:scale(1.1)}.plan-details{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.weather-info{grid-column:span 2;transition:max-height .3s ease-in-out,opacity .3s ease-in-out;overflow:hidden}.weather-info h5{margin-top:0;margin-bottom:1rem}.weather-day{padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-secondary)}.weather-day-header{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.weather-day-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.duration{font-weight:500;border:1px solid var(--info-border);margin-top:.5rem}.empty-message{text-align:center;color:var(--text-secondary);font-style:italic;padding:2rem;background:var(--empty-bg);border-radius:8px;border:1px dashed var(--border-color)}.location-selector-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-top:1rem;border-left:4px solid var(--button-primary-bg)}.selector-step{margin-bottom:1.5rem}.selector-step:last-child{margin-bottom:0}.step-label{display:block;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.dropdown-container{position:relative}.dropdown-button{width:100%;padding:.75rem 1rem;background:var(--input-bg);color:var(--text-primary);border:2px solid var(--input-border);border-radius:8px;font-size:1rem;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.dropdown-button:hover,.dropdown-button.selected{border-color:var(--button-primary-bg)}.dropdown-button:disabled{background:var(--button-secondary-bg);cursor:not-allowed;opacity:.6}.dropdown-arrow{font-size:.8rem;transition:transform .2s ease}.dropdown-button[aria-expanded=true] .dropdown-arrow{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary);border:1px solid var(--input-border);border-radius:8px;box-shadow:0 4px 12px var(--shadow-color);z-index:100;margin-top:.25rem;max-height:200px;overflow-y:auto}.dropdown-search{padding:.5rem;border-bottom:1px solid var(--border-color)}.search-input{width:100%;padding:.5rem;background:var(--input-bg);color:var(--text-primary);border:1px solid var(--input-border);border-radius:4px;font-size:.9rem}.search-input:focus{outline:none;border-color:var(--button-primary-bg);box-shadow:0 0 0 2px #007bff1a}.dropdown-options{max-height:160px;overflow-y:auto}.dropdown-option{width:100%;padding:.75rem 1rem;background:var(--bg-primary);color:var(--text-primary);border:none;text-align:left;cursor:pointer;font-size:1rem;transition:all .2s ease}.dropdown-option:hover,.dropdown-option.focused{background:var(--bg-secondary)}.loading-state{padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-style:italic}.reset-button{width:100%;padding:.75rem;background:var(--button-secondary-bg);color:var(--button-secondary-text);border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:1rem}.reset-button:hover{background:var(--button-secondary-hover)}.search-weather-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color);text-align:center}.search-weather-button{background:var(--button-primary-bg);color:var(--button-primary-text);border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:200px;box-shadow:0 2px 8px #0000001a}.search-weather-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.search-weather-button:disabled{background:var(--button-secondary-bg);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.weather-info{grid-column:span 2;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.weather-info h5{margin:0 0 1rem;font-size:1.1rem;color:var(--text-heading);font-weight:600}.weather-details{display:flex;flex-direction:column;gap:1rem}.weather-day{background:var(--bg-secondary);border-radius:8px;padding:1rem;border:1px solid var(--border-color)}.weather-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.weather-date{font-weight:600;color:var(--text-heading)}.weather-day-details{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.weather-day-details .detail-item{margin-bottom:0}.detail-value{word-wrap:break-word;overflow-wrap:break-word;white-space:nowrap;min-width:0}.weather-info.no-data{grid-column:span 2;text-align:center;padding:1rem;color:var(--text-secondary);font-style:italic}.job-date-range{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem;font-style:italic}@media (max-width: 768px){.app{padding:1rem}section{padding:1.5rem}.plan-details,.date-inputs{grid-template-columns:1fr}}.weather-toggle-container{grid-column:1 / -1;margin-top:.5rem}.toggle-weather-button{background:var(--button-secondary-bg);color:var(--button-secondary-text);border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center;width:100%;box-shadow:0 2px 4px #0000001a;display:block}.toggle-weather-button:hover{background:var(--button-secondary-hover);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--card-bg);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out}.modal-small{max-width:400px}.modal-small .modal-body{padding:1.5rem}.modal-medium{max-width:600px}.modal-large{max-width:800px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem 1rem;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:600}.modal-close-button{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.modal-close-button:hover{background:var(--hover-bg);color:var(--text-primary)}.modal-body{padding:2rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.modal-button{padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:100px}.modal-button.primary{background:var(--button-primary-bg);color:var(--button-primary-text)}.modal-button.primary:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #4a90e24d}.modal-button.primary:disabled{background:var(--button-secondary-bg);color:var(--button-secondary-text);cursor:not-allowed;opacity:.6}.modal-button.secondary{background:var(--button-secondary-bg);color:var(--button-secondary-text);border:1px solid var(--border-color)}.modal-button.secondary:hover{background:var(--button-secondary-hover);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.modal-steps{display:flex;justify-content:center;margin-bottom:2rem;position:relative}.modal-steps:before{content:"";position:absolute;top:1rem;left:30%;right:30%;height:2px;background:var(--border-color);z-index:1}.modal-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative;z-index:2;background:var(--card-bg);padding:0 1rem}.step-number{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;background:var(--button-secondary-bg);color:var(--button-secondary-text);border:2px solid var(--border-color);transition:all .2s ease}.step-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.modal-step.active .step-number{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.modal-step.active .step-label{color:var(--text-primary);font-weight:600}.modal-step.completed .step-number{background:var(--button-success-bg);color:var(--button-success-text);border-color:var(--button-success-bg)}.modal-step.completed .step-number:before{content:"✓"}.modal-step-content{margin-bottom:1.5rem}.selected-destination-display,.current-location-display{background:var(--input-bg);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.selected-destination-label,.current-location-label{font-weight:600;color:var(--text-primary);font-size:.9rem}.selected-destination-value,.current-location-value{flex:1;color:var(--text-primary);font-size:1rem}.change-destination-button{background:var(--button-secondary-bg);color:var(--button-secondary-text);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.change-destination-button:hover{background:var(--button-secondary-hover);transform:translateY(-1px)}.selected-location-preview{background:var(--success-bg);border:1px solid var(--success-border);border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.preview-label{font-weight:600;color:var(--success-text);font-size:.9rem}.preview-value{color:var(--success-text);font-size:1rem}.new-location-section{margin-bottom:1.5rem}@media (max-width: 768px){.modal-overlay{padding:.5rem}.modal-header{padding:1rem 1.5rem .75rem}.modal-header h2{font-size:1.25rem}.modal-body{padding:1.5rem}.modal-actions{flex-direction:column-reverse}.modal-button{width:100%}.modal-steps{margin-bottom:1.5rem}.modal-steps:before{left:25%;right:25%}}.timeline-app{background:var(--bg-secondary);color:var(--text-primary);min-height:100vh;font-family:Roboto,Noto Sans,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,5vw,2rem);transition:background-color .3s ease,color .3s ease;width:100%;box-sizing:border-box}@media (max-width: 768px){.timeline-app{width:100vw;padding:calc(1.25rem + env(safe-area-inset-top,0px)) clamp(1rem,8vw,1.5rem) calc(1.5rem + env(safe-area-inset-bottom,0px))}}.timeline-container{max-width:42rem;margin:0 auto;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:1.5rem;padding:2rem;box-shadow:0 20px 50px var(--shadow-color);position:relative;overflow:hidden}.timeline-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#10b981,#3b82f6,#f59e0b);border-radius:1.5rem 1.5rem 0 0}.timeline-header{margin-bottom:2rem;position:relative;z-index:1}.header-bar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem}.header-menu-slot{min-width:48px;min-height:40px;display:flex;align-items:center;justify-content:flex-start}.header-title{margin:0;text-align:left}.timeline-subtitle{margin-top:.5rem;color:var(--text-secondary);font-size:1rem;line-height:1.5}@media (max-width: 768px){.header-bar{grid-template-columns:auto 1fr;row-gap:.75rem}}.timeline-header h1{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:var(--text-heading)}.timeline-header p{color:var(--text-secondary);font-size:1rem}.file-menu-container{position:relative}.file-menu-trigger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);transition:all .2s ease}.file-menu-trigger:hover{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.file-menu-dropdown{position:absolute;top:100%;left:0;margin-top:8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 12px var(--shadow-color);min-width:180px;z-index:1000;overflow:hidden;padding:8px}.file-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px 10px 30px;background:none;border:none;color:var(--text-primary);font-size:13px;text-align:left;transition:background-color .2s ease,box-shadow .2s ease;cursor:pointer;border-radius:6px;margin:1px 0;position:relative}.file-menu-item:before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--border-color);opacity:.7;transition:background-color .2s ease,opacity .2s ease}.file-menu-item:hover:not(:disabled){background:#ffffff14}.file-menu-item:disabled{opacity:.5;cursor:not-allowed}.file-menu-item svg{flex-shrink:0}.file-menu-item-label{flex:1;display:inline-flex;align-items:center}.file-menu-item.active{background:rgba(var(--button-primary-rgb),.18);color:var(--button-primary-bg);box-shadow:inset 0 1px #ffffff40}.file-menu-item.active:before{background:var(--button-primary-bg);opacity:.9}.file-menu-item:hover:before{opacity:.95;background:var(--button-primary-bg)}.file-menu-separator{height:1px;background:var(--border-color);margin:12px -8px}.file-menu-section-title{padding:12px 16px 6px;font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;opacity:.9;display:flex;align-items:center;gap:8px}.file-menu-info-button{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:0 6px;border-radius:50%;color:inherit;cursor:pointer;opacity:.85;transition:background-color .2s ease,opacity .2s ease}.file-menu-info-button:hover,.file-menu-info-button:focus-visible{background:#ffffff26;opacity:1;outline:none}.view-mode-explanation{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.explanation-header{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;padding:10px 16px;font-weight:600;font-size:14px;border-bottom:1px solid rgba(255,255,255,.2)}.explanation-content{padding:12px 16px}.explanation-item{margin-bottom:8px;font-size:13px;line-height:1.4;color:var(--text-primary)}.explanation-item:last-child{margin-bottom:0}.explanation-item strong{color:var(--text-primary);font-weight:600}.view-mode-explanation-modal{padding:0}.explanation-intro{margin-bottom:20px;padding:16px;background:var(--bg-secondary);border-radius:6px;border-left:4px solid #007bff}.explanation-intro p{margin:0;font-size:14px;color:var(--text-primary)}.explanation-details{margin-bottom:20px}.explanation-section{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px;padding:16px;background:var(--card-bg);border-radius:8px;border:1px solid var(--border-color)}.explanation-section:last-child{margin-bottom:0}.explanation-icon{font-size:24px;line-height:1;flex-shrink:0}.explanation-text{flex:1}.explanation-text h4{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--text-primary)}.explanation-text p{margin:0 0 4px;font-size:14px;color:var(--text-primary)}.explanation-note{font-size:13px!important;color:var(--text-secondary)!important;font-style:italic}.explanation-footer{padding:16px;background:var(--bg-secondary);border-radius:6px;text-align:center}.explanation-footer p{margin:0;font-size:13px;color:var(--text-secondary)}.loading-indicator{position:fixed;top:1rem;left:50%;transform:translate(-50%);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:.5rem;font-size:.9rem;z-index:1000;box-shadow:0 10px 25px var(--shadow-color)}.weather-actions{display:flex;gap:.75rem;justify-content:center;margin-bottom:1.5rem}.weather-action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:.5rem;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;border:none}.weather-action-btn.primary{background:var(--button-primary-bg);color:var(--button-primary-text)}.weather-action-btn.primary:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-1px)}.weather-action-btn.primary:disabled{background:var(--button-secondary-bg);cursor:not-allowed;opacity:.6}.weather-action-btn.secondary{background:var(--button-secondary-bg);color:var(--button-secondary-text)}.weather-action-btn.secondary:hover{background:var(--button-secondary-hover)}.job-confirmation{text-align:center;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;font-size:.9rem}.job-confirmation.success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.job-confirmation.error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border)}.cache-status{text-align:center;padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;margin-bottom:1.5rem;font-size:.85rem;color:var(--text-secondary)}.timeline-content-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:24px;box-shadow:var(--surface-elevation-1);padding:clamp(1.5rem,3vw,2.5rem);margin-bottom:2rem}.timeline-content-card .job-confirmation,.timeline-content-card .cache-status{margin-bottom:1.25rem}@media (max-width: 768px){.timeline-content-card{padding:1.25rem;border-radius:18px}}.timeline-content{position:relative}.timeline-item{position:relative;margin-bottom:2rem;width:100%}.timeline-line{position:absolute;left:1rem;top:4rem;width:2px;height:4rem;background:var(--border-color);z-index:0}.timeline-entry{display:flex;align-items:flex-start;flex-direction:column;width:100%}.timeline-top-row{display:flex;align-items:flex-start;width:100%;margin-bottom:.75rem}.timeline-content-wrapper{position:relative;padding-left:3rem;width:100%;box-sizing:border-box}.timeline-pin{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:1rem;flex-shrink:0;position:relative;z-index:0}.pin-dot{width:.75rem;height:.75rem;background:#fff;border-radius:50%}.timeline-content-area{background:var(--bg-primary);border-radius:.75rem;padding:1.25rem;border:1px solid var(--border-color);transition:border-color .2s ease;width:100%;box-sizing:border-box;max-width:none;flex-shrink:0;min-height:120px;display:flex;flex-direction:column}.timeline-content-area:hover{border-color:var(--button-primary-bg)}.timeline-header-row{display:flex;justify-content:space-between;align-items:flex-start;flex:1;margin-left:1rem;min-width:0;width:100%}.timeline-title{font-size:1.25rem;font-weight:600;color:var(--text-heading);margin:0;word-wrap:break-word;overflow-wrap:break-word;flex:1;min-width:0}.timeline-menu{position:relative}.menu-trigger{background:var(--input-bg);border:1px solid var(--border-color);border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px var(--shadow-color)}.menu-trigger:hover{background:var(--button-primary-bg);border-color:var(--button-primary-bg)}.menu-trigger:active{transform:scale(.95)}.menu-trigger svg,.add-btn svg{color:var(--text-primary)!important}.menu-trigger:hover svg,.add-btn:hover svg{color:var(--button-primary-text)!important}.menu-dropdown{position:absolute;right:0;top:2.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 10px 25px var(--shadow-color);padding:.5rem 0;min-width:8rem;z-index:20}.menu-item{width:100%;padding:.5rem 1rem;text-align:left;background:none;border:none;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer;transition:background-color .2s ease}.menu-item:hover{background:var(--bg-secondary)}.menu-item.delete{color:var(--error-text)}.menu-item.delete:hover{background:var(--error-bg)}.timeline-location{margin-bottom:.75rem}.location-name{font-weight:500;color:var(--text-primary);font-size:1rem}.location-placeholder{color:var(--text-secondary);font-style:italic;font-size:.9rem}.timeline-dates{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;width:100%}.timeline-footer{display:flex;justify-content:space-between;align-items:center}.add-btn{background:var(--input-bg);border:1px solid var(--border-color);border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px var(--shadow-color)}.add-btn:hover{background:var(--button-primary-bg);border-color:var(--button-primary-bg);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-color)}.add-btn:active{transform:translateY(0);box-shadow:0 2px 4px var(--shadow-color)}.bg-green-500{background-color:#10b981}.bg-blue-500{background-color:#3b82f6}.bg-orange-500{background-color:#f59e0b}.bg-gray-500{background-color:#6b7280}@media (max-width: 768px){.timeline-container{width:100%;max-width:100%;margin:0;border-radius:0;padding:0;border:none;box-shadow:none;background:transparent}.timeline-container:before{display:none}.timeline-header h1{font-size:1.75rem}.file-menu-container{align-self:flex-start}.timeline-content-area{padding:1rem}.timeline-header-row{flex-wrap:nowrap;gap:.5rem;align-items:flex-start}.timeline-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-menu{flex-shrink:0}}.expanded-weather{margin-top:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;animation:expandWeather .3s ease-out}@keyframes expandWeather{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:500px;padding-top:1rem;padding-bottom:1rem}}.weather-forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.weather-day{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem;text-align:center;transition:border-color .2s ease}.weather-day:hover{border-color:var(--button-primary-bg)}.weather-date{font-size:.85rem;color:var(--text-secondary);font-weight:600;margin-bottom:.5rem}.weather-icon-temp{display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.weather-icon-temp img{display:block;vertical-align:middle}.weather-temp{font-size:1.25rem;font-weight:700;color:var(--button-primary-bg);margin-bottom:.25rem;line-height:1;display:flex;align-items:center}.weather-condition{font-size:.8rem;color:var(--text-primary);margin-bottom:.5rem;line-height:1.2}.weather-humidity,.weather-wind,.weather-uv{font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem}.weather-humidity:last-child,.weather-wind:last-child,.weather-uv:last-child{margin-bottom:0}@media (max-width: 768px){.weather-forecast{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.weather-day{padding:.5rem}.weather-temp{font-size:1.1rem}.weather-condition{font-size:.75rem}}.timeline-add-destination{display:flex;justify-content:center;align-items:center;margin-top:2rem}.add-destination-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.95rem 1.75rem;background:var(--button-primary-bg);color:var(--button-primary-text);border:none;border-radius:999px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;box-shadow:var(--surface-elevation-1)}.add-destination-btn:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-1px);box-shadow:var(--surface-elevation-2)}.add-destination-btn:disabled{background:rgba(var(--button-primary-rgb),.25);color:var(--text-secondary);cursor:not-allowed;box-shadow:none}.add-destination-btn svg{color:inherit}.no-origin-state{display:flex;justify-content:center;align-items:center;min-height:300px;padding:2rem}.no-origin-content{text-align:center;max-width:400px}.no-origin-content h3{color:var(--text-primary);margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.no-origin-content p{color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.5}.set-origin-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--button-primary-bg);color:var(--button-primary-text);border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.set-origin-btn:hover{background:var(--button-primary-hover);transform:translateY(-1px)}.timeline-item-minimal{margin-bottom:0!important;padding-bottom:0!important}.timeline-item-minimal .timeline-entry{padding-bottom:0!important}
