/* Mountain transport tool (block omis/transport-tool). From the mockup approved by Ella on 9 Oct 2026;
   search, map zoom and status filter from mockup 2 (approved 14 Oct 2026).
   Colours follow the theme (paper, ink, Swiss red); status colours are semantic. Everything is scoped to .omis-tt. */
.omis-tt{
  --tt-surface:#FFFFFF; --tt-paper:var(--paper,#F6F4EF); --tt-ink:var(--ink,#16181A); --tt-grey:var(--grey,#45474A); --tt-grey2:var(--grey2,#6A6C6E);
  --tt-line:var(--line,#CFCAC0); --tt-line2:var(--line2,#E2DDD3); --tt-chip:var(--chip,#F1EEE8); --tt-red:var(--red,#C8202E);
  --tt-land:#ECE8DF; --tt-land-line:#C9C2B4; --tt-lake:#BFD3DD; --tt-lake-line:#9DB8C6;
  --tt-run:#2E7D4F; --tt-run-bg:#E3F1E8; --tt-lim:#B7780A; --tt-lim-bg:#F8EDD5; --tt-closed:#C8202E; --tt-closed-bg:#F7E1E2; --tt-unk:#6A6C6E; --tt-est:#7A6200; --tt-est-dot:#F2C200; --tt-est-bg:#FBF0C2; --tt-unk-bg:#ECEAE6;
  --tt-shadow:0 10px 30px rgba(22,24,26,.16);
  display:grid;grid-template-columns:minmax(0,1fr);gap:24px;min-width:0;font-size:16px;line-height:1.5;font-weight:300;color:var(--tt-ink)
}
.omis-tt *,.omis-tt *::before,.omis-tt *::after{box-sizing:border-box}
.omis-tt p{margin:0}
.omis-tt a{color:inherit}
.omis-tt button,.omis-tt select,.omis-tt input{font:inherit;color:inherit}
.omis-tt :focus-visible{outline:2px solid var(--tt-red);outline-offset:2px}

/* Controls */
.omis-tt .tt-controls{display:grid;gap:16px;background:var(--tt-surface);border:1px solid var(--tt-line2);border-radius:6px;padding:18px}
.omis-tt .tt-daterow{display:flex;flex-wrap:wrap;align-items:end;gap:12px 18px}
.omis-tt .tt-field{display:grid;gap:4px;min-width:0}
.omis-tt .tt-field label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--tt-grey2);font-weight:500}
.omis-tt .tt-field select,.omis-tt .tt-field input{background:var(--tt-paper);border:1px solid var(--tt-line);border-radius:4px;padding:8px 10px;min-height:40px;width:100%;font-size:15px}
.omis-tt .tt-field input[type=date]{font-weight:500;font-size:17px;min-width:12ch}
.omis-tt .tt-quick,.omis-tt .tt-stfilter{display:flex;flex-wrap:wrap;gap:6px}
.omis-tt .tt-chip{border:1px solid var(--tt-line);background:var(--tt-chip);border-radius:999px;padding:6px 12px;font-size:14px;cursor:pointer;line-height:1.3}
.omis-tt .tt-chip[aria-pressed="true"]{background:var(--tt-ink);color:var(--tt-paper);border-color:var(--tt-ink)}
.omis-tt .tt-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.omis-tt .tt-statusbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid var(--tt-line2);padding-top:14px}
.omis-tt .tt-reset{background:none;border:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer;color:var(--tt-grey);font-size:14px;padding:4px}

/* Search */
.omis-tt .tt-searchrow{display:grid;gap:6px}
.omis-tt .tt-qwrap{position:relative}
.omis-tt .tt-field .tt-qwrap input{padding-right:40px;font-size:17px}
.omis-tt .tt-qwrap input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.omis-tt .tt-qclear{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--tt-grey);padding:4px 10px}
.omis-tt .tt-qclear[hidden]{display:none}
.omis-tt .tt-qhint{font-size:14px;color:var(--tt-grey2);min-height:1.5em}
.omis-tt .tt-qhint b{font-weight:500;color:var(--tt-ink)}
.omis-tt .tt-chip .tt-n{font-variant-numeric:tabular-nums;opacity:.7;margin-left:6px}
.omis-tt .tt-chip .tt-dot{width:8px;height:8px;margin-right:6px;vertical-align:1px}
.omis-tt .tt-chip[aria-pressed="true"] .tt-n{opacity:.85}
.omis-tt .tt-aka{font-size:13px;color:var(--tt-grey2)}

/* Summary */
.omis-tt .tt-summary{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline}
.omis-tt .tt-sumtitle{font-size:21px;font-weight:500;letter-spacing:-.01em;line-height:1.3}
.omis-tt .tt-counts{display:flex;flex-wrap:wrap;gap:8px}
.omis-tt .tt-count{display:inline-flex;align-items:center;gap:7px;font-size:15px;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;line-height:1.3}
.omis-tt .tt-count b{font-weight:600}
.omis-tt .tt-dot{width:9px;height:9px;border-radius:50%;flex:none;background:currentColor;display:inline-block}
.omis-tt .run{color:var(--tt-run)} .omis-tt .lim{color:var(--tt-lim)} .omis-tt .closed{color:var(--tt-closed)} .omis-tt .unk{color:var(--tt-unk)} .omis-tt .estc{color:var(--tt-est)} .omis-tt .tt-dot.estc,.omis-tt .ring.estc,.omis-tt .tt-count.estc .tt-dot{color:var(--tt-est-dot)}
.omis-tt .tt-count.run{background:var(--tt-run-bg)} .omis-tt .tt-count.lim{background:var(--tt-lim-bg)} .omis-tt .tt-count.closed{background:var(--tt-closed-bg)} .omis-tt .tt-count.unk{background:var(--tt-unk-bg)} .omis-tt .tt-count.estc{background:var(--tt-est-bg)}

/* Map */
.omis-tt .tt-mapbox{position:relative;background:var(--tt-surface);border:1px solid var(--tt-line2);border-radius:6px;overflow:hidden}
.omis-tt .tt-map{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:3115/2050;max-height:640px;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.omis-tt .tt-map.zoomed{touch-action:none}
.omis-tt .tt-map.dragging{cursor:grabbing}
.omis-tt .tt-canton{fill:var(--tt-land);stroke:var(--tt-land-line);stroke-linejoin:round}
.omis-tt .tt-lake{fill:var(--tt-lake);stroke:var(--tt-lake-line)}
.omis-tt .tt-pin{cursor:pointer}
.omis-tt .tt-pin circle.halo{fill:var(--tt-surface);opacity:.9}
.omis-tt .tt-pin text{font-family:inherit;font-weight:500;fill:var(--tt-ink);paint-order:stroke;stroke:var(--tt-surface);stroke-linejoin:round}
.omis-tt .tt-pin.sel circle.ring{stroke:var(--tt-ink)}
.omis-tt .tt-maptools{position:absolute;top:10px;right:10px;display:flex;gap:6px}
.omis-tt .tt-maptools button{background:var(--tt-surface);border:1px solid var(--tt-line);border-radius:4px;padding:6px 10px;font-size:13px;cursor:pointer;line-height:1.3}
.omis-tt .tt-zoom{position:absolute;top:10px;left:10px;display:grid;background:var(--tt-surface);border:1px solid var(--tt-line);border-radius:4px;overflow:hidden}
.omis-tt .tt-zoom button{width:38px;height:38px;border:0;background:var(--tt-surface);font-size:21px;line-height:1;cursor:pointer;color:var(--tt-ink);padding:0}
.omis-tt .tt-zoom button+button{border-top:1px solid var(--tt-line)}
.omis-tt .tt-zoom button:disabled{color:var(--tt-line);cursor:default}
.omis-tt .tt-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--tt-grey);padding:10px 14px;border-top:1px solid var(--tt-line2)}
.omis-tt .tt-legend span{display:inline-flex;align-items:center;gap:6px}

/* Preview box */
.omis-tt .tt-preview{position:absolute;z-index:5;width:min(360px,calc(100% - 20px));max-height:calc(100% - 20px);overflow:auto;background:var(--tt-surface);border:1px solid var(--tt-line);border-radius:6px;box-shadow:var(--tt-shadow);padding:16px}
.omis-tt .tt-preview[hidden]{display:none}
.omis-tt .tt-preview .tt-title{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;padding-right:28px;line-height:1.25;color:var(--tt-ink)}
.omis-tt .tt-preview .tt-meta{font-size:13px;color:var(--tt-grey2);margin:2px 0 10px}
.omis-tt .tt-preview .tt-close{position:absolute;top:8px;right:8px;border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--tt-grey);padding:4px 8px}
.omis-tt .tt-preview .tt-lifts{display:grid;gap:8px;margin:10px 0 12px}
.omis-tt .tt-actions{display:flex;flex-wrap:wrap;gap:8px}
.omis-tt .tt-btn{border:1px solid var(--tt-ink);background:var(--tt-ink);color:var(--tt-paper);border-radius:4px;padding:7px 12px;font-size:14px;cursor:pointer;text-decoration:none;display:inline-block;line-height:1.3}
.omis-tt .tt-btn.ghost{background:transparent;color:var(--tt-ink)}
@media (max-width:640px){
  .omis-tt .tt-preview{position:fixed;z-index:1000;left:0!important;right:0;top:auto!important;bottom:0;width:100%;max-height:70vh;border-radius:10px 10px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
}

/* Lift row (preview and list) */
.omis-tt .tt-lift{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;align-items:start}
.omis-tt .tt-lift .tt-dot{margin-top:8px}
.omis-tt .tt-lift .tt-nm{font-weight:500;min-width:0}
.omis-tt .tt-lift .tt-nm small{font-weight:300;color:var(--tt-grey2);font-size:13px}
.omis-tt .tt-lift .tt-rt{grid-column:2;font-size:14px;color:var(--tt-grey)}
.omis-tt .tt-lift .tt-st{grid-column:2;font-size:14px}
.omis-tt .tt-lift .tt-st b{font-weight:600}
.omis-tt .tt-lift .tt-nt{grid-column:2;font-size:13px;color:var(--tt-grey2)}
.omis-tt .tt-lift .tt-src{grid-column:2;font-size:12px;color:var(--tt-grey2)}
.omis-tt .tt-lift .tt-src .tt-lbl{color:var(--tt-grey)}
.omis-tt .tt-lift .tt-est{grid-column:2;font-size:13px;color:var(--tt-ink);background:var(--tt-chip);border-left:2px solid var(--tt-line);padding:2px 8px;border-radius:2px}

/* List: headings sized here so the article's h3/h4 styles do not apply */
.omis-tt .tt-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}
.omis-tt .tt-listbar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px;font-size:14px;color:var(--tt-grey2)}
.omis-tt .tt-acts{display:flex;gap:4px}
.omis-tt .tt-region{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}
.omis-tt .tt-region.open{margin-bottom:22px}
.omis-tt .tt-region>.tt-rh{margin:0;font-size:inherit;line-height:inherit;font-weight:inherit;letter-spacing:normal}
.omis-tt .tt-rbtn{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;background:var(--tt-surface);border:1px solid var(--tt-line2);border-radius:6px;padding:14px 16px;cursor:pointer;text-align:left;line-height:1.3}
.omis-tt .tt-rbtn:hover{border-color:var(--tt-line)}
.omis-tt .tt-rname{font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--tt-ink)}
.omis-tt .tt-rinfo{font-size:14px;color:var(--tt-grey2)}
.omis-tt .tt-rbtn .tt-count{font-size:13px;padding:2px 8px}
.omis-tt .tt-chev{margin-left:auto;font-size:14px;font-weight:500;color:var(--tt-ink);white-space:nowrap}
.omis-tt .tt-chev::after{content:"";display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:8px;transition:transform .2s}
.omis-tt .tt-region.open .tt-chev::after{transform:translateY(1px) rotate(-135deg)}
.omis-tt .tt-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px}
.omis-tt .tt-card{background:var(--tt-surface);border:1px solid var(--tt-line2);border-radius:6px;padding:16px;display:grid;grid-template-columns:minmax(0,1fr);min-width:0;overflow-wrap:anywhere;gap:12px;align-content:start;scroll-margin-top:calc(var(--nav-top,74px) + 20px)}
.omis-tt .tt-card.flash{outline:2px solid var(--tt-red)}
.omis-tt .tt-card.group{background:var(--tt-chip)}
.omis-tt .tt-card header{display:grid;gap:2px}
.omis-tt .tt-card .tt-title{margin:0;font-size:21px;line-height:1.25;font-weight:600;letter-spacing:-.01em;color:var(--tt-ink)}
.omis-tt .tt-card .tt-meta{font-size:13px;color:var(--tt-grey2)}
.omis-tt .tt-card .tt-mini{display:flex;gap:6px;flex-wrap:wrap}
.omis-tt .tt-card .tt-mini .tt-count{font-size:13px;padding:2px 8px}
.omis-tt .tt-card .tt-lifts{display:grid;gap:10px;border-top:1px solid var(--tt-line2);padding-top:12px}
.omis-tt .tt-card footer{font-size:13px;color:var(--tt-grey2)}
.omis-tt .tt-empty{padding:30px;text-align:center;color:var(--tt-grey);background:var(--tt-surface);border:1px dashed var(--tt-line);border-radius:6px}
.omis-tt .tt-notes{font-size:13px;color:var(--tt-grey2);display:grid;gap:6px}
@media (prefers-reduced-motion:reduce){.omis-tt *{transition:none!important;animation:none!important}}
