/* Getting around Cape Ann (/getting-around/). Page code: static/transit.js. Data: static/transit-data.js (pipeline/transit/refresh.py). Every rule is scoped to .cat. Docs: docs/TRANSIT.md */
.cat{--bg:#FBF9F5; --surface:#FFFFFF; --sunk:#F4EFE6; --ink:#1C2430; --muted:#5A6672; --line:#DDD6C9; --water:#D7E7EA; --land:#FFFFFF; --border:#E2DBCE;
  --accent:#1F6F67; --accent-ink:#FFFFFF; --navy:#15395B; --teal-soft:#E3F1EF; --train:#80276C; --train-ink:#FFFFFF;
  --good:#1F6F67; --warn:#8A5A00; --warn-bg:#FFF4DB; --focus:#2A8C82;
  --display:"Lora",Georgia,"Times New Roman",serif;
  --body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r:6px;}
.cat [hidden]{display:none!important}
.cat,.cat *{box-sizing:border-box}
.cat{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;margin:0;padding-inline:16px;padding-block:0 48px}
.cat .wrap{max-width:1088px;margin:0 auto}
.cat h1,.cat h2,.cat h3{font-family:var(--display);font-weight:700;letter-spacing:0;line-height:1.15;color:var(--navy);text-wrap:balance;margin:0}
.cat button,.cat input,.cat select{font:inherit;color:inherit}
.cat :focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.cat a{color:var(--accent)}
.cat .tn{font-variant-numeric:tabular-nums}
.cat header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:4px 24px;padding-block:6px 10px}
.cat header.top h1{font-size:clamp(1.9rem,5vw,2.6rem)}
.cat header.top h1 span{color:var(--accent)}
.cat header.top p{margin:4px 0 0;color:var(--muted);max-width:52ch}
.cat .clock{font-size:1rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.cat nav.tabs{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);display:flex;flex-wrap:wrap;gap:4px;padding-block:8px;border-bottom:3px double var(--line);margin-bottom:20px}
.cat nav.tabs button{flex:0 0 auto;border:0;background:transparent;padding:8px 12px;border-radius:0;font-weight:600;font-size:15px;cursor:pointer;color:var(--ink)}
.cat nav.tabs button[aria-selected="true"]{color:var(--accent);box-shadow:inset 0 -3px 0 var(--focus)}
.cat nav.tabs .count{display:inline-block;min-width:1.4em;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--train);color:var(--train-ink);font-size:.8rem}
.cat .grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
@media (max-width:860px){.cat .grid{grid-template-columns:minmax(0,1fr)}}
.cat .panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.cat .label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}
.cat .od{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.cat .od-fields{display:grid;gap:10px;min-width:0}
.cat .swap{width:44px;height:44px;color:var(--navy);border-radius:50%;border:1px solid var(--line);background:var(--sunk);cursor:pointer;font-size:1.2rem;font-weight:800}
.cat .combo{position:relative}
.cat .combo input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-weight:600}
.cat .combo .tag{display:none;position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--muted)}
.cat .combo ul{position:absolute;z-index:6;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:8px;max-height:300px;overflow:auto;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.cat .combo li{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:6px;cursor:pointer}
.cat .combo li[aria-selected="true"],.cat .combo li:hover{background:var(--sunk)}
.cat .kinds{font-size:.72rem;font-weight:700;color:var(--muted);white-space:nowrap}
.cat .when{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:14px}
.cat .chips{display:flex;flex-wrap:wrap;gap:6px}
.cat .chip{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:6px 12px;cursor:pointer;font-weight:600;font-size:.9rem}
.cat .chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.cat .field input,.cat .field select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.cat .quick{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.cat .results{display:grid;gap:12px;margin-top:18px}
.cat .res-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px}
.cat .res-head h2{font-size:1.6rem}
.cat .res-head p{margin:0;color:var(--muted);font-size:.92rem}
.cat .trip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:10px}
.cat .trip.next{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}
.cat .trip-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px}
.cat .times{font-size:1.6rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--navy)}
.cat .times .arrow{color:var(--muted);font-weight:500;margin:0 6px}
.cat .meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;color:var(--muted);font-size:.92rem}
.cat .soon{font-weight:800;color:var(--good)}
.cat .badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:5px;font-weight:800;font-size:.82rem;letter-spacing:.02em;white-space:nowrap}
.cat .legs{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:.95rem}
.cat .legs li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}
.cat .xfer{color:var(--warn);font-weight:700;font-size:.9rem}
.cat .flag{display:inline-block;background:var(--warn-bg);color:var(--warn);border-radius:5px;padding:1px 8px;font-size:.8rem;font-weight:800}
.cat .fare{font-weight:700}
.cat .actions{display:flex;flex-wrap:wrap;gap:8px}
.cat .btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:8px 14px;font-weight:700;cursor:pointer;text-decoration:none;color:var(--ink);font-size:.92rem}
.cat .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.cat .btn.buy{background:var(--train);border-color:var(--train);color:var(--train-ink)}
.cat .drawer{background:var(--sunk);border-radius:8px;padding:12px 14px;display:grid;gap:10px}
.cat .drawer p{margin:0;font-size:.92rem}
.cat .drawer .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cat .empty{padding:22px;text-align:left;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:var(--r)}
.cat .board{background:var(--navy);color:#fff;border-radius:var(--r);padding:16px;position:sticky;top:calc(env(safe-area-inset-top,0px) + 70px)}
.cat .board h2{font-size:1.3rem;color:#fff}
.cat .board .sub{font-size:.82rem;opacity:.75;margin:2px 0 12px}
.cat .board table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.cat .board th{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;text-align:left;opacity:.7;font-weight:700;padding:4px 0}
.cat .board td{padding:8px 4px 8px 0;border-top:1px solid rgba(255,255,255,.2);vertical-align:top}
.cat .board td.st{font-weight:700}
.cat .board .t{font-size:1.1rem;font-weight:800}
.cat .board .in{display:block;font-size:.75rem;opacity:.75}
.cat .board button{all:unset;cursor:pointer}
.cat .board button:focus-visible{outline:2px solid #fff}
.cat .tt-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:14px}
.cat .routes{display:grid;gap:12px;margin-bottom:16px}
.cat .rbtns{display:flex;flex-wrap:wrap;gap:6px}
.cat .routes button.off{opacity:.45}
.cat .routes button b{font-weight:900;margin-right:2px}
.cat .lsub{text-transform:none;letter-spacing:0;font-weight:600;opacity:.8;margin-left:4px}
.cat .map-list .grp{margin:8px 0 2px}
.cat .routes button{border:2px solid transparent;border-radius:6px;padding:5px 10px;font-weight:800;cursor:pointer;font-size:.9rem}
.cat .routes button[aria-pressed="true"]{outline:3px solid var(--ink);outline-offset:1px}
.cat .tt-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.cat table.tt{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;font-size:.92rem;min-width:100%}
.cat table.tt th,.cat table.tt td{padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left}
.cat table.tt thead th{position:sticky;top:0;background:var(--sunk);font-size:.78rem;vertical-align:bottom;white-space:normal;min-width:84px;max-width:120px;line-height:1.2}
.cat table.tt th.first,.cat table.tt td.first{position:sticky;left:0;background:var(--surface);z-index:1;font-weight:700}
.cat table.tt thead th.first{background:var(--sunk);z-index:2}
.cat table.tt tr.past td{color:var(--muted);opacity:.6}
.cat table.tt tr.nextrow td{background:color-mix(in srgb,var(--accent) 14%,var(--surface));font-weight:700}
.cat .tt-title{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin-bottom:6px}
.cat .tt-title h2{font-size:1.7rem}
.cat .note{color:var(--muted);font-size:.9rem;margin:10px 0 0}
.cat .saved{display:grid;gap:12px}
.cat .alert{background:var(--warn-bg);color:var(--warn);border-radius:var(--r);padding:12px 16px;font-weight:700;margin-bottom:14px}
.cat .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.cat .cols h2{font-size:1.6rem;margin-bottom:6px}
.cat .cols p,.cat .cols li{max-width:62ch}
.cat table.fares{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;margin-block:10px}
.cat table.fares th,.cat table.fares td{padding:7px 4px;border-bottom:1px solid var(--line);text-align:left}
.cat table.fares td.n{text-align:right;font-weight:700}
.cat .free{font-family:var(--display);font-size:2.4rem;font-weight:700;color:var(--good);line-height:1}
.cat .other{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.cat .other li{border-top:1px solid var(--line);padding-top:10px}
.cat .other strong{display:block}
.cat .phone{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.cat .phone code{font-family:var(--body);font-weight:800;font-size:1.05rem;user-select:all}
.cat .srcnote{margin-top:32px;padding:14px 16px;background:var(--sunk);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:.9rem;line-height:1.55;max-width:72ch}
.cat .srcnote b{display:block;margin-bottom:4px}
.cat .actions{align-items:center}
@media (max-width:700px){.cat nav.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.cat nav.tabs::-webkit-scrollbar{display:none}
.cat nav.tabs button{scroll-snap-align:start;white-space:nowrap}}
.cat .actions .btn,.cat .actions a.btn{min-height:44px;line-height:1.2;box-sizing:border-box;text-decoration:none;vertical-align:middle}
.cat .srcnote a{color:var(--accent);font-weight:700}
.cat .nw{white-space:nowrap}
.cat .toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;z-index:20}
@media (prefers-reduced-motion:no-preference){.cat .trip{transition:border-color .15s}}
@media (max-width:520px){.cat .od{grid-template-columns:minmax(0,1fr) 40px;gap:8px}
.cat .swap{width:40px;height:40px}
.cat .times{font-size:1.35rem}
.cat nav.tabs button{padding:8px 9px;font-size:14px}}
.cat .finder fieldset{border:0;padding:0;margin:0 0 14px;min-width:0}
.cat .finder legend{font-weight:700;margin-bottom:6px;padding:0}
.cat .finder h3,.cat .svc h3,.cat #pickup h3{font-size:1.35rem}
.cat .opts{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.cat .opts li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.cat .opts li.no{opacity:.7}
.cat .st{font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:5px;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.cat .st.yes{background:color-mix(in srgb,var(--good) 16%,var(--surface));color:var(--good)}
.cat .st.maybe{background:var(--warn-bg);color:var(--warn)}
.cat .st.no{background:var(--sunk);color:var(--muted)}
.cat .opts strong{display:block}
.cat .opts span.why{font-size:.92rem;color:var(--muted)}
.cat .svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-block:16px;align-items:start}
.cat .svc{display:grid;gap:10px}
.cat .svc-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px}
.cat .price{font-weight:800;color:var(--accent)}
.cat .free-tag{color:var(--good)}
.cat .live{display:flex;gap:8px;align-items:center;font-weight:700;padding:8px 10px;border-radius:8px;background:var(--sunk)}
.cat .live .dot{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:0 0 auto}
.cat .live.on{background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--good)}
.cat .live.on .dot{background:var(--good)}
.cat dl.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0;font-size:.95rem}
.cat dl.kv dt{font-weight:800;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding-top:3px}
.cat dl.kv dd{margin:0}
.cat details{border-top:1px solid var(--line);padding-top:8px}
.cat details summary{cursor:pointer;font-weight:700;color:var(--accent)}
.cat details p,.cat details ol{font-size:.95rem;margin:8px 0 0}
.cat ol.steps{padding-left:20px;margin:0;display:grid;gap:6px;font-size:.95rem}
.cat ol.steps input{margin-right:6px;transform:translateY(1px)}
.cat .town-box{background:var(--sunk);border-radius:8px;padding:12px;display:grid;gap:6px;font-size:.95rem}
.cat .town-box p{margin:0}
.cat .small{font-size:.88rem;color:var(--muted);margin:0}
.cat code.sel{font-family:inherit;font-weight:800;user-select:all}
.cat .btn.tiny{padding:2px 8px;font-size:.8rem}
.cat #pickup{margin-top:4px}
.cat .pk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px;margin-top:14px}
.cat .pk{background:var(--sunk);border-radius:8px;padding:10px 12px}
.cat .pk b{display:block;font-size:1.15rem;font-variant-numeric:tabular-nums}
.cat .pk span{font-size:.82rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.cat .script{margin-top:12px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;padding:12px;font-size:.95rem}
.cat .board .t{white-space:nowrap}
.cat .map-top{display:flex;flex-wrap:wrap;gap:12px 20px;margin-bottom:12px}
.cat .map-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
@media (max-width:860px){.cat .map-layout{grid-template-columns:minmax(0,1fr)}}
.cat .map-box{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--water)}
.cat #mapSvg{display:block;width:100%;height:min(620px,70vh);touch-action:none;cursor:grab;user-select:none}
.cat #mapSvg.drag{cursor:grabbing}
.cat #mWater{fill:var(--water)}
.cat #mLand path{fill:var(--land);stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}
.cat .town-lbl text{fill:var(--muted);font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-anchor:middle;pointer-events:none;opacity:.8}
.cat #mRoutes path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer}
.cat #mRoutes path.case{stroke:var(--ink);stroke-opacity:.28;stroke-width:6.5}
.cat #mRoutes path.ln{stroke-width:4}
.cat #mRoutes g.dim{opacity:.16}
.cat #mRoutes g.sel path.ln{stroke-width:7}
.cat #mRoutes g.sel path.case{stroke-width:10;stroke-opacity:.45}
.cat #mStops circle{fill:var(--surface);stroke:var(--ink);stroke-width:1.6;vector-effect:non-scaling-stroke;cursor:pointer}
.cat #mStops circle.trn{fill:var(--train);stroke:var(--surface);stroke-width:2}
.cat #mStops circle.on{fill:var(--accent);stroke:var(--surface);stroke-width:2.5}
.cat #mStops circle:focus-visible{outline:none;stroke:var(--focus);stroke-width:4}
.cat .stop-lbl text{fill:var(--ink);font-weight:700;paint-order:stroke;stroke:var(--land);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.cat .map-ctl{position:absolute;right:10px;top:10px;display:grid;gap:6px}
.cat .map-ctl .btn{width:40px;height:40px;justify-content:center;padding:0;font-size:1.3rem;background:var(--surface)}
.cat .map-hint{position:absolute;left:10px;bottom:8px;margin:0;font-size:.78rem;background:color-mix(in srgb,var(--surface) 88%,transparent);padding:2px 8px;border-radius:5px;color:var(--muted)}
.cat .map-list{display:grid;gap:4px;max-height:420px;overflow:auto}
.cat .map-list button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;padding:6px 8px;cursor:pointer}
.cat .map-list button:hover{background:var(--sunk)}
.cat .map-list button[aria-pressed="true"]{border-color:var(--accent);background:var(--sunk)}
.cat .map-list button.off{opacity:.55}
.cat .map-list .rn{font-weight:700;display:block;line-height:1.25}
.cat .map-list .rs{font-size:.8rem;color:var(--muted)}
.cat .sw{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:24px;border-radius:5px;font-weight:800;font-size:.8rem;padding:0 6px;border:1px solid var(--line)}
.cat .map-info{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:8px}
.cat .map-info h3{font-size:1.25rem}
.cat .map-info p{margin:0;font-size:.93rem}
.cat .deps{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.93rem}
.cat .deps li{display:grid;grid-template-columns:4.6em auto minmax(0,1fr);gap:8px;align-items:center}
.cat .deps b{font-variant-numeric:tabular-nums}
.cat .stoplist{margin:0;padding-left:20px;font-size:.9rem;max-height:200px;overflow:auto}
.cat .stoplist button{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline}
.cat .stoplist button:focus-visible{outline:2px solid var(--focus)}
.cat .map-reset{position:absolute;left:10px;top:10px;background:var(--ink);color:var(--surface);border-color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.18);z-index:2}
.cat #mRouteLbl g.rtag{cursor:pointer}
.cat #mRouteLbl g.rtag rect{stroke:var(--surface);stroke-width:1.5}
.cat #mRouteLbl g.rtag text{font-size:12px;font-weight:800;text-anchor:middle;font-family:var(--body);pointer-events:none}
.cat #mRouteLbl g.rtag.dim{opacity:.25}
.cat .bchips{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}
.cat .bchips button{border:1px solid rgba(255,255,255,.35);background:transparent;color:inherit;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:700;cursor:pointer}
.cat .bchips button[aria-pressed="true"]{background:#fff;color:#14202B;border-color:#fff}
.cat .board .sec{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-weight:700;padding-top:12px}
.cat .board .tr{font-size:.78rem;opacity:.75}
.cat .board .blabel{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-weight:700;margin:2px 0 5px}
.cat .board select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.1);color:#fff;font:inherit;font-weight:700;margin-bottom:6px}
.cat .board select option{color:#14202B;background:#fff}
.cat .board .bfare{font-size:.82rem;opacity:.85;margin:0 0 4px}
.cat .taxi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.cat .taxi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:8px;align-content:start}
.cat .taxi h3{font-size:1.15rem}
.cat .taxi .phone-big{font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums;user-select:all}
.cat .tags{display:flex;flex-wrap:wrap;gap:5px}
.cat .tag{font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:5px;background:var(--sunk);color:var(--ink)}
.cat .tag.ok{background:color-mix(in srgb,var(--good) 16%,var(--surface));color:var(--good)}
.cat .tag.wait{background:var(--warn-bg);color:var(--warn)}
.cat .help-list{margin:6px 0 0;padding-left:20px;display:grid;gap:6px;font-size:.95rem}
.cat .linkbtn{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline;font-weight:700}
.cat .linkbtn:focus-visible{outline:2px solid var(--focus)}
.cat .rb-intro p{margin:0 0 10px}
.cat .rb-form{display:grid;gap:12px;margin-top:12px}
.cat .rb-row{display:flex;flex-wrap:wrap;gap:10px}
.cat .rb-form select,.cat .rb-form textarea,.cat .rb-form input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font:inherit;color:inherit}
.cat .rb-form textarea{width:100%;resize:vertical}
.cat .rb-list{display:grid;gap:10px}
.cat .rb-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:8px}
.cat .rb-card.mine{border-color:var(--accent)}
.cat .rb-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.cat .rb-route{font-weight:800;font-size:1.1rem;color:var(--navy, var(--ink))}
.cat .kind{font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:.04em}
.cat .kind.offer{background:color-mix(in srgb,var(--good) 16%,var(--surface));color:var(--good)}
.cat .kind.need{background:var(--warn-bg);color:var(--warn)}
.cat .rb-meta{color:var(--muted);font-size:.92rem}
.cat .rb-note{margin:0;font-size:.95rem;overflow-wrap:anywhere}
.cat .rb-drawer{background:var(--sunk);border-radius:8px;padding:12px;display:grid;gap:8px}
.cat .rb-drawer input,.cat .rb-drawer textarea,.cat .rb-drawer select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font:inherit;color:inherit;width:100%}
.cat .rb-safety,.cat .rb-desk{margin-top:16px}
.cat .rb-modal{margin-top:12px}
.cat .rb-modal-box{background:var(--surface);color:var(--ink);border:2px solid var(--accent);border-radius:10px;padding:18px;display:grid;gap:12px}
.cat .rb-terms{font-size:.95rem;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--bg)}
.cat .rb-terms ol{padding-left:20px;margin:8px 0 0;display:grid;gap:6px}
.cat .rb-terms p{margin:0}
.cat .btn:disabled{opacity:.45;cursor:not-allowed}
.cat .rb-check{display:flex;gap:10px;align-items:flex-start;font-weight:700}
.cat .rb-check input{margin-top:4px;width:18px;height:18px;flex:0 0 auto}
.cat .desk-item{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:6px;font-size:.93rem}
.cat .desk-item pre{white-space:pre-wrap;font:inherit;margin:0;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px}
/* fit inside the site page */
.page:has(.cat){max-width:none}
.cat{background:transparent;padding:0;margin:0;font-size:17px}
.cat .chip{text-decoration:none;color:var(--ink)}
.cat .chip[aria-pressed="true"]{color:var(--accent-ink)}
.cat .small{font-size:.88rem}
.cat button{margin:0}
