/* Boarding-Kontrolle — tablet-first vessel-inspection wizard (/boarding/session).
   Tokens only (no ad-hoc hex except the deliberately theme-independent
   signature "paper"); logical properties for RTL parity; big touch targets
   for gloved hands on a moving boat. */

.ms-bc {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--ms-bg);
    color: var(--ms-text);
    font-family: var(--ms-font-ui);
}

/* ── header ── */
.ms-bc-head {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    background: var(--ms-panel);
    border-block-end: 1px solid var(--ms-panel-border);
    position: sticky;
    inset-block-start: 0;
    z-index: var(--z-controls);
}
.ms-bc-head-title { font-size: 16px; font-weight: 700; letter-spacing: 0.04em; }
.ms-bc-head-meta { font-size: 11px; color: var(--ms-text-dim); display: flex; flex-wrap: wrap; gap: 2px 10px; }
.ms-bc-head .ms-bc-back {
    min-width: 44px; min-height: 44px;
    display: grid; place-items: center;
    border: 1px solid var(--ms-panel-border); border-radius: 4px;
    background: transparent; color: var(--ms-text);
    font-size: 18px; cursor: var(--ms-cursor-pointer); text-decoration: none;
}
.ms-bc-status {
    margin-inline-start: auto;
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
    padding: 4px 10px; border-radius: 999px; border: 1px solid var(--ms-panel-border);
    color: var(--ms-text-dim); white-space: nowrap;
}
.ms-bc-status.active { color: var(--ms-accent); border-color: var(--ms-accent); }
.ms-bc-status.completed { color: var(--ms-ok); border-color: var(--ms-ok); }
.ms-bc-status.hit { color: var(--ms-alert); border-color: var(--ms-alert); }

/* ── step nav (bottom on phone/tablet portrait, becomes top bar on wide) ── */
.ms-bc-steps {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 2px;
    padding: 4px;
    padding-block-end: calc(4px + env(safe-area-inset-bottom));
    background: var(--ms-panel);
    border-block-start: 1px solid var(--ms-panel-border);
    position: sticky;
    inset-block-end: 0;
    z-index: var(--z-controls);
}
.ms-bc-step {
    min-height: 52px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    border: none; border-radius: 4px; background: transparent;
    color: var(--ms-text-dim); font-size: 10px; letter-spacing: 0.02em;
    cursor: var(--ms-cursor-pointer);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.ms-bc-step svg { width: 20px; height: 20px; }
.ms-bc-step.on { color: var(--ms-accent); background: var(--ms-bg2); }
.ms-bc-step .ms-bc-step-done { color: var(--ms-ok); }

/* ── content ── */
.ms-bc-body {
    flex: 1;
    padding: var(--space-md);
    max-width: 860px;
    inline-size: 100%;
    margin-inline: auto;
    display: flex; flex-direction: column; gap: var(--space-md);
    -webkit-overflow-scrolling: touch;
}
.ms-bc-card {
    background: var(--ms-panel);
    border: 1px solid var(--ms-panel-border);
    border-radius: 6px;
    padding: var(--space-md);
    display: flex; flex-direction: column; gap: var(--space-sm);
}
.ms-bc-card h2 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ms-text-dim); margin: 0; }

/* forms — tablet-sized (≥48px touch targets) */
.ms-bc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); }
.ms-bc-field { display: flex; flex-direction: column; gap: 4px; }
.ms-bc-field.wide { grid-column: 1 / -1; }
.ms-bc-field > span { font-size: 11px; color: var(--ms-text-dim); }
.ms-bc-field input,
.ms-bc-field select,
.ms-bc-field textarea {
    min-height: 48px;
    padding: 10px 12px;
    font-size: 15px;
    color: var(--ms-text);
    background: var(--ms-bg2);
    border: 1px solid var(--ms-panel-border);
    border-radius: 4px;
    font-family: var(--ms-font-ui);
}
.ms-bc-field textarea { min-height: 110px; resize: vertical; }
.ms-bc-field input:focus, .ms-bc-field select:focus, .ms-bc-field textarea:focus {
    outline: none; border-color: var(--ms-accent);
}

/* buttons */
.ms-bc-btn {
    min-height: 48px;
    padding: 10px 18px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font-size: 14px; font-weight: 600; letter-spacing: 0.03em;
    border-radius: 5px; border: 1px solid var(--ms-panel-border);
    background: var(--ms-bg2); color: var(--ms-text);
    cursor: var(--ms-cursor-pointer);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.ms-bc-btn:disabled { opacity: 0.45; cursor: default; }
.ms-bc-btn.primary { background: var(--ms-accent); border-color: var(--ms-accent); color: var(--ms-bg); }
.ms-bc-btn.ok { background: var(--ms-ok); border-color: var(--ms-ok); color: var(--ms-bg); }
.ms-bc-btn.danger { color: var(--ms-alert); border-color: var(--ms-alert); background: transparent; }
.ms-bc-btn.ghost { background: transparent; }
.ms-bc-actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }

/* camera capture: the InputFile hides inside the label-button */
.ms-bc-btn input[type="file"] { display: none; }

/* person + evidence lists */
.ms-bc-item {
    display: flex; align-items: flex-start; gap: var(--space-sm);
    padding: var(--space-sm); border: 1px solid var(--ms-panel-border);
    border-radius: 5px; background: var(--ms-bg2);
}
.ms-bc-item-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ms-bc-item-title { font-size: 14px; font-weight: 600; }
.ms-bc-item-meta { font-size: 11px; color: var(--ms-text-dim); }
.ms-bc-thumb {
    inline-size: 84px; block-size: 84px; object-fit: cover;
    border-radius: 4px; border: 1px solid var(--ms-panel-border); flex: none;
}
.ms-bc-badge {
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
    padding: 3px 8px; border-radius: 999px; align-self: flex-start;
    border: 1px solid var(--ms-panel-border); color: var(--ms-text-dim);
}
.ms-bc-badge.clear { color: var(--ms-ok); border-color: var(--ms-ok); }
.ms-bc-badge.hit { color: var(--ms-alert); border-color: var(--ms-alert); background: color-mix(in srgb, var(--ms-alert) 12%, transparent); }
.ms-bc-empty { color: var(--ms-text-mute); font-size: 13px; font-style: italic; padding: var(--space-sm) 0; }

/* signature pad — deliberately theme-independent white "paper": the PNG is
   embedded in the PDF on white, so the operator must see true ink-on-paper. */
.ms-bc-signature {
    background: #ffffff;
    border: 1px dashed var(--ms-panel-border);
    border-radius: 5px;
    inline-size: 100%;
    block-size: 160px;
    touch-action: none;
    cursor: crosshair;
}

/* result picker */
.ms-bc-choices { display: grid; grid-template-columns: 1fr; gap: var(--space-sm); }
.ms-bc-choice {
    display: flex; align-items: center; gap: var(--space-sm);
    min-height: 56px; padding: var(--space-sm) var(--space-md);
    border: 1px solid var(--ms-panel-border); border-radius: 5px;
    background: var(--ms-bg2); cursor: var(--ms-cursor-pointer); font-size: 15px;
}
.ms-bc-choice.on { border-color: var(--ms-accent); background: color-mix(in srgb, var(--ms-accent) 10%, var(--ms-bg2)); }
.ms-bc-choice.on.warn { border-color: var(--ms-warn); background: color-mix(in srgb, var(--ms-warn) 10%, var(--ms-bg2)); }
.ms-bc-choice.on.alert { border-color: var(--ms-alert); background: color-mix(in srgb, var(--ms-alert) 10%, var(--ms-bg2)); }

/* timeline */
.ms-bc-timeline { display: flex; flex-direction: column; gap: 6px; }
.ms-bc-tl-row { display: flex; gap: var(--space-sm); font-size: 12px; }
.ms-bc-tl-time { color: var(--ms-text-dim); font-variant-numeric: tabular-nums; flex: none; inline-size: 120px; }
.ms-bc-tl-type { font-weight: 600; flex: none; }
.ms-bc-tl-detail { color: var(--ms-text-dim); overflow-wrap: anywhere; }

/* PDF viewer */
.ms-bc-pdf { inline-size: 100%; block-size: min(72dvh, 900px); border: 1px solid var(--ms-panel-border); border-radius: 5px; background: var(--ms-bg2); }

.ms-bc-error { color: var(--ms-alert); font-size: 13px; }
.ms-bc-hint { color: var(--ms-text-mute); font-size: 12px; }

/* wide screens: steps become a top rail, two-column forms breathe */
@media (min-width: 900px) {
    .ms-bc-steps { position: static; grid-template-columns: repeat(6, minmax(0, 140px)); justify-content: center; border-block-start: none; }
    .ms-bc-body { padding-block-end: var(--space-xl); }
}
@media (prefers-reduced-motion: no-preference) {
    .ms-bc-step, .ms-bc-btn, .ms-bc-choice { transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
}
