.planner-main{width:min(calc(100% - 32px),1360px);margin:28px auto 70px}.planner-hero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(30px,5vw,62px);border:1px solid var(--line);border-radius:32px;background:radial-gradient(circle at 10% 12%,rgba(139,82,212,.11),transparent 27%),radial-gradient(circle at 90% 18%,rgba(35,138,213,.16),transparent 30%),linear-gradient(180deg,#fff,#eaf4ff)}.planner-hero:after{content:"";position:absolute;inset:0;background:url('/assets/ridingwiththetism-logo-transparent.png?v=6') right clamp(16px,4vw,50px) center/min(36vw,340px) no-repeat;opacity:.055;pointer-events:none;z-index:0}.planner-hero>*{position:relative;z-index:1}.planner-hero h1{max-width:900px;margin:6px 0 14px;font:900 clamp(44px,7vw,82px)/.98 "Montserrat",sans-serif;letter-spacing:-.055em;color:var(--navy)}.planner-hero-copy{max-width:850px;margin:0;color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.7}.planner-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}.planner-privacy{display:inline-flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(49,189,120,.25);border-radius:999px;background:rgba(49,189,120,.09);color:var(--text);font-size:13px;font-weight:800}.planner-workspace{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);gap:22px;margin-top:22px}.planner-card{padding:26px;border:1px solid var(--line);border-radius:26px;background:var(--panel);box-shadow:0 18px 56px rgba(8,43,86,.05);min-width:0}.planner-map-card{align-self:start;position:sticky;top:18px}.planner-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.planner-heading h2,.planner-tips h3,.add-block h3,.tism-fam-dialog h2{margin:0;font-family:"Montserrat",sans-serif;letter-spacing:-.03em}.planner-actions{display:flex;gap:8px;flex-wrap:wrap}.planner-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 16px;border:0;border-radius:999px;font:900 13px "Montserrat",sans-serif;cursor:pointer;text-decoration:none}.planner-button.primary{background:linear-gradient(135deg,#31bd78,#278ed8);color:#fff}.planner-button.secondary{background:var(--panel-2);border:1px solid var(--line);color:var(--text)}.planner-button:disabled{opacity:.5;cursor:not-allowed}.planner-main input,.planner-main select,.planner-main textarea,.tism-fam-dialog input,.tism-fam-dialog textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font:inherit;outline:none}.planner-main input:focus,.planner-main select:focus,.planner-main textarea:focus,.tism-fam-dialog input:focus,.tism-fam-dialog textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(35,138,213,.12)}.trip-name-field{display:block;margin-top:18px}.trip-name-field span,.add-label,.custom-stop-form label>span,.tism-fam-dialog label>span{display:block;margin-bottom:6px;font-weight:900}.add-block{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#f9fcff)}.add-block-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.add-block-heading .eyebrow{margin-bottom:3px}.park-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:9px}.stop-type-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stop-type-buttons button{min-height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font:800 14px "Montserrat",sans-serif;cursor:pointer;text-align:left;padding:10px 14px}.stop-type-buttons button:hover,.stop-type-buttons button.active{border-color:#278ed8;background:#eef8ff}.custom-stop-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.custom-stop-form .wide{grid-column:1/-1}.custom-stop-actions{display:flex;gap:8px}.planner-status{min-height:20px;margin:10px 2px 0;color:var(--muted);font-size:13px;font-weight:800}.planner-status.error{color:#a42f28}.planner-status.success{color:#187648}.public-stops{display:grid;gap:10px;margin-top:18px}.public-stop{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:17px;background:#fff}.public-stop-number{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#31bd78,#278ed8);color:#fff;font:900 16px "Montserrat",sans-serif}.public-stop-number.custom-kind{font-size:19px}.public-stop h3{margin:0;font:900 17px "Montserrat",sans-serif}.public-stop-location{margin:3px 0 10px;color:var(--muted);font-size:12px}.public-stop-note{margin:-3px 0 10px;color:var(--muted);font-size:12px;font-style:italic}.public-stop-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px}.public-stop-dates label span{display:block;margin:0 0 4px;font-size:11px;font-weight:900}.public-stop-actions{display:grid;grid-template-columns:38px 38px;gap:6px}.public-stop-actions button{width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);font-weight:900;cursor:pointer}.public-stop-actions .remove{grid-column:1/-1;width:auto;color:#9b2721;background:#fff4f3;padding:0 10px}.public-empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:16px}.park-suggestions{display:grid;gap:8px;margin-top:12px}.park-suggestion{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.park-suggestion strong{display:block}.park-suggestion small{color:var(--muted)}.planner-map-heading p{margin:5px 0 0;color:var(--muted)}.public-trip-map{height:560px;margin-top:16px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#eaf2f8}.planner-map-note{margin:8px 2px 0;color:var(--muted);font-size:12px}.planner-tips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.planner-tips article{padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--panel)}.planner-tips article>span{color:#ff6c17;font:900 13px "Montserrat",sans-serif}.planner-tips h3{margin:7px 0 8px}.planner-tips p{margin:0;color:var(--muted)}.tism-fam-dialog{width:min(calc(100% - 28px),620px);border:0;border-radius:26px;padding:0;box-shadow:0 24px 90px rgba(5,31,65,.25);color:var(--text)}.tism-fam-dialog::backdrop{background:rgba(5,20,40,.48);backdrop-filter:blur(4px)}.tism-fam-dialog form{position:relative;padding:28px}.tism-fam-dialog p{color:var(--muted);line-height:1.6}.tism-fam-dialog label{display:block;margin:14px 0}.dialog-close{position:absolute;right:14px;top:12px;width:42px;height:42px;border:0;border-radius:50%;background:var(--panel-2);font-size:27px;cursor:pointer}.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:1050px){.planner-workspace{grid-template-columns:1fr}.planner-map-card{position:static}.public-trip-map{height:440px}.planner-tips{grid-template-columns:1fr}}
@media(max-width:720px){.planner-main{width:min(calc(100% - 20px),1360px);margin-top:18px}.planner-heading,.add-block-heading{display:grid}.planner-actions{width:100%}.planner-actions .planner-button{flex:1 1 auto}.park-add-row,.custom-stop-form{grid-template-columns:1fr}.custom-stop-form .wide{grid-column:auto}.stop-type-buttons{grid-template-columns:1fr}.public-stop{grid-template-columns:42px minmax(0,1fr)}.public-stop-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.public-stop-actions button,.public-stop-actions .remove{width:100%;grid-column:auto}.public-stop-dates{grid-template-columns:1fr}.planner-card{padding:18px}.public-trip-map{height:340px}.planner-hero{border-radius:24px}}
.planner-community{margin-top:22px;padding:26px;border:1px solid var(--line);border-radius:26px;background:var(--panel);box-shadow:0 18px 56px rgba(8,43,86,.05);scroll-margin-top:24px}.community-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.community-heading h2{margin:0;font:900 clamp(26px,4vw,38px)/1.05 "Montserrat",sans-serif;letter-spacing:-.035em;color:var(--navy)}.community-heading>div>p:last-child{margin:8px 0 0;color:var(--muted)}.community-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.community-trip-card{display:flex;flex-direction:column;min-width:0;padding:20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fff,#f8fbff)}.community-trip-card h3{margin:4px 0 5px;font:900 19px/1.25 "Montserrat",sans-serif;color:var(--navy)}.community-by{margin:0 0 8px;color:var(--muted);font-size:13px;font-weight:800}.community-note{margin:0 0 12px;color:var(--text);line-height:1.55}.community-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.community-chips span{display:inline-flex;max-width:100%;padding:6px 9px;border-radius:999px;background:var(--panel-2);color:var(--text);font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.community-trip-card .planner-button{align-self:flex-start;margin-top:auto}
@media(max-width:1050px){.community-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.planner-community{padding:18px}.community-heading{display:grid}.community-grid{grid-template-columns:1fr}.community-heading .planner-button{justify-self:start}}

/* Trip Planner v6: route optimization */
.route-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(49,189,120,.07),rgba(39,142,216,.07))}
.route-tools h3{margin:0;font-family:"Montserrat",sans-serif;letter-spacing:-.02em}.route-tools .eyebrow{margin-bottom:3px}.route-tools p:not(.eyebrow){margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
@media(max-width:720px){.route-tools{display:grid}.route-tools .planner-button{justify-self:start}}


/* Trip Planner v7: Home city + fixed round-trip routing */
.home-add-block{background:linear-gradient(135deg,rgba(49,189,120,.06),rgba(39,142,216,.06))}
.home-help{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.55}
.home-add-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.home-add-actions .planner-button{flex:0 0 auto}
@media(max-width:720px){.home-add-actions{display:grid}.home-add-actions .planner-button{width:100%}}
