:root{--p:#12372a;--bg:#f3f5f1;--muted:#68736d;--border:#dfe5df;--soft:#eef3ee}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:#17231d;font-family:system-ui,sans-serif;line-height:1.5}.container{width:min(1140px,calc(100% - 28px));margin:auto}.site-header{padding:18px 0;background:var(--p);color:#fff}.header-row{display:flex;justify-content:space-between;align-items:center}.brand{color:#fff;font-size:1.3rem;font-weight:850;text-decoration:none}.header-row span{opacity:.72}footer{margin-top:60px;padding:28px 0;background:var(--p);color:#ffffffb8}.hero{margin:28px 0 22px;padding:34px;border-radius:24px;background:linear-gradient(130deg,#12372a,#3a7155);color:#fff}.hero h1{margin:5px 0;font-size:clamp(2rem,6vw,3.4rem)}.eyebrow{margin:0;color:#c5ddcc;font-size:.76rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.eyebrow.dark{color:#718079}.muted{color:var(--muted)}.split{display:flex;align-items:center;justify-content:space-between;gap:24px}.countdown{display:flex;min-width:180px;padding:20px;flex-direction:column;border:1px solid #ffffff38;border-radius:18px;background:#ffffff18;text-align:center}.countdown strong{font-size:2rem}.trip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,390px));gap:20px}.trip-card{overflow:hidden;border:1px solid var(--border);border-radius:20px;background:#fff;color:inherit;text-decoration:none}.trip-image{display:grid;min-height:160px;place-items:center;background:linear-gradient(130deg,#d4e5d7,#8eb59a);font-size:4rem}.trip-body{padding:22px}.pill{padding:5px 9px;border-radius:999px;background:#dce9df;color:var(--p);font-size:.76rem;font-weight:800}.breadcrumb a{color:var(--p);font-weight:750;text-decoration:none}.actions{display:flex;gap:10px;flex-wrap:wrap}.button{display:inline-flex;min-height:43px;padding:10px 16px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:11px;background:#fff;color:var(--p);font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.button.primary{background:var(--p);color:#fff}.panel{margin-top:22px;padding:25px;border:1px solid var(--border);border-radius:20px;background:#fff}.panel h2{margin:4px 0 18px}.two{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.chat-panel{border-top:5px solid var(--p)}.chat-heading{display:flex;justify-content:space-between;gap:20px}.ai-state{padding:6px 10px;border-radius:999px;background:#dce9df;color:var(--p);font-size:.78rem;font-weight:800}.chat-log{display:grid;max-height:680px;margin:20px 0;gap:14px;overflow:auto}.message{display:flex;align-items:flex-start;gap:10px}.message.user{flex-direction:row-reverse}.avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;background:var(--soft)}.bubble{max-width:88%;padding:14px 16px;border-radius:16px;background:var(--soft)}.message.user .bubble{background:#dce9df}.message-text{margin-top:5px;white-space:pre-wrap}.chat-sources{display:grid;margin-top:7px;gap:5px}.chat-sources a{color:var(--p);font-size:.86rem;text-decoration:none}.ask-form{display:grid;gap:10px}.ask-options{display:flex;align-items:center;justify-content:space-between;gap:12px}.older-messages{padding:12px;border-radius:12px;background:#f7f8f6}.older-messages summary{cursor:pointer;font-weight:800}.clear-chat{text-align:right}.clear-chat button,.source-actions button{border:0;background:transparent;color:var(--muted);text-decoration:underline;cursor:pointer}.chat-empty{display:flex;padding:20px;gap:13px;border-radius:15px;background:var(--soft)}input,textarea,select{width:100%;padding:10px 11px;border:1px solid #cbd5cd;border-radius:9px;background:#fff;font:inherit}label{display:grid;gap:5px;font-size:.88rem;font-weight:750}.timeline-row,.task{display:flex;padding:10px 0;align-items:center;gap:10px;border-bottom:1px solid var(--border)}.datebox{display:flex;width:48px;height:48px;align-items:center;justify-content:center;flex-direction:column;border-radius:13px;background:#dce9df}.task button{width:31px;height:31px;border:0;border-radius:50%;background:#dce9df}.task.done span{text-decoration:line-through;color:var(--muted)}.inline{display:grid;margin-top:14px;grid-template-columns:1fr auto auto;gap:8px}.sources{display:grid;gap:10px}.source{display:grid;padding:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid var(--border);border-radius:14px}.source-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:var(--soft)}.source p{margin:3px 0;color:var(--muted)}.source-actions{display:grid;justify-items:end;gap:5px}.source-actions a{color:var(--p);font-weight:800;text-decoration:none}.forms{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-card{display:flex;padding:17px;flex-direction:column;gap:12px;border:1px solid var(--border);border-radius:15px;background:#fafbf9}.weather-answer{display:grid;margin-top:12px;gap:14px}.weather-answer-head h3{margin:2px 0}.weather-answer-head p{margin:0;color:var(--muted)}.weather-kicker{font-size:.7rem;font-weight:850;letter-spacing:.12em;color:#66766e}.weather-cards{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:10px;overflow-x:auto;padding-bottom:5px}.weather-day{display:flex;min-width:125px;min-height:215px;padding:14px;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:15px;background:#fff}.weather-day-icon{margin:8px 0;font-size:2rem}.weather-temp{display:flex;margin-top:auto;align-items:baseline;gap:4px}.weather-temp b{font-size:1.25rem}.weather-day small,.weather-source{color:var(--muted)}.weather-tip,.notice-card{padding:12px 14px;border-radius:12px;background:#f2f6f2}.weather-source{text-align:right;font-size:.78rem}.planning-layout{display:grid;grid-template-columns:1fr 350px;gap:20px}.day-list{display:grid;gap:14px}.day-card{overflow:hidden;border:1px solid var(--border);border-radius:18px;background:#fff}.day-card header{display:flex;padding:18px;gap:12px;background:#fafbf9}.day-card header>span{display:grid;width:48px;height:48px;place-items:center;border-radius:13px;background:var(--p);color:#fff}.day-items{padding:8px 18px}.day-item{display:grid;padding:13px 0;grid-template-columns:58px 1fr auto;gap:10px;border-bottom:1px solid var(--border)}.sticky{position:sticky;top:20px;align-self:start;margin-top:0}.stack{display:grid;gap:12px}
@media(max-width:900px){.two,.planning-layout{grid-template-columns:1fr}.forms{grid-template-columns:1fr}.sticky{position:static}}@media(max-width:650px){.header-row span{display:none}.hero{padding:24px 20px}.split,.chat-heading{flex-direction:column}.inline{grid-template-columns:1fr}.source{grid-template-columns:auto 1fr}.source-actions{grid-column:2;justify-items:start}.bubble{max-width:92%}.ask-options{align-items:stretch;flex-direction:column}.weather-cards{grid-template-columns:repeat(7,135px)}}


.home-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}.hero-button{border-color:#fff;background:#fff;color:var(--p)}.new-trip-panel{scroll-margin-top:20px}.new-trip-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.new-trip-form .wide{grid-column:1/-1}
@media(max-width:650px){.home-hero{align-items:stretch;flex-direction:column}.new-trip-form{grid-template-columns:1fr}.new-trip-form .wide{grid-column:auto}}

/* Dobby v1.2 */
.add-trip-disclosure{position:relative;min-height:230px;border:1px dashed #b7c7bb;border-radius:20px;background:#f8faf7}
.add-trip-disclosure>summary{display:grid;width:100%;height:100%;min-height:230px;place-items:center;list-style:none;cursor:pointer;color:var(--p);font-size:3.2rem;font-weight:300}
.add-trip-disclosure>summary::-webkit-details-marker{display:none}
.add-trip-disclosure[open]{grid-column:1/-1;min-height:0;border:0;background:transparent}
.add-trip-disclosure[open]>summary{width:52px;min-height:52px;height:52px;margin-left:auto;border:1px solid var(--border);border-radius:50%;background:#fff;font-size:2rem;transform:rotate(45deg)}
.add-trip-disclosure .new-trip-panel{margin-top:12px}
.route-answer{display:grid;margin-top:12px;gap:14px}
.route-answer-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.route-answer-head h3{margin:2px 0}.route-kicker{font-size:.7rem;font-weight:850;letter-spacing:.12em;color:#66766e}.route-icon{font-size:2rem}
.route-points{display:grid;grid-template-columns:1fr 1fr;gap:10px}.route-points>div,.route-stats>div{display:grid;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff;gap:4px}.route-points span,.route-stats span{color:var(--muted);font-size:.82rem}
.route-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.route-stats strong{font-size:1.25rem}.route-button{justify-self:start}.route-note{margin:0;color:var(--muted);font-size:.86rem}.route-source{color:var(--muted);font-size:.78rem;text-align:right}
@media(max-width:650px){.route-points,.route-stats{grid-template-columns:1fr}.add-trip-disclosure[open]>summary{margin-right:0}}


.header-actions{display:flex;align-items:center;gap:14px}
.settings-link{display:grid;width:36px;height:36px;place-items:center;border-radius:10px;background:#ffffff18;color:#fff;text-decoration:none;font-size:1.15rem}
.settings-link:hover{background:#ffffff2b}
.settings-hero{display:flex;align-items:center;justify-content:space-between}
.settings-form{display:grid;gap:18px}
.settings-section{margin-top:0}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.settings-grid .wide{grid-column:1/-1}
.check-label{display:flex;align-items:center;gap:9px;align-self:end;min-height:44px}
.check-label input{width:auto}
.settings-actions{display:flex;gap:10px;justify-content:flex-end}
.location-result{display:grid;margin-top:16px;padding:14px;gap:3px;border-radius:13px;background:var(--soft)}
.location-result small{color:var(--muted)}
.notice.success{border-left:4px solid #3f8b5d}
.notice.warning{border-left:4px solid #bb7b20}
.route-cost{display:grid;padding:13px;border-radius:13px;background:var(--soft)}
.route-cost span,.route-cost small{color:var(--muted)}
.route-cost strong{font-size:1.25rem}

@media(max-width:650px){
  .header-actions>span{display:none}
  .settings-grid{grid-template-columns:1fr}
  .settings-grid .wide{grid-column:auto}
  .settings-actions{align-items:stretch;flex-direction:column}
}
