:root{--ink:#173e46;--ink-2:#315b60;--cream:#f7f1df;--paper:#fffdf6;--ice:#d8efeb;--ice-2:#b9ddd8;--coral:#ef6c5b;--yellow:#f4ca64;--moss:#7f9776;--line:#173e4624;--shadow:0 16px 42px #173e461f}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--cream)}body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 12% 2%, #f4ca642e, transparent 20rem), var(--cream);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;color:inherit}.app-shell{min-height:100svh;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.topbar{z-index:30;min-height:4.35rem;padding:max(.65rem, env(safe-area-inset-top)) 1rem .65rem;color:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#173e46f5;border-bottom:1px solid #ffffff1f;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;display:grid;position:sticky;top:0}.brand{align-items:center;gap:.65rem;min-width:0;text-decoration:none;display:flex}.brand-dot{width:2rem;height:2rem;color:var(--ink);background:var(--yellow);border-radius:50%;flex:none;place-items:center;display:grid;transform:rotate(-8deg)}.brand>span:last-child{min-width:0;display:grid}.brand b{letter-spacing:.16em;font-size:.78rem}.brand small{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.sync-state,.edit-toggle{cursor:pointer;border:0;border-radius:999px;min-height:2.45rem;padding:.55rem .7rem;font-size:.69rem;font-weight:800}.sync-state{color:var(--paper);background:#ffffff17;align-items:center;gap:.35rem;display:flex}.sync-state i{background:var(--yellow);border-radius:50%;width:.48rem;height:.48rem}.sync-state.saving i{animation:1s infinite pulse}.sync-state.offline i,.sync-state.error i{background:var(--coral)}.edit-toggle{color:var(--ink);background:var(--paper)}.edit-toggle.active{background:var(--yellow)}.hero{color:var(--ink);background:var(--ice);border-bottom:1px solid var(--line);padding:4.8rem 1.2rem 2.1rem;position:relative;overflow:hidden}.hero-sky{pointer-events:none;position:absolute;inset:0}.sun{color:var(--coral);font-size:3.8rem;line-height:1;position:absolute;top:1.15rem;right:1.1rem}.cloud{background:#ffffffb8;border-radius:999px;width:6rem;height:1.45rem;position:absolute}.cloud:before,.cloud:after{content:"";background:inherit;border-radius:50%;position:absolute;bottom:0}.cloud:before{width:2.7rem;height:2.7rem;left:1rem}.cloud:after{width:2rem;height:2rem;right:.65rem}.cloud-one{top:2.1rem;left:-2rem;transform:scale(.72)}.cloud-two{top:5.9rem;right:-3.2rem;transform:scale(.55)}.hero-copy{max-width:40rem;position:relative}.eyebrow,.kicker{letter-spacing:.13em;text-transform:uppercase;font-size:.68rem;font-weight:900}.hero h1,.section-head h2,.modal-head h2{margin:.65rem 0;font-family:Georgia,Times New Roman,serif;font-weight:700;line-height:.96}.hero h1{letter-spacing:-.055em;max-width:10ch;font-size:clamp(3.1rem,15.5vw,6rem)}.hero h1 em{color:var(--coral);font-weight:400}.hero-copy p{max-width:33rem;color:var(--ink-2);margin:1.15rem 0 0;font-size:.98rem;line-height:1.55}.hero-ticket{max-width:24rem;color:var(--paper);background:var(--ink);border-radius:.8rem;grid-template-columns:auto auto 1fr;align-items:center;gap:.55rem;margin-top:2rem;padding:.85rem 1rem;display:grid;position:relative;transform:rotate(-1deg);box-shadow:5px 6px #173e4626}.hero-ticket span{letter-spacing:.12em;font-size:.72rem;font-weight:900}.hero-ticket i{color:var(--yellow);font-style:normal}.hero-ticket b{color:var(--yellow);letter-spacing:.06em;justify-self:end;font-size:.68rem}.hero-route{align-items:center;max-width:25rem;margin-top:1.6rem;display:flex}.hero-route>span:not(.route-dot){background:#173e463d;flex:1;height:2px}.route-dot{border:2px solid var(--ink);border-radius:50%;width:.75rem;height:.75rem}.route-dot.active{background:var(--coral);box-shadow:0 0 0 4px #ef6c5b2e}.today-note{z-index:2;background:var(--yellow);border:2px solid var(--ink);box-shadow:4px 5px 0 var(--ink);border-radius:1rem;align-items:center;gap:1rem;margin:-1rem 1rem 1rem;padding:1rem;display:flex;position:relative}.today-note>div{flex:1}.today-note p{margin:.35rem 0 0;line-height:1.4}.today-note button{border:1px solid var(--ink);background:#ffffff73;border-radius:.7rem;min-width:4rem;min-height:2.8rem;padding:.55rem;font-weight:800}.tabs{z-index:20;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6f0;border-radius:1rem;grid-template-columns:repeat(4,1fr);margin:0 1rem;padding:.32rem;display:grid;position:sticky;top:4.32rem;box-shadow:0 8px 24px #173e4614}.tabs button{cursor:pointer;background:0 0;border:0;border-radius:.7rem;min-height:2.7rem;padding:.45rem .2rem;font-size:.73rem;font-weight:850}.tabs button.active{color:var(--paper);background:var(--ink)}.error-banner{text-align:left;color:#6d1f17;background:#ffd8d1;border:1px solid #6d1f1733;border-radius:.8rem;justify-content:space-between;gap:1rem;width:calc(100% - 2rem);max-width:46rem;margin:1rem auto;padding:.8rem 1rem;display:flex}.route-section,.content-section{width:min(100%,48rem);margin:0 auto;padding:1.8rem 1rem}.section-head{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.2rem;display:flex}.section-head h2{letter-spacing:-.03em;margin:.25rem 0 0;font-size:2.1rem}.progress-badge{color:var(--paper);background:var(--moss);border-radius:999px;flex:none;padding:.55rem .7rem;font-size:.72rem;font-weight:900}.timeline{gap:.78rem;display:grid;position:relative}.timeline:before{content:"";border-left:2px dashed var(--ice-2);position:absolute;top:2rem;bottom:2rem;left:1.65rem}.day-card{background:var(--paper);border:1px solid var(--line);border-radius:1.05rem;position:relative;overflow:hidden;box-shadow:0 7px 22px #173e460e}.day-card.open{border-color:var(--ink);box-shadow:var(--shadow)}.day-summary{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:3.25rem minmax(0,1fr) 1.6rem;align-items:center;gap:.8rem;width:100%;min-height:6rem;padding:.85rem .75rem .85rem .55rem;display:grid}.day-number{z-index:1;width:2.25rem;height:2.25rem;color:var(--paper);background:var(--coral);border:3px solid var(--paper);box-shadow:0 0 0 1px var(--coral);border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;display:grid;position:relative}.day-heading{gap:.22rem;min-width:0;display:grid}.day-heading small{color:var(--coral);letter-spacing:.09em;text-transform:uppercase;font-size:.63rem;font-weight:900}.day-heading strong{font-family:Georgia,Times New Roman,serif;font-size:1.07rem;line-height:1.15}.day-heading em{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:.71rem;font-style:normal;overflow:hidden}.day-open{text-align:center;font-size:1.6rem;font-weight:300}.day-detail{padding:0 1rem 1.15rem 4.6rem}.day-meta{flex-wrap:wrap;gap:.45rem;display:flex}.day-meta span{background:var(--ice);border-radius:.5rem;padding:.35rem .55rem;font-size:.69rem;font-weight:800}.day-intro{color:var(--ink-2);margin:1rem 0;font-size:.87rem;line-height:1.55}.map-button{min-height:3.4rem;color:var(--paper);background:var(--ink);border-radius:.75rem;justify-content:space-between;align-items:center;gap:.5rem;margin:.9rem 0 1.2rem;padding:.7rem .85rem;text-decoration:none;display:flex}.map-button span{font-size:.72rem}.map-button b{font-size:.75rem}.stop-list{gap:.85rem;display:grid}.stop{grid-template-columns:1.75rem minmax(0,1fr);gap:.65rem;transition:opacity .2s;display:grid}.stop.done{opacity:.53}.stop.done h3{text-decoration:line-through}.check{width:1.65rem;height:1.65rem;color:var(--paper);background:var(--paper);border:2px solid var(--moss);cursor:pointer;border-radius:50%;place-items:center;margin-top:.1rem;display:grid}.stop.done .check{background:var(--moss)}.stop-top{align-items:center;gap:.4rem;margin-bottom:.17rem;display:flex}.stop-top time{color:var(--coral);font-size:.66rem;font-weight:900}.tag{letter-spacing:.04em;text-transform:uppercase;border-radius:.3rem;padding:.17rem .35rem;font-size:.55rem;font-weight:900}.tag-must{color:#713229;background:#ffd6cf}.tag-optional{color:#3b5735;background:#dfe9d9}.tag-food{color:#664d15;background:#fce9b8}.tag-sleep{color:#224e56;background:#d8efeb}.tag-warning{color:#70331c;background:#ffd9ad}.stop h3{margin:.1rem 0 .2rem;font-family:Georgia,Times New Roman,serif;font-size:1rem}.stop p{color:var(--ink-2);margin:0;font-size:.78rem;line-height:1.45}.stop a{color:var(--coral);margin-top:.35rem;font-size:.7rem;font-weight:900;display:inline-block}.plan-b,.day-note{border-radius:.75rem;margin-top:1.2rem;padding:.8rem}.plan-b{color:#5d4818;border-left:4px solid var(--yellow);background:#fff0c4}.day-note{background:var(--ice)}.plan-b span,.day-note span{letter-spacing:.12em;font-size:.58rem;font-weight:950}.plan-b p,.day-note p{margin:.35rem 0 0;font-size:.76rem;line-height:1.45}.edit-day{border:1px dashed var(--ink);cursor:pointer;background:0 0;border-radius:.7rem;width:100%;min-height:2.8rem;margin-top:1rem;font-size:.72rem;font-weight:850}.day-progress{background:var(--ice);border-radius:99px;height:4px;margin-top:1rem;overflow:hidden}.day-progress span{background:var(--coral);height:100%;transition:width .3s;display:block}.booking-list,.check-sections,.info-cards{gap:.8rem;display:grid}.booking-card{background:var(--paper);border:1px solid var(--line);border-radius:1rem;grid-template-columns:5.1rem minmax(0,1fr);gap:.8rem;padding:1rem;display:grid}.booking-status{text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;align-self:start;min-height:2.25rem;padding:.45rem;font-size:.61rem;font-weight:950}.booking-status.pendent{color:#65450a;background:#fee7aa}.booking-status.reservat{color:#294b2c;background:#d6e8d1}.booking-status.opcional{color:#315b60;background:var(--ice)}.booking-card time{color:var(--coral);text-transform:uppercase;font-size:.66rem;font-weight:900}.booking-card h3{margin:.25rem 0;font-family:Georgia,Times New Roman,serif;font-size:1.08rem}.booking-card p{color:var(--ink-2);margin:0;font-size:.79rem;line-height:1.5}.booking-actions{gap:1rem;margin-top:.7rem;display:flex}.booking-actions a,.booking-actions button{color:var(--coral);cursor:pointer;background:0 0;border:0;padding:0;font-size:.7rem;font-weight:900}.tiny-note,.source-note{color:var(--ink-2);font-size:.7rem;line-height:1.5}.check-section{background:var(--paper);border:1px solid var(--line);border-radius:1rem;overflow:hidden}.check-section-head{background:var(--ice);justify-content:space-between;padding:.85rem 1rem;display:flex}.check-section-head h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1rem}.check-section-head span{font-size:.7rem;font-weight:900}.check-section label{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:1.35rem 1fr;align-items:start;gap:.65rem;min-height:3rem;padding:.78rem 1rem;font-size:.82rem;line-height:1.35;display:grid}.check-section label.done{color:#76898c;text-decoration:line-through}.check-section input{width:1.2rem;height:1.2rem;accent-color:var(--moss)}.official-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.official-grid a{background:var(--paper);border:1px solid var(--line);border-radius:.9rem;min-height:7.4rem;padding:.9rem;text-decoration:none;display:grid;position:relative}.official-grid b{padding-right:1.2rem;font-family:Georgia,Times New Roman,serif}.official-grid span{color:var(--ink-2);align-self:end;font-size:.67rem;line-height:1.4}.official-grid i{color:var(--coral);font-style:normal;position:absolute;top:.8rem;right:.8rem}.emergency{color:var(--paper);background:var(--coral);border-radius:1rem;grid-template-columns:1fr auto;gap:.3rem .8rem;margin:1rem 0;padding:1rem;display:grid}.emergency span{letter-spacing:.14em;font-size:.65rem;font-weight:950}.emergency strong{grid-row:span 2;font-size:3rem;line-height:.9}.emergency p{margin:0;font-size:.75rem;line-height:1.45}.emergency a{grid-column:1/-1;margin-top:.5rem;font-size:.7rem;font-weight:900}.info-cards article{background:var(--paper);border:1px solid var(--line);border-radius:.9rem;padding:1rem}.info-cards h3{margin:0 0 .4rem;font-family:Georgia,Times New Roman,serif}.info-cards p{color:var(--ink-2);margin:0;font-size:.79rem;line-height:1.5}footer{width:min(100% - 2rem,46rem);color:var(--ink-2);border-top:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;margin:1rem auto 0;padding:1.2rem 0;font-size:.67rem;font-weight:800;display:flex}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c2328a3;justify-content:center;align-items:end;padding-top:3rem;display:flex;position:fixed;inset:0}.modal{width:min(100%,42rem);max-height:calc(100svh - 2rem);padding:.5rem 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--paper);border-radius:1.25rem 1.25rem 0 0;overflow-y:auto;box-shadow:0 -20px 60px #00000038}.modal-grab{background:var(--line);border-radius:99px;width:2.8rem;height:.28rem;margin:.15rem auto .8rem}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:1rem;padding-bottom:.8rem;display:flex}.modal-head h2{margin:.2rem 0 0;font-size:1.8rem}.modal-head>button{background:var(--ice);cursor:pointer;border:0;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.5rem}.modal-form{gap:.9rem;padding:1rem 0;display:grid}.modal-form>p{color:var(--ink-2);margin:0;font-size:.83rem;line-height:1.5}.field{gap:.35rem;min-width:0;display:grid}.field>span,.editor-list-head>span{letter-spacing:.07em;text-transform:uppercase;font-size:.64rem;font-weight:900}.field input,.field textarea,.field select{width:100%;min-height:2.9rem;color:var(--ink);background:#fff;border:1px solid #173e4640;border-radius:.7rem;outline:none;padding:.7rem .75rem}.field textarea{resize:vertical;line-height:1.45}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--coral);box-shadow:0 0 0 3px #ef6c5b24}.field-row{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.editor-list-head{justify-content:space-between;align-items:center;margin-top:.35rem;display:flex}.editor-list-head button{min-height:2.4rem;color:var(--paper);background:var(--moss);border:0;border-radius:.6rem;padding:.45rem .7rem;font-size:.67rem;font-weight:900}.editor-items{gap:.8rem;display:grid}.editor-item{background:var(--cream);border:1px solid var(--line);border-radius:.85rem;gap:.7rem;padding:.9rem;display:grid;position:relative}.remove-item{z-index:2;width:2rem;height:2rem;color:var(--coral);background:var(--paper);border:1px solid var(--line);border-radius:50%;font-size:1.1rem;position:absolute;top:.5rem;right:.5rem}.editor-item .field-row{padding-right:2.2rem}.modal-actions{background:linear-gradient(transparent, var(--paper) 15%);grid-template-columns:1fr 1.4fr;gap:.7rem;padding-top:.8rem;display:grid;position:sticky;bottom:0}.modal-actions button,.modal-form>.primary{background:var(--ice);cursor:pointer;border:0;border-radius:.75rem;min-height:3rem;padding:.7rem;font-weight:900}.modal-actions .primary,.modal-form>.primary{color:var(--paper);background:var(--ink)}.form-error{background:#ffddd7;border-radius:.6rem;padding:.65rem;color:#702118!important}@keyframes pulse{50%{opacity:.3;transform:scale(.7)}}@media (width>=700px){.topbar{padding-left:calc(50% - 24rem);padding-right:calc(50% - 24rem)}.hero{min-height:31rem;padding:6rem max(1.2rem,50% - 24rem) 3rem}.today-note,.tabs{width:46rem;margin-left:auto;margin-right:auto}.day-detail{padding-right:1.3rem}.modal-backdrop{align-items:center;padding:2rem}.modal{border-radius:1.25rem;max-height:calc(100svh - 4rem)}}@media (width<=420px){.sync-state{color:#0000;justify-content:center;width:2.45rem;padding:0;overflow:hidden}.sync-state i{flex:none}.hero{padding-top:3.8rem}.day-detail{padding-left:1rem}.timeline:before{display:none}.field-row{grid-template-columns:1fr}.editor-item .field-row{padding-right:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.quickbar{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.9rem;display:flex}.quickbar-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-right:.1rem;font-size:.6rem;font-weight:900}.quickbar a,.today-jump{color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:.6rem;align-items:center;gap:.3rem;padding:.4rem .6rem;font-size:.72rem;font-weight:800;text-decoration:none;display:inline-flex}.today-jump{color:var(--paper);background:var(--coral);border-color:var(--coral);cursor:pointer}.quickbar-sos{color:var(--paper)!important;background:var(--coral)!important;border-color:var(--coral)!important}.tag-legend{color:var(--ink-2);flex-wrap:wrap;gap:.35rem .8rem;margin-bottom:1.1rem;font-size:.64rem;display:flex}.tag-legend>span{align-items:center;gap:.3rem;display:inline-flex}.day-card.today{border-color:var(--coral);box-shadow:0 10px 26px #ef6c5b2e}.avui-badge{letter-spacing:.06em;color:var(--paper);background:var(--coral);vertical-align:middle;border-radius:.3rem;margin-left:.3rem;padding:.05rem .35rem;font-size:.58rem;font-weight:900;display:inline-block}.pdf-download{color:var(--paper);background:var(--ink);border-radius:.8rem;margin-bottom:1rem;padding:.8rem 1rem;font-size:.85rem;font-weight:900;text-decoration:none;display:block}.pdf-download small{color:var(--ice);margin-top:.2rem;font-size:.68rem;font-weight:600;display:block}.emergency a.call-112{color:var(--coral);background:var(--paper);border-radius:.7rem;justify-content:center;align-items:center;gap:.35rem;margin-top:.6rem;padding:.6rem;font-size:.85rem;font-weight:900;text-decoration:none;display:inline-flex}
