.tools-hero { min-height:300px; }
#sharedChecklist,#weatherPlan,#emergencyCard,#phraseCards { scroll-margin-top:18px; }
.tools-hero h1 { font-size:clamp(58px,16vw,88px); }
.tools-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.tools-heading h2 { margin-bottom:10px; }
.tools-heading .section-intro { margin:0; }
.tools-mode,.offline-state {
  flex:0 0 auto;
  padding:5px 7px;
  background:var(--yellow);
  font:500 .625rem 'DM Mono',monospace;
  letter-spacing:.04em;
}
.tools-mode[data-mode="remote"] { background:#d9f6e9; color:#126947; }
.checklist-controls {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
  margin-top:24px;
  padding:16px 0;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
}
.checklist-controls label { display:grid; gap:6px; font-size:.75rem; font-weight:800; }
.checklist-controls select,.tool-add-panel input,.tool-add-panel select,.insurance-card input {
  min-height:48px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:0;
  background:rgba(255,255,255,.58);
  color:var(--ink);
  font:500 1rem Manrope,system-ui,sans-serif;
}
.checklist-filter { grid-template-columns:auto 1fr; align-items:center; min-height:48px; }
.checklist-filter input { width:22px; height:22px; accent-color:var(--coral); }
.checklist-progress { padding:18px 0; border-bottom:1px solid var(--ink); }
.checklist-progress > div { display:flex; justify-content:space-between; align-items:baseline; }
.checklist-progress strong { font:500 1.75rem 'DM Mono',monospace; }
.checklist-progress span,.checklist-progress small { color:var(--muted); font-size:.75rem; }
.checklist-progress progress { display:block; width:100%; height:8px; margin:12px 0; border:0; background:#dedbd3; }
.checklist-progress progress::-webkit-progress-bar { background:#dedbd3; }
.checklist-progress progress::-webkit-progress-value { background:var(--coral); }
.checklist-progress progress::-moz-progress-bar { background:var(--coral); }
.shared-checklist { border-bottom:1px solid var(--ink); }
.checklist-group-title {
  display:flex;
  justify-content:space-between;
  padding:20px 0 8px;
  color:var(--muted);
  font:500 .6875rem 'DM Mono',monospace;
}
.checklist-row {
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:12px;
  align-items:start;
  min-height:68px;
  padding:12px 0;
  border-top:1px solid var(--line);
}
.checklist-row input { width:24px; height:24px; margin:1px 0 0; accent-color:var(--coral); }
.checklist-row-main { min-width:0; }
.checklist-row-main strong,.checklist-row-main small { display:block; }
.checklist-row-main strong { font-size:.875rem; line-height:1.45; overflow-wrap:anywhere; }
.checklist-row-main small { margin-top:4px; color:var(--muted); font-size:.6875rem; line-height:1.5; }
.checklist-row.is-complete strong { text-decoration:line-through; text-decoration-thickness:2px; opacity:.58; }
.checklist-row.is-urgent { margin-inline:-12px; padding-inline:12px; background:#ffddd5; }
.tool-empty { margin:0; padding:22px 16px; background:rgba(255,211,78,.28); color:var(--muted); font-size:.8125rem; }
.tool-add-panel { margin-top:16px; border:1px solid var(--ink); }
.tool-add-panel summary,.insurance-card summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:52px;
  padding:0 16px;
  cursor:pointer;
  font-size:.8125rem;
  font-weight:800;
  list-style:none;
}
.tool-add-panel summary::-webkit-details-marker,.insurance-card summary::-webkit-details-marker { display:none; }
.tool-add-panel form,.insurance-card form { display:grid; gap:14px; padding:16px; border-top:1px solid var(--line); }
.tool-add-panel label,.insurance-card label { display:grid; gap:6px; font-size:.75rem; font-weight:800; }
.tool-add-panel button,.insurance-card button {
  min-height:48px;
  border:1px solid var(--ink);
  background:var(--coral);
  color:var(--ink);
  cursor:pointer;
  font-size:.8125rem;
  font-weight:800;
}
.tool-add-panel p,.insurance-card p { min-height:18px; margin:0; color:var(--muted); font-size:.75rem; }
.weather-plan-section { padding-bottom:46px; background:var(--ink); color:var(--paper); }
.weather-plan-section .section-intro,.forecast-status { color:#b8c0cc; }
.trip-forecast { display:grid; grid-template-columns:repeat(5,minmax(92px,1fr)); gap:8px; margin-top:22px; overflow-x:auto; padding-bottom:8px; }
.forecast-card { min-width:92px; padding:14px 10px; border:1px solid rgba(245,243,238,.24); }
.forecast-card span,.forecast-card strong,.forecast-card small { display:block; }
.forecast-card span { color:var(--yellow); font:500 .6875rem 'DM Mono',monospace; }
.forecast-card strong { margin-top:16px; font-size:1.25rem; }
.forecast-card small { margin-top:4px; color:#b8c0cc; font-size:.6875rem; line-height:1.45; }
.forecast-card[data-alert="rain"] { background:#243b54; }
.forecast-card[data-alert="heat"] { background:#5c2e27; }
.forecast-status { min-height:20px; margin:8px 0 0; font-size:.75rem; }
.plan-b-list { margin-top:28px; border-top:1px solid rgba(245,243,238,.25); }
.plan-b-list a { position:relative; display:block; min-height:90px; padding:16px 42px 16px 0; border-bottom:1px solid rgba(245,243,238,.25); color:var(--paper); text-decoration:none; }
.plan-b-list span,.plan-b-list strong,.plan-b-list small { display:block; }
.plan-b-list span { color:var(--yellow); font:500 .625rem 'DM Mono',monospace; }
.plan-b-list strong { margin-top:8px; font-size:1rem; }
.plan-b-list small { margin-top:2px; color:#b8c0cc; font-size:.75rem; }
.plan-b-list em { position:absolute; top:30px; right:0; color:var(--yellow); font-size:1.25rem; font-style:normal; }
.emergency-grid { display:grid; gap:10px; margin-top:24px; }
.emergency-call { display:flex; flex-direction:column; min-height:116px; padding:16px; border:1px solid var(--ink); color:var(--ink); text-decoration:none; }
.emergency-call.urgent { background:var(--coral); }
.emergency-call span { font:500 .625rem 'DM Mono',monospace; letter-spacing:.05em; }
.emergency-call strong { margin-top:auto; font:500 1.45rem 'DM Mono',monospace; letter-spacing:-.04em; }
.emergency-call small { margin-top:3px; color:var(--muted); font-size:.75rem; }
.emergency-call.urgent small { color:rgba(16,24,40,.7); }
.emergency-source-links {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.emergency-source-links a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--ink);
  font-size:.75rem;
  font-weight:800;
}
.offline-address-card { margin-top:24px; padding:20px; background:var(--yellow); }
.offline-address-card > span { font:500 .625rem 'DM Mono',monospace; }
.offline-address-card > strong { display:block; margin-top:20px; font-size:1.125rem; line-height:1.45; }
.offline-address-card > p { margin:8px 0 18px; font:500 .75rem/1.55 'DM Mono',monospace; overflow-wrap:anywhere; }
.offline-address-card > div { display:flex; flex-wrap:wrap; gap:8px; }
.offline-address-card button,.offline-address-card a {
  display:inline-flex;
  flex:1 1 130px;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 12px;
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  text-decoration:none;
  cursor:pointer;
  font-size:.75rem;
  font-weight:800;
}
.insurance-card { margin-top:16px; border:1px solid var(--ink); }
.phrase-list { border-top:1px solid var(--ink); }
.phrase-list button { display:grid; grid-template-columns:72px minmax(0,1fr); gap:2px 12px; width:100%; min-height:88px; padding:14px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; cursor:pointer; }
.phrase-list button > span { grid-row:1/3; color:var(--coral); font:500 .6875rem 'DM Mono',monospace; }
.phrase-list strong { font-size:.9375rem; overflow-wrap:anywhere; }
.phrase-list small { color:var(--muted); font-size:.75rem; }
.tool-copy-status { min-height:24px; margin:10px 0 0; color:#17845a; font-size:.75rem; }
@media (min-width:480px) {
  .emergency-grid { grid-template-columns:1fr 1fr; }
  .tool-add-panel form { grid-template-columns:1fr 1fr; }
  .tool-add-panel form label:first-child,.tool-add-panel form button,.tool-add-panel form p { grid-column:1/-1; }
}
@media (max-width:359px) {
  .checklist-controls { grid-template-columns:1fr; }
  .tools-heading { display:block; }
  .tools-mode,.offline-state { display:inline-block; margin-bottom:12px; }
}
@media (hover:hover) and (pointer:fine) {
  .emergency-call:hover,.phrase-list button:hover { background:rgba(255,211,78,.25); }
  .tool-add-panel button:hover,.insurance-card button:hover { background:var(--yellow); }
}
