/* SHIPS workstream (2026-10 redesign): ship directory (/ships/) and ship pages (/ships/<slug>/).
   Loaded after site.css. Navy opening, .paper for the profile, teal controls, gold only for the main action. */

.sd-main [hidden], .ship-main [hidden] { display: none !important; }

/* ---------- Smoking badges (shared) ---------- */
.smk { display: inline-flex; align-items: center; gap: 6px; font-size: .86rem; font-weight: 650; line-height: 1.3; padding: 3px 9px; border-radius: 999px; border: 1px solid currentColor; }
.smk::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }
.smk-smokefree { color: #7fe0d2; }
.smk-mixed { color: #a8d8f0; }
.smk-smoking { color: #f2b27c; }
.smk-unknown { color: #b7c3d3; border-style: dashed; }
.paper .smk-smokefree, .sd-card .smk-smokefree { color: #0d6b60; }
.paper .smk-mixed, .sd-card .smk-mixed { color: #1f5f8b; }
.paper .smk-smoking, .sd-card .smk-smoking { color: #9a4a0f; }
.paper .smk-unknown, .sd-card .smk-unknown { color: #5d6b7e; }
.np { color: var(--warn); font-style: italic; }
.paper .np { color: #8a4b00; }

/* ---------- Ship page: navy opening ---------- */
.ship-hero { padding-bottom: 40px; }
.ship-hero h1 { margin-top: 2px; }
.ship-head { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ship-intro { min-width: 0; }
.ship-status { margin-top: 12px; font-size: .95rem; color: var(--warn); max-width: 60ch; }
.ship-nocasino { margin-top: 18px; font-size: 1.1rem; color: var(--muted); }
.ship-sum { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
.sum-item { background: rgba(7,26,51,.5); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; min-width: 0; }
.sum-item.sum-wide { grid-column: 1 / -1; }
.sum-item dt { font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--dim); margin-bottom: 4px; font-weight: 600; }
.sum-item dd > b { font-size: 1.06rem; font-weight: 650; }
.sum-sub { display: block; margin-top: 6px; font-size: .9rem; color: var(--muted); line-height: 1.45; }
.sum-link { display: inline-block; padding: 10px 0; margin: -6px 0 -10px; font-size: .9rem; color: var(--teal); white-space: nowrap; }
.sum-sub a, .sum-missing a { color: var(--teal); display: inline-block; padding: 8px 0; margin: -8px 0; }
.sum-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.sum-tags .tag { font-size: .84rem; padding: 3px 10px; }
.sum-games { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 8px; }
.sum-games li { display: inline-flex; align-items: baseline; gap: 6px; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; }
.sum-games a { color: var(--ink); font-weight: 650; text-decoration-color: rgba(233,238,245,.35); }
.sum-games a:hover { color: #fff; }
.sum-games small { color: var(--dim); font-size: .8rem; }
.sum-games .is-member small { color: var(--teal); }
.sum-figs { margin-top: 12px; color: var(--muted); font-size: .95rem; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.sum-figs b { color: var(--ink); }
.sum-figs .provenance a { color: var(--teal); }
.sum-missing { margin-top: 10px; font-size: .9rem; color: var(--dim); }
.sum-missing a { color: var(--teal); }
.ship-actions { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.ship-visual { min-width: 0; }
.ship-photo { aspect-ratio: 4 / 3; box-shadow: 0 20px 50px rgba(0,0,0,.35); }
.ship-photo .ph-kind, .sd-ph .ph-kind { position: absolute; top: 10px; left: 10px; z-index: 1; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; background: rgba(3,12,26,.75); color: #fff; }
.ship-type { aspect-ratio: 4 / 3; border-radius: var(--radius); display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; background: radial-gradient(120% 90% at 85% 10%, rgba(60,194,176,.18), transparent 60%), linear-gradient(160deg, #163a68, #0a2140 70%); border: 1px solid var(--line); overflow: hidden; }
.ship-type-line { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); font-weight: 700; }
.ship-type-name { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.7rem, 4vw, 2.6rem); line-height: 1.08; margin-top: 6px; color: #fff; overflow-wrap: anywhere; }
.ship-type-note { margin-top: 14px; font-size: .84rem; color: var(--dim); }
@media (max-width: 860px) {
  .ship-head { grid-template-columns: 1fr; gap: 22px; }
  .ship-visual { order: 2; }
  .ship-photo, .ship-type { aspect-ratio: 16 / 9; }
  .ship-type { display: none; }
}
@media (max-width: 560px) {
  .ship-sum { grid-template-columns: 1fr; }
  .ship-hero h1 { font-size: 2rem; }
  .ship-actions .btn { flex: 1 1 auto; text-align: center; }
}

/* ---------- Ship page: profile (paper) ---------- */
.ship-profile .section-head { margin-bottom: 22px; }
.ship-profile .card h3 { font-size: 1.15rem; }
.ship-profile .provenance { margin-top: 8px; color: var(--paper-muted); font-size: .88rem; line-height: 1.45; }
.ship-profile .provenance .src-kind { color: var(--teal-ink); }
.ship-notes { margin-top: 16px; }
.ship-profile .fstats { font-size: .97rem; }
.ship-profile .fstats dt { color: var(--paper-muted); }
.ship-sources .sources { color: var(--paper-muted); }
.ship-sources .sources a { color: #0d5c8c; }
.ship-sources .checked { color: var(--paper-muted); }
.ship-related .line-card .go { color: var(--teal); }

/* Deck overview */
.deckmap { margin: 0 0 22px; background: #fff; border: 1px solid var(--paper-line); border-radius: var(--radius); padding: 18px; }
.deckmap-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; align-items: baseline; }
.deckmap-head h3 { font-size: 1.15rem; }
.deckmap-warn { font-size: .88rem; color: #8a4b00; }
.dm-fig { position: relative; margin-top: 10px; max-width: 760px; }
.dm-svg { display: block; width: 100%; height: auto; }
.dm-hull { fill: #dfe6ef; stroke: #0b2545; stroke-width: 2; }
.dm-super { fill: #eef2f7; stroke: #0b2545; stroke-width: 1.5; }
.dm-funnel { fill: #0b2545; }
.dm-lines line { stroke: rgba(11,37,69,.16); stroke-width: 1; }
.dm-band { fill: rgba(13,107,96,.1); stroke: #0d6b60; stroke-width: 1.5; stroke-dasharray: 5 3; }
.dm-deck { paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; font: 700 12px -apple-system, "Segoe UI", Roboto, Arial, sans-serif; fill: #0d6b60; }
.dm-area { stroke: #0b2545; stroke-width: 1.5; transition: stroke-width var(--t) var(--ease); }
.dm-area.is-on { stroke-width: 4; }
.dm-num { fill: #0b2545; }
.dm-numt { font: 700 14px -apple-system, "Segoe UI", Roboto, Arial, sans-serif; fill: #fff; }
.dm-water { fill: none; stroke: #3d7fb8; stroke-width: 2; }
.dm-end { font: 600 12px -apple-system, "Segoe UI", Roboto, Arial, sans-serif; fill: #4a5568; }
.dm-hit { position: absolute; transform: translateY(-50%); height: 44px; background: transparent; border: 0; cursor: pointer; border-radius: 8px; }
.dm-hit:hover { background: rgba(13,107,96,.08); }
.dm-legend { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; margin-top: 12px; }
.dm-key { display: flex; gap: 10px; align-items: flex-start; width: 100%; min-height: 44px; text-align: left; font: inherit; color: var(--paper-ink); background: var(--paper); border: 1px solid var(--paper-line); border-radius: 12px; padding: 10px 12px; cursor: pointer; }
.dm-key:hover { border-color: rgba(13,107,96,.5); }
.dm-key[aria-pressed="true"] { border-color: #0d6b60; box-shadow: inset 0 0 0 1px #0d6b60; background: #eaf6f4; }
.dm-key b { display: block; font-size: .98rem; }
.dm-where, .dm-smk { display: block; font-size: .9rem; color: var(--paper-muted); }
.dm-smk { font-weight: 600; color: var(--paper-ink); }
.dm-swatch { width: 16px; height: 16px; border-radius: 4px; flex: none; margin-top: 4px; border: 1px solid #0b2545; }
.dm-smoking { background: #d9824a; } .dm-nonsmoking { background: #3cc2b0; } .dm-unknown { background: #9fb0c6; }
.dm-mixed { background: repeating-linear-gradient(45deg, #3cc2b0 0 4px, #d9824a 4px 8px); }
.dm-quote { font-size: .88rem; color: var(--paper-muted); margin: 6px 4px 0; }
.dm-detail { margin-top: 10px; padding: 10px 14px; border-left: 4px solid #0d6b60; background: #eaf6f4; border-radius: 0 10px 10px 0; font-size: .95rem; }
.deckmap figcaption { margin-top: 10px; color: var(--paper-muted); }

/* Reported machines */
.ship-reported .section-head { margin-bottom: 20px; }
.rep-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 12px; }
.rep-card { background: #fff; border: 1px solid var(--paper-line); border-radius: 14px; padding: 14px 16px; min-width: 0; }
.rep-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 10px; }
.rep-name { font-weight: 700; font-size: 1.08rem; }
.rep-meta { font-size: .86rem; color: var(--paper-muted); }
.rep-src { list-style: none; margin-top: 8px; display: grid; gap: 6px; font-size: .9rem; }
.rep-src li { overflow-wrap: anywhere; }
.rep-src .src-kind, .rep-members .src-kind { font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 1px 6px; border-radius: 5px; border: 1px solid currentColor; color: var(--teal-ink); }
.rep-date { color: var(--paper-muted); white-space: nowrap; }
.rep-none { font-size: 1rem; color: var(--paper-muted); }
.rep-members { margin-top: 16px; }
.rep-members h3 { font-size: 1.05rem; margin-bottom: 8px; }
.rep-members ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.rep-members li { background: #fff; border: 1px solid var(--paper-line); border-radius: 10px; padding: 6px 12px; font-size: .92rem; }
.rep-invite { margin-top: 16px; background: #fff; border: 1px dashed rgba(13,107,96,.45); border-radius: 12px; padding: 12px 16px; font-size: .95rem; max-width: 760px; }
.ship-reported .note { color: var(--paper-muted); }

/* ---------- Directory (/ships/) ---------- */
.sd-hero { padding: 40px 0 28px; }
.sd-hero h1 { font-size: clamp(2rem, 5vw, 3.2rem); }
.sd-hero .lede { margin-top: 12px; }
.sd-stats { margin-top: 10px; font-size: .92rem; color: var(--dim); }
.sd-stats b { color: var(--ink); font-weight: 650; }
.sd-filters { margin-top: 22px; display: grid; gap: 14px; }
.sd-row { display: grid; grid-template-columns: 2fr 1.3fr 1.6fr 1.3fr; gap: 12px; align-items: end; }
.sd-field label, .sd-legend { display: block; font-size: .84rem; font-weight: 600; color: var(--muted); margin-bottom: 5px; }
.sd-field input, .sd-field select { width: 100%; min-height: 46px; font: inherit; font-size: 1rem; color: var(--ink); background: rgba(7,26,51,.65); border: 1px solid rgba(60,194,176,.35); border-radius: 10px; padding: 9px 12px; }
.sd-field select { appearance: none; -webkit-appearance: none; padding-right: 34px; background-image: linear-gradient(45deg, transparent 50%, var(--teal) 50%), linear-gradient(135deg, var(--teal) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.sd-field input:focus, .sd-field select:focus { border-color: var(--teal); outline: none; box-shadow: 0 0 0 3px rgba(60,194,176,.3); }
.sd-field.is-set input, .sd-field.is-set select { border-color: var(--teal); background-color: rgba(60,194,176,.12); }
.sd-field.is-set label::after { content: " \2713"; color: var(--teal); }
.sd-smoke { border: 0; min-width: 0; }
.sd-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
.sd-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px; border-radius: 999px; font: inherit; font-size: .94rem; cursor: pointer; color: var(--ink); background: rgba(7,26,51,.55); border: 1px solid rgba(60,194,176,.35); }
.sd-toggle:hover { border-color: var(--teal); }
.sd-toggle .dot { width: 9px; height: 9px; border-radius: 50%; }
.sd-toggle[aria-pressed="true"] { background: var(--teal); border-color: var(--teal); color: #04221e; font-weight: 650; }
.sd-toggle[aria-pressed="true"]::before { content: "\2713"; font-weight: 800; }
.sd-toggle[aria-pressed="true"] .dot { display: none; }
.sd-toggle small { opacity: .8; font-size: .82rem; }
.dot-smokefree { background: #7fe0d2; } .dot-mixed { background: #a8d8f0; } .dot-smoking { background: #f2b27c; } .dot-unknown { background: transparent; border: 1.5px dashed #b7c3d3; }
.sd-more { border-top: 1px solid var(--line); padding-top: 4px; }
.sd-more summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; color: var(--teal); font-weight: 600; font-size: .95rem; list-style: none; }
.sd-more summary::-webkit-details-marker { display: none; }
.sd-more summary::before { content: "+"; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; border: 1px solid rgba(60,194,176,.5); }
.sd-more[open] summary::before { content: "\2212"; }
.sd-more-in { display: flex; flex-wrap: wrap; gap: 4px 20px; padding: 2px 0 6px; }
.sd-more label.check { display: inline-flex; gap: 10px; color: var(--ink); font-size: .95rem; cursor: pointer; }
.sd-more input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--teal); }

.sd-results { padding: 26px 0 64px; }
.sd-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 14px; }
.sd-count { font-size: 1.05rem; color: var(--paper-ink); margin: 0; }
.sd-count b { font-size: 1.5rem; font-weight: 750; }
.sd-bar .fchips { flex: 1 1 260px; }
.sd-reset { min-height: 40px; padding: 6px 14px; border-radius: 10px; font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer; color: var(--teal-ink); background: transparent; border: 1px solid rgba(13,107,96,.4); }
.sd-reset:hover { background: rgba(13,107,96,.08); }
.sd-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-left: auto; }
.sd-view { display: inline-flex; border: 1px solid rgba(13,107,96,.4); border-radius: 10px; overflow: hidden; }
.sd-view button { min-height: 44px; padding: 6px 14px; font: inherit; font-size: .94rem; font-weight: 600; cursor: pointer; border: 0; background: #fff; color: var(--paper-ink); }
.sd-view button + button { border-left: 1px solid rgba(13,107,96,.4); }
.sd-view button[aria-pressed="true"] { background: var(--teal-ink); color: #fff; }
.sd-sort { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--paper-muted); }
.sd-sort select { min-height: 44px; font: inherit; font-size: .94rem; border-radius: 10px; border: 1px solid var(--paper-line); background: #fff; color: var(--paper-ink); padding: 6px 10px; }
.sd-gamenote { margin: -4px 0 14px; font-size: .95rem; color: var(--paper-ink); background: #eaf6f4; border-left: 4px solid var(--teal-ink); padding: 10px 14px; border-radius: 0 10px 10px 0; }
.sd-empty { padding: 26px; text-align: center; background: #fff; border: 1px dashed var(--paper-line); border-radius: 14px; color: var(--paper-muted); }
.sd-empty button { margin-left: 8px; }

.sd-cards { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.sd-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--paper-line); border-radius: 14px; overflow: hidden; color: var(--paper-ink); box-shadow: 0 1px 2px rgba(11,37,69,.05); }
.sd-card:hover { border-color: rgba(13,107,96,.55); box-shadow: 0 6px 18px rgba(11,37,69,.1); }
.sd-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; color: inherit; }
.paper .sd-link, .paper .sd-link:hover { color: inherit; }
.sd-ph { position: relative; aspect-ratio: 16 / 9; background: var(--sea); overflow: hidden; }
.sd-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sd-type { display: flex; flex-direction: column; justify-content: flex-end; min-height: 92px; padding: 14px 14px 12px; background: radial-gradient(120% 90% at 85% 10%, rgba(60,194,176,.2), transparent 60%), linear-gradient(160deg, #163a68, #0a2140 70%); color: #fff; }
.sd-type span { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); font-weight: 700; }
.sd-type h3 { font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; line-height: 1.15; font-weight: 700; margin-top: 4px; color: #fff; }
.sd-type .sd-flag { color: #f3d38c; border-color: rgba(243,211,140,.5); }
.sd-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.sd-body h3 { font-size: 1.08rem; line-height: 1.25; }
.sd-line { font-size: .86rem; color: var(--paper-muted); margin: 0; }
.sd-facts { list-style: none; display: grid; gap: 4px; font-size: .9rem; margin-top: 2px; }
.sd-facts li { display: flex; gap: 8px; align-items: baseline; }
.sd-facts li > b { flex: none; width: 5.6em; font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; color: var(--paper-muted); font-weight: 650; }
.sd-facts .smk { font-size: .8rem; padding: 1px 8px; }
.sd-latest { margin-top: auto; padding-top: 8px; border-top: 1px solid var(--paper-line); font-size: .86rem; color: var(--paper-muted); }
.sd-latest b { color: var(--paper-ink); }
.sd-latest .sd-gamehit { display: block; color: var(--teal-ink); font-weight: 650; }
.sd-flag { display: inline-block; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 1px 6px; border-radius: 5px; color: #8a4b00; border: 1px solid rgba(138,75,0,.4); margin-left: 4px; vertical-align: 2px; }
.sd-credit { font-size: .74rem; color: var(--paper-muted); padding: 0 14px 10px; margin: 0; }
.sd-credit a { color: inherit; }
.sd-table .shiptable td, .sd-table .shiptable th { white-space: normal; padding: 10px 10px; }
.sd-table .shiptable tbody th { min-width: 150px; }
.sd-table .shiptable td.num { white-space: nowrap; }
.sd-table .shiptable thead th { white-space: nowrap; }
.sd-table .shiptable thead th { font-size: .8rem; }
.sd-table .shiptable td.wrap-ok { white-space: normal; min-width: 150px; }
.sd-table .smk { font-size: .78rem; padding: 1px 8px; white-space: nowrap; }
.sd-table .shiptable thead button { min-height: 36px; }
.sd-facts-why { margin-top: 26px; }
[data-view="cards"] #sd-table, [data-view="table"] #sd-cards { display: none; }
@media (max-width: 900px) {
  .sd-row { grid-template-columns: 1fr 1fr; }
  .sd-row .sd-q { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .sd-hero { padding: 22px 0 18px; }
  .sd-hero .lede { font-size: 1rem; }
  .sd-row { gap: 10px; }
  .sd-toggle { padding: 6px 12px; font-size: .9rem; }
  .sd-tools { margin-left: 0; width: 100%; justify-content: space-between; flex-wrap: nowrap; gap: 8px; }
  .sd-bar .fchips { flex: 0 1 auto; }
  .sd-sort-l { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sd-sort select { max-width: 168px; }
  .sd-view button { padding: 6px 11px; }
  .sd-results { padding-top: 18px; }
}
.ship-photo figcaption a, .sd-credit a { display: inline-block; padding: 8px 0; margin: -8px 0; }
