*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#fce8ed,#f5d5dd);min-height:100vh;padding:40px 20px;color:#333}.container{max-width:1000px;margin:0 auto}header{text-align:center;color:#6b4f5a;margin-bottom:40px;animation:fadeInDown .8s ease-out}header h1{font-size:3.5em;margin-bottom:10px;text-shadow:1px 1px 2px rgba(0,0,0,.1)}header p{font-size:1.3em;opacity:.85}.itinerary{display:grid;grid-gap:30px;gap:30px;animation:fadeInUp .8s ease-out}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.day-date{font-size:1.8em;font-weight:700;color:#d89aac}.location{font-size:1.3em;color:#c47b91;font-weight:600}.day-content{display:grid;grid-gap:15px;gap:15px}.info-section{display:flex;align-items:flex-start;gap:10px}.icon{font-size:1.2em;min-width:24px}.hotel{font-size:1.1em}.hotel-name{font-weight:600;color:#555}.notes{background:#fef5f7;padding:12px 15px;border-radius:8px;border-left:3px solid #d89aac}.notes-title{font-weight:600;color:#d89aac;margin-bottom:5px}.notes-content{color:#666}.todos-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:25px;gap:25px;margin-bottom:40px;animation:fadeInUp .8s ease-out}.todo-section{background:white;padding:25px;border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,.2);position:relative;overflow:hidden}.todo-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:linear-gradient(90deg,#e8b4c2,#d89aac)}.todo-title{font-size:1.4em;font-weight:700;color:#c47b91;margin-bottom:15px;padding-top:5px}.todo-list{list-style:none;display:grid;grid-gap:10px;gap:10px}.todo-item{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:1.05em;color:#555}.todo-item span{word-break:keep-all;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;white-space:normal}.todo-item.completed{text-decoration:line-through;opacity:.6}.checkbox{width:20px;height:20px;border:2px solid #ddd;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.todo-item.completed .checkbox{background:#a0c4a8;border-color:#a0c4a8}.todo-item.completed .checkbox:after{content:"✓";color:white;font-weight:700;font-size:14px}.travel-badge{display:inline-block;background:linear-gradient(135deg,#e8b4c2,#d89aac);color:white;padding:5px 15px;border-radius:20px;font-size:.9em;font-weight:600;margin-top:10px}.flight-section{background:white;border-radius:15px;padding:30px;box-shadow:0 10px 30px rgba(0,0,0,.2);position:relative;overflow:hidden;display:flex;gap:25px;align-items:center}.flight-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:linear-gradient(90deg,#b5d5e8,#a0c4d9)}.flight-section.return:before{background:linear-gradient(90deg,#c5d9c5,#b0c9b0)}.flight-icon{font-size:4em;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:#eff6fb;border-radius:50%}.flight-section.return .flight-icon{background:#f0f7f0}.flight-content{flex:1 1;display:flex;flex-direction:column;gap:20px}.flight-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.flight-title{font-size:1.8em;font-weight:700;color:#7ba8c9;margin:0}.flight-section.return .flight-title{color:#8fb69f}.flight-number{font-size:1.1em;font-weight:600;color:#666;background:#f5f5f5;padding:8px 16px;border-radius:20px;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%;line-height:1.3}.flight-route{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:20px;gap:20px;align-items:center}.flight-route:has(.layover-info){grid-template-columns:1fr auto 1fr auto 1fr}.flight-location{display:flex;flex-direction:column;gap:5px}.flight-location-header{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.flight-route .flight-location:last-child{text-align:right;align-items:flex-end}.flight-route .flight-location:last-child .flight-location-header{justify-content:flex-end}.location-city{font-size:1.5em;font-weight:700;color:#333}.location-airport{font-size:1.1em;font-weight:600;color:#c47b91;background:#fce8ed;padding:4px 12px;border-radius:12px;display:inline-block;width:-moz-fit-content;width:fit-content;white-space:nowrap}.location-datetime{display:flex;flex-direction:column;gap:3px;margin-top:5px}.location-datetime .date{font-size:.95em;color:#666;font-weight:500}.location-datetime .time{font-size:1.2em;font-weight:700;color:#333}.flight-arrow{font-size:2.5em;color:#7ba8c9;font-weight:700;display:flex;flex-direction:row;align-items:center;gap:10px}.flight-section.return .flight-arrow{color:#8fb69f}.flight-duration{font-size:.8em;color:#999;font-weight:500;white-space:nowrap}.flight-notes{background:#fef9f5;padding:12px 15px;border-radius:8px;border-left:3px solid #d8b895;display:flex;align-items:center;gap:10px;font-size:.95em;color:#666}.notes-icon{font-size:1.2em}.activities-section{background:linear-gradient(135deg,#fef9fb,#fef5f7);padding:20px;border-radius:12px;border-left:4px solid #d89aac;margin:15px 0}.activities-title{display:flex;align-items:center;gap:10px;font-size:1.2em;font-weight:700;color:#c47b91;margin-bottom:15px}.activities-icon{font-size:1.3em}.activities-list{display:flex;flex-direction:column;gap:15px}.activity-item{background:white;padding:15px;border-radius:10px;box-shadow:0 2px 8px rgba(216,154,172,.1);border:1px solid #fce8ed}.highlight-name{font-size:1.1em;font-weight:700;color:#333;margin-bottom:8px;display:flex;align-items:center;gap:8px}.highlight-name:before{font-size:.9em}.activity-description{font-size:.95em;color:#666;line-height:1.4}.layover-info{display:flex;align-items:center;gap:15px;background:#fef9fb;padding:15px 20px;border-radius:12px;border:2px solid #f5d5dd;min-width:200px;flex-wrap:nowrap}.layover-icon{font-size:1.8em;flex-shrink:0}.layover-details{display:flex;flex-direction:column;gap:3px}.layover-city-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.layover-city{font-size:1.1em;font-weight:700;color:#333}.layover-airport{font-size:.9em;font-weight:600;color:#c47b91;background:#fce8ed;padding:2px 8px;border-radius:8px;width:-moz-fit-content;width:fit-content;white-space:nowrap}.layover-duration{font-size:.85em;color:#666;font-weight:500;margin-top:2px}.layover-arrow{font-size:2em;color:#7ba8c9}.flight-section.return .layover-arrow{color:#8fb69f}.city-section{background:white;border-radius:15px;padding:30px;box-shadow:0 10px 30px rgba(0,0,0,.2);position:relative;overflow:hidden}.city-section:before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:linear-gradient(90deg,#e8b4c2,#d89aac)}.city-header-row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:nowrap}.city-title{font-size:2.5em;color:#c47b91;margin-bottom:10px;gap:15px;padding-top:5px}.city-title,.weather-display{font-weight:700;display:flex;align-items:center}.weather-display{gap:10px;background:linear-gradient(135deg,#fef5e8,#f9ead5);padding:12px 20px;border-radius:25px;box-shadow:0 4px 12px rgba(216,154,172,.15);font-size:1.2em;color:#6b4f5a;white-space:nowrap;flex-shrink:0;min-width:-moz-fit-content;min-width:fit-content}.weather-icon{font-size:1.5em}.city-dates,.weather-temp{font-size:1.1em}.city-dates{color:#b87890;font-weight:600;margin-top:5px;margin-bottom:25px}.hotel-info-block{background:#fef9fb;padding:20px;border-radius:10px;display:flex;flex-direction:column;gap:15px;border:2px solid #f5d5dd}.hotel-info-block>div:first-of-type{display:flex;align-items:center;gap:15px}.hotel-icon{font-size:2.5em}.hotel-details{flex:1 1}.hotel-label{font-size:.9em;color:#666;margin-bottom:5px;font-weight:500}.hotel-name-large{font-size:1.4em;font-weight:700;color:#333}.hotel-address{font-size:.95em;color:#666;margin-top:5px;font-weight:500;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word}.hotel-map-container{width:100%;height:300px;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1);position:relative}.hotel-map{width:100%;height:100%;border:none}.places-section{margin-top:25px;padding:20px;background:linear-gradient(135deg,#fff,#fef5f7);border-radius:12px;border:2px solid #f5d5dd;display:flex;flex-direction:column;gap:15px;transition:border-color .2s ease,box-shadow .2s ease}.places-section.is-open{box-shadow:0 10px 20px rgba(216,154,172,.2)}.places-toggle{background:none;border:none;padding:0;margin:0;width:100%;justify-content:space-between;cursor:pointer}.places-title,.places-toggle{display:flex;align-items:center}.places-title{gap:10px;font-size:1.3em;font-weight:700;color:#c47b91}.places-title-icon{font-size:1.4em}.places-toggle-icon{font-size:1.1em;color:#c47b91;transition:transform .2s ease}.places-section.is-open .places-toggle-icon{transform:rotate(180deg)}.places-content{display:flex;flex-direction:column;gap:15px}.place-category-group{display:flex;flex-direction:column;gap:12px}.place-category-heading{font-size:.95em;font-weight:700;color:#c47b91;text-transform:uppercase;letter-spacing:.05em}.places-list{gap:12px}.place-card,.places-list{display:flex;flex-direction:column}.place-card{background:white;border-radius:10px;padding:16px;border:1px solid #fce8ed;text-decoration:none;color:inherit;gap:6px;box-shadow:0 2px 6px rgba(216,154,172,.12);transition:border-color .2s ease,box-shadow .2s ease}.place-card:hover{border-color:#d89aac;box-shadow:0 6px 16px rgba(216,154,172,.18)}.place-name{font-size:1.05em;font-weight:700;color:#333}.place-map-link{font-size:.9em;font-weight:600;color:#7ba8c9}.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}.city-days{margin-top:20px;padding-top:20px;border-top:2px solid #f0f0f0}.day-item{padding:20px 0;border-bottom:2px solid #f0f0f0}.day-item:last-child{border-bottom:none;padding-bottom:0}.day-item:first-child{padding-top:0}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){body{padding:20px 10px}header h1{font-size:2.5em}header p{font-size:1.1em}.places-section{padding:15px}.places-list{gap:10px}.places-content{gap:12px}.city-days{padding:20px}.day-date{font-size:1.5em}.location{font-size:1.1em}.city-header-row{flex-direction:row;align-items:center;gap:15px;flex-wrap:wrap}.city-title{font-size:2em;flex:1 1;min-width:0}.weather-display{font-size:.9em;padding:8px 12px;gap:6px}.location-airport{font-size:1em;padding:3px 10px}.layover-airport{font-size:.8em;padding:2px 6px}.city-section{padding:15px;margin-bottom:20px}.itinerary{gap:20px}.hotel-info-block>div:first-of-type{flex-direction:column;text-align:center;gap:10px}.hotel-name-large{font-size:1.2em}.hotel-address{font-size:.9em;line-height:1.3;margin-top:8px}.hotel-map-container{height:250px;margin-top:15px}.hotel-map{pointer-events:auto}.flight-section{flex-direction:column;padding:15px;text-align:center}.flight-icon{width:60px;height:60px;font-size:3em}.flight-route{grid-template-columns:1fr;gap:15px}.flight-route:has(.layover-info){grid-template-columns:1fr}.flight-route .flight-location:last-child{text-align:center;align-items:center}.flight-location-header{justify-content:center;gap:6px}.flight-route .flight-location:last-child .flight-location-header{justify-content:center}.layover-info{flex-direction:column;text-align:center;padding:12px 15px;min-width:auto}.layover-city-row{justify-content:center;gap:6px}.layover-icon{font-size:1.5em}.flight-arrow{font-size:2em;flex-direction:column;gap:5px}.location-city{font-size:1.3em}.flight-title{font-size:1.5em}.flight-header{flex-direction:column;align-items:center;gap:15px}.flight-number{font-size:.9em;padding:6px 10px;max-width:90%;text-align:center;word-wrap:break-word;overflow-wrap:break-word;line-height:1.4}.activities-section{padding:15px}.activity-item{padding:12px}.highlight-name{font-size:1em}.activity-description{font-size:.9em}.todos-container{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.todo-section{padding:20px}.todo-title{font-size:1.2em}}@media (max-width:480px){body{padding:15px 8px}.todos-container{gap:15px;margin-bottom:25px}.todo-section{padding:15px}.todo-title{font-size:1.1em}.flight-number{font-size:.8em;padding:4px 6px;max-width:95%;word-wrap:break-word;overflow-wrap:break-word;line-height:1.3}.flight-title{font-size:1.3em}.hotel-address{font-size:.85em;line-height:1.2}.city-title{font-size:1.8em}.weather-display{font-size:.85em;padding:6px 10px;gap:5px}.location-airport{font-size:.9em;padding:2px 8px}.layover-airport{font-size:.75em;padding:1px 5px}.city-section,.flight-section{padding:12px}}