:root{--color-bg:#f0fdfa;--color-text:#0f172a;--color-text-muted:#475569;--color-primary:#0284c7;--color-primary-hover:#0369a1;--color-secondary:#ea580c;--color-accent:#f59e0b;--color-surface:#fff9;--color-surface-hover:#ffffffd9;--color-border:#00000014;--font-heading:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-glow:0 0 15px #0284c733;--gradient-bg:linear-gradient(135deg, #e0f2fe 0%, #ccfbf1 100%);--gradient-primary:linear-gradient(135deg, #0ea5e9 0%, #3b82f6 100%);--gradient-secondary:linear-gradient(135deg, #f97316 0%, #fb923c 100%)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--gradient-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;min-height:100vh;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:1.2}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-hover)}.glass-panel{background:var(--color-surface);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);border-radius:16px}.text-gradient{background:var(--gradient-secondary);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}50%{transform:translate(10px)}75%{transform:translate(-10px)}}.animate-fade-in{animation:.6s ease-out forwards fadeIn}.animate-shake{animation:.4s ease-in-out shake}.login-container{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{text-align:center;width:100%;max-width:400px;padding:3rem 2.5rem}.login-card h1{margin-bottom:.5rem;font-size:2.5rem}.subtitle{color:var(--color-text-muted);margin-bottom:2rem;font-size:.95rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-input{border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-body);background:#ffffff80;border-radius:8px;outline:none;padding:.75rem 1rem;font-size:1rem;transition:all .3s}.login-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #38bdf833}.login-input.input-error{border-color:var(--color-secondary)}.login-button{background:var(--gradient-primary);color:#fff;font-family:var(--font-heading);cursor:pointer;border:none;border-radius:8px;padding:.75rem 1rem;font-size:1rem;font-weight:600;transition:opacity .3s,transform .2s}.login-button:hover{opacity:.9;transform:translateY(-1px)}.login-button:active{transform:translateY(0)}.day-card{opacity:0;margin-bottom:2.5rem;padding:0;transition:transform .3s,box-shadow .3s,background .3s;position:relative;overflow:hidden}.day-card:hover{box-shadow:var(--shadow-glow);background:var(--color-surface-hover);transform:translateY(-5px)scale(1.01)}.day-card-banner{width:100%;height:200px;position:relative;overflow:hidden}.banner-image{object-fit:cover;width:100%;height:100%;transition:transform .5s}.day-card:hover .banner-image{transform:scale(1.05)}.day-card-banner:after{content:"";background:linear-gradient(to top, var(--color-surface), transparent);width:100%;height:50%;position:absolute;bottom:0;left:0}.day-card-content{padding:2rem}.day-card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.day-date{font-family:var(--font-heading);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:600}.day-icon{font-size:1.5rem}.day-title{margin-bottom:.5rem;font-size:1.8rem}.day-location{color:var(--color-primary);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1rem;font-weight:500;display:flex}.location-icon{width:18px;height:18px}.day-description{color:var(--color-text);margin-bottom:1.5rem;font-size:1.05rem;line-height:1.6}.day-activities h4{text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem;display:flex}.vote-badge{color:var(--color-secondary);background:#f43f5e33;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:700}.activity-list{flex-direction:column;gap:.75rem;list-style:none;display:flex}.activity-item{border:1px solid var(--color-border);background:#00000005;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .2s;display:flex}.day-card:hover .activity-item{background:#0000000a}.activity-text{flex:1;font-size:.95rem}.vote-btn{border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;background:#ffffff80;border-radius:20px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.85rem;transition:all .2s;display:flex}.vote-btn:hover{background:var(--color-surface-hover);border-color:var(--color-primary);transform:translateY(-2px)}.vote-btn.voted{background:var(--gradient-primary);color:#fff;border-color:#0000}.activity-actions{align-items:center;gap:.5rem;display:flex}.delete-activity-btn{color:var(--color-secondary);cursor:pointer;opacity:.4;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.4rem;font-size:.8rem;transition:all .2s;display:flex}.delete-activity-btn:hover{opacity:1;background:#ea580c1a}.activity-thumbnail{object-fit:cover;border-radius:6px;width:40px;height:40px;margin-right:.75rem}.activity-text-wrapper{flex-direction:column;flex:1;display:flex}.suggestion-badge{background:var(--color-secondary);color:#fff;text-transform:uppercase;border-radius:4px;padding:.1rem .3rem;font-size:.65rem;font-weight:600}.suggestion-meta{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.2rem;display:flex}.suggestion-detail{color:var(--color-text-muted);font-size:.75rem}.suggestion-section{border-top:1px dashed var(--color-border);margin-top:1rem;padding-top:1rem}.toggle-suggest-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.toggle-suggest-btn:hover{text-decoration:underline}.suggestion-form{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.suggestion-input{border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-body);background:#ffffff80;border-radius:6px;outline:none;padding:.6rem .8rem}.suggestion-input:focus{border-color:var(--color-primary)}.suggestion-row{gap:.5rem;display:flex}.flex-1{flex:1}.flex-2{flex:2}.suggestion-submit{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:.25rem;padding:.6rem;font-weight:600}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.checklist-widget{margin-bottom:2rem;transition:all .3s;overflow:hidden}.checklist-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.checklist-header h3{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.checklist-count{color:var(--color-text-muted);font-size:.9rem;font-weight:400}.toggle-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.checklist-body{border-top:1px solid var(--color-border);margin-top:.5rem;padding:1.5rem}.checklist-form{gap:.5rem;margin-bottom:1.5rem;display:flex}.checklist-input{border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-body);background:#ffffff80;border-radius:6px;outline:none;flex:1;padding:.6rem 1rem}.checklist-input:focus{border-color:var(--color-primary)}.checklist-add-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:0 1rem;font-weight:600}.checklist-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.checklist-item{border-radius:6px;justify-content:space-between;align-items:center;padding:.5rem;transition:background .2s;display:flex}.checklist-item:hover{background:#0000000d}.checklist-item.done .item-text{color:var(--color-text-muted);text-decoration:line-through}.checkbox-label{cursor:pointer;flex:1;align-items:center;gap:.75rem;display:flex}.checkbox-label input{display:none}.custom-checkbox{border:2px solid var(--color-primary);border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .2s;display:flex}.checkbox-label input:checked+.custom-checkbox{background:var(--color-primary)}.checkbox-label input:checked+.custom-checkbox:after{content:"✓";color:#fff;font-size:12px;font-weight:700}.delete-btn{color:var(--color-text-muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 .5rem;font-size:1.25rem;transition:all .2s}.checklist-item:hover .delete-btn{opacity:1}.delete-btn:hover{color:var(--color-secondary)}.empty-state{text-align:center;color:var(--color-text-muted);padding:1rem 0;font-style:italic}.itinerary-layout{max-width:1000px;min-height:100vh;margin:0 auto;padding:1.5rem}.nav-bar{z-index:100;justify-content:space-between;align-items:center;margin-bottom:3rem;padding:1rem 2rem;display:flex;position:sticky;top:1.5rem}.nav-brand{font-family:var(--font-heading);letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.logout-button{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:20px;padding:.4rem 1rem;font-size:.9rem;transition:all .2s}.logout-button:hover{color:var(--color-text);border-color:var(--color-text);background:#ffffff1a}.hero-section{text-align:center;margin-bottom:4rem;padding:2rem 0}.hero-title{letter-spacing:-.03em;margin-bottom:1rem;font-size:3.5rem}.hero-subtitle{color:var(--color-text-muted);font-size:1.5rem;font-weight:300}.timeline-container{flex-direction:column;gap:1rem;display:flex}.footer{text-align:center;color:var(--color-text-muted);padding:4rem 0 2rem;font-size:.9rem}@media (width<=768px){.hero-title{font-size:2.5rem}.itinerary-layout{padding:1rem}.nav-bar{top:1rem}}.logo{will-change:filter;height:6em;padding:1.5em;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:20s linear infinite logo-spin}}
