/* Bluesky-specific styles.
   styles.css (the production platform stylesheet) is loaded first and unchanged — everything
   below is additive, for the screens that do not exist in the maintenance product: the tank
   plan, the certification chain, the custody manifest and the training matrix. */

/* ---- header mark (no client logo is used anywhere) ---- */
.bs-mark{width:44px;height:44px;border-radius:9px;background:linear-gradient(135deg,var(--tx-navy),var(--tx-teal));
  color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;letter-spacing:.5px}
.bs-demo-chip{margin-left:8px;font-size:10px;font-weight:800;letter-spacing:.6px;padding:2px 8px;border-radius:999px;
  background:#FEF3C7;color:#92400E;border:1px solid #FDE68A;white-space:nowrap}

/* ---- group menu (mirrors the platform's nav menus) ---- */
.grp-menu{position:absolute;top:100%;left:0;z-index:40;background:var(--card);border:1px solid var(--border);
  border-radius:0 0 8px 8px;box-shadow:0 6px 18px rgba(15,23,42,.12);min-width:230px;padding:4px}
.grp-menu button{display:block;width:100%;text-align:left;padding:9px 12px;background:none;border:0;font-family:inherit;
  font-size:13px;font-weight:600;color:var(--tx-slate);cursor:pointer;border-radius:6px}
.grp-menu button:hover{background:var(--tx-sand);color:var(--tx-navy)}
.grp-menu button.on{background:var(--tx-sand);color:var(--tx-navy)}

/* ---- freshness stamp ---- */
.bs-fresh{margin-left:10px;font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}

/* ---- progress bar ---- */
.bs-bar{background:#EEF2F7;border-radius:5px;height:9px;overflow:hidden;position:relative}
.bs-bar>i{display:block;height:100%;border-radius:5px;transition:width .3s ease}

/* ---- tank plan ---- */
.bs-plan-wrap{width:100%;overflow-x:auto;background:#FCFDFE;border:1px solid var(--border);border-radius:10px}
.bs-plan{display:block;width:100%;min-width:760px;height:auto}
.bs-tank:hover circle:first-of-type{filter:brightness(.96)}
.bs-plan-tid{font-size:13px;font-weight:800;text-anchor:middle;font-family:'Source Sans 3',sans-serif}
.bs-plan-zone{font-size:11px;font-weight:700;fill:#94A3B8;letter-spacing:.6px;text-transform:uppercase}
.bs-plan-flag{font-size:9.5px;font-weight:700;fill:#7C3AED;text-anchor:middle;letter-spacing:.3px}
.bs-plan-bid{font-size:12px;font-weight:800;fill:var(--tx-navy);text-anchor:middle}
.bs-plan-bst{font-size:10px;fill:var(--muted);text-anchor:middle}

.bs-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.bs-legend-item{display:flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--border);border-radius:999px;
  background:#fff;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;color:var(--tx-slate)}
.bs-legend-item:hover{border-color:var(--tx-navy)}
.bs-legend-item.on{border-color:var(--tx-navy);background:var(--tx-sand)}
.bs-swatch{width:13px;height:13px;border-radius:4px;border:2px solid;display:inline-block;flex:0 0 auto}
.bs-legend-n{font-weight:800;font-variant-numeric:tabular-nums}

/* ---- delay banner ---- */
.bs-delay{margin-bottom:20px;border-left:4px solid var(--warn)}

/* ---- state timeline ---- */
.bs-timeline{display:flex;gap:0;align-items:flex-start;overflow-x:auto;padding-top:6px}
.bs-tl-step{flex:1;min-width:96px;text-align:center;position:relative}
.bs-tl-step:not(:last-child):after{content:'';position:absolute;top:8px;left:50%;width:100%;height:2px;background:#E2E8F0}
.bs-tl-step.past:not(:last-child):after,.bs-tl-step.now:not(:last-child):after{background:#CBD5E1}
.bs-tl-dot{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #CBD5E1;margin:0 auto 8px;position:relative;z-index:1}
.bs-tl-step.now .bs-tl-dot{box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.bs-tl-label{font-size:11.5px;font-weight:600;color:var(--muted);padding:0 4px}
.bs-tl-step.past .bs-tl-label,.bs-tl-step.now .bs-tl-label{color:var(--tx-charcoal)}
.bs-tl-step.now .bs-tl-label{font-weight:800;color:var(--tx-navy)}

/* ---- three-signature certification chain ---- */
.bs-chain{list-style:none;margin:0;padding:0}
.bs-chain-step{display:flex;gap:12px;padding:0 0 18px;position:relative}
.bs-chain-step:not(:last-child):before{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:#E2E8F0}
.bs-chain-step.done:not(:last-child):before{background:#BBF7D0}
.bs-chain-mark{width:28px;height:28px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:13px;background:#F1F5F9;color:#94A3B8;border:2px solid #E2E8F0;z-index:1}
.bs-chain-step.done .bs-chain-mark{background:#DCFCE7;color:#15803D;border-color:#86EFAC}
.bs-chain-title{font-size:13.5px;font-weight:700;color:var(--tx-navy)}
.bs-chain-who{font-size:12.5px;color:var(--tx-slate);margin-top:2px}
.bs-chain-who.pending{color:#92400E;font-style:italic}
.bs-chain-line{font-size:12px;color:var(--muted);margin-top:3px;display:flex;gap:8px}
.bs-chain-line>span{font-weight:700;color:var(--tx-slate);min-width:132px;flex:0 0 auto}
.bs-tick{color:var(--ok);font-weight:700;font-size:12.5px;white-space:nowrap}
.bs-pending{color:#92400E;font-weight:600;font-size:12.5px;font-style:italic}

/* ---- photos (indicative placeholders) ---- */
.bs-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.bs-photo{margin:0}
.bs-photo-img{aspect-ratio:16/10;border-radius:8px;border:1px solid var(--border);display:flex;align-items:center;
  justify-content:center;font-size:30px;color:rgba(255,255,255,.75)}
.bs-photo figcaption{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}

/* ---- custody manifest ---- */
.bs-manifest{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}
.bs-manifest-qr{flex:0 0 auto}
.bs-qr{background:#fff;padding:7px;border:1px solid var(--border);border-radius:8px;line-height:0}
.bs-qr svg{display:block}
.bs-qr-fallback{font-family:'JetBrains Mono',monospace;font-size:11px;padding:12px;border:1px dashed var(--border);border-radius:8px}
.bs-mrow{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid #F1F5F9;font-size:13px}
.bs-mrow>span{width:120px;flex:0 0 auto;color:var(--muted);font-weight:700}
.bs-sub{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:700;margin:20px 0 8px}

/* ---- segmented control ---- */
.jb-seg{display:inline-flex;background:#EEF2F7;border-radius:9px;padding:3px;gap:2px;flex-wrap:wrap}
.jb-seg button{border:0;background:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--tx-slate);
  padding:7px 14px;border-radius:7px;cursor:pointer}
.jb-seg button.on{background:var(--tx-navy);color:#fff}

/* ---- training matrix ---- */
.bs-matrix-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:8px}
.bs-matrix{min-width:900px}
.bs-matrix th.bs-vert{height:132px;vertical-align:bottom;padding:6px 2px;width:34px}
.bs-matrix th.bs-vert>span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:11px;
  text-transform:none;letter-spacing:0;font-weight:600}
.bs-matrix .bs-sticky{position:sticky;left:0;background:#fff;z-index:1}
.bs-matrix thead .bs-sticky{background:#FAFAFA}
.bs-cell{text-align:center;font-weight:800;font-size:13px}
.bs-ok{color:var(--ok);background:#F0FDF4}
.bs-soon{color:#B45309;background:#FFFBEB}
.bs-exp{color:var(--alert);background:#FEF2F2}
.bs-miss{color:#94A3B8;background:#F8FAFC}

/* ---- key / legend rows ---- */
.bs-key{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);font-weight:600;margin-top:8px}
.bs-key span{display:flex;align-items:center;gap:6px}
.bs-key i{width:14px;height:4px;border-radius:2px;display:inline-block}
.bs-key i.bs-ok{background:var(--ok)}
.bs-key i.bs-soon{background:#B45309}
.bs-key i.bs-exp{background:var(--alert)}
.bs-key i.bs-miss{background:#94A3B8}

/* ---- S-curve ---- */
.bs-scurve{width:100%;max-width:760px;height:auto;display:block}
.bs-ax{font-size:10px;fill:var(--muted);font-family:'Source Sans 3',sans-serif}

/* ---- stage bars (piping / buildings) ---- */
.bs-stagebar{display:flex;gap:3px;align-items:flex-start}
.bs-stage{flex:1;min-width:0;text-align:center}
.bs-stage>i{display:block;height:6px;border-radius:3px;background:#E2E8F0;margin-bottom:4px}
.bs-stage.past>i{background:#86EFAC}
.bs-stage.now>i{background:var(--tx-navy)}
.bs-stage>em{font-size:9.5px;font-style:normal;color:#CBD5E1;font-weight:600;display:block;line-height:1.2}
.bs-stage.past>em{color:var(--muted)}
.bs-stage.now>em{color:var(--tx-navy);font-weight:800}

/* ---- supervisor approval card ---- */
.bs-approve{border:1px solid var(--border);border-radius:9px;overflow:hidden;margin-top:12px}
.bs-approve-head{background:var(--tx-sand);padding:9px 12px;font-weight:700;font-size:12.5px;color:var(--tx-navy)}
.bs-approve-body{padding:12px;font-size:12.5px;color:var(--tx-slate);display:grid;gap:6px}
.bs-approve-foot{padding:9px 12px;border-top:1px solid var(--border);background:#FCFDFE}

.bs-list{margin:0;padding-left:18px;font-size:13px;color:var(--tx-slate)}
.bs-list li{margin-bottom:9px;line-height:1.5}

/* ---- persistent demonstration watermark ---- */
.bs-watermark{position:sticky;bottom:0;z-index:50;background:#0F1E3D;color:#C7D3E6;
  padding:9px 28px;display:flex;gap:18px;align-items:center;font-size:11.5px;line-height:1.45;
  border-top:3px solid var(--warn);box-shadow:0 -2px 10px rgba(0,0,0,.18)}
.bs-watermark b{color:#FDE68A}
.bs-watermark-r{margin-left:auto;flex:0 0 auto;font-weight:700;color:#94A3B8;white-space:nowrap}
@media(max-width:820px){.bs-watermark{flex-direction:column;align-items:flex-start;gap:4px}.bs-watermark-r{margin-left:0}}

/* ---- print: keep the watermark on every page of a PDF export ---- */
@media print{
  .tabs,.btn,.filter{display:none !important}
  .bs-watermark{position:fixed;bottom:0;left:0;right:0}
  .card{break-inside:avoid}
}
