:root{--bg:#0b1114;--panel:#121b20;--line:#2b373c;--text:#f4f5f3;--muted:#aabac2;--orange:#ff6b0a;--soft:#ffd2ad}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:12px;padding:11px 16px}button:hover{border-color:var(--orange);background:#20282a}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffad73;outline-offset:3px}button.primary{background:var(--orange);color:#17100a;border:0;font-weight:750}button.small{padding:7px 11px;font-size:14px}a{color:var(--soft)}.top{max-width:1440px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:18px 38px;border-bottom:1px solid var(--line);gap:15px}.top>a{width:300px;display:block}.top img{width:100%;display:block;max-height:92px;object-fit:contain}.top-actions{display:flex;align-items:center;gap:20px}.badge,.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--orange)}.badge{border:1px solid #71411d;border-radius:20px;padding:6px 12px}.layout{display:grid;grid-template-columns:280px minmax(0,1fr);max-width:1440px;margin:auto;min-height:85vh}aside{padding:44px 30px 30px 38px;border-right:1px solid var(--line)}aside h1{font-size:38px;line-height:1.1;letter-spacing:-1.5px}aside>p:not(.eyebrow){color:var(--muted);font-size:14px}#sideNav{display:grid;gap:6px;margin-top:30px}#sideNav button{background:transparent;text-align:left;border-color:transparent}#sideNav button.active{background:#2a211b;color:#ffb27c;border-color:#614024}.aside-bottom{margin-top:40px;display:grid;gap:8px}.aside-bottom p{font-size:12px;color:var(--muted)}main{padding:30px 38px 60px;min-width:0}.greeting{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.greeting h2{margin:0;font-size:25px;line-height:1.2}.greeting strong{color:var(--orange)}.weather{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.weather b{font-size:24px;color:var(--text)}.weather .sun{font-size:36px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:15px}.card{position:relative;border:1px solid var(--line);border-radius:19px;overflow:hidden;padding:22px;text-align:left;background:linear-gradient(130deg,#17242a,#0e1519);color:var(--text);min-width:0}.card h3{font-size:24px;margin:0;letter-spacing:-.5px}.card p{margin:2px 0 0;color:#d5e1e7}.photo{min-height:230px;display:flex;align-items:flex-end;background-size:cover;background-position:center}.photo:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 10%,#071014ee)}.photo>div{position:relative;width:100%}.hero{grid-column:1/-1;min-height:310px}.hero h3{font-size:34px}.arrow{position:absolute;right:0;bottom:12px;font-size:28px}.icon{font-size:28px;color:var(--orange)}.compact{display:flex;gap:18px;align-items:center;min-height:110px}.compact h3{font-size:19px}.compact p{font-size:14px}.stats{grid-column:1/-1}.statsline{display:flex;gap:50px;margin-top:12px}.statsline b{font-size:28px}.statsline small{display:block;color:var(--muted)}.start{text-align:center;margin-top:20px}.start button{min-width:200px;border-radius:40px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.pagehead h2{font-size:32px;margin:0;letter-spacing:-1px}.sub{color:var(--muted);margin:5px 0 20px}.notice{background:#182a2b;color:#b9d5d5;border:1px solid #2a4549;border-radius:12px;padding:12px 16px;font-size:13px;margin:14px 0}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:6px;margin-bottom:14px;font-size:14px;color:var(--muted)}input,select{background:#0c1418;color:white;padding:12px;border:1px solid #40515a;border-radius:9px;width:100%}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabs button.active{color:var(--soft);border-color:var(--orange);background:#36251b}.map{border-radius:18px;overflow:hidden;border:1px solid #40544d;background:#d6dfcd;position:relative}.map svg{display:block;width:100%;height:auto;max-height:420px}.mapLabel{position:absolute;left:12px;top:12px;background:#10201ee8;border-radius:8px;padding:5px 10px;font-size:12px;color:#d9e8de}.map-footer{font-size:12px;color:var(--muted);padding-top:6px}.metrics{display:flex;gap:30px;padding:18px 0}.metrics b{font-size:23px}.metrics small{display:block;color:var(--muted);font-size:12px}.list{display:grid;gap:10px}.listitem{padding:15px;border:1px solid var(--line);border-radius:12px;background:#121c21;display:flex;justify-content:space-between;align-items:center;gap:12px}.listitem p{margin:2px 0;color:var(--muted);font-size:13px}.pill{font-size:12px;border-radius:20px;padding:4px 10px;background:#233d30;color:#b1e7c4}.muted{color:var(--muted)}.card img.item-photo{width:100%;height:200px;object-fit:cover;border-radius:10px;margin-bottom:12px}dialog{background:#142027;color:white;border:1px solid #56666c;border-radius:22px;padding:30px;max-width:520px;width:calc(100% - 30px)}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.close{float:right;font-size:24px;padding:0 10px}.danger{color:#ffc1b6;border-color:#8d4b40}#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#f4e4d7;color:#1a211e;padding:12px 22px;border-radius:12px;z-index:10;display:none;max-width:90%;box-shadow:0 5px 40px #0008}#bottomNav{display:none}.step{font-size:12px;color:var(--orange);font-weight:700;letter-spacing:2px}.chart{display:flex;align-items:flex-end;gap:12px;height:150px;margin:30px 0}.bar{background:linear-gradient(#ffab65,#f16b13);flex:1;border-radius:8px 8px 0 0;min-width:20px}.bar span{display:block;text-align:center;color:#141c1b;font-size:12px;padding-top:5px}.details{border-top:1px solid var(--line);margin-top:15px;padding-top:15px}.details summary{cursor:pointer;color:var(--soft)}.tour-day{border-left:3px solid var(--orange);padding:8px 20px;margin:20px 0}.tour-day h3{margin:0}.tour-day p{color:var(--muted);margin:8px 0}.check{display:flex;align-items:center;gap:12px;padding:12px 0}.check input{width:20px;height:20px;accent-color:var(--orange)}@media(min-width:1150px){.home{max-width:900px;margin:auto}.cards .photo:not(.hero){min-height:260px}}@media(max-width:900px){.layout{grid-template-columns:210px 1fr}aside{padding:28px 20px}aside h1{font-size:28px}main{padding:25px 22px}.top{padding:14px 22px}.hero{min-height:260px}.grid{grid-template-columns:1fr}}@media(max-width:650px){.layout{display:block}aside{display:none}.top{padding:12px 16px 4px;border:0}.top>a{width:235px}.top img{max-height:73px}.top-actions{gap:0}.top-actions .badge{display:none}#guide{font-size:12px;padding:8px}.greeting{margin-bottom:16px}.greeting h2{font-size:23px}.weather b{font-size:22px}.weather .sun{font-size:27px}main{padding:12px 15px 110px}.cards{gap:11px}.card{padding:15px;border-radius:16px}.card h3{font-size:20px}.card p{font-size:13px}.photo{min-height:185px}.hero{min-height:235px}.hero h3{font-size:28px}.compact{gap:10px;min-height:95px}.compact h3{font-size:16px}.compact p{font-size:12px}.compact .icon{font-size:25px}.statsline{gap:35px}.statsline b{font-size:23px}.statsline small{font-size:12px}#bottomNav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:9px 5px max(10px,env(safe-area-inset-bottom));background:#0a1115f5;border-top:1px solid var(--line);z-index:5}#bottomNav button{font-size:11px;padding:4px 6px;background:none;border:0;color:var(--muted)}#bottomNav button span{font-size:21px;display:block}#bottomNav button.active{color:var(--orange)}.pagehead h2{font-size:27px}.pagehead{align-items:flex-start}.metrics{gap:25px}.metrics b{font-size:21px}.listitem{padding:12px}.map svg{min-height:270px}.badge{font-size:9px}.row button{flex-grow:1}}

.plan-menu .card{width:100%;min-height:115px}.plan-menu .compact>div{flex:1}.menu-chevron{font-size:28px;color:var(--soft)}.plan-menu .compact h3{font-size:22px}.plan-menu .compact p{font-size:15px}@media(max-width:650px){.plan-menu .compact h3{font-size:19px}.plan-menu .compact p{font-size:14px}}
/* Rich, local-only sample collection */
.section-gap{margin-top:24px}.section-label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 14px}.section-label>span{font-size:11px;letter-spacing:1.5px;color:var(--muted)}.home-more{margin-top:30px}.mini-feature{min-height:155px}.mini-feature h3{margin-top:12px}.feature-grid,.bike-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.feature-grid .card h3{margin:16px 0 8px}.feature-grid .card{min-height:220px}.text-link{display:block;margin-top:18px;color:var(--soft);font-size:14px}.image-card{padding:0}.card-body{padding:20px}.card-body h3{font-size:21px;margin:6px 0}.card-body .pill{display:inline-block;margin-top:12px}.bike-picture{height:245px;background-size:300% 100%;background-repeat:no-repeat;background-color:#21302f}.bike-picture.large{height:380px;max-width:580px;border-radius:18px;background-size:300% 100%}.kit-picture{height:220px;background-image:url('assets/kit-sheet.jpg');background-size:300% 200%;background-repeat:no-repeat;background-color:#243130}.kit-large{height:350px;border-radius:18px}.stay-picture{background-position:100% 100%;height:180px;border-radius:10px;margin-bottom:16px}.sample-caption{color:var(--muted);font-size:12px;margin:20px 0}dl{margin:20px 0}dt{color:var(--muted);font-size:13px;margin-top:14px}dd{margin:2px 0}.tour-banner{min-height:250px;border-radius:20px;overflow:hidden;background:linear-gradient(0deg,#081214ef,#08121420),url('assets/plan-road.jpg') center/cover;display:flex;align-items:flex-end;padding:28px}.tour-banner h3{font-size:30px;margin:5px 0}.tour-banner p{color:#dbe4e8}.community-banner{background-image:linear-gradient(0deg,#081214ef,#08121420),url('assets/group-riding.jpg')}.day-card{display:flex;gap:22px;align-items:center}.day-number{font-size:38px;font-weight:800;color:var(--orange)}.day-card small{color:var(--muted)}.packing-row{display:grid;grid-template-columns:minmax(150px,1fr) 115px 100px 110px;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:8px 0}.packing-row small{display:block;color:var(--muted);font-size:12px}.packing-row select{padding:8px;font-size:13px}.ride-row{display:flex;gap:20px;align-items:center}.ride-row img{width:130px;height:105px;object-fit:cover;border-radius:10px}.wide-photo{width:100%;max-height:330px;object-fit:cover;border-radius:18px}.receipt{background:#fff9ee;color:#273034;padding:22px;border-radius:10px}.recording-card .metrics{justify-content:space-around;padding:30px 0}.recording-card{text-align:center}.recording-card button{min-width:200px}button:disabled{opacity:.35;cursor:default}.home .photo[data-page=garage]{background-size:300% 100%;background-position:0% center}@media(max-width:1100px){.packing-row{grid-template-columns:minmax(140px,1fr) 100px}.packing-row .check{grid-column:1/-1}.bike-picture{height:210px}}@media(max-width:650px){.feature-grid,.bike-grid{grid-template-columns:1fr 1fr;gap:12px}.bike-picture{height:170px}.card-body{padding:12px}.card-body h3{font-size:17px}.card-body p{font-size:12px}.kit-picture{height:155px}.kit-large{height:300px}.feature-grid{grid-template-columns:1fr}.feature-grid .card{min-height:0}.tour-banner{padding:20px;min-height:230px}.tour-banner h3{font-size:26px}.day-card{gap:14px}.day-number{font-size:28px}.day-card h3{font-size:19px}.ride-row{gap:12px}.ride-row img{width:82px;height:90px}.ride-row h3{font-size:18px}.metrics{flex-wrap:wrap}.bike-picture.large{height:310px}.section-label{flex-wrap:wrap}.packing-row{grid-template-columns:1fr 1fr}.recording-card .metrics{gap:15px}.recording-card .metrics b{font-size:22px}}
.bike-picture,.kit-picture{height:auto;aspect-ratio:1;background-size:300% auto}.bike-picture.large{height:auto;aspect-ratio:1;max-width:520px}.kit-picture{background-size:300% 200%}.kit-large{height:auto;aspect-ratio:1}.stay-picture{height:auto;aspect-ratio:1.5}.home .photo[data-page=garage]{background-size:300% auto;background-position:0% center}
dialog.map-dialog{max-width:1100px;width:calc(100% - 24px)}dialog.map-dialog .map svg{max-height:65vh}
