/* tsheet a1 2026-11-10: phone bottom sheet. Applies only while the script marks the panel .ts-on (phones). */
.ts-sab{position:fixed;left:0;bottom:0;width:0;height:0;padding-bottom:env(safe-area-inset-bottom);visibility:hidden;pointer-events:none}
.ts-grab{display:none}
.ts-on{will-change:transform;overscroll-behavior:contain}
.ts-on .ts-zone{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.ts-on.ts-drag{transition:none!important}
.ts-on.ts-drag *{pointer-events:none}
.ts-on .ts-zone,.ts-on .ts-zone *{pointer-events:auto}
.ts-on .ts-grab,.ts-on .g3grab{display:flex!important;flex-direction:column;align-items:center;gap:5px;width:100%;min-height:48px;padding:9px 0 8px;margin:0;border:0;background:none;color:#ece6d8;font:600 11.5px/1 ui-sans-serif,system-ui,-apple-system,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}
.ts-on .ts-grab>i,.ts-on .g3grab>i{display:block;width:44px;height:5px;border-radius:5px;background:rgba(236,230,216,.42)}
.ts-on .ts-lbl{display:flex;align-items:center;gap:6px;opacity:.86}
.ts-on .ts-lbl::after{content:'';width:7px;height:7px;border:solid currentColor;border-width:1.6px 0 0 1.6px;transform:translateY(2px) rotate(45deg);transition:transform .25s}
.ts-on:not([data-ts=peek]):not([data-ts=closed]) .ts-lbl::after{transform:translateY(-2px) rotate(225deg)}
.ts-on .ts-grab:focus-visible,.ts-on .g3grab:focus-visible{outline:2px solid #f0c674;outline-offset:-4px;border-radius:14px}
.ts-on .ts-grab-sv{min-height:22px;padding:0 0 8px;margin-top:-4px}
.ts-on .ts-grab-sv .ts-lbl{display:none}
/* instrument.html: the sticky handle stays on top while the panel scrolls; the stop card sits above the peek bar */
.ts-on#kiPanel{bottom:0}
.ts-on#kiPanel>.ts-grab{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,#07070a 70%,rgba(7,7,10,0))}
.ts-page.ts-collapsed .kcard{bottom:60px}
.ts-page .kbranch{bottom:180px}.ts-page .kstick{bottom:176px}
/* instrument-v2: walk overlay clears the peek bar */
.ts-page .g3walking .g3panel.ts-on{transition-duration:.3s}
@media(prefers-reduced-motion:reduce){.ts-on,.ts-on .ts-lbl::after{transition:none!important}}
/* survey.html: hide the floating Tools launcher while its sheet is open on phones (it sat on top of the sheet) */
.ts-page:not(.ts-collapsed) .sv-launcher{display:none}
