:root {
  --bg: #f3f6f8;
  --panel: #ffffff;
  --ink: #10202d;
  --muted: #657181;
  --soft: #f7fafc;
  --line: #dfe7ee;
  --line-strong: #cbd8e3;
  --blue: #0b4f6c;
  --blue-dark: #083c52;
  --blue-soft: #e6f3f8;
  --red: #b3261e;
  --red-soft: #fee4e2;
  --amber: #8a5a00;
  --amber-soft: #fff1cc;
  --cyan: #075985;
  --cyan-soft: #e6f4ff;
  --green: #146c43;
  --green-soft: #e9f8ef;
  --shadow: 0 12px 28px rgba(16, 24, 40, 0.08);
  --radius: 18px;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--bg); color: var(--ink); }
a { color: inherit; }
button, input, select, textarea { font: inherit; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; background: #fff; border-right: 1px solid var(--line); padding: 1rem; display: flex; flex-direction: column; gap: 1rem; }
.brand { display: flex; align-items: center; gap: 0.7rem; font-weight: 850; text-decoration: none; color: var(--blue); letter-spacing: -0.02em; }
.brand-mark { width: 36px; height: 36px; border-radius: 12px; background: var(--blue); color: #fff; display: inline-grid; place-items: center; font-weight: 900; }
.side-nav { display: grid; gap: 0.35rem; }
.side-nav a { text-decoration: none; color: #415163; padding: 0.75rem 0.85rem; border-radius: 12px; font-weight: 750; }
.side-nav a:hover, .side-nav a.active { background: var(--blue-soft); color: var(--blue); }
.sidebar-footer { margin-top: auto; display: grid; gap: 0.75rem; }
.user-chip { display: grid; gap: 0.1rem; padding: 0.8rem; background: var(--soft); border: 1px solid var(--line); border-radius: 14px; }
.user-chip span { color: var(--muted); font-size: 0.84rem; text-transform: capitalize; }
.text-button, .link-button { border: 0; background: transparent; color: var(--muted); padding: 0; cursor: pointer; font-weight: 750; }
.text-button:hover, .link-button:hover { color: var(--blue); }
.main-area { min-width: 0; }
.mobile-topbar, .bottom-nav { display: none; }
.container { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 1.25rem 0 3rem; }
.auth-container { min-height: 100vh; display: grid; place-items: center; }

.page-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
h1 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.35rem); letter-spacing: -0.035em; line-height: 1.08; }
h2 { margin: 0 0 0.75rem; font-size: 1.12rem; letter-spacing: -0.02em; }
h3 { margin: 0; }
p { line-height: 1.5; }
.muted { color: var(--muted); }
.kicker { margin: 0 0 0.25rem; color: var(--blue); font-weight: 850; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.76rem; }

.card, .auth-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; box-shadow: var(--shadow); margin-bottom: 1rem; }
.auth-card { width: min(430px, 100%); }
.narrow { max-width: 820px; margin-left: auto; margin-right: auto; }
.wide-form { max-width: 980px; margin-left: auto; margin-right: auto; }

.button, button, .secondary, .primary { border-radius: 13px; padding: 0.78rem 1rem; font-weight: 850; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; border: 1px solid var(--line-strong); background: #fff; color: var(--ink); }
.primary { background: var(--blue); color: white; border-color: var(--blue); }
.primary:hover { background: var(--blue-dark); }
.secondary:hover, .button:hover { border-color: var(--blue); color: var(--blue); }
.danger-button { background: var(--red); color: white; border: 0; }
.button-row { display: flex; gap: 0.65rem; align-items: center; flex-wrap: wrap; }
.action-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.85rem; margin-bottom: 1rem; }
.action-card { text-decoration: none; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 1rem; box-shadow: var(--shadow); display: grid; gap: 0.35rem; min-height: 125px; }
.action-card:hover { border-color: var(--blue); transform: translateY(-1px); }
.action-card strong { font-size: 1.08rem; }
.action-card span { color: var(--muted); font-size: 0.92rem; }
.action-card.primary-action { background: var(--blue); color: #fff; border-color: var(--blue); }
.action-card.primary-action span { color: rgba(255,255,255,0.82); }
.action-icon { width: 40px; height: 40px; border-radius: 14px; display: grid; place-items: center; background: var(--blue-soft); color: var(--blue); font-weight: 900; }
.primary-action .action-icon { background: rgba(255,255,255,0.18); color: #fff; }

.form-stack { display: grid; gap: 1rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; }
.form-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.full { grid-column: 1 / -1; }
label { display: grid; gap: 0.35rem; font-weight: 800; font-size: 0.92rem; }
input, select, textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 13px; padding: 0.82rem; background: #fff; color: var(--ink); }
textarea { min-height: 130px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 3px solid var(--blue-soft); border-color: var(--blue); }
.help-text { color: var(--muted); font-size: 0.88rem; margin: -0.35rem 0 0; }
.form-panel { border: 1px solid var(--line); border-radius: 18px; padding: 1rem; background: #fff; display: grid; gap: 0.9rem; }
.form-section-heading { margin-top: 0.6rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.checkbox-label { display: flex; align-items: center; gap: 0.55rem; font-weight: 800; }
.checkbox-label input { width: auto; }
.segmented { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; }
.segmented label { cursor: pointer; }
.segmented input { display: none; }
.segmented span { display: flex; align-items: center; justify-content: center; min-height: 46px; border: 1px solid var(--line-strong); border-radius: 13px; background: #fff; font-weight: 850; text-align: center; padding: 0.65rem; }
.segmented input:checked + span { border-color: var(--blue); background: var(--blue-soft); color: var(--blue); }
.priority-picker { grid-template-columns: repeat(4, 1fr); }
.priority-picker .a input:checked + span { background: var(--red-soft); color: var(--red); border-color: #f1b8b5; }
.priority-picker .b input:checked + span { background: var(--amber-soft); color: var(--amber); border-color: #f0d47a; }
.priority-picker .c input:checked + span { background: var(--cyan-soft); color: var(--cyan); border-color: #a6d9f5; }
.priority-picker .d input:checked + span { background: var(--green-soft); color: var(--green); border-color: #a9dfbf; }
.details-clean { border: 1px solid var(--line); border-radius: 14px; padding: 0.9rem; background: var(--soft); }
.details-clean summary { cursor: pointer; font-weight: 850; }
.nested { margin-top: 0.9rem; }
.sticky-submit { position: sticky; bottom: 0.75rem; z-index: 3; display: flex; justify-content: flex-end; padding-top: 0.6rem; }
.sticky-submit .primary { box-shadow: 0 14px 30px rgba(11,79,108,0.28); }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.85rem; margin-bottom: 1rem; }
.stat { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 1rem; box-shadow: var(--shadow); }
.stat span { display: block; color: var(--muted); font-size: 0.84rem; font-weight: 750; }
.stat strong { display: block; font-size: 2rem; letter-spacing: -0.04em; margin-top: 0.2rem; }
.stat.urgent { border-color: #f1b8b5; background: linear-gradient(180deg, #fff, #fff7f7); }

.section-title-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.7rem; }
.section-title-row h2, .section-title-row h3 { margin: 0; }
.two-column { display: grid; grid-template-columns: 1.4fr 0.9fr; gap: 1rem; }
.grid-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.boat-card { text-decoration: none; display: block; }
.boat-card.archived { opacity: 0.65; }
.boat-top { display: flex; justify-content: space-between; gap: 0.75rem; align-items: flex-start; }
.boat-top h2 { margin: 0 0 0.25rem; }
.status-dot { width: 14px; height: 14px; border-radius: 50%; display: inline-block; flex: 0 0 auto; margin-top: 0.35rem; }
.status-dot.green { background: #18a058; }
.status-dot.yellow { background: #d99600; }
.status-dot.red { background: #c2410c; }

.ticket-list { display: grid; gap: 0.65rem; }
.ticket-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 0.9rem; border: 1px solid var(--line); border-radius: 15px; text-decoration: none; background: #fff; }
.ticket-row:hover { border-color: var(--blue); }
.ticket-row small { display: block; color: var(--muted); margin-top: 0.25rem; line-height: 1.4; }
.ticket-title-line { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.badges { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 0.3rem 0.6rem; font-size: 0.78rem; font-weight: 900; background: #eef2f6; color: #344054; white-space: nowrap; }
.priority-a, .priority-urgent { background: var(--red-soft); color: var(--red); }
.priority-b, .priority-high { background: var(--amber-soft); color: var(--amber); }
.priority-c, .priority-medium { background: var(--cyan-soft); color: var(--cyan); }
.priority-d, .priority-low { background: var(--green-soft); color: var(--green); }

.filters, .inline-form { display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: end; }
.filters input { flex: 1 1 230px; }
.filters select { width: auto; min-width: 155px; }
.meta-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; }
.meta-grid div { border: 1px solid var(--line); border-radius: 14px; padding: 0.8rem; background: var(--soft); }
.meta-grid span { display: block; color: var(--muted); font-size: 0.8rem; font-weight: 750; }
.description { white-space: pre-wrap; }
.photo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; margin-top: 1rem; }
.photo-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; border: 1px solid var(--line); }
.comment-form { display: grid; gap: 0.75rem; }
.comments { display: grid; gap: 0.75rem; margin-top: 1rem; }
.comment { border-left: 4px solid var(--blue); padding: 0.75rem; background: var(--soft); border-radius: 12px; }
.comment small { display: block; color: var(--muted); margin-top: 0.1rem; }
.flash { border-radius: 13px; padding: 0.8rem; margin-bottom: 1rem; background: var(--cyan-soft); color: var(--cyan); font-weight: 750; }
.flash.error { background: var(--red-soft); color: var(--red); }
.flash.info { background: var(--cyan-soft); color: var(--cyan); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 0.75rem; border-bottom: 1px solid var(--line); }
.compact-table { min-width: 1300px; font-size: 0.86rem; }
.compact-table input { min-width: 95px; padding: 0.5rem; }
.compact-table td:first-child { min-width: 150px; font-weight: 800; }
.danger-zone { border-color: #f1b8b5; }
.issue-builder { display: grid; gap: 0.8rem; }
.issue-card { border: 1px solid var(--line); border-radius: 16px; padding: 1rem; background: var(--soft); display: grid; gap: 0.75rem; }

@media (max-width: 980px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  .mobile-topbar { position: sticky; top: 0; z-index: 8; display: flex; justify-content: space-between; align-items: center; padding: 0.8rem 1rem; background: rgba(255,255,255,0.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
  .brand.compact .brand-mark { width: 32px; height: 32px; border-radius: 10px; }
  .bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; display: grid; grid-template-columns: repeat(5, 1fr); background: rgba(255,255,255,0.98); border-top: 1px solid var(--line); padding: 0.35rem 0.35rem calc(0.35rem + env(safe-area-inset-bottom)); box-shadow: 0 -10px 24px rgba(16, 24, 40, 0.08); }
  .bottom-nav a { text-decoration: none; text-align: center; color: var(--muted); font-size: 0.78rem; font-weight: 850; padding: 0.55rem 0.2rem; border-radius: 12px; }
  .bottom-nav a.active { background: var(--blue-soft); color: var(--blue); }
  .container { width: min(100% - 1rem, 1180px); padding-top: 1rem; padding-bottom: 5.4rem; }
  .page-title-row { flex-direction: column; }
  .action-grid { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .two-column, .grid-cards, .form-grid, .form-grid.compact, .meta-grid, .photo-grid { grid-template-columns: 1fr; }
  .segmented, .priority-picker { grid-template-columns: 1fr 1fr; }
  .ticket-row { grid-template-columns: 1fr; align-items: flex-start; }
  .badges { justify-content: flex-start; }
  .filters select, .filters button, .filters .button { width: 100%; }
  .button-row { width: 100%; }
  .button-row .button, .button-row button, .button-row .primary { flex: 1; }
  .sticky-submit { bottom: 4.8rem; }
  .sticky-submit .primary { width: 100%; }
}

@media (max-width: 520px) {
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .stat { padding: 0.8rem; }
  .stat strong { font-size: 1.6rem; }
  .card { padding: 0.85rem; }
}

/* V4 post-charter wizard */
.report-wizard-card {
  overflow: hidden;
}

.wizard-form {
  margin-top: 1.25rem;
}

.wizard-progress {
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  padding: .35rem 0 1rem;
  margin-bottom: .5rem;
}

.step-pill {
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--muted);
  border-radius: 999px;
  padding: .6rem .85rem;
  white-space: nowrap;
  font-weight: 700;
}

.step-pill.active {
  background: var(--ink);
  color: white;
  border-color: var(--ink);
}

.wizard-screen {
  display: none;
  animation: wizardFade .16s ease-out;
}

.wizard-screen.active {
  display: block;
}

@keyframes wizardFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.screen-heading {
  margin-bottom: 1.25rem;
}

.step-label {
  color: var(--blue);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .75rem;
}

.boat-button-grid,
.choice-grid,
.section-hub {
  display: grid;
  gap: .75rem;
}

.boat-button-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.choice-grid.two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.choice-grid.three-up {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.use-choice-grid {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.choice-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--panel);
  padding: 1rem;
  text-align: center;
  font-weight: 800;
  cursor: pointer;
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}

.choice-card.compact {
  min-height: 3.2rem;
  border-radius: 14px;
  padding: .75rem;
}

.choice-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.choice-card:has(input:checked),
.choice-card.selected {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 18%, transparent);
  background: color-mix(in srgb, var(--blue) 8%, var(--panel));
}

.choice-card:hover {
  transform: translateY(-1px);
}

.top-gap {
  margin-top: 1.25rem;
}

.wizard-actions {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.wizard-actions .primary,
.wizard-actions .secondary {
  min-height: 3rem;
}

.split-actions {
  align-items: center;
}

.section-hub {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.section-card {
  position: relative;
  display: grid;
  gap: .35rem;
  text-align: left;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 1.1rem 1rem 1rem 2.75rem;
  background: var(--panel);
  color: var(--ink);
  min-height: 8rem;
}

.section-card strong {
  font-size: 1.03rem;
}

.section-card small,
.review-list small {
  color: var(--muted);
  line-height: 1.35;
}

.status-dot {
  width: .95rem;
  height: .95rem;
  border-radius: 50%;
  background: var(--line);
  border: 2px solid var(--panel);
  box-shadow: 0 0 0 1px var(--line);
  display: inline-block;
}

.section-card .status-dot {
  position: absolute;
  left: 1rem;
  top: 1.2rem;
}

.status-dot.complete {
  background: #22c55e;
  box-shadow: 0 0 0 1px #22c55e;
}

.flush-panel {
  box-shadow: none;
  border: 0;
  padding: 0;
  background: transparent;
}

.sticky-section-head {
  position: sticky;
  top: .5rem;
  z-index: 2;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: .85rem;
  margin-bottom: .85rem;
}

.no-issues-box {
  margin-top: 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: .9rem;
  background: var(--panel);
}

.review-list {
  display: grid;
  gap: .75rem;
}

.review-list > div {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .25rem .75rem;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: .9rem;
  background: var(--panel);
}

.review-list small {
  grid-column: 2;
}

#submit-report:disabled {
  opacity: .45;
  cursor: not-allowed;
}

@media (max-width: 720px) {
  .boat-button-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .choice-grid.three-up {
    grid-template-columns: 1fr;
  }
  .wizard-actions {
    position: sticky;
    bottom: 4.25rem;
    background: color-mix(in srgb, var(--bg) 92%, transparent);
    backdrop-filter: blur(8px);
    padding: .75rem 0 0;
  }
  .split-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .wizard-actions button {
    width: 100%;
  }
}
.report-issue-row {
  grid-template-columns: auto 1fr auto;
}
.issue-thumb {
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--line);
}
@media (max-width: 720px) {
  .report-issue-row {
    grid-template-columns: auto 1fr;
  }
  .report-issue-row .badges {
    grid-column: 2;
  }
}
.conditional-field[style*="display: none"] { display: none !important; }
.auto-meta-box { background: #f7fafc; border: 1px solid #e2e8f0; border-radius: 14px; padding: 1rem; color: #334155; }
.issue-card.saved { border-color: rgba(34, 197, 94, 0.45); }
.issue-card.draft { border-style: dashed; }
.draft-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .25rem .55rem; font-size: .78rem; background: #eef2ff; color: #3730a3; font-weight: 700; }
.issue-card.saved .draft-badge { background: #dcfce7; color: #166534; }
.mini-review { margin-top: .6rem; display: grid; gap: .35rem; font-size: .9rem; color: #475569; }
.engine-card-grid { display: grid; gap: 1rem; }
.engine-card { border: 1px solid var(--border); border-radius: 18px; padding: 1rem; background: #fff; }
.engine-card h2 { margin: 0; font-size: 1.1rem; }
.service-log-box { margin-top: 1rem; padding-top: .75rem; border-top: 1px solid var(--border); }
.service-log-box summary { cursor: pointer; font-weight: 700; color: var(--brand); }
.nested-form { margin-top: .75rem; }

/* v6 usability refinements */
.tab-row { display:flex; gap:.5rem; flex-wrap:wrap; margin: 0 0 1rem; }
.tab { padding:.65rem .9rem; border:1px solid var(--border); border-radius:999px; background:var(--card); text-decoration:none; color:var(--text); font-weight:700; }
.tab.active { background:var(--text); color:white; }
.user-list { display:grid; gap:1rem; }
.mini-card { border:1px solid var(--border); border-radius:1rem; padding:1rem; background:var(--surface); }
.soft-rule { border:0; border-top:1px solid var(--border); margin:1.5rem 0; }
.issue-saved-summary { padding:.85rem; border:1px solid var(--border); border-radius:.85rem; background:var(--surface); color:var(--text); }
.issue-saved-summary span { color:var(--muted); }
.engine-page-stack { display:grid; gap:1rem; }
.engine-card-clean { overflow:hidden; }
.engine-form-clean { display:grid; gap:.75rem; }
.engine-line { display:grid; grid-template-columns: 160px repeat(5, minmax(130px, 1fr)); gap:.75rem; align-items:end; padding:.9rem 0; border-top:1px solid var(--border); }
.engine-line:first-of-type { border-top:0; }
.engine-line h3 { margin:0; font-size:1rem; align-self:center; }
.engine-line label { font-size:.78rem; color:var(--muted); }
.static-row { cursor:default; }
.segmented.vertical { display:grid; gap:.5rem; grid-template-columns:1fr; }
.timeline { display:grid; gap:.75rem; position:relative; }
.timeline .comment { border-left:3px solid var(--border); padding-left:.85rem; }
@media (max-width: 900px) {
  .engine-line { grid-template-columns: 1fr; border:1px solid var(--border); border-radius:1rem; padding:1rem; }
}

.modal-card {
  border: none;
  border-radius: 1.25rem;
  padding: 1.25rem;
  max-width: 520px;
  width: calc(100% - 2rem);
  box-shadow: 0 24px 80px rgba(15, 23, 42, 0.35);
}
.modal-card::backdrop { background: rgba(15, 23, 42, 0.45); }

.engine-card-clean .engine-line {
  display: grid;
  grid-template-columns: minmax(140px, 1.1fr) repeat(5, minmax(120px, 1fr));
  gap: .75rem;
  align-items: end;
  padding: .9rem 0;
  border-top: 1px solid var(--border);
}
.engine-card-clean .engine-line h3 { margin: 0 0 .35rem; }
@media (max-width: 900px) {
  .engine-card-clean .engine-line { grid-template-columns: 1fr; }
}

/* v8 Swain polish */
:root {
  --brand: #0b4f6c;
  --brand-bright: #14a8e8;
  --brand-magenta: #d6007f;
  --border: var(--line);
  --surface: #ffffff;
  --card: #ffffff;
  --text: var(--ink);
}
.brand-logo { width: 42px; height: 42px; object-fit: contain; display: inline-block; }
.brand.compact .brand-logo { width: 34px; height: 34px; }
.brand-mark { background: linear-gradient(135deg, var(--brand-bright), var(--brand)); }
.sidebar { border-right: 3px solid rgba(20, 168, 232, 0.16); }
.side-nav a.active { background: linear-gradient(90deg, rgba(20,168,232,.14), rgba(214,0,127,.06)); color: var(--brand); }
.primary { background: linear-gradient(135deg, var(--brand), #083c52); border-color: var(--brand); }
.kicker { color: var(--brand-magenta); }
.tab { background: #f8fafc; border-color: var(--line-strong); color: #334155; }
.tab:hover { border-color: var(--brand-bright); color: var(--brand); }
.tab.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.ticket-row { border-left: 5px solid transparent; }
.ticket-row:hover { border-color: var(--brand-bright); border-left-color: var(--brand-bright); }
.engine-auto-form input { transition: border-color .15s ease, background .15s ease; }
.engine-auto-form input.autosaving { background: #fff7ed; border-color: #fdba74; }
.engine-auto-form input.autosaved { background: #ecfdf5; border-color: #86efac; }
.autosave-status { font-size: .82rem; color: var(--muted); min-height: 1.2rem; }
.pdf-note { color: var(--muted); font-size: .9rem; }
.duplicate-hint { border: 1px solid #cdeafb; background: #f0f9ff; color: #075985; padding: .75rem; border-radius: 14px; }

.compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
.duplicate-match {
  border: 1px solid var(--swain-cyan, #13a8e8);
  background: rgba(19, 168, 232, 0.08);
  border-radius: 16px;
  padding: 1rem;
}
.duplicate-panel {
  border-left: 5px solid var(--swain-magenta, #d4147a);
}
.duplicate-choice {
  margin-top: 1rem;
}
.sticky-actions {
  position: sticky;
  bottom: 0.75rem;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(11, 79, 108, 0.14);
  border-radius: 18px;
  padding: 0.75rem;
}
@media (max-width: 760px) {
  .compare-grid { grid-template-columns: 1fr; }
}

/* v10 mobile-app polish and image previews */
html {
  -webkit-text-size-adjust: 100%;
  touch-action: manipulation;
  overflow-x: hidden;
}
body {
  min-width: 0;
  overflow-x: hidden;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
input, select, textarea, button {
  font-size: 16px;
}
button, .button, .choice-card, .section-card, .tab {
  -webkit-tap-highlight-color: transparent;
}
.report-wizard-card {
  overflow: visible;
}
.wizard-screen {
  min-width: 0;
}
.wizard-actions {
  flex-wrap: wrap;
}
.image-preview {
  display: grid;
  gap: .6rem;
  margin-top: .65rem;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--soft);
  padding: .65rem;
}
.image-preview[hidden] { display: none !important; }
.image-preview img {
  width: 100%;
  max-height: 280px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.photo-add-form {
  align-items: stretch;
}
.photo-add-form .image-preview {
  flex: 1 1 100%;
}
.photo-grid {
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.photo-tile {
  display: grid;
  gap: .45rem;
}
.photo-tile img {
  aspect-ratio: 4 / 3;
}
.danger-link {
  color: var(--red);
  font-size: .85rem;
}
.fleet-edit-list {
  display: grid;
  gap: 1rem;
}
.fleet-edit-row {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  padding: 1rem;
  display: grid;
  gap: .85rem;
}
.fleet-edit-title strong {
  display: block;
  font-size: 1.05rem;
}
.fleet-edit-title small {
  color: var(--muted);
}
.fleet-edit-grid textarea {
  min-height: 70px;
}
@media (display-mode: standalone) {
  .mobile-topbar {
    padding-top: calc(.8rem + env(safe-area-inset-top));
  }
}
@media (max-width: 720px) {
  .container {
    width: min(100% - .75rem, 1180px);
    padding-top: .75rem;
    padding-bottom: calc(6rem + env(safe-area-inset-bottom));
  }
  .card, .auth-card {
    border-radius: 16px;
    padding: .85rem;
  }
  .wide-form, .narrow {
    max-width: 100%;
  }
  .wizard-progress {
    margin-left: -.15rem;
    margin-right: -.15rem;
    padding-bottom: .75rem;
  }
  .step-pill {
    flex: 0 0 auto;
    padding: .55rem .7rem;
    font-size: .86rem;
  }
  .boat-button-grid {
    grid-template-columns: 1fr;
  }
  .choice-card {
    min-height: 3.7rem;
    padding: .85rem;
  }
  .choice-grid.two-up,
  .use-choice-grid,
  .segmented,
  .priority-picker {
    grid-template-columns: 1fr;
  }
  .wizard-actions {
    position: sticky;
    bottom: calc(4.45rem + env(safe-area-inset-bottom));
    margin-left: -.85rem;
    margin-right: -.85rem;
    padding: .7rem .85rem .2rem;
    border-radius: 18px 18px 0 0;
  }
  .section-title-row.sticky-section-head {
    position: static;
  }
  .ticket-row,
  .review-list > div,
  .fleet-edit-row {
    word-break: break-word;
  }
  .fleet-edit-grid {
    grid-template-columns: 1fr;
  }
  .photo-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* v11 final mobile/photo refinements */
input, select, textarea {
  font-weight: 500;
  line-height: 1.35;
}
input::placeholder, textarea::placeholder { font-weight: 400; color: #94a3b8; }
.choice-card, .choice-card span, .section-card strong, .review-list strong {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.2;
}
.choice-card.compact { min-height: 3.35rem; }
.review-list > div {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
}
.review-list .status-dot { grid-row: 1 / span 3; margin-top: .25rem; }
.review-list small, .review-list .mini-review { grid-column: 2; min-width: 0; }
.mini-review > div { overflow-wrap: anywhere; line-height: 1.35; }
.photo-open { padding: 0; border: 0; border-radius: 14px; overflow: hidden; background: transparent; width: 100%; display: block; }
.photo-open:hover img { transform: scale(1.01); }
.photo-open img { transition: transform .12s ease; display: block; }
.upload-drop {
  border: 1px dashed var(--line-strong);
  border-radius: 16px;
  padding: 1rem;
  background: var(--soft);
  cursor: pointer;
  display: grid;
  gap: .2rem;
  font-weight: 750;
}
.upload-drop small { color: var(--muted); font-weight: 500; }
.upload-drop input { margin-top: .6rem; background: #fff; }
.multi-preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: .65rem; }
.preview-tile { display: grid; gap: .25rem; }
.preview-tile img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; border: 1px solid var(--line); background: #fff; }
.preview-tile small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.image-viewer {
  border: 0;
  border-radius: 18px;
  width: min(920px, calc(100vw - 1.5rem));
  max-height: calc(100vh - 2rem);
  padding: .85rem;
  box-shadow: 0 28px 90px rgba(15,23,42,.42);
}
.image-viewer::backdrop { background: rgba(15,23,42,.6); }
.image-viewer-bar { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.image-viewer img { width: 100%; max-height: 70vh; object-fit: contain; background: #0f172a; border-radius: 14px; }
@media (max-width: 720px) {
  .review-list > div { padding: .85rem; }
  .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .image-viewer { width: calc(100vw - .75rem); padding: .6rem; }
  .image-viewer .button-row { flex-direction: column; align-items: stretch; }
  .image-viewer .button-row .button { width: 100%; }
  .choice-grid.three-up { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .choice-card.compact { padding: .65rem .45rem; font-size: .92rem; }
}
@media (max-width: 430px) {
  .choice-grid.three-up { grid-template-columns: 1fr; }
}
