/* ============================================================
   POC SCOPE OF WORK — gated document + form + print layout
   Token-aware: follows prefers-color-scheme + [data-theme].
   Framework-free.
   ============================================================ */
.sow-body{
  margin:0;background:var(--surface-2);color:var(--fg);
  font-family:var(--font-body);font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
*,*::before,*::after{box-sizing:border-box;}

/* ---------- LOGO THEME SWAP ---------- */
.sow-logo-wrap{display:inline-flex;align-items:center;flex:none;}
/* scoped (.sow-logo-wrap …) so it beats `.sow-bar__brand img{display:block}` etc.
   — otherwise BOTH the light and dark logo render at once */
.sow-logo-wrap .sow-logo-light{display:block;}
.sow-logo-wrap .sow-logo-dark{display:none;}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .sow-logo-wrap .sow-logo-light{display:none;}
  :root:not([data-theme="light"]) .sow-logo-wrap .sow-logo-dark{display:block;}
}
[data-theme="dark"] .sow-logo-wrap .sow-logo-light{display:none;}
[data-theme="dark"] .sow-logo-wrap .sow-logo-dark{display:block;}

/* ---------- LOGIN GATE ---------- */
.sow-gate{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;
  background:linear-gradient(160deg,var(--ink-800),var(--ink-900));
}
.sow-gate__card{
  width:min(400px,100%);background:var(--surface);border-radius:var(--r-xl);padding:34px 30px 30px;
  box-shadow:0 30px 70px -24px rgba(5,11,31,.65),0 0 0 1px var(--border);
  display:flex;flex-direction:column;
}
.sow-gate__logo-wrap{margin-bottom:18px;}
.sow-gate__logo-wrap img{height:30px;width:auto;}
.sow-gate__eyebrow{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);}
.sow-gate__title{font-family:var(--font-display);font-weight:700;font-size:1.3rem;line-height:1.2;color:var(--fg-strong);margin:6px 0 4px;}
.sow-gate__sub{font-size:.9rem;color:var(--fg-2);margin:0 0 18px;}
.sow-gate__lbl{font-size:.8rem;font-weight:600;color:var(--fg);margin:10px 0 5px;}
.sow-gate__in{
  font-family:var(--font-body);font-size:1rem;color:var(--fg);background:var(--surface-2);
  border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 14px;width:100%;
}
.sow-gate__in:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 4px var(--ring);}
.sow-gate__err{color:#c0392b;font-size:.82rem;margin:10px 0 0;}
.sow-gate__btn{margin-top:18px;width:100%;}

/* ---------- TOOLBAR ---------- */
.sow-bar{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .sow-bar{background:rgba(10,24,56,.92);}
}
[data-theme="dark"] .sow-bar{background:rgba(10,24,56,.92);}
.sow-bar__in{max-width:920px;margin:0 auto;padding:10px clamp(16px,4vw,28px);display:flex;align-items:center;gap:12px;}
.sow-bar__brand{display:flex;align-items:center;gap:10px;}
.sow-bar__brand img{height:21px;width:auto;display:block;}
.sow-bar__sep{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-muted);}
.sow-bar__pdf{margin-left:auto;}

/* ---------- DOCUMENT SHEET ---------- */
.sow-sheet{
  max-width:920px;margin:clamp(18px,3vw,34px) auto;padding:clamp(26px,5vw,56px);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);
  box-shadow:var(--shadow-lg);
}
.sow-doc__head{border-bottom:2px solid var(--accent);padding-bottom:18px;margin-bottom:24px;}
.sow-doc__brand{display:flex;align-items:center;gap:12px;}
.sow-doc__brand img{height:28px;width:auto;display:block;}
.sow-doc__brand-text{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--fg-muted);border-left:1px solid var(--border);padding-left:12px;}
.sow-doc__title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem);color:var(--fg-strong);margin:10px 0 4px;}
.sow-doc__sub{color:var(--fg-2);margin:0;font-size:.95rem;}

/* ---------- SECTION HEADINGS ---------- */
.sow-h{
  font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:var(--fg-strong);
  margin:34px 0 12px;padding-top:18px;border-top:1px solid var(--border);
  display:flex;align-items:center;gap:10px;
}
.sow-h__n{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.7em;height:1.7em;padding:0;
  border-radius:var(--r-xs);background:var(--accent);color:#fff;
  font-family:var(--font-mono);font-size:.72rem;font-weight:700;
  flex:none;line-height:1;text-align:center;
}
.sow-sub{font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--fg);margin:22px 0 8px;}
.sow-help{font-size:.86rem;color:var(--fg-muted);font-style:italic;margin:0 0 12px;}
.sow-p{margin:0 0 10px;color:var(--fg-2);}
.sow-ul{margin:0 0 12px;padding-left:20px;color:var(--fg-2);}
.sow-ul li{margin-bottom:5px;}

/* ---------- CALLOUTS ---------- */
.sow-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-sm);margin:14px 0;font-size:.88rem;line-height:1.5;}
.sow-note p{margin:0;}
.sow-note__i{flex:none;font-size:1.1rem;line-height:1.3;}
.sow-note--info{background:var(--signal-bg);border:1px solid var(--border-accent);color:var(--fg);}
.sow-note--info .sow-note__i{color:var(--accent);}
.sow-note--warn{background:rgba(224,138,43,.08);border:1px solid rgba(224,138,43,.28);color:var(--fg);}
.sow-note--warn .sow-note__i{color:#e08a2b;}

/* ---------- CHECKBOX GROUPS ---------- */
.sow-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 18px;margin:6px 0 12px;}
.sow-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.92rem;color:var(--fg);}
.sow-check--inline{display:inline-flex;margin-right:18px;}
.sow-check input{position:absolute;opacity:0;width:0;height:0;}
.sow-box{
  flex:none;width:18px;height:18px;margin-top:.15em;
  border:1.6px solid var(--border-strong);border-radius:5px;background:var(--surface-2);
  position:relative;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.sow-check input:checked + .sow-box{background:var(--accent);border-color:var(--accent);}
.sow-box::after{
  content:"";position:absolute;left:50%;top:46%;
  width:5px;height:9px;
  border:2px solid #fff;border-top:0;border-left:0;
  transform:translate(-50%,-50%) rotate(45deg);
  opacity:0;
}
.sow-check input:checked + .sow-box::after{opacity:1;}
.sow-check input:focus-visible + .sow-box{box-shadow:0 0 0 3px var(--ring);}
.sow-check__t{flex:1;padding-top:1px;}
.sow-inline{margin-left:6px;border:none;border-bottom:1px solid var(--border);background:transparent;font-family:var(--font-body);font-size:.9rem;color:var(--fg);min-width:120px;padding:0 2px;}
.sow-inline:focus{outline:none;border-bottom-color:var(--cyan);}
/* wider grid + per-row version field (players & devices in scope) */
.sow-checks--pv{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.sow-inline--ver{flex:none;min-width:80px;max-width:130px;}
/* "Other" rows: the label is clickable only on its own content; the write-in
   field is revealed (and focused) by JS when the box is ticked. */
.sow-other{grid-column:1 / -1;display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin:2px 0;}
.sow-other .sow-check{flex:none;}
.sow-other__field{flex:1;min-width:200px;}
.sow-other__field[hidden]{display:none;}
/* SDK group label inside the devices block */
.sow-grp{font-family:var(--font-mono);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:18px 0 8px;}
/* compact row of small numeric fields */
.sow-numrow{display:flex;flex-wrap:wrap;gap:14px 24px;margin:6px 0 4px;}
.sow-num{display:flex;flex-direction:column;gap:6px;}
.sow-num .sow-lbl{margin:0;}
.sow-in--num{flex:none;width:120px;min-width:0;}
/* bullet list inside a callout note */
.sow-note__list{margin:6px 0 0;padding-left:18px;}
.sow-note__list li{margin:3px 0;}

/* ---------- TEXT FIELDS ---------- */
.sow-fld{margin:8px 0 14px;}
.sow-lbl{display:block;font-family:var(--font-mono);font-weight:600;font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:6px;}
.sow-ta{
  width:100%;font-family:var(--font-body);font-size:.92rem;color:var(--fg);line-height:1.5;
  border:1px solid var(--border);border-radius:var(--r-xs);background:var(--surface-2);
  padding:9px 12px;resize:none;overflow:hidden;min-height:38px;
}
.sow-ta:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px var(--ring);}
.sow-fld--line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.sow-fld--line .sow-lbl{margin:0;}
.sow-in{
  flex:1;min-width:160px;font-family:var(--font-body);font-size:.92rem;color:var(--fg);
  border:1px solid var(--border);border-radius:var(--r-xs);background:var(--surface-2);padding:8px 12px;
}
.sow-in:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px var(--ring);}

/* ---------- TABLES ---------- */
.sow-meta,.sow-table{width:100%;border-collapse:collapse;margin:10px 0 16px;font-size:.9rem;}
.sow-meta th,.sow-meta td,
.sow-table th,.sow-table td{border:1px solid var(--border);padding:8px 11px;text-align:left;vertical-align:top;}
.sow-meta th,.sow-table th{background:var(--surface-2);color:var(--fg);font-weight:600;white-space:nowrap;}
.sow-table td em{color:var(--fg-muted);font-style:italic;}
.sow-cell{width:100%;border:none;background:transparent;font-family:var(--font-body);font-size:.9rem;color:var(--fg);padding:2px 0;}
.sow-cell:focus{outline:none;}
.sow-cell::placeholder,.sow-in::placeholder,.sow-ta::placeholder{color:var(--fg-muted);opacity:.6;}

/* ---------- SIGNATURES ---------- */
.sow-sigs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px;}
.sow-sig{border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px;}
.sow-sig__role{display:block;font-weight:700;color:var(--fg);font-size:.9rem;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border);}
.sow-sig__row{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:.86rem;color:var(--fg-2);}
.sow-sig__row span{flex:none;width:42px;}
.sow-sig__line{margin-top:14px;border-top:1px solid var(--border);padding-top:5px;font-size:.78rem;color:var(--fg-muted);}

/* ---------- approvers (no signatures — digital, collaborative) ---------- */
.sow-approvers{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}
.sow-appr{
  border:1px solid var(--border);border-radius:var(--r-md);padding:16px 18px;background:var(--surface-2);
  display:flex;flex-direction:column;gap:10px;
}
.sow-appr__side{
  align-self:flex-start;font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fg-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px 10px;
}
.sow-appr--qtc .sow-appr__side{color:var(--accent);background:var(--signal-bg);border-color:var(--border-accent);}
.sow-appr__role{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--fg-strong);margin-top:-2px;}
.sow-appr__f{display:flex;align-items:center;gap:10px;}
.sow-appr__f label{flex:none;width:42px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--fg-muted);}
.sow-appr__f .sow-cell{border-bottom:1px solid var(--border);padding:4px 2px;}
.sow-appr__f .sow-cell:focus{border-bottom-color:var(--cyan);}
@media (max-width:560px){.sow-approvers{grid-template-columns:1fr;}}

/* ---------- ATTESTATION ---------- */
.sow-attest{margin-top:34px;padding-top:22px;border-top:2px solid var(--accent);}
.sow-attest__check{font-size:.95rem;color:var(--fg);align-items:flex-start;}
.sow-attest__by{display:flex;gap:18px;flex-wrap:wrap;margin:16px 0 6px;}
.sow-attest__by .sow-fld{margin:0;flex:1;min-width:200px;}
.sow-attest__pdf{margin-top:14px;}
.sow-attest__pdf[disabled],.sow-bar__pdf[disabled]{opacity:.5;cursor:not-allowed;}
.sow-attest__hint{font-size:.8rem;color:var(--fg-muted);margin:10px 0 0;}

@media (max-width:560px){
  .sow-sigs{grid-template-columns:1fr;}
}

/* ============================================================
   PRINT — force white sheet + blue logo; no chrome
   ============================================================ */
@media print{
  @page{margin:16mm 14mm;}
  /* Reset tokens to light */
  :root{
    --surface:#fff !important;
    --surface-2:#f6f8fb !important;
    --fg:#0a1330 !important;
    --fg-2:#46506b !important;
    --fg-strong:#050b1f !important;
    --fg-muted:#6b7a93 !important;
    --accent:#116BF8 !important;
    --border:#dbe5f2 !important;
    --border-strong:#c2ccd9 !important;
    --signal-bg:#eef6ff !important;
    --border-accent:rgba(17,107,248,.32) !important;
  }
  .sow-body{background:#fff !important;}
  /* Always show blue logo in print */
  .sow-logo-dark{display:none !important;}
  .sow-logo-light{display:block !important;}
  /* Hide UI chrome */
  .sow-gate,.sow-bar,.sow-attest__pdf,.sow-attest__hint{display:none !important;}
  .sow-sheet{max-width:none;margin:0;padding:0;border:none;box-shadow:none;border-radius:0;}
  /* Page-break hints */
  .sow-h,.sow-sub,.sow-doc__head{break-after:avoid;}
  .sow-table,.sow-meta,.sow-sig,.sow-appr,.sow-note,.sow-fld,.sow-checks,.sow-attest{break-inside:avoid;}
  /* always print the blue (light) logo on white paper */
  .sow-logo-wrap .sow-logo-light{display:block !important;}
  .sow-logo-wrap .sow-logo-dark{display:none !important;}
  /* Borderless form fields */
  .sow-ta,.sow-in,.sow-cell,.sow-inline{
    border:none !important;border-bottom:1px solid #c7d3e4 !important;background:transparent !important;
    box-shadow:none !important;border-radius:0 !important;
  }
  .sow-ta{overflow:visible;}
  /* Checkbox print fidelity */
  .sow-box{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  /* Warn callout: print-safe amber */
  .sow-note--warn{background:#fff8f0 !important;border-color:#f0c080 !important;color:#7a4a10 !important;}
}
