:root{
  --bg:#f7f3eb;
  --panel:#fffdf9;
  --panel-2:#eef7ff;
  --line:#d8e1e8;
  --text:#243247;
  --muted:#68778b;
  --soft:#44556b;
  --accent:#d54f69;
  --accent-ink:#fffaf5;
  --ok:#3b9b78;
  --sky:#5ca7dc;
  --sky-deep:#2d6f9f;
  --gold:#d9a531;
  --lilac:#796aa8;
  --shadow:0 20px 55px rgba(45,85,115,.12);
}
html{color-scheme:light}
body{
  background:
    radial-gradient(circle at 8% 10%,rgba(255,255,255,.9) 0 2px,transparent 3px),
    radial-gradient(circle at 82% 14%,rgba(255,255,255,.8) 0 1.5px,transparent 2.5px),
    linear-gradient(180deg,#dff2ff 0 19rem,#f7f3eb 35rem);
  background-size:110px 110px,150px 150px,100% 100%;
  color:var(--text);
}
.topbar{
  background:rgba(255,253,249,.88);
  border-bottom-color:rgba(67,113,145,.18);
  box-shadow:0 8px 30px rgba(45,85,115,.07);
}
.brand svg{stroke:var(--sky-deep);fill:rgba(217,165,49,.14)}
.brand strong{color:var(--sky-deep)}
.view-switcher{background:#eaf5fc;border-color:#cfe1ee}
.view-button.active{background:var(--sky-deep);color:#fff}
.progress-compact i{background:#dce7ee}
.progress-compact b{background:linear-gradient(90deg,var(--accent),var(--gold))}
.trip-rail{
  background:linear-gradient(165deg,rgba(239,248,255,.94),rgba(255,253,249,.92));
  border-right-color:#ccdde9;
  position:relative;
  isolation:isolate;
}
.trip-rail:before{
  content:"";
  position:absolute;
  right:24px;
  top:34px;
  width:118px;
  height:118px;
  border:1px solid rgba(45,111,159,.16);
  border-radius:50%;
  box-shadow:inset 0 0 0 16px rgba(255,255,255,.22);
  z-index:-1;
}
.trip-rail:after{
  content:"";
  position:absolute;
  right:55px;
  top:60px;
  width:56px;
  height:58px;
  background:linear-gradient(to top,rgba(45,111,159,.10),rgba(45,111,159,.02));
  clip-path:polygon(14% 100%,14% 54%,25% 54%,25% 36%,34% 36%,34% 22%,42% 22%,50% 0,58% 22%,67% 22%,67% 44%,78% 44%,78% 59%,88% 59%,88% 100%);
  z-index:-1;
}
.eyebrow{color:var(--accent)}
.trip-heading h1,.calendar-heading h2{color:#263f5e}
.filter-button.active{border-color:var(--accent);color:var(--accent)}
.day-list,.day-button,.detail-header,.facts,.task-list,.task,.tip,footer{border-color:var(--line)}
.day-button{border-radius:10px;margin:2px 0}
.day-button:hover{color:var(--sky-deep);background:#edf7fd}
.day-button.active{color:#a72d4c;background:#fff0f3;box-shadow:inset 4px 0 0 var(--accent)}
.day-button.type-descanso{box-shadow:inset 3px 0 0 #61a984}
.day-button.type-logistica{box-shadow:inset 3px 0 0 var(--gold)}
.day-button.type-parque:not(.active){box-shadow:inset 3px 0 0 var(--sky)}
.day-state{border-color:#afc1ce;background:#fff}
.day-state.has-progress{border-color:var(--ok);background:var(--ok)}
.day-detail{background:rgba(255,253,249,.78)}
.detail-header h2{color:#253f60}
.intensity{
  background:linear-gradient(145deg,#fff8dc,#ffecae);
  border-color:#e1bc58;
  box-shadow:inset 0 1px 0 #fff,0 10px 28px rgba(191,139,24,.12);
}
.intensity strong{color:#986c0a}
.fact span,.section-title,.notes-panel label{color:var(--sky-deep)}
.checkmark{background:#fff;border-color:#9eb4c5}
.task input:checked+.checkmark{background:var(--ok);border-color:var(--ok)}
.task input:checked+.checkmark:after{border-color:#fff}
.priority{color:#b23553;background:#fff0f3;border-radius:999px;padding:5px 8px}
.task-copy span{color:#718095}
.notes-panel{border-color:var(--line)}
.tip{position:relative;padding-left:18px}
.tip:before{content:"";position:absolute;left:0;top:17px;width:7px;height:7px;background:var(--gold);transform:rotate(45deg);border-radius:1px}
.notes-panel textarea{background:#fff;border-color:#cbd9e3;color:var(--text);box-shadow:inset 0 1px 3px rgba(45,85,115,.06)}
.calendar-view{background:rgba(255,253,249,.78)}
.calendar-cell{background:#fff;border-color:#d6e2ea;box-shadow:0 8px 22px rgba(45,85,115,.06);transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s}
.calendar-cell.active:hover{border-color:var(--sky);transform:translateY(-3px)}
.calendar-cell i{background:var(--sky)}
.calendar-cell.type-descanso{background:#edf8f1;border-color:#bcdcc9}
.calendar-cell.type-descanso i{background:#57a179}
.calendar-cell.type-logistica{background:#fff8e5;border-color:#ead59a}
.calendar-cell.type-logistica i{background:var(--gold)}
.calendar-cell.type-parque{background:#f3f9fe;border-color:#c6dfee}
.secondary-action{background:#fff;border-color:#bcd1df;color:var(--sky-deep)}
.secondary-action:hover{background:#eef8ff;border-color:var(--sky)}
footer{background:rgba(255,253,249,.88)}
.text-action{color:var(--sky-deep)}
.search-box{margin:0 0 18px}
.search-box>label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--sky-deep);margin-bottom:7px}
.search-box>div{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 12px;background:#fff;border:1px solid #c8d9e4;border-radius:13px;box-shadow:inset 0 1px 2px rgba(45,85,115,.05)}
.search-box svg{width:19px;height:19px;fill:none;stroke:var(--sky-deep);stroke-width:1.8;flex:0 0 auto}
.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font:14px inherit}
.search-box input::placeholder{color:#8796a8}
.search-empty{padding:24px 12px;border-top:1px solid var(--line);display:grid;gap:5px}
.search-empty strong{font-size:14px}.search-empty span{font-size:12px;color:var(--muted)}
.places-panel{padding:24px 0 4px;border-bottom:1px solid var(--line)}
.places-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:13px}
.places-heading h3{font-size:19px;margin:2px 0 0;color:#253f60}.places-heading>span{font-size:10px;color:var(--muted)}
.section-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--sky-deep)}
.places-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:20px}
.place-link{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:68px;padding:11px 13px;border:1px solid #c9dce8;border-radius:15px;background:#f4faff;color:var(--text);text-decoration:none;transition:transform .2s,border-color .2s,background .2s}
.place-link:hover{transform:translateY(-2px);border-color:var(--sky);background:#fff}
.place-link:active{transform:scale(.985)}
.place-link svg{width:26px;height:26px;fill:none;stroke:var(--accent);stroke-width:1.8}
.place-link span{min-width:0}.place-link strong,.place-link small{display:block}.place-link strong{font-size:13px;line-height:1.3}.place-link small{font-size:10px;color:var(--muted);line-height:1.35;margin-top:3px}
.place-link b{font-size:10px;color:#fff;background:var(--sky-deep);border-radius:999px;padding:7px 9px;white-space:nowrap}
dialog{background:#fffdf9;color:var(--text);border-color:#cfdce5}
dialog button{background:var(--accent);color:#fff}
@media(max-width:1150px){
  .detail-grid{grid-template-columns:1fr}
  .notes-panel{border-left:0;border-top:1px solid var(--line);padding:26px 0 0}
}
@media(max-width:900px){
  .trip-rail{border-bottom-color:#ccdde9}
  .day-button{background:rgba(255,255,255,.55)}
  .day-list{scrollbar-width:none}
  .day-list::-webkit-scrollbar{display:none}
  .day-button.active{background:#fff0f3}
  .notes-panel{border-top-color:var(--line)}
}
@media(max-width:640px){
  body{background:linear-gradient(180deg,#e3f4ff 0 10rem,#f7f3eb 24rem)}
  .topbar{min-height:64px;padding:8px 10px;gap:8px}
  .brand{gap:7px}.brand svg{width:27px;height:27px}.brand strong{font-size:13px}
  .view-switcher{padding:3px}.view-button{min-height:42px;padding:8px 11px;font-size:12px;font-weight:650}
  .trip-rail{padding:18px 15px 14px}
  .trip-rail:before,.trip-rail:after{opacity:.38}
  .eyebrow{font-size:10px;margin-bottom:8px}
  .trip-heading h1{font-size:31px;line-height:1}
  .trip-heading>p:last-child{font-size:13px;line-height:1.45;margin-top:11px;max-width:32ch}
  .filters{margin:15px 0 10px;gap:1px}
  .filter-button{min-height:42px;padding:8px 10px;font-size:12px}
  .search-box{margin-bottom:12px}
  .search-box>label{font-size:11px}
  .search-box>div{min-height:50px;border-radius:14px}
  .search-box input{font-size:16px}
  .day-list{margin-inline:-2px}
  .day-button{min-width:184px;min-height:66px;padding:11px 10px;grid-template-columns:35px 1fr auto;gap:8px}
  .day-number{font-size:14px}.day-name strong{font-size:14px}.day-name span{font-size:11px}
  .day-detail{padding:24px 16px;scroll-margin-top:70px}
  .detail-header{gap:16px;padding-bottom:22px}
  .detail-date{font-size:12px;line-height:1.45}
  .detail-header h2{font-size:37px;line-height:1;margin:8px 0 12px}
  .detail-header p{font-size:15px;line-height:1.5}
  .intensity{width:auto;aspect-ratio:auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;justify-self:start;padding:8px 11px;border-radius:999px}
  .intensity strong{font-size:17px}.intensity span{font-size:8px}
  .facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fact{padding:15px 8px 15px 0;min-width:0}
  .fact+.fact{padding-left:9px;border-left:1px solid var(--line);border-top:0}
  .fact span{font-size:9px;letter-spacing:.07em;margin-bottom:5px}
  .fact strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere}
  .places-panel{padding:18px 0 2px}
  .places-heading{align-items:start;margin-bottom:11px}.places-heading h3{font-size:20px}.places-heading>span{font-size:10px;max-width:92px;text-align:right;line-height:1.3}
  .places-list{grid-template-columns:1fr;gap:9px;margin-bottom:17px}
  .place-link{grid-template-columns:32px minmax(0,1fr) auto;min-height:82px;padding:13px 12px;gap:10px;border-radius:16px}
  .place-link svg{width:28px;height:28px}.place-link strong{font-size:15px}.place-link small{font-size:12px;line-height:1.35;margin-top:4px}.place-link b{font-size:11px;padding:8px 9px}
  .detail-grid{margin-top:25px;gap:28px}
  .section-title{font-size:12px;margin-bottom:11px}
  .task{min-height:68px;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:14px 2px;align-items:start}
  .checkmark{width:28px;height:28px;border-radius:8px}
  .checkmark:after{width:10px;height:6px}
  .task-copy strong{font-size:16px;line-height:1.28}.task-copy span{font-size:13px}
  .priority{grid-column:2;justify-self:start;font-size:10px;margin-top:-2px;padding:5px 8px}
  .notes-panel{padding-top:22px}
  .tip{padding:14px 0 14px 20px}.tip strong{font-size:14px;line-height:1.4}.tip:before{top:20px}
  .notes-panel label{font-size:11px}.notes-panel textarea{min-height:120px;font-size:16px;padding:14px}
  .calendar-view{padding:22px 14px 34px}
  .calendar-heading{gap:16px;margin-bottom:20px}
  .calendar-heading h2{font-size:36px;line-height:1}
  .secondary-action{min-height:44px;display:inline-flex;align-items:center;padding:10px 14px;font-size:12px}
  .calendar-weekdays{display:none}
  .calendar-grid{grid-template-columns:1fr;gap:8px}
  .calendar-cell,.calendar-cell.empty{min-height:auto;opacity:1}
  .calendar-cell.empty{display:none}
  .calendar-cell.active{display:grid;grid-template-columns:42px minmax(0,1fr) 12px;grid-template-rows:auto auto;column-gap:11px;align-items:center;min-height:78px;padding:13px 14px;border-radius:15px}
  .calendar-cell .cal-num{grid-column:1;grid-row:1/3;align-self:center;font-size:18px;color:var(--sky-deep)}
  .calendar-cell strong{grid-column:2;grid-row:1;margin:0;font-size:16px;line-height:1.25}
  .calendar-cell span{grid-column:2;grid-row:2;margin:4px 0 0;font-size:12px;line-height:1.35}
  .calendar-cell i{grid-column:3;grid-row:1/3;width:8px;height:28px;margin:0;border-radius:8px}
  footer{padding:17px 16px;font-size:11px}
  footer div{width:100%;gap:8px}.text-action{min-height:44px;display:inline-flex;align-items:center;padding:6px 0;font-size:12px}
}
@media(max-width:370px){
  .brand strong{font-size:12px}.view-button{padding-inline:9px}
  .detail-header h2{font-size:34px}
  .fact strong{font-size:11px}
}
