/* Shared components. Logical properties only (RTL-safe), 44px tap targets, no fixed widths. */
.ui-page{background:var(--page);color:var(--ink);font:16px/1.5 var(--font);margin:0;padding:16px;min-height:100vh;box-sizing:border-box}
.ui-section{margin:0 0 20px}.ui-section>h2{margin:0 0 8px;font-size:20px}
.ui-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);margin-block:var(--gap);overflow-wrap:anywhere}
.ui-card h3{margin:0 0 4px;font-size:17px}.ui-card p{margin:0;color:var(--muted)}
.ui-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);min-width:var(--tap);padding-inline:16px;border:0;border-radius:calc(var(--radius) - 2px);background:var(--accent);color:var(--on-accent);font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.ui-btn--ghost{background:transparent;color:var(--accent-deep);border:1px solid var(--accent)}
.ui-chip{display:inline-flex;align-items:center;min-height:32px;padding-inline:12px;border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:14px}
.ui-nav{display:flex;gap:4px;position:sticky;inset-block-end:0;background:var(--card);border-top:1px solid var(--line);padding:6px}
.ui-nav a{flex:1;display:flex;align-items:center;justify-content:center;min-height:var(--tap);color:var(--muted);text-decoration:none;border-radius:10px;font-size:14px}
.ui-nav a[aria-current=page]{background:var(--accent-soft);color:var(--ink);font-weight:700}
.ui-row{margin-block-start:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.note,.meta{color:var(--muted);font-size:14px;margin:6px 0}.ui-card.leg{border-inline-start:4px solid var(--accent)}
.photos{display:grid;gap:10px;margin-block:12px}.photos figure{margin:0}.photos img{width:100%;height:auto;border-radius:var(--radius);display:block}.photos figcaption{color:var(--muted);font-size:14px;margin-block-start:4px}
svg.map{width:100%;height:auto;display:block}.map .sea{fill:var(--accent-soft)}.map .route{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linejoin:round}.map .dot{fill:var(--accent-deep);pointer-events:none}.map .dot.on{fill:var(--ink)}

.bk-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-block-end:6px}.bk-status{font-size:14px;font-weight:700}
.bk--confirmed{border-inline-start:4px solid var(--accent)}.bk--pending{border-inline-start:4px dashed var(--muted)}.bk--cancelled{opacity:.7}.bk--cancelled h3{text-decoration:line-through}
.bk-list{margin:8px 0 0}.bk-row{display:flex;gap:8px;align-items:baseline;margin-block:4px}.bk-row dt{color:var(--muted);font-size:14px;flex:0 0 6.5em;white-space:nowrap}.bk-row dd{margin:0;min-width:0;overflow-wrap:anywhere}
.bk-ref{font-family:ui-monospace,Menlo,monospace;font-weight:700;text-align:end;unicode-bidi:isolate}.bk-missing{color:var(--muted);font-style:italic}
