
:root{
  --bg:#f6f7f9; --card:#ffffff; --ink:#20303c; --muted:#5b6c79;
  --accent:#16354d; --accent2:#2d6a8c; --line:#d9e4eb; --soft:#eef5f9;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
}
a{color:#0b4f7a}
.layout{
  display:grid;
  grid-template-columns:300px 1fr;
  min-height:100vh;
}
.sidebar{
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  background:#14324a;
  color:white;
  padding:24px 18px 28px;
}
.sidebar h1{margin:0 0 8px;font-size:1.25rem}
.sidebar .sub{color:#d6e5ef;font-size:.93rem;margin-bottom:18px}
.sidebar nav a{
  display:block;
  color:#eef6fb;
  text-decoration:none;
  padding:8px 10px;
  border-radius:10px;
  margin:2px 0;
  font-size:.94rem;
}
.sidebar nav a:hover{background:rgba(255,255,255,.11)}
.sidebar .note{
  margin-top:18px;
  font-size:.86rem;
  color:#d3e4ee;
  border-top:1px solid rgba(255,255,255,.18);
  padding-top:14px;
}
.main{padding:28px; max-width:1400px}
.hero,.card,.plan-card,.day-card,.day-page{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 2px 10px rgba(16,24,40,.04);
}
.hero{padding:28px;margin-bottom:26px}
.hero h2{margin:0 0 10px;color:var(--accent);font-size:2rem}
.hero p{margin:.35rem 0;color:var(--muted)}
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}
.plan-card,.day-card{overflow:hidden}
.plan-card img,.day-card img{
  width:100%;
  height:190px;
  object-fit:cover;
  display:block;
  background:#d9e4eb;
}
.plan-card .content,.day-card .content{padding:16px}
.plan-card h3,.day-card h3{margin:.2rem 0 .4rem;color:var(--accent)}
.meta{
  color:var(--accent2);
  font-size:.83rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.badge{
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  background:#fff4d6;
  border:1px solid #efd58d;
  font-size:.78rem;
  color:#7a5a00;
}
.btn{
  display:inline-block;
  padding:9px 13px;
  background:var(--accent);
  color:white;
  text-decoration:none;
  border-radius:10px;
  font-size:.92rem;
}
.btn.secondary{
  background:#eef5f9;
  color:#16354d;
}
.back{display:inline-block;margin-bottom:12px}
.day-page{padding:22px}
.day-page img.heroimg{
  width:100%;
  max-width:920px;
  height:320px;
  object-fit:cover;
  border-radius:14px;
  background:#d9e4eb;
  margin:14px 0 18px;
  display:block;
}
.grid2{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
}
.stack{display:grid;gap:14px}
.card{padding:14px}
.card h4{margin:0 0 8px;color:var(--accent2)}
.card ul{margin:.35rem 0 .1rem 1rem;padding:0}
.small{color:var(--muted);font-size:.92rem}
.footer{color:var(--muted);font-size:.9rem;margin:30px 0 10px}
.callout{
  padding:12px 14px;
  border-radius:12px;
  background:#eef5f9;
  border:1px solid #d9e4eb;
}
.mapwrap{
  margin-top:16px;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.map{
  height:360px;
  width:100%;
}
.graphimg{
  width:100%;
  max-width:980px;
  display:block;
  border-radius:14px;
  background:#f8fafc;
}
img{
  max-width:100%;
  height:auto;
}
table{
  width:100%;
  border-collapse:collapse;
  margin-top:8px;
}
th,td{
  border:1px solid var(--line);
  padding:8px 10px;
  text-align:left;
  vertical-align:top;
}
th{background:#f8fbfd}
hr{border:none;border-top:1px solid var(--line);margin:18px 0}
@media (max-width:980px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:relative;height:auto}
  .grid2{grid-template-columns:1fr}
  .main{padding:18px}
  .day-page img.heroimg{height:240px}
}

.navpager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:22px}
.navpager a{display:inline-block;padding:10px 14px;border-radius:10px;background:#16354d;color:#fff;text-decoration:none}
.navpager a.secondary{background:#eef5f9;color:#16354d}
.hero .subtle{font-size:.95rem;color:#5b6c79}
.tableish{width:100%;border-collapse:collapse}
.tableish th,.tableish td{border:1px solid #d9e4eb;padding:8px 10px;text-align:left;vertical-align:top}
.tableish th{background:#f8fbfd}

.section-title{margin:0 0 12px;color:var(--accent);font-size:1.3rem}.kicker{font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent2)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:18px 0}.stat{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.stat h4{margin:0 0 4px;font-size:.95rem;color:var(--accent2)}.stat .big{font-size:1.3rem;font-weight:700;color:var(--accent)}.checklist{margin:.4rem 0 0 1.1rem}.sequence{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:12px 0}.sequence .card{background:#fff}.pill{display:inline-block;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:#f8fbfd;font-size:.78rem;margin:0 6px 6px 0}.pill.easy{background:#eaf7ee;border-color:#b6dfc3;color:#165c2d}.pill.moderate{background:#fff6e4;border-color:#efd58d;color:#7a5a00}.pill.hard{background:#fbe9ea;border-color:#e6b3b9;color:#8b2430}.pill.high{background:#fbe9ea;border-color:#e6b3b9;color:#8b2430}.pill.med{background:#fff6e4;border-color:#efd58d;color:#7a5a00}.pill.low{background:#eef5f9;border-color:#d9e4eb;color:#23485f}.columns{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.mini-table{width:100%;border-collapse:collapse}.mini-table td,.mini-table th{padding:9px 10px;border:1px solid var(--line);vertical-align:top}.mini-table th{background:#f8fbfd}.timeline{display:grid;gap:10px}.tline{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.tline .time{font-weight:700;color:var(--accent2)}.tag-row{margin:10px 0 2px}.intro-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.day-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.fact{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.fact .label{font-size:.8rem;color:var(--accent2);font-weight:700;text-transform:uppercase}.fact .value{margin-top:4px;font-weight:600;color:var(--accent)}.utility-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.link-list{margin:.2rem 0 0 1rem;padding:0}.route-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px;color:var(--muted);font-size:.95rem}.route-breadcrumb span{background:#f8fbfd;border:1px solid var(--line);padding:5px 8px;border-radius:999px}.striped tr:nth-child(even) td{background:#fafcfd}.map.small{height:280px}.print-note{font-size:.9rem;color:var(--muted)}@media print{.sidebar{position:relative;height:auto}.layout{grid-template-columns:1fr}.btn,.back,.navpager,.intro-links{display:none!important}.hero,.card,.day-page,.plan-card,.day-card{box-shadow:none}}@media (max-width:980px){.columns{grid-template-columns:1fr}.tline{grid-template-columns:66px 1fr}}

.hero p strong{color:var(--accent)}

.resource-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.card h5{margin:.8rem 0 .35rem;color:var(--accent);font-size:.98rem}
.helper-table td:first-child,.helper-table th:first-child{white-space:nowrap;font-weight:600}
.helper-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.helper-block{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.helper-block ul{margin:.35rem 0 0 1rem}
.kv{display:grid;grid-template-columns:170px 1fr;gap:10px}
.kv div{padding:8px 0;border-bottom:1px solid var(--line)}
.route-mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.route-mini span{background:#f8fbfd;border:1px solid var(--line);padding:5px 8px;border-radius:999px;font-size:.88rem}
.execution-list li{margin-bottom:.35rem}
.mapnote{margin-top:8px;color:var(--muted);font-size:.92rem}
@media (max-width:980px){.helper-grid{grid-template-columns:1fr}.kv{grid-template-columns:1fr}}

.cost-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.cost-bars{display:grid;gap:10px;margin-top:10px}.cost-bar{display:grid;grid-template-columns:180px 1fr 110px;gap:10px;align-items:center}.cost-bar .barwrap{height:12px;background:#eef5f9;border-radius:999px;overflow:hidden;border:1px solid var(--line)}.cost-bar .bar{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent))}.money{font-weight:700;color:var(--accent)}.lodginglist,.practical-list{margin:.25rem 0 0 1rem;padding:0}.lodginglist li,.practical-list li{margin-bottom:.35rem}.muted-note{font-size:.92rem;color:var(--muted)}.highlight-total{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:10px 0 0}.highlight-chip{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}@media (max-width:980px){.cost-grid{grid-template-columns:1fr}.cost-bar{grid-template-columns:1fr}}

/* prompt refinement pass */
.quick-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .8rem;}
.mini-btn{display:inline-block;padding:.35rem .65rem;border:1px solid var(--line,#d8dee6);border-radius:999px;text-decoration:none;background:#fff;color:var(--ink,#16354d);font-size:.9rem;}
.mini-btn:hover{background:#f6f8fb;}
.maplegend{display:flex;flex-wrap:wrap;gap:.8rem 1rem;font-size:.9rem;color:#51606d;margin-top:.55rem;}
.maplegend span{display:inline-flex;align-items:center;gap:.35rem;}
.maplegend .lg{display:inline-block;width:12px;height:12px;border-radius:999px;}
.maplegend .lg.planned{background:#16354d;}
.maplegend .lg.restaurant{background:#c26d0b;}
.maplegend .lg.park{background:#2f855a;}
.maplegend .lg.alternative{background:#8b5cf6;}
.maplegend .lg.route{background:#4b5563;border-radius:3px;height:3px;width:18px;}
.variant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;}
.variant-card{border:1px solid var(--line,#d8dee6);border-radius:12px;padding:.9rem;background:#fbfcfe;}
@media print{.maplegend,.quick-actions{display:none!important;}}
