.ot-overlay{position:fixed;inset:0;z-index:10020;background:rgba(10,30,30,.5);display:flex;justify-content:center;overflow:auto}.ot-panel{box-sizing:border-box;height:max-content;font-family:var(--font-sans,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);width:min(100%,520px);min-height:100%;background:var(--bg,#f5f7f6);color:var(--text,#142b2e);padding:24px;padding-bottom:calc(96px + env(safe-area-inset-bottom));font-size:18px}.ot-panel h1{font-size:32px;line-height:1.15}.ot-panel h2{font-size:21px}.ot-head,.ot-row{display:flex;justify-content:space-between;gap:12px}.ot-panel button{min-height:48px;padding:12px 15px;border:1px solid #a6beba;border-radius:14px;background:var(--card,#fff);color:inherit;font:inherit;cursor:pointer}.ot-panel button:disabled{opacity:.6;cursor:wait}.ot-panel .ot-choice{display:block;width:100%;text-align:left;white-space:pre-line;line-height:1.5;margin:12px 0}.ot-panel .ot-wide{display:block;width:100%;margin:14px 0}.ot-panel .ot-primary{display:block;width:100%;background:#1b6b6d;color:#fff;margin:24px 0 12px;min-height:60px}.ot-panel article{border:1px solid #dbe5e2;border-radius:16px;padding:18px;margin:14px 0;line-height:1.6}.ot-panel strong{display:block;font-size:21px}.ot-panel small{font-size:16px}.ot-panel label{display:block;margin:20px 0;font-size:19px}.ot-panel input,.ot-panel select{display:block;margin-top:9px;width:100%;min-height:56px;border:1px solid #adbeba;border-radius:12px;padding:12px;background:var(--card,#fff);color:inherit;font:inherit}.ot-panel .ot-error{padding:14px;background:#fff1e8;color:#7b2815;border-radius:10px}.ot-panel details summary{min-height:48px;padding:12px 0;cursor:pointer}.ot-panel button:focus-visible,.ot-panel input:focus-visible,.ot-panel select:focus-visible{outline:3px solid #1b6b6d;outline-offset:3px}

.ot-panel *{box-sizing:border-box}.ot-panel button,.ot-panel input,.ot-panel select{background:var(--surface,var(--card,#fff))}.ot-panel .ot-primary{background:#1b6b6d}.ot-panel{color:var(--ink-1,var(--text,#142b2e))}

.ot-panel .ot-primary{position:sticky;bottom:max(12px,env(safe-area-inset-bottom));z-index:2;box-shadow:0 0 0 8px var(--bg,#f5f7f6)}.ot-panel .ot-primary:disabled{opacity:1;background:#86aeae;color:#fff;cursor:default}
/* PBD-010 follow-up (2026-09-21): .ot-panel's padding-bottom (above,
   line 1) is 96px + safe-area -- .ot-primary's own min-height (60px)
   plus its sticky bottom offset (12px) plus a 24px gap -- so the last
   field/label in the panel can never sit under the sticky button at
   rest OR scrolled to the end. */
.ot-panel .ot-eta{margin:10px 0;font-size:16px;color:var(--ink-1,var(--text,#142b2e))}.ot-panel .ot-eta-tag{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2,#5a6b68);margin-right:6px}.ot-panel .ot-eta-note{margin:2px 0 10px}
/* PBD-010 (2026-09-21): dirty-navigation prompt (inline in the sheet,
   never window.confirm) -- see js/owner-trip.js's promptBeforeNavigate. */
.ot-panel .ot-nav-prompt{border:1px solid #a6beba;border-radius:14px;padding:16px;margin:14px 0;background:var(--card,#fff)}.ot-panel .ot-nav-prompt .ot-row{margin-top:10px}
