:root{--teal:#335c67;--cream:#fff3b0;--gold:#e09f3e;--red:#9e2a2b;--wine:#540b0e;--paper:#fffdf5;--line:#deded1;--ink:#23383b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.45 'Times New Roman',serif}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--teal)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button{color:inherit}header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:var(--teal);font:27px/1 'tanker',Impact,sans-serif;letter-spacing:.5px}.brand-star{font:53px/1 Georgia;color:var(--red)}.brand small{display:block;font:9px/1.5 Arial,sans-serif;letter-spacing:2.1px;margin-top:10px}nav{display:flex;gap:35px;align-items:center;font-size:15px}nav a{text-decoration:none}nav span{padding-left:15px}nav button,footer button{background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:5px}.intro{padding:32px 5% 30px;display:flex;align-items:center;justify-content:space-between;background:var(--cream);border-bottom:1px solid #d9c886}.eyebrow{font:10px/1.5 Arial,sans-serif;font-weight:bold;letter-spacing:2px;margin:0 0 8px;color:var(--red)}h1{font:clamp(44px,4.8vw,72px)/1.06 'tanker',Impact,sans-serif;font-weight:400;letter-spacing:.3px;margin:0;color:var(--teal)}.intro p:last-child{margin:13px 0 0;font-size:18px}.mobile-break{display:none}.intro-stamp{border:1px solid var(--red);border-radius:50%;width:120px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(12deg);color:var(--red);margin-right:3%}.intro-stamp span{font:9px Arial;letter-spacing:1.3px}.intro-stamp b{font:49px/1.2 Georgia}main{display:grid;grid-template-columns:370px minmax(0,1fr);height:820px;max-height:calc(100dvh - 28px);min-height:640px;border-bottom:1px solid var(--line)}.sidebar{overflow-y:auto;background:var(--paper);z-index:2;border-right:1px solid #bfc8bf;scrollbar-width:thin}.tabs{display:grid;grid-template-columns:repeat(3,1fr);position:sticky;top:0;z-index:3;background:var(--paper);border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:18px 6px 14px;font-size:15px;border-bottom:3px solid transparent}.tabs button[aria-selected=true]{color:var(--red);border-bottom-color:var(--red);font-weight:bold}.search-section{padding:23px 24px 19px}h2{font:25px/1.18 'erode',Georgia,serif;font-weight:400;margin:0 0 18px;letter-spacing:-.4px}label{display:block;font-size:14px;margin:10px 0 7px}input:not([type=checkbox]),select{width:100%;border:1px solid #b7bfb8;background:#fff;padding:11px 12px;color:var(--ink);border-radius:3px}input::placeholder{color:#70796e;font-size:15px}.search-wrap{position:relative}.search-wrap span{position:absolute;top:4px;left:12px;font:30px Georgia}.search-wrap input{padding-left:38px}.hint{font-size:13px;line-height:1.4;color:#65716b;margin:10px 0 0}.primary{background:var(--teal);color:white;border:0;border-radius:3px;padding:12px;width:100%;margin-top:15px;text-align:left}.primary span{float:right}.primary:hover{background:var(--wine)}.secondary-actions{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.secondary-actions button,.text-button{border:0;background:none;color:var(--teal);padding:3px 0;font-size:14px;text-decoration:underline}#message{font-size:14px;margin:9px 0 0;color:var(--red)}#message:empty{display:none}.filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 24px}.filters summary{font:10px Arial;letter-spacing:1.5px;font-weight:bold;cursor:pointer;list-style:none}.filters summary span{float:right}.filters #category-filters{display:grid;grid-template-columns:1fr 1fr;column-gap:6px;margin-top:10px}.filter-label,.trail-toggle{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;margin:9px 0}.filter-label input,.trail-toggle input{accent-color:var(--teal);margin:0;width:14px;height:14px}.key{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--color)}.line-key{width:16px;border-top:2px dashed var(--red)}.trail-toggle{border-top:1px solid var(--line);padding-top:13px;margin-top:13px}.filters select{font-size:13px;padding:8px;margin-top:4px}.results-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 6px}.results-heading h2{font-size:22px;margin:0}.results-heading span{font:11px Arial;color:#68776c}.result{display:block;text-align:left;width:100%;padding:17px 24px;background:none;border:0;border-bottom:1px solid var(--line)}.result:hover,.result:focus-visible{background:#fff3b066}.result-category{display:flex;align-items:center;gap:6px;font:9px Arial;letter-spacing:1.1px;text-transform:uppercase;color:#65716b;margin-bottom:5px}.result-name{display:block;font:21px/1.2 'erode',Georgia}.result-meta{display:block;font-size:13px;color:#667167;margin-top:5px}.result-arrow{float:right;color:var(--red)}.empty{padding:15px 24px;color:#65716b}.sidebar-footer{padding:24px;font-style:italic;font-size:14px;color:#687568}.sidebar-footer span{float:right;color:var(--red)}#more{display:block;margin:14px auto;background:none;border:1px solid var(--teal);padding:8px 20px;border-radius:3px}.map-panel{position:relative;background:#e7e5d8;min-width:0}#map{width:100%;height:100%;z-index:1}.map-caption,.map-reset,.map-note{position:absolute;z-index:500;box-shadow:0 2px 12px #132d2920;background:var(--paper)}.map-caption{left:20px;top:20px;padding:12px 15px;font:10px Arial;letter-spacing:1px;display:flex;align-items:center;gap:8px;max-width:70%}.live-dot{width:6px;height:6px;background:var(--red);border-radius:100%}.map-reset{right:16px;bottom:45px;padding:10px 14px;border:1px solid #c9cdbc;font-size:14px;border-radius:3px}.map-note{bottom:30px;left:20px;padding:9px 14px;font-style:italic;font-size:14px}.leaflet-control-zoom{margin-top:75px!important;margin-right:16px!important}.leaflet-tile-pane{filter:saturate(.42) sepia(.12)}.leaflet-popup-content-wrapper{border-radius:4px;background:var(--paper)}.leaflet-popup-content{margin:22px;font:16px/1.45 'Times New Roman',serif;max-height:380px;overflow:auto}.leaflet-popup-content h2{font-size:27px;margin:9px 0}.leaflet-popup-content p{margin:10px 0}.popup-links{display:flex;flex-wrap:wrap;gap:10px;font-size:14px}.popup-category{font:10px Arial;letter-spacing:1.3px;color:var(--red)}.detail-text{max-height:210px;overflow:auto;border-top:1px solid var(--line);padding-top:12px}.detail-label{font:10px Arial;text-transform:uppercase;letter-spacing:1px}.pin{background:var(--color);border:2px solid white;border-radius:50% 50% 50% 0;transform:rotate(-45deg);width:25px;height:25px;box-shadow:0 2px 4px #0005;display:grid;place-items:center}.pin span{transform:rotate(45deg);color:white;font:12px Arial}.cluster-icon{background:var(--teal);color:var(--cream);border:4px solid #fffbdfc9;border-radius:100%;display:grid;place-items:center;font:12px Arial;box-shadow:0 1px 5px #0003}.leaflet-tooltip{font-family:'Times New Roman',serif}.leaflet-control-attribution{font-size:10px!important}footer{padding:23px 4%;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px}footer>span{font:9px Arial;letter-spacing:1.3px}footer p{margin:0}dialog{border:0;border-top:5px solid var(--red);max-width:660px;width:calc(100% - 32px);padding:35px;background:var(--paper);color:var(--ink);max-height:85dvh;overflow:auto;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#193c4288}dialog h2{font-size:34px}dialog h3{font:24px 'erode',Georgia;margin-bottom:5px}.close{float:right;background:none;border:0;font-size:28px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip:focus{position:fixed;top:0;z-index:9999;padding:10px;background:white}.noscript{position:fixed;bottom:0;z-index:9999;background:var(--cream);padding:20px;width:100%}[hidden]{display:none!important}
@media(min-width:1500px){main{grid-template-columns:410px 1fr}.intro{padding-top:40px;padding-bottom:36px}}@media(max-width:800px){header{height:76px;padding:0 20px}.brand{font-size:22px;gap:10px}.brand small{font-size:7px;letter-spacing:1.5px}.brand-star{font-size:40px}nav a{display:none}nav{font-size:13px}.intro{padding:25px 24px}.intro-stamp{width:85px;height:85px;margin:0}.intro-stamp span{font-size:6px}.intro-stamp b{font-size:37px}.intro p:last-child{font-size:16px;max-width:350px}h1{font-size:47px}main{grid-template-columns:320px 1fr}.search-section,.filters{padding-left:18px;padding-right:18px}.map-note{display:none}.map-caption{max-width:80%;font-size:8px;left:10px}.map-reset span{display:none}footer{flex-wrap:wrap}}@media(max-width:600px){header{padding:0 16px}.brand{font-size:21px}nav{font-size:12px}.intro-stamp{display:none}.intro{padding:24px 20px}.intro h1{font-size:48px}.intro p:last-child{max-width:none}.mobile-break{display:block}main{display:flex;flex-direction:column;height:auto;max-height:none;min-height:0}.map-panel{order:0;height:53dvh;min-height:330px;max-height:520px}.sidebar{order:1;max-height:none;overflow:visible;border:0}.map-caption{top:14px}.tabs{top:0}.search-section{padding:22px}.filters{padding:18px 22px}#category-filters{grid-template-columns:repeat(2,1fr)!important}.results-heading{padding-top:23px}.intro .eyebrow{font-size:9px}footer{padding:24px 20px;gap:13px}.leaflet-popup-content{max-height:240px;width:240px!important;font-size:15px}.leaflet-popup-content h2{font-size:24px}dialog{padding:25px}}

/* Static, weathered Texas badge; the lettering is baked into the image. */
.intro-stamp{display:block;object-fit:contain;width:160px;height:160px;flex-shrink:0;border:0;border-radius:0;transform:rotate(7deg);margin-right:2%}
@media(max-width:800px){.intro-stamp{width:115px;height:115px;margin-right:0}}
@media(max-width:600px){.intro-stamp{display:none}}

.brand-star{display:block;width:48px;height:48px;flex-shrink:0;object-fit:contain}
@media(max-width:800px){.brand-star{width:38px;height:38px}}

/* Compact masthead and map-first search drawer. */
header{height:62px;padding:0 3%}.brand{font-size:23px;gap:10px}.brand small{font-size:8px;margin-top:6px;letter-spacing:1.6px}.brand-star{width:37px;height:37px}
.intro{height:112px;padding:12px 4%;gap:20px}.intro h1{font-size:42px}.intro .eyebrow{font-size:9px;margin-bottom:4px}.intro p:last-child{font-size:15px;margin-top:7px}.intro-stamp{width:88px;height:88px;margin-right:1%}
main{position:relative;display:grid;grid-template-columns:350px minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);height:calc(100dvh - 174px);min-height:480px;max-height:none}
.map-toolbar{grid-column:1/-1;grid-row:1;display:flex;justify-content:space-between;align-items:center;padding:0 16px;gap:12px;border-bottom:1px solid var(--line);background:var(--paper);z-index:700}
#drawer-toggle{background:none;border:0;color:var(--teal);padding:8px 0;font-size:15px;display:flex;gap:8px;align-items:center}
.cluster-toggle{display:flex;gap:8px;align-items:center;margin:0;font-size:14px;cursor:pointer}.cluster-toggle input{width:16px;height:16px;accent-color:var(--teal)}
.sidebar{grid-column:1;grid-row:2;min-height:0;overflow-y:auto}.map-panel{grid-column:2;grid-row:2;height:100%;min-height:0;max-height:none}
main.drawer-closed{grid-template-columns:0 minmax(0,1fr)}.tabs button{padding:13px 5px 10px}.search-section{padding:18px 22px}.map-caption{top:14px}.leaflet-control-zoom{margin-top:65px!important}
@media(max-width:800px){header{height:58px}.intro{height:106px;padding:10px 22px}.intro h1{font-size:36px}.intro p:last-child{font-size:14px;max-width:none}.intro-stamp{width:76px;height:76px}.brand{font-size:21px}main{height:calc(100dvh - 164px);grid-template-columns:310px minmax(0,1fr)}}
@media(max-width:700px){header{height:56px;padding:0 14px}.brand{font-size:20px}.brand small{font-size:6.5px}.brand-star{width:31px;height:31px}nav{font-size:12px}.intro{height:96px;padding:10px 16px}.intro h1{font-size:32px}.intro .eyebrow{display:none}.intro p:last-child{font-size:13px;line-height:1.3;margin-top:5px}.mobile-break{display:none}.intro-stamp{display:none}main,main.drawer-closed{display:grid;grid-template-columns:0 minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);height:calc(100dvh - 152px);min-height:420px}.map-panel{order:initial;height:100%;min-height:0;max-height:none}.sidebar{position:absolute;top:0;bottom:0;left:0;width:min(350px,92%);max-height:none;overflow:auto;z-index:650;box-shadow:5px 0 18px #23383b33;border-right:1px solid var(--line)}.map-toolbar{padding:0 12px;gap:6px}#drawer-toggle{font-size:13px}.cluster-toggle{font-size:12px;gap:5px}.map-caption{font-size:8px;max-width:75%}.tabs{position:sticky;top:0}.map-reset span{display:inline}}

/* Accessible native checkbox styled as a red/off, green/on slider. */
.cluster-toggle{min-height:44px}
.cluster-toggle input{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;flex-shrink:0;width:42px;height:24px;margin:0;border:1px solid #842223;border-radius:999px;background:#9E2A2B;cursor:pointer;transition:background-color .16s,border-color .16s}
.cluster-toggle input::before{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .16s}
.cluster-toggle input:checked{background:#28783E;border-color:#1F6031}
.cluster-toggle input:checked::before{transform:translateX(18px)}
.cluster-toggle input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.cluster-toggle input,.cluster-toggle input::before{transition:none}}
@media(forced-colors:active){.cluster-toggle input{forced-color-adjust:none;background:CanvasText;border-color:CanvasText}.cluster-toggle input::before{background:Canvas}.cluster-toggle input:checked{background:Highlight;border-color:Highlight}}

.editable-route{cursor:grab;touch-action:none}.editable-route:active{cursor:grabbing}.route-stop{display:grid;place-items:center;border:2px solid #540B0E;border-radius:50%;background:#FFF3B0;color:#540B0E;font:bold 15px Arial;box-shadow:0 1px 4px #0005;cursor:grab}#route-stops{padding-left:22px}#route-stops li{margin:8px 0}#route-stops button{margin-left:12px;background:white;border:1px solid #9E2A2B;color:#9E2A2B;border-radius:4px;padding:3px 8px}
