/* Nestiy Smart Break: Smart Holiday planner.
   Built on the site variables, so it follows both the light theme (style.css) and the dark glass theme. */

.sh-layout{ display:grid; grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr); gap:28px; align-items:start; }
@media (max-width: 960px){ .sh-layout{ grid-template-columns:1fr; } }

.sh-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:28px; box-shadow:var(--shadow-soft);
}
.sh-card h2{ font-size:1.35rem; margin-bottom:6px; }
.sh-card > p.sh-sub{ color:var(--muted); font-size:0.92rem; margin-bottom:20px; }

/* ---------- form ---------- */
.sh-form{ display:grid; grid-template-columns:1fr 1fr; gap:16px 18px; }
.sh-form .full{ grid-column:1 / -1; }
@media (max-width: 560px){ .sh-form{ grid-template-columns:1fr; } }
.sh-field label, .sh-field .sh-label{ display:block; font-size:0.8rem; font-weight:600; color:var(--forest); margin-bottom:6px; }
.sh-field label small, .sh-field .sh-label small{ font-weight:400; color:var(--muted); }
.sh-field input, .sh-field select{
  width:100%; padding:11px 13px; border-radius:12px; border:1px solid var(--line);
  background:var(--mint-50); color:var(--ink); font:inherit; font-size:0.95rem;
}
.sh-field input:focus, .sh-field select:focus{ outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(30,142,90,0.14); }
.sh-row{ display:flex; gap:10px; }
.sh-row > *{ flex:1; min-width:0; }
.sh-row select{ flex:0 0 96px; }
.sh-hint{ font-size:0.78rem; color:var(--muted); margin-top:6px; }

.sh-seg{ display:flex; gap:8px; flex-wrap:wrap; }
.sh-seg label{
  flex:1; min-width:92px; margin:0; cursor:pointer; text-align:center; padding:10px 8px; border-radius:12px;
  border:1px solid var(--line); background:var(--mint-50); font-size:0.88rem; font-weight:600; color:var(--forest);
  transition:border-color .15s ease, background .15s ease;
}
.sh-seg label small{ display:block; font-weight:400; font-size:0.72rem; color:var(--muted); margin-top:2px; }
.sh-seg label{ position:relative; }
.sh-seg input{ position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; padding:0; left:8px; top:8px; }
.sh-seg input:checked + span{ color:var(--primary-dark); }
.sh-seg label:has(input:checked){ border-color:var(--primary); background:var(--mint-100); box-shadow:0 0 0 1px var(--primary) inset; }
.sh-seg input:focus-visible + span{ outline:2px solid var(--primary); outline-offset:3px; border-radius:4px; }

.sh-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.sh-chip{
  border:1px dashed var(--line); background:transparent; color:var(--muted); border-radius:999px;
  padding:7px 13px; font-size:0.8rem; cursor:pointer; font-family:inherit;
}
.sh-chip:hover{ border-color:var(--primary); color:var(--primary-dark); }

.sh-terms{ display:flex; gap:10px; align-items:flex-start; font-size:0.85rem; color:var(--ink); line-height:1.5; }
.sh-terms input{ margin-top:3px; width:18px; height:18px; accent-color:var(--primary); flex-shrink:0; }
.sh-terms a{ color:var(--primary-dark); text-decoration:underline; }
.sh-actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.sh-quota{ font-size:0.82rem; color:var(--muted); }
.sh-quota a{ color:var(--primary-dark); font-weight:600; }
.sh-error{ display:none; color:var(--red); font-size:0.88rem; background:var(--red-100); border-radius:12px; padding:10px 14px; }
.sh-error.show{ display:block; }
.sh-error a{ color:inherit; font-weight:700; text-decoration:underline; }

/* ---------- side panel ---------- */
.sh-side{ display:flex; flex-direction:column; gap:20px; }
.sh-what{ list-style:none; display:grid; gap:12px; }
.sh-what li{ display:flex; gap:12px; font-size:0.9rem; color:var(--ink); }
.sh-what li b{ display:block; color:var(--forest); }
.sh-what li span{ color:var(--muted); font-size:0.84rem; }
.sh-what .ic{ width:34px; height:34px; border-radius:10px; background:var(--mint-100); color:var(--primary); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sh-what .ic svg{ width:17px; height:17px; }
.sh-trips{ list-style:none; display:grid; gap:8px; }
.sh-trips li{ display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--mint-50); }
.sh-trips button.open{ flex:1; text-align:left; background:none; border:none; color:var(--forest); font:inherit; font-weight:600; cursor:pointer; font-size:0.9rem; min-width:0; }
.sh-trips button.open small{ display:block; color:var(--muted); font-weight:400; font-size:0.76rem; margin-top:2px; }
.sh-trips button.del{ background:none; border:none; color:var(--muted); cursor:pointer; font-size:0.8rem; padding:4px 6px; border-radius:8px; }
.sh-trips button.del:hover{ color:var(--red); }
.sh-empty{ color:var(--muted); font-size:0.88rem; }

/* ---------- progress ---------- */
.sh-progress{ display:none; text-align:center; padding:40px 24px; }
.sh-progress.show{ display:block; }
.sh-spinner{ width:46px; height:46px; margin:0 auto 18px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--primary); animation:shSpin 1s linear infinite; }
@keyframes shSpin{ to{ transform:rotate(360deg); } }
.sh-steps{ list-style:none; display:inline-grid; gap:8px; text-align:left; margin-top:16px; }
.sh-steps li{ font-size:0.9rem; color:var(--muted); display:flex; gap:10px; align-items:center; }
.sh-steps li::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--line); flex-shrink:0; }
.sh-steps li.done{ color:var(--ink); }
.sh-steps li.done::before{ background:var(--primary); }
.sh-steps li.now{ color:var(--forest); font-weight:600; }
.sh-steps li.now::before{ background:var(--primary); box-shadow:0 0 0 4px rgba(30,142,90,0.18); }

/* ---------- result ---------- */
.sh-result{ display:none; margin-top:36px; }
.sh-result.show{ display:block; }
.sh-toolbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.sh-toolbar .grow{ flex:1; }
.sh-toolbar label{ font-size:0.82rem; color:var(--muted); display:flex; align-items:center; gap:8px; }
.sh-toolbar select{ padding:8px 10px; border-radius:10px; border:1px solid var(--line); background:var(--white); color:var(--ink); font:inherit; font-size:0.88rem; }
.sh-banner{ border-radius:14px; padding:12px 16px; font-size:0.88rem; margin-bottom:18px; background:var(--gold-100); color:#6b4a12; border:1px solid rgba(224,162,62,0.35); }

.sh-sum{ display:grid; grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:24px; align-items:start; }
@media (max-width: 860px){ .sh-sum{ grid-template-columns:1fr; } }
.sh-sum h2{ font-size:clamp(1.5rem, 3vw, 2rem); margin-bottom:10px; }
.sh-sum p{ color:var(--ink); line-height:1.6; }
.sh-facts{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.sh-facts span{ font-size:0.8rem; padding:6px 11px; border-radius:999px; background:var(--mint-100); color:var(--forest); font-weight:600; }
.sh-assume{ margin-top:16px; font-size:0.84rem; color:var(--muted); }
.sh-assume ul{ margin:6px 0 0 18px; }

.sh-meter .big{ font-family:var(--font-head); font-size:2rem; font-weight:700; color:var(--forest); line-height:1.1; }
.sh-meter .big small{ font-size:0.9rem; font-weight:500; color:var(--muted); }
.sh-meter .per{ font-size:0.85rem; color:var(--muted); margin-top:4px; }
.sh-bar{ height:10px; border-radius:999px; background:var(--mint-100); margin:16px 0 8px; overflow:hidden; }
.sh-bar i{ display:block; height:100%; border-radius:999px; background:var(--primary); }
.sh-bar.over i{ background:var(--red); }
.sh-status{ display:inline-flex; align-items:center; gap:7px; font-size:0.85rem; font-weight:700; }
.sh-status svg{ width:16px; height:16px; }
.sh-status.within{ color:var(--primary-dark); }
.sh-status.over{ color:var(--red); }
.sh-status.none{ color:var(--muted); }
.sh-meter .note{ font-size:0.84rem; color:var(--muted); margin-top:8px; line-height:1.5; }

.sh-sec{ margin-top:34px; }
.sh-sec > h3{ font-size:1.2rem; display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.sh-sec > h3 .ic{ width:32px; height:32px; border-radius:10px; background:var(--mint-100); color:var(--primary); display:inline-flex; align-items:center; justify-content:center; }
.sh-sec > h3 .ic svg{ width:16px; height:16px; }
.sh-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:14px; }
.sh-item{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); padding:18px; display:flex; flex-direction:column; gap:6px; }
.sh-item h4{ font-size:1rem; color:var(--forest); }
.sh-item .meta{ font-size:0.82rem; color:var(--muted); }
.sh-item .why{ font-size:0.88rem; color:var(--ink); line-height:1.5; }
.sh-item .price{ font-family:var(--font-head); font-weight:700; color:var(--forest); font-size:1.1rem; margin-top:auto; padding-top:6px; }
.sh-item .price small{ font-size:0.76rem; font-weight:500; color:var(--muted); }
.sh-item .tag{ align-self:flex-start; font-size:0.72rem; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--mint-100); color:var(--primary-dark); }
.sh-link{ font-size:0.84rem; font-weight:600; color:var(--primary-dark); text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
.sh-link:hover{ text-decoration:underline; }
.sh-link svg{ width:13px; height:13px; }
.sh-city{ font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--muted); margin:18px 0 10px; }
.sh-city:first-child{ margin-top:0; }

.sh-opts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px; }
.sh-opt{ border:1px solid var(--line); border-radius:var(--radius-md); padding:18px; background:var(--white); }
.sh-opt .lbl{ font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--primary-dark); }
.sh-opt .tot{ font-family:var(--font-head); font-size:1.4rem; font-weight:700; color:var(--forest); margin:6px 0; }
.sh-opt p, .sh-opt li{ font-size:0.86rem; color:var(--ink); line-height:1.5; }
.sh-opt ul{ margin:8px 0 0 18px; }

.sh-days{ display:grid; gap:12px; }
.sh-day{ display:grid; grid-template-columns:92px minmax(0, 1fr); gap:16px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); padding:16px 18px; }
.sh-day .d{ font-family:var(--font-head); font-weight:700; color:var(--primary-dark); }
.sh-day .d small{ display:block; font-family:var(--font-body); font-weight:500; font-size:0.76rem; color:var(--muted); margin-top:2px; }
.sh-day h4{ font-size:1rem; color:var(--forest); margin-bottom:6px; }
.sh-day dl{ display:grid; grid-template-columns:86px minmax(0, 1fr); gap:4px 10px; font-size:0.88rem; }
.sh-day dt{ color:var(--muted); }
.sh-day dd{ color:var(--ink); }
.sh-day .tip{ font-size:0.82rem; color:var(--muted); margin-top:8px; }
@media (max-width: 560px){ .sh-day{ grid-template-columns:1fr; gap:6px; } .sh-day dl{ grid-template-columns:1fr; } .sh-day dt{ margin-top:4px; } }

.sh-table{ width:100%; border-collapse:collapse; font-size:0.9rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }
.sh-table th, .sh-table td{ text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); color:var(--ink); vertical-align:top; }
.sh-table th{ font-size:0.76rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted); font-weight:700; background:var(--mint-50); }
.sh-table td.num, .sh-table th.num{ text-align:right; white-space:nowrap; }
.sh-table tr:last-child td{ border-bottom:none; }
.sh-table tfoot td{ font-weight:700; color:var(--forest); border-top:1px solid var(--line); }
.sh-scroll{ overflow-x:auto; }

/* cost breakdown: one series, so one colour; values are text labels */
.sh-costs{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:24px; align-items:start; }
@media (max-width: 760px){ .sh-costs{ grid-template-columns:1fr; } }
.sh-chart{ display:grid; gap:12px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); padding:18px; }
.sh-chart .row{ display:grid; grid-template-columns:120px minmax(0, 1fr) auto; gap:12px; align-items:center; font-size:0.85rem; color:var(--ink); }
.sh-chart .track{ height:14px; border-radius:0 4px 4px 0; position:relative; }
.sh-chart .track i{ display:block; height:100%; min-width:3px; background:var(--primary); border-radius:0 4px 4px 0; }
.sh-chart .row:hover .track i{ filter:brightness(1.12); }
.sh-chart .val{ font-weight:600; color:var(--forest); white-space:nowrap; font-variant-numeric:tabular-nums; }
.sh-chart .pct{ color:var(--muted); font-weight:400; margin-left:4px; }
@media (max-width: 460px){ .sh-chart .row{ grid-template-columns:90px minmax(0, 1fr) auto; } }

.sh-visa{ border-left:4px solid var(--primary); }
.sh-visa .req{ font-family:var(--font-head); font-size:1.1rem; font-weight:700; color:var(--forest); }
.sh-visa dl{ display:grid; grid-template-columns:110px minmax(0, 1fr); gap:4px 12px; font-size:0.88rem; margin:8px 0; }
.sh-visa dt{ color:var(--muted); }
.sh-visa dd{ color:var(--ink); }
.sh-visa ul{ margin:4px 0 0 18px; font-size:0.86rem; color:var(--ink); }
.sh-visa .checked{ font-size:0.8rem; color:var(--muted); margin-top:8px; }

.sh-tips{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; }
.sh-tips div{ background:var(--mint-50); border:1px solid var(--line); border-radius:14px; padding:14px 16px; font-size:0.88rem; color:var(--ink); line-height:1.5; }
.sh-tips b{ display:block; color:var(--forest); margin-bottom:4px; }
.sh-sources{ font-size:0.86rem; display:grid; gap:6px; list-style:none; }
.sh-sources a{ color:var(--primary-dark); word-break:break-word; }
.sh-sources small{ color:var(--muted); }

.sh-legal{ margin-top:34px; border:1px solid var(--line); border-radius:var(--radius-md); padding:18px 20px; background:var(--mint-50); font-size:0.82rem; color:var(--muted); line-height:1.6; }
.sh-legal b{ color:var(--forest); }
.sh-legal a{ color:var(--primary-dark); text-decoration:underline; }

/* ---------- sign-in dialog ---------- */
.sh-modal{ position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:16px; background:rgba(12,30,22,0.5); }
.sh-modal.show{ display:flex; }
.sh-modal .box{ width:100%; max-width:420px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-soft); position:relative; }
.sh-modal h3{ font-size:1.25rem; margin-bottom:6px; }
.sh-modal p{ font-size:0.88rem; color:var(--muted); margin-bottom:16px; }
.sh-modal .sh-field{ margin-bottom:12px; }
.sh-modal .x{ position:absolute; right:14px; top:12px; background:none; border:none; font-size:1.2rem; cursor:pointer; color:var(--muted); }
.sh-modal .switch{ font-size:0.86rem; color:var(--muted); margin-top:14px; text-align:center; }
.sh-modal .switch button{ background:none; border:none; color:var(--primary-dark); font:inherit; font-weight:700; cursor:pointer; text-decoration:underline; }

/* ---------- Smart Break landing ---------- */
.sb-cards{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:22px; }
@media (max-width: 760px){ .sb-cards{ grid-template-columns:1fr; } }
.sb-card{ position:relative; display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit; }
.sb-card .soon{ position:absolute; top:20px; right:20px; font-size:0.72rem; font-weight:700; padding:4px 10px; border-radius:999px; background:var(--gold-100); color:#8a5a12; }
.sb-card .go{ color:var(--primary-dark); font-weight:700; font-size:0.9rem; margin-top:auto; }
.sb-card.is-soon{ opacity:0.85; }

/* dark glass theme tweaks (theme-glass.css is switched off in light mode, so these only apply in dark) */
html:not([data-theme="light"]) .sh-banner{ background:rgba(224,162,62,0.12); color:#F2D59A; border-color:rgba(224,162,62,0.35); }
html:not([data-theme="light"]) .sh-error{ background:rgba(221,90,76,0.12); color:#FF9A8E; }
html:not([data-theme="light"]) .sh-modal{ background:rgba(2,3,2,0.66); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
html:not([data-theme="light"]) .sh-modal .box{ background:var(--glass-strong, #111612); }
html:not([data-theme="light"]) .sh-field select option, html:not([data-theme="light"]) .sh-toolbar select option{ background:#111612; color:#E2E8E0; }
html:not([data-theme="light"]) .sb-card .soon{ background:rgba(224,162,62,0.14); color:#F2D59A; }
html:not([data-theme="light"]) .sh-bar.over i{ background:#FF7B6B; }
html:not([data-theme="light"]) .sh-status.over{ color:#FF9A8E; }

/* ---------- print / Save as PDF: only the plan, dark text on white ---------- */
@media print{
  @page{ margin:14mm; }
  body > *:not(main), .site-header, .site-footer, .page-hero, #shPlanner, .sh-toolbar, .no-print, #nestiyFx{ display:none !important; }
  html, body, main, .section-tight{ background:#fff !important; padding:0 !important; }
  #shResult, #shResult *{ color:#111 !important; background:transparent !important; box-shadow:none !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; text-shadow:none !important; }
  #shResult{ display:block !important; margin:0 !important; }
  #shResult .sh-item, #shResult .sh-day, #shResult .sh-opt, #shResult .sh-table, #shResult .sh-chart, #shResult .sh-tips div, #shResult .sh-legal{ border-color:#ccc !important; break-inside:avoid; }
  #shResult .sh-bar{ background:#e6e6e6 !important; }
  #shResult .sh-bar i, #shResult .sh-chart .track i{ background:#1E8E5A !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  #shResult a{ text-decoration:none !important; }
  .sh-sec{ break-inside:auto; }
}
.sh-grid-fit{ grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); }
@media (max-width: 400px){ .sh-grid-fit{ grid-template-columns:1fr; } }
.sh-day dd, .sh-visa dd{ margin:0; }

.sh-gsearch{ margin-top:16px; }
.sh-gsearch iframe{ width:100%; height:84px; border:0; border-radius:12px; background:#fff; }

/* children's ages */
.sh-ages-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:10px; }
.sh-ages-list select{ width:100%; padding:11px 13px; border-radius:12px; border:1px solid var(--line); background:var(--mint-50); color:var(--ink); font:inherit; font-size:0.92rem; }
html:not([data-theme="light"]) .sh-ages-list select option{ background:#111612; color:#E2E8E0; }

/* Sign in with Google */
.sh-google{ margin-bottom:6px; }
.sh-google .sh-google-btn{ display:flex; justify-content:center; min-height:44px; color-scheme:light; /* same scheme as Google's frame, so it has no white box */ }
.sh-google .sh-google-btn iframe{ border-radius:999px !important; }
.sh-or{ display:flex; align-items:center; gap:10px; margin:14px 0 10px; color:var(--muted); font-size:0.8rem; }
.sh-or::before, .sh-or::after{ content:''; flex:1; height:1px; background:var(--line); }

/* ---------- My travel map ---------- */
.sh-mapcard{ margin-top:40px; border-radius:var(--radius-lg); padding:26px; background:linear-gradient(160deg, #0c3a2b, #04110b); color:#E9F3EC; box-shadow:0 30px 70px -35px rgba(4,17,11,0.9); border:1px solid rgba(196,242,74,0.18); }
.sh-map-head{ display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.sh-map-head > div:first-child{ flex:1; min-width:220px; }
.sh-map-kicker{ font-size:0.75rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#C4F24A; }
.sh-mapcard h2{ color:#fff; font-size:clamp(1.3rem, 2.6vw, 1.75rem); margin-top:4px; }
.sh-map-stats{ display:flex; gap:8px; flex-wrap:wrap; }
.sh-map-stats span{ font-size:0.8rem; font-weight:700; padding:6px 12px; border-radius:999px; background:rgba(196,242,74,0.14); color:#EAFFB0; }
.sh-map-frame{ border-radius:18px; overflow:hidden; border:1px solid rgba(196,242,74,0.22); background:#05140e; line-height:0; }
.sh-map-frame svg{ width:100%; height:auto; display:block; }
.sh-map-frame svg path[data-state]{ transition:opacity .2s ease; }
.sh-map-legend{ display:flex; gap:18px; flex-wrap:wrap; font-size:0.8rem; color:rgba(233,243,236,0.75); margin:12px 2px 4px; }
.sh-map-legend .dot{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:-1px; }
.sh-map-legend .dot.planned{ background:#C4F24A; } .sh-map-legend .dot.visited{ background:#EAFFB0; box-shadow:0 0 0 2px #8fd14f; } .sh-map-legend .dot.home{ background:#05140e; border:2px solid #fff; }
.sh-map-trips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.sh-map-trip{ display:inline-flex; align-items:center; gap:8px; padding:6px 6px 6px 12px; border-radius:999px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1); font-size:0.82rem; color:#E9F3EC; }
.sh-map-trip button{ border:none; border-radius:999px; padding:5px 10px; font:inherit; font-size:0.76rem; font-weight:700; cursor:pointer; background:rgba(255,255,255,0.1); color:#E9F3EC; }
.sh-map-trip button.on{ background:#C4F24A; color:#0B1105; }
.sh-map-note{ font-size:0.8rem; color:rgba(233,243,236,0.6); margin-top:10px; }
.sh-modal .box.wide{ max-width:620px; }
.sh-share-preview{ width:100%; border-radius:14px; border:1px solid var(--line); margin:4px 0 14px; background:#05140e; aspect-ratio:1200/630; object-fit:cover; }
.sh-share-grid{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; margin-bottom:14px; }
.sh-share-grid a, .sh-share-grid button{ display:flex; align-items:center; justify-content:center; gap:8px; padding:10px 12px; border-radius:12px; border:1px solid var(--line); background:var(--mint-50); color:var(--forest); font:inherit; font-size:0.85rem; font-weight:700; text-decoration:none; cursor:pointer; }
.sh-share-grid a:hover, .sh-share-grid button:hover{ border-color:var(--primary); }
.sh-share-grid i{ width:10px; height:10px; border-radius:50%; display:inline-block; }
.sh-share-link{ display:flex; gap:8px; }
.sh-share-link input{ flex:1; min-width:0; padding:9px 12px; border-radius:10px; border:1px solid var(--line); background:var(--mint-50); color:var(--ink); font:inherit; font-size:0.82rem; }
.sh-share-stop{ margin-top:12px; background:none; border:none; color:var(--muted); font:inherit; font-size:0.8rem; text-decoration:underline; cursor:pointer; }
@media (max-width: 560px){ .sh-mapcard{ padding:18px 14px; } }

/* travel globe (overrides the earlier flat-map card) */
.sh-mapcard{ background:linear-gradient(180deg, #1d2f5c 0%, #4b5f9e 58%, #f6b38e 100%); border-color:rgba(255,255,255,0.18); }
.sh-map-kicker{ color:#FFE9A8; }
.sh-map-stats span{ background:rgba(255,255,255,0.16); color:#fff; }
.sh-map-frame{ background:transparent; border:none; border-radius:0; overflow:visible; }
.sh-map-frame canvas{ display:block; width:100%; cursor:grab; }
.sh-map-frame canvas.grab{ cursor:grabbing; }
.sh-map-legend{ color:rgba(255,255,255,0.85); }
.sh-map-legend .dot.visited{ background:#ffd166; box-shadow:0 0 0 2px #e8a33d; }
.sh-map-legend .dot.planned{ background:#b9f0b4; box-shadow:0 0 0 2px #5cbf6e; }
.sh-map-hint{ margin-left:auto; opacity:.8; }
.sh-map-trip{ background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.2); color:#fff; }
.sh-map-trip button{ background:rgba(255,255,255,0.18); color:#fff; }
.sh-map-trip button.on{ background:#ffd166; color:#3b2a05; }
.sh-map-note{ color:rgba(255,255,255,0.8); }

/* ---------- share tiles: brand marks on coloured badges ---------- */
.sh-share-grid .sh-sh{
  --b:#1E8E5A; position:relative; display:flex; align-items:center; justify-content:flex-start; gap:12px; padding:12px 14px; border-radius:16px;
  border:1px solid var(--line); background:var(--white); color:var(--forest); font:inherit; text-align:left; cursor:pointer; text-decoration:none; overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sh-share-grid .sh-sh::before{ content:''; position:absolute; inset:0; background:radial-gradient(140px 80px at 0% 50%, color-mix(in srgb, var(--b) 16%, transparent), transparent 70%); opacity:0; transition:opacity .18s ease; }
.sh-share-grid .sh-sh:hover{ transform:translateY(-2px); border-color:color-mix(in srgb, var(--b) 55%, transparent); box-shadow:0 14px 30px -18px var(--b); }
.sh-share-grid .sh-sh:hover::before{ opacity:1; }
.sh-share-grid .sh-sh:focus-visible{ outline:3px solid color-mix(in srgb, var(--b) 50%, transparent); outline-offset:2px; }
.sh-sh-ic{ position:relative; width:42px; height:42px; border-radius:13px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; background:var(--b); box-shadow:0 6px 14px -6px var(--b), inset 0 1px 0 rgba(255,255,255,0.25); }
.sh-sh-ic svg{ width:22px; height:22px; }
.sh-sh-t{ position:relative; min-width:0; }
.sh-sh-t b{ display:block; font-family:var(--font-head); font-size:0.95rem; line-height:1.2; }
.sh-sh-t small{ display:block; font-size:0.74rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sh-share-grid .sh-sh-whatsapp{ --b:#25D366; } .sh-share-grid .sh-sh-facebook{ --b:#1877F2; } .sh-share-grid .sh-sh-x{ --b:#111111; }
.sh-share-grid .sh-sh-linkedin{ --b:#0A66C2; } .sh-share-grid .sh-sh-telegram{ --b:#229ED9; } .sh-share-grid .sh-sh-email{ --b:#EA4335; }
.sh-share-grid .sh-sh-share{ --b:#1E8E5A; } .sh-share-grid .sh-sh-download{ --b:#E0A23E; } .sh-share-grid .sh-sh-instagram{ --b:#E1306C; }
/* wider screens: a share sheet, icon above the name */
@media (min-width: 641px){
  .sh-share-grid{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
  .sh-share-grid .sh-sh{ flex-direction:column; justify-content:center; text-align:center; gap:9px; padding:16px 8px 13px; }
  .sh-share-grid .sh-sh::before{ background:radial-gradient(120px 90px at 50% 0%, color-mix(in srgb, var(--b) 18%, transparent), transparent 70%); }
  .sh-sh-ic{ width:48px; height:48px; border-radius:15px; } .sh-sh-ic svg{ width:24px; height:24px; }
  .sh-sh-t small{ white-space:normal; line-height:1.3; margin-top:2px; }
}
.sh-sh-instagram .sh-sh-ic{ background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.sh-sh-x .sh-sh-ic{ box-shadow:0 6px 14px -6px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(255,255,255,0.18); }
.sh-error.ok{ color:var(--primary-dark); background:var(--mint-100); }
@media (max-width: 640px){
  .sh-share-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
  .sh-share-grid .sh-sh{ padding:10px; gap:10px; }
  .sh-sh-ic{ width:36px; height:36px; border-radius:11px; } .sh-sh-ic svg{ width:19px; height:19px; }
  .sh-sh-t small{ display:none; }
}
html:not([data-theme="light"]) .sh-share-grid .sh-sh{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.1); color:#F2F6EE; }
html:not([data-theme="light"]) .sh-sh-t small{ color:#8F9C95; }
html:not([data-theme="light"]) .sh-sh-x .sh-sh-ic{ background:#000; }
html:not([data-theme="light"]) .sh-error.ok{ color:#DDF6A8; background:rgba(196,242,74,0.08); }

/* ---------- travel checklist ---------- */
.sh-check{ display:flex; flex-direction:column; gap:16px; }
.ck-head{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:18px 20px; border-radius:var(--radius-lg); border:1px solid var(--line);
  background:linear-gradient(120deg, rgba(30,142,90,0.10), rgba(95,190,139,0.04) 60%, rgba(224,162,62,0.08)); }
.ck-ring{ position:relative; width:72px; height:72px; flex-shrink:0; }
.ck-ring svg{ width:72px; height:72px; transform:rotate(-90deg); }
.ck-ring circle{ fill:none; stroke-width:7; }
.ck-ring .bg{ stroke:rgba(30,142,90,0.14); }
.ck-ring .fg{ stroke:var(--primary); stroke-linecap:round; transition:stroke-dashoffset .5s cubic-bezier(.2,.7,.2,1); }
.ck-ring b{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-size:1rem; color:var(--forest); }
.ck-intro{ flex:1; min-width:220px; }
.ck-intro strong{ display:block; font-family:var(--font-head); font-size:1.12rem; color:var(--forest); }
.ck-intro p{ margin:4px 0 0; font-size:0.88rem; color:var(--muted); }
.ck-facts{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.ck-facts span{ font-size:0.78rem; font-weight:600; padding:4px 10px; border-radius:999px; background:var(--white); border:1px solid var(--line); color:var(--forest); }
.ck-actions{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.ck-toggle{ display:flex; align-items:center; gap:6px; font-size:0.84rem; color:var(--ink); cursor:pointer; }
.ck-toggle input{ accent-color:var(--primary); }
.ck-reset{ background:none; border:0; font:inherit; font-size:0.8rem; color:var(--muted); text-decoration:underline; cursor:pointer; }
.ck-grid{ columns:3 300px; column-gap:16px; }
.ck-card{ break-inside:avoid; margin:0 0 16px; padding:14px 14px 10px; border-radius:18px; border:1px solid var(--line); background:var(--white); box-shadow:var(--shadow-tight); transition:border-color .2s ease; }
.ck-card.complete{ border-color:rgba(30,142,90,0.5); }
.ck-card-h{ display:flex; align-items:center; gap:10px; }
.ck-ic{ width:34px; height:34px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; background:var(--mint-100); flex-shrink:0; }
.ck-card-h b{ flex:1; font-family:var(--font-head); color:var(--forest); font-size:0.98rem; }
.ck-card-h small{ font-weight:700; font-size:0.78rem; color:var(--primary-dark); }
.ck-card.complete .ck-card-h small::after{ content:' ✓'; }
.ck-mini{ height:4px; border-radius:4px; background:var(--mint-100); margin:10px 0 6px; overflow:hidden; }
.ck-mini i{ display:block; height:100%; background:var(--primary); border-radius:inherit; transition:width .4s ease; }
.ck-card ul{ list-style:none; margin:0; padding:0; }
.ck-card li{ position:relative; display:flex; align-items:flex-start; gap:4px; border-bottom:1px dashed var(--line); }
.ck-card li:last-child{ border-bottom:0; }
.ck-card li label{ flex:1; display:flex; gap:10px; align-items:flex-start; padding:8px 2px; cursor:pointer; font-size:0.88rem; color:var(--ink); line-height:1.4; }
.ck-card li input{ position:absolute; opacity:0; pointer-events:none; }
.ck-box{ width:20px; height:20px; border-radius:6px; border:2px solid rgba(30,142,90,0.45); flex-shrink:0; margin-top:1px; position:relative; transition:background .15s ease, border-color .15s ease, transform .15s ease; }
.ck-card li input:checked + .ck-box{ background:var(--primary); border-color:var(--primary); transform:scale(1.05); }
.ck-card li input:checked + .ck-box::after{ content:''; position:absolute; left:5px; top:1px; width:5px; height:10px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
.ck-card li input:focus-visible + .ck-box{ outline:3px solid rgba(30,142,90,0.35); outline-offset:2px; }
.ck-t small{ display:block; font-size:0.76rem; color:var(--muted); margin-top:1px; }
.ck-card li.on .ck-t{ color:var(--muted); text-decoration:line-through; text-decoration-color:rgba(30,142,90,0.5); }
.ck-card li.on .ck-t small{ text-decoration:none; }
.ck-del{ background:none; border:0; color:var(--muted); font-size:1.1rem; cursor:pointer; padding:6px; }
.ck-add{ display:flex; gap:6px; margin-top:8px; }
.ck-add input{ flex:1; min-width:0; padding:7px 10px; border-radius:10px; border:1px solid var(--line); background:var(--mint-50); color:var(--ink); font:inherit; font-size:0.84rem; }
.ck-add button{ width:34px; border-radius:10px; border:1px solid var(--line); background:var(--white); color:var(--primary-dark); font-weight:700; font-size:1.1rem; cursor:pointer; }
.ck-add button:hover{ border-color:var(--primary); }
.ck-note{ font-size:0.8rem; color:var(--muted); margin:0; }
@media (max-width: 640px){ .ck-actions{ flex-direction:row; align-items:center; width:100%; justify-content:space-between; } .ck-grid{ columns:1; } }
@media print{ .ck-add, .ck-actions{ display:none !important; } }
html:not([data-theme="light"]) .ck-head{ background:linear-gradient(120deg, rgba(196,242,74,0.08), rgba(255,255,255,0.02) 60%, rgba(242,184,75,0.06)); border-color:rgba(255,255,255,0.09); }
html:not([data-theme="light"]) .ck-ring .bg{ stroke:rgba(255,255,255,0.08); }
html:not([data-theme="light"]) .ck-ring .fg{ stroke:#C4F24A; }
html:not([data-theme="light"]) .ck-ring b, html:not([data-theme="light"]) .ck-intro strong, html:not([data-theme="light"]) .ck-card-h b{ color:#fff; }
html:not([data-theme="light"]) .ck-facts span{ background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.1); color:#E2E8E0; }
html:not([data-theme="light"]) .ck-toggle{ color:#E2E8E0; }
html:not([data-theme="light"]) .ck-toggle input{ accent-color:#C4F24A; }
html:not([data-theme="light"]) .ck-card{ background:rgba(16,21,18,0.6); border-color:rgba(255,255,255,0.09); }
html:not([data-theme="light"]) .ck-card.complete{ border-color:rgba(196,242,74,0.45); }
html:not([data-theme="light"]) .ck-ic{ background:rgba(196,242,74,0.10); }
html:not([data-theme="light"]) .ck-card-h small{ color:#C4F24A; }
html:not([data-theme="light"]) .ck-mini{ background:rgba(255,255,255,0.07); }
html:not([data-theme="light"]) .ck-mini i{ background:#C4F24A; }
html:not([data-theme="light"]) .ck-card li{ border-bottom-color:rgba(255,255,255,0.08); }
html:not([data-theme="light"]) .ck-card li label{ color:#E2E8E0; }
html:not([data-theme="light"]) .ck-box{ border-color:rgba(196,242,74,0.5); }
html:not([data-theme="light"]) .ck-card li input:checked + .ck-box{ background:#C4F24A; border-color:#C4F24A; }
html:not([data-theme="light"]) .ck-card li input:checked + .ck-box::after{ border-color:#0B1105; }
html:not([data-theme="light"]) .ck-add input{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.12); color:#E2E8E0; }
html:not([data-theme="light"]) .ck-add button{ background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.12); color:#C4F24A; }

/* ---------- share window: always fits, close button always reachable ---------- */
.sh-modal{ overflow-y:auto; align-items:flex-start; padding:16px; overscroll-behavior:contain; }
.sh-modal .box{ margin:auto 0; }
#shShare .box{ padding:22px 22px 18px; }
#shShare .box h3{ padding-right:46px; }
.sh-share-preview{ max-height:34vh; width:auto; max-width:100%; display:block; margin:4px auto 14px; }
/* compact share sheet: icon above a short name */
.sh-share-grid{ grid-template-columns:repeat(5, minmax(0, 1fr)) !important; gap:8px !important; margin-bottom:12px; }
.sh-share-grid .sh-sh{ flex-direction:column !important; justify-content:center; text-align:center; gap:7px !important; padding:11px 4px 9px !important; border-radius:14px; }
.sh-share-grid .sh-sh-ic{ width:40px !important; height:40px !important; border-radius:12px !important; }
.sh-share-grid .sh-sh-ic svg{ width:21px !important; height:21px !important; }
.sh-share-grid .sh-sh-t b{ font-size:0.78rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sh-share-grid .sh-sh-t small{ display:none !important; }
@media (max-width: 640px){
  .sh-modal{ padding:10px; }
  #shShare .box{ padding:18px 14px 14px; }
  .sh-share-grid{ grid-template-columns:repeat(4, minmax(0, 1fr)) !important; gap:6px !important; }
  .sh-share-grid .sh-sh-ic{ width:38px !important; height:38px !important; }
  .sh-share-preview{ max-height:26vh; }
}

/* ---------- checklist: online shopping support ---------- */
.ck-shopbar{ display:flex; align-items:center; gap:14px; padding:12px 16px; border-radius:16px; border:1px dashed rgba(30,142,90,0.35); background:rgba(30,142,90,0.05); }
.ck-shop-ic{ width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; background:linear-gradient(135deg, #1E8E5A, #5FBE8B); flex-shrink:0; box-shadow:0 8px 18px -10px rgba(30,142,90,0.8); }
.ck-shopbar b{ display:block; font-family:var(--font-head); color:var(--forest); font-size:0.95rem; }
.ck-shopbar span{ font-size:0.84rem; color:var(--muted); }
.ck-shopbar em{ font-style:normal; font-weight:700; color:var(--primary-dark); }
.ck-buy{ position:relative; flex-shrink:0; align-self:center; }
.ck-buy-btn{ display:inline-flex; align-items:center; gap:4px; padding:4px 9px; border-radius:999px; border:1px solid rgba(30,142,90,0.35); background:var(--mint-50); color:var(--primary-dark); font:700 0.74rem var(--font-body); cursor:pointer; transition:background .15s ease, border-color .15s ease; }
.ck-buy-btn svg{ width:13px; height:13px; }
.ck-buy-btn:hover, .ck-buy-btn[aria-expanded="true"]{ background:var(--primary); border-color:var(--primary); color:#fff; }
.ck-buy-menu{ position:absolute; right:0; top:calc(100% + 6px); z-index:30; min-width:190px; padding:8px; border-radius:14px; background:#fff; border:1px solid var(--line); box-shadow:0 20px 40px -16px rgba(12,58,43,0.4); }
.ck-buy-menu[hidden]{ display:none; }
.ck-buy-menu small{ display:block; font-size:0.72rem; color:var(--muted); padding:2px 6px 6px; line-height:1.3; }
.ck-buy-menu a{ display:flex; justify-content:space-between; align-items:center; padding:8px 10px; border-radius:9px; font-size:0.86rem; font-weight:600; color:var(--forest); }
.ck-buy-menu a:hover{ background:var(--mint-100); }
.ck-buy-menu a span{ color:var(--primary); }
.ck-actions{ gap:6px; }
html:not([data-theme="light"]) .ck-shopbar{ border-color:rgba(196,242,74,0.3); background:rgba(196,242,74,0.04); }
html:not([data-theme="light"]) .ck-shop-ic{ background:#C4F24A; }
html:not([data-theme="light"]) .ck-shopbar b{ color:#fff; }
html:not([data-theme="light"]) .ck-shopbar em{ color:#C4F24A; }
html:not([data-theme="light"]) .ck-buy-btn{ background:rgba(196,242,74,0.08); border-color:rgba(196,242,74,0.35); color:#C4F24A; }
html:not([data-theme="light"]) .ck-buy-btn:hover, html:not([data-theme="light"]) .ck-buy-btn[aria-expanded="true"]{ background:#C4F24A; border-color:#C4F24A; color:#0B1105; }
html:not([data-theme="light"]) .ck-buy-menu{ background:#111612; border-color:rgba(255,255,255,0.12); box-shadow:0 20px 50px -16px rgba(0,0,0,0.9); }
html:not([data-theme="light"]) .ck-buy-menu a{ color:#F2F6EE; }
html:not([data-theme="light"]) .ck-buy-menu a:hover{ background:rgba(255,255,255,0.06); }
html:not([data-theme="light"]) .ck-buy-menu a span{ color:#C4F24A; }
.ck-shopbar .ck-disclose{ display:block; margin-top:4px; font-size:0.78rem; color:var(--muted); }
.ck-buy-menu .ck-aff{ display:block; font-style:normal; font-size:0.7rem; color:var(--muted); padding:6px 6px 2px; border-top:1px solid var(--line); margin-top:4px; }
.ck-note a{ color:inherit; text-decoration:underline; }

/* ---------- v38: travel dates calendar ---------- */
.sh-dates{ position:relative; }
.dr-lift{ position:relative; z-index:40; }
.sh-date-btn{
  width:100%; display:flex; align-items:center; gap:10px; text-align:left; cursor:pointer;
  padding:10px 13px; min-height:46px; border-radius:12px; border:1px solid var(--line);
  background:var(--mint-50); color:var(--muted); font:inherit; font-size:0.95rem; transition:border-color .2s ease, box-shadow .2s ease;
}
.sh-date-btn svg{ width:20px; height:20px; flex:0 0 auto; fill:none; stroke:var(--primary); stroke-width:2; stroke-linecap:round; }
.sh-date-btn:hover, .sh-date-btn[aria-expanded="true"]{ border-color:var(--primary); }
.sh-date-btn:focus-visible{ outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(30,142,90,0.14); }
.sh-date-btn.has{ color:var(--ink); }
.sh-date-btn #shDatesText{ display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 6px; min-width:0; }
.sh-date-btn b{ color:var(--forest); font-weight:700; }
.sh-date-btn em{ font-style:normal; font-size:0.78rem; color:var(--primary-dark); background:var(--mint); border-radius:999px; padding:1px 8px; margin-left:2px; }

.dr-pop{
  position:absolute; z-index:60; top:calc(100% + 8px); left:0; width:max-content; max-width:min(640px, calc(100vw - 32px));
  background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:20px; padding:14px 16px 12px;
  box-shadow:0 24px 60px rgba(12,58,43,0.22); animation:drIn .18s ease-out;
}
@keyframes drIn{ from{ opacity:0; transform:translateY(-6px) scale(.98); } to{ opacity:1; transform:none; } }
.dr-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.dr-step{ flex:1; text-align:center; font-size:0.85rem; color:var(--muted); }
.dr-step b{ display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--primary); color:#fff; font-size:0.72rem; margin-right:4px; }
.dr-nav{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:var(--mint-50); color:var(--forest); font-size:1.2rem; line-height:1; cursor:pointer; }
.dr-nav:hover:not(:disabled){ border-color:var(--primary); color:var(--primary); }
.dr-nav:disabled{ opacity:.35; cursor:default; }
.dr-months{ display:flex; gap:22px; }
.dr-month{ width:266px; }
.dr-mname{ text-align:center; font-weight:700; color:var(--forest); margin-bottom:6px; }
.dr-grid{ display:grid; grid-template-columns:repeat(7, 38px); gap:0; }
.dr-w{ text-align:center; font-size:0.7rem; font-weight:600; color:var(--muted); padding:4px 0; }
.dr-d{
  height:38px; border:0; background:none; color:var(--ink); font:inherit; font-size:0.88rem; cursor:pointer; border-radius:10px; position:relative;
}
.dr-d.we{ color:var(--primary-dark); }
.dr-d:hover:not(.off){ background:rgba(30,142,90,0.1); }
.dr-d:focus-visible{ outline:2px solid var(--primary); outline-offset:-2px; }
.dr-d.today::after{ content:""; position:absolute; left:50%; bottom:5px; width:4px; height:4px; margin-left:-2px; border-radius:50%; background:var(--primary); }
.dr-d.off{ color:#b9c7bf; cursor:default; text-decoration:line-through; text-decoration-color:rgba(0,0,0,.15); }
.dr-d.in{ background:rgba(30,142,90,0.14); border-radius:0; }
.dr-d.s, .dr-d.e{ background:var(--primary) !important; color:#fff !important; font-weight:700; }
.dr-d.s{ border-radius:10px 0 0 10px; }
.dr-d.e{ border-radius:0 10px 10px 0; }
.dr-d.s:not(.e):last-child, .dr-d.s.e{ border-radius:10px; }
.dr-pop:not(:has(.dr-d.e)) .dr-d.s{ border-radius:10px; }
.dr-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; border-top:1px solid var(--line); margin-top:10px; padding-top:10px; }
.dr-quick{ display:flex; gap:6px; flex-wrap:wrap; font-size:0.78rem; color:var(--muted); max-width:340px; }
.dr-quick button{ border:1px solid var(--line); background:var(--mint-50); color:var(--forest); border-radius:999px; padding:5px 11px; font:inherit; font-size:0.78rem; cursor:pointer; }
.dr-quick button:hover{ border-color:var(--primary); color:var(--primary); }
.dr-acts{ display:flex; gap:8px; margin-left:auto; }
.dr-clear{ border:0; background:none; color:var(--muted); font:inherit; font-size:0.85rem; cursor:pointer; text-decoration:underline; }
.dr-done{ border:0; background:var(--primary); color:#fff; font:inherit; font-weight:700; font-size:0.88rem; padding:8px 18px; border-radius:999px; cursor:pointer; }
.dr-done:disabled{ opacity:.45; cursor:default; }
@media (max-width: 699px){
  .dr-pop{ width:calc(100vw - 32px); max-width:360px; padding:12px; }
  .dr-month{ width:100%; }
  .dr-grid{ grid-template-columns:repeat(7, 1fr); }
}
html:not([data-theme="light"]) .sh-date-btn{ background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.12); color:#AEB9B2; }
html:not([data-theme="light"]) .sh-date-btn.has{ color:#E2E8E0; }
html:not([data-theme="light"]) .sh-date-btn b{ color:#fff; }
html:not([data-theme="light"]) .sh-date-btn em{ background:rgba(196,242,74,0.12); color:#DDF6A8; }
html:not([data-theme="light"]) .sh-date-btn svg{ stroke:#C4F24A; }
html:not([data-theme="light"]) .dr-pop{ background:#121914; color:#E2E8E0; border-color:rgba(255,255,255,0.12); box-shadow:0 24px 60px rgba(0,0,0,0.6); }
html:not([data-theme="light"]) .dr-mname{ color:#fff; }
html:not([data-theme="light"]) .dr-d{ color:#E2E8E0; }
html:not([data-theme="light"]) .dr-d.we{ color:#C4F24A; }
html:not([data-theme="light"]) .dr-d:hover:not(.off), html:not([data-theme="light"]) .dr-d.in{ background:rgba(196,242,74,0.12); }
html:not([data-theme="light"]) .dr-d.off{ color:#4B5550; text-decoration-color:rgba(255,255,255,.12); }
html:not([data-theme="light"]) .dr-d.s, html:not([data-theme="light"]) .dr-d.e{ background:#C4F24A !important; color:#0C1A12 !important; }
html:not([data-theme="light"]) .dr-d.today::after{ background:#C4F24A; }
html:not([data-theme="light"]) .dr-step b, html:not([data-theme="light"]) .dr-done{ background:#C4F24A; color:#0C1A12; }
html:not([data-theme="light"]) .dr-nav, html:not([data-theme="light"]) .dr-quick button{ background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.12); color:#E2E8E0; }
html:not([data-theme="light"]) .dr-foot{ border-color:rgba(255,255,255,0.1); }

/* ---------- v38: events during the trip ---------- */
.sh-events{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; }
.sh-event{ display:flex; gap:14px; padding:14px; border-radius:16px; border:1px solid rgba(224,162,62,0.35); background:linear-gradient(135deg, var(--gold-100, #FBF1DD), var(--white) 70%); }
.sh-ev-date{ flex:0 0 58px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:12px; background:#E0A23E; color:#fff; padding:6px 4px; text-align:center; line-height:1.1; }
.sh-ev-date b{ font-size:1.45rem; }
.sh-ev-date small{ font-size:0.66rem; text-transform:uppercase; letter-spacing:.04em; font-weight:700; opacity:.92; }
.sh-event h4{ font-size:0.98rem; color:var(--forest); margin-bottom:2px; }
.sh-event .meta{ font-size:0.8rem; color:var(--muted); }
.sh-event p{ font-size:0.86rem; color:var(--ink); margin:6px 0 4px; line-height:1.5; }
.sh-event a{ font-size:0.82rem; font-weight:600; color:#8a5a12; }
.sh-ev-type{ display:inline-block; vertical-align:middle; font-size:0.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:2px 8px; border-radius:999px; background:rgba(224,162,62,0.18); color:#8a5a12; margin-left:4px; }
html:not([data-theme="light"]) .sh-event{ background:linear-gradient(135deg, rgba(224,162,62,0.12), rgba(255,255,255,0.02) 70%); border-color:rgba(224,162,62,0.3); }
html:not([data-theme="light"]) .sh-event h4{ color:#fff; }
html:not([data-theme="light"]) .sh-event p{ color:#E2E8E0; }
html:not([data-theme="light"]) .sh-event a, html:not([data-theme="light"]) .sh-ev-type{ color:#F2D59A; }

/* ---------- v38: prices-as-of notice + plan terms ---------- */
.sh-asof{ display:flex; gap:8px; align-items:flex-start; margin-top:12px; padding:10px 12px; border-radius:12px; background:rgba(224,162,62,0.12); border:1px solid rgba(224,162,62,0.35); font-size:0.8rem; color:#7a4f0e; line-height:1.45; }
.sh-asof svg{ width:16px; height:16px; flex:0 0 auto; margin-top:1px; }
.sh-asof a{ color:inherit; text-decoration:underline; font-weight:600; }
.sh-terms-card{ margin-top:34px; border-left:4px solid #DD5A4C; }
.sh-terms-card h3{ font-size:1.1rem; color:var(--forest); margin-bottom:10px; }
.sh-terms-card ol{ margin:0; padding-left:20px; display:grid; gap:7px; font-size:0.86rem; color:var(--muted); line-height:1.55; }
.sh-terms-card li b{ color:var(--ink); }
.sh-terms-card li:nth-child(-n+2){ color:var(--ink); }
.sh-terms-card li:nth-child(-n+2) b{ color:#B8402F; }
.sh-terms-card .sh-legal{ margin-top:14px; }
html:not([data-theme="light"]) .sh-asof{ color:#F2D59A; background:rgba(224,162,62,0.1); }
html:not([data-theme="light"]) .sh-terms-card h3, html:not([data-theme="light"]) .sh-terms-card li b{ color:#fff; }
html:not([data-theme="light"]) .sh-terms-card li:nth-child(-n+2), html:not([data-theme="light"]) .sh-terms-card ol{ color:#C9D3CC; }
html:not([data-theme="light"]) .sh-terms-card li:nth-child(-n+2) b{ color:#FF9A8E; }
@media print{ .sh-event, .sh-terms-card, .sh-asof{ break-inside:avoid; } }

/* ---------- v39: estimated price ranges ---------- */
.sh-meter .big.rng{ font-size:clamp(1.45rem, 2.6vw, 1.75rem); }
.sh-meter .big.rng small{ display:block; margin-top:2px; }
.sh-status.tight{ color:#B7791F; }
.sh-rbar{ position:relative; height:12px; border-radius:999px; background:var(--mint-100); margin:18px 0 6px; }
.sh-rbar .band{ position:absolute; top:0; bottom:0; border-radius:999px; background:linear-gradient(90deg, rgba(30,142,90,0.45), rgba(30,142,90,0.85)); }
.sh-rbar.tight .band{ background:linear-gradient(90deg, rgba(30,142,90,0.6), rgba(224,162,62,0.95)); }
.sh-rbar.over .band{ background:linear-gradient(90deg, rgba(221,90,76,0.6), rgba(221,90,76,0.95)); }
.sh-rbar .typ{ position:absolute; top:-2px; bottom:-2px; width:3px; margin-left:-1.5px; border-radius:2px; background:var(--forest); }
.sh-rbar .you{ position:absolute; top:-6px; bottom:-6px; width:2px; margin-left:-1px; background:var(--ink); }
.sh-rbar .you::before{ content:""; position:absolute; top:-5px; left:-4px; border:5px solid transparent; border-top-color:var(--ink); }
.sh-rbar-key{ display:flex; flex-wrap:wrap; gap:4px 14px; font-size:0.76rem; color:var(--muted); margin-bottom:8px; }
.sh-rbar-key span{ display:inline-flex; align-items:center; gap:6px; }
.sh-rbar-key i{ display:inline-block; }
.sh-rbar-key .k-band{ width:16px; height:8px; border-radius:4px; background:rgba(30,142,90,0.7); }
.sh-rbar-key .k-you{ width:2px; height:12px; background:var(--ink); }
.sh-typ{ font-size:0.8rem; color:var(--muted); margin-top:-2px; }
.sh-est-note{ font-size:0.82rem; color:var(--muted); margin:-4px 0 14px; padding:9px 12px; border-radius:12px; background:var(--mint-50); border:1px dashed var(--line); line-height:1.5; }
html:not([data-theme="light"]) .sh-status.tight{ color:#F2C46B; }
html:not([data-theme="light"]) .sh-rbar{ background:rgba(255,255,255,0.08); }
html:not([data-theme="light"]) .sh-rbar .band{ background:linear-gradient(90deg, rgba(196,242,74,0.35), rgba(196,242,74,0.85)); }
html:not([data-theme="light"]) .sh-rbar.tight .band{ background:linear-gradient(90deg, rgba(196,242,74,0.5), rgba(242,196,107,0.95)); }
html:not([data-theme="light"]) .sh-rbar.over .band{ background:linear-gradient(90deg, rgba(255,123,107,0.5), rgba(255,123,107,0.95)); }
html:not([data-theme="light"]) .sh-rbar .typ{ background:#fff; }
html:not([data-theme="light"]) .sh-rbar .you, html:not([data-theme="light"]) .sh-rbar-key .k-you{ background:#F2F6EE; }
html:not([data-theme="light"]) .sh-rbar .you::before{ border-top-color:#F2F6EE; }
html:not([data-theme="light"]) .sh-rbar-key .k-band{ background:rgba(196,242,74,0.7); }
html:not([data-theme="light"]) .sh-est-note{ background:rgba(255,255,255,0.03); border-color:rgba(255,255,255,0.14); color:#AEB9B2; }
html:not([data-theme="light"]) .sh-typ{ color:#8F9C95; }
@media print{ #shResult .sh-rbar .band{ -webkit-print-color-adjust:exact; print-color-adjust:exact; } }

/* ---------- v42: hotel listing check ---------- */
.sh-listed{ font-size:0.78rem; color:var(--primary-dark); font-weight:600; }
.sh-nohotel{ font-size:0.86rem; color:var(--muted); padding:14px 16px; border-radius:var(--radius-md); border:1px dashed var(--line); background:var(--mint-50); margin-bottom:14px; line-height:1.6; }
html:not([data-theme="light"]) .sh-listed{ color:#C4F24A; }
html:not([data-theme="light"]) .sh-nohotel{ background:rgba(255,255,255,0.03); border-color:rgba(255,255,255,0.14); color:#AEB9B2; }
.sh-seen{ display:flex; align-items:flex-start; gap:5px; line-height:1.4; font-size:0.76rem; color:var(--primary-dark); }
.sh-seen svg{ width:13px; height:13px; flex:0 0 auto; margin-top:2px; }
.sh-seen.est{ color:var(--muted); font-style:italic; }
html:not([data-theme="light"]) .sh-seen{ color:#C4F24A; }
html:not([data-theme="light"]) .sh-seen.est{ color:#8F9C95; }

/* ---------- v44: every planner box the same height (Safari draws its own short dropdowns) ---------- */
#shForm .sh-field input, #shForm .sh-field select, #shForm .sh-ages-list select, #shForm .sh-date-btn{
  height:50px; min-height:50px; box-sizing:border-box; padding-top:0; padding-bottom:0; line-height:normal; font-size:0.95rem;
}
#shForm .sh-field select, #shForm .sh-ages-list select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none; padding-right:40px; text-overflow:ellipsis; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E8E5A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px 16px;
}
html:not([data-theme="light"]) #shForm .sh-field select, html:not([data-theme="light"]) #shForm .sh-ages-list select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C4F24A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
/* no tiny spinner arrows in the budget box */
#shForm input[type=number]{ -moz-appearance:textfield; appearance:textfield; }
#shForm input[type=number]::-webkit-inner-spin-button, #shForm input[type=number]::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
#shForm .sh-date-btn{ padding-top:0; padding-bottom:0; }
#shForm .sh-date-btn #shDatesText{ overflow:hidden; white-space:nowrap; text-overflow:ellipsis; flex-wrap:nowrap; }
