:root{color-scheme:light;--paper: #fbfdfb;--surface: #ffffff;--ink: #1d2622;--muted: #58645f;--line: #d8e2dc;--sea: #13796f;--sea-deep: #0d5f58;--coral: #d94f61;--gold: #a97800;--sky: #2d6f95;--shadow: 0 18px 50px rgba(29, 38, 34, .12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#13796f14,#fff0 360px),var(--paper)}a{color:inherit}button,input{font:inherit}.app-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:28px 0 48px}.auth-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:.92rem}.auth-screen{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-panel{width:min(440px,100%);padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.auth-panel h1{margin:0 0 12px;font-size:2rem;line-height:1.1}.google-button{min-height:44px;margin-top:22px}.auth-error{margin:16px 0 0;color:#9b1c31;font-weight:700}.auth-note{margin:16px 0 0;color:var(--muted);font-weight:700}.text-button{border:0;background:transparent;color:var(--sea-deep);cursor:pointer;font-weight:700;text-decoration:underline;text-underline-offset:3px}.app-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,420px);gap:24px;align-items:end;padding:22px 0 24px}.app-header h1,.leg-title-row h1{margin:0;font-size:2.7rem;line-height:1}.header-copy{margin:0;color:var(--muted);line-height:1.55}.eyebrow{margin:0 0 8px;color:var(--coral);font-size:.78rem;font-weight:800;text-transform:uppercase}.date-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.date-controls.compact{flex:1}.date-controls p{margin:0;color:var(--muted)}.date-controls label{display:grid;gap:6px;min-width:190px;color:var(--ink);font-weight:800}.date-controls input{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--paper);color:var(--ink)}.screen-panel{margin-top:24px}.detail-nav{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:stretch;margin-bottom:24px}.secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--sea-deep);cursor:pointer;font-weight:800}.trip-list{display:grid;gap:14px}.section-heading h2{margin:0;font-size:1.35rem;line-height:1.2}.route-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.route-card{display:grid;gap:7px;width:100%;min-height:98px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}.route-card.active{border-color:var(--sea);box-shadow:inset 4px 0 0 var(--sea)}.route-date{color:var(--gold);font-weight:800}.route-cities{font-weight:800;line-height:1.25}.route-meta{color:var(--muted);font-size:.92rem}.leg-detail{display:grid;gap:22px}.photo-wrap{overflow:hidden;border-radius:8px;background:var(--line)}.leg-photo{display:block;width:100%;aspect-ratio:16 / 9;max-height:420px;object-fit:cover}.leg-title-row{display:flex;align-items:start;justify-content:space-between;gap:18px}.route-line{margin:12px 0 0;color:var(--muted);font-size:1.05rem;font-weight:700}.primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:120px;padding:0 16px;border-radius:8px;background:var(--sea);color:#fff;font-weight:800;text-decoration:none}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{display:grid;gap:7px;min-height:116px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.metric span,.metric small{color:var(--muted)}.metric strong{align-self:center;color:var(--ink);font-size:1.18rem;line-height:1.15}.detail-section{display:grid;gap:14px;padding-top:24px;border-top:1px solid var(--line)}.summary-text{margin:0;color:var(--muted);line-height:1.6}.plain-list{display:grid;gap:8px;margin:0;padding-left:20px;color:var(--ink)}.plain-list li::marker{color:var(--coral)}.info-list,.meal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-item{display:grid;gap:8px;min-height:148px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-decoration:none}.info-item:focus,.info-item:hover,.primary-link:focus,.primary-link:hover,.secondary-link:focus,.secondary-link:hover,.route-card:focus,.route-card:hover{outline:3px solid rgba(217,79,97,.25);outline-offset:2px}.item-kicker{color:var(--sea-deep);font-size:.78rem;font-weight:900;text-transform:uppercase}.info-item strong{color:var(--ink);line-height:1.25}.info-item span:last-child{color:var(--muted);line-height:1.45}.empty-state{min-height:360px;padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.loading-state{display:grid;min-height:360px;place-content:center;padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:center}.loading-state h1{margin:0 0 12px;font-size:2rem;line-height:1.1}.loading-state p{margin:0;color:var(--muted)}.source-footer{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:22px;margin-top:34px;padding:22px 0 0;border-top:1px solid var(--line)}.source-footer p{margin:0;color:var(--muted);line-height:1.55}.source-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.source-links a{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffffb8;text-decoration:none}.source-links span{color:var(--muted);font-size:.9rem;line-height:1.4}code{padding:.1em .35em;border-radius:6px;background:#edf4f1}@media(max-width:920px){.app-header,.source-footer{grid-template-columns:1fr}.route-list,.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.app-shell{width:min(100% - 20px,1180px);padding-top:16px}.app-header{gap:12px}.app-header h1,.leg-title-row h1{font-size:2.1rem}.date-controls,.leg-title-row,.detail-nav{align-items:stretch;display:flex;flex-direction:column}.date-controls label{min-width:0}.route-list,.info-list,.meal-list,.metrics-grid,.source-links{grid-template-columns:1fr}.auth-strip{align-items:flex-start;flex-direction:column}}
