/*!
 * PHASE 6 · Slice 3 — Steps 4/5 tool skin, on LBIC Design System v1 tokens.
 * Same DOM/classes (no JS change). When opened in project context the shared frame supplies the
 * header + rail; the tool's own header is hidden to avoid a duplicate title.
 */
.lbic-tw45{ font-family:var(--lbic-sans); color:var(--lbic-ink); max-width:var(--lbic-maxw); margin:0 auto; padding:8px 24px 0; }
.lbic-tw45 *{ box-sizing:border-box; }

.tw45-head{ margin:6px 0 18px; }
.tw45-eyebrow{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--lbic-primary); font-weight:700; }
.tw45-title{ font-family:var(--lbic-serif); font-weight:500; font-size:1.7rem; margin:.2em 0 0; color:var(--lbic-ink); }
body.lbic-tw-framed .tw45-head{ display:none; }

.tw45-form{ display:block; }
.tw45-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:560px){ .tw45-grid{ grid-template-columns:1fr; } }

/* sections — unboxed, hairline headings (not a box around everything) */
.tw45-sec{ margin-bottom:26px; }
.tw45-sec__h{ font-family:var(--lbic-sans); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--lbic-ink-faint); margin:0 0 14px; padding-bottom:8px; border-bottom:1px solid var(--lbic-line); }
/* private internal-pricing — a restrained tinted panel so it's clearly not buyer-facing */
.tw45-sec--private{ background:var(--lbic-surface); border:1px solid var(--lbic-line); border-left:3px solid var(--lbic-warn);
  border-radius:var(--lbic-r); padding:18px 20px; }
.tw45-sec--private .tw45-sec__h{ color:var(--lbic-warn); border-bottom-color:var(--lbic-warn-line); }

.tw45-field{ display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.tw45-flabel{ font-size:.8rem; color:var(--lbic-ink-soft); font-weight:600; }
.tw45-input{ padding:10px 12px; border:1px solid var(--lbic-line-strong); border-radius:var(--lbic-r-sm); font-size:.94rem;
  font-family:var(--lbic-sans); color:var(--lbic-ink); background:var(--lbic-surface); width:100%; }
.tw45-input:focus{ outline:none; box-shadow:var(--lbic-focus); border-color:var(--lbic-primary); }

.tw45-preview{ margin-top:6px; font-size:.86rem; color:var(--lbic-ink-soft); }
.tw45-preview b{ color:var(--lbic-ink); }
.tw45-priv-tag{ display:inline-block; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  color:var(--lbic-warn); background:var(--lbic-warn-bg); border:1px solid var(--lbic-warn-line); border-radius:var(--lbic-r-pill); padding:1px 8px; margin-left:6px; }

.tw45-actions{ margin-top:16px; display:flex; gap:10px; }
.tw45-btn{ font-family:var(--lbic-sans); font-weight:700; font-size:.92rem; border-radius:var(--lbic-r-sm); padding:11px 18px;
  border:1px solid transparent; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
.tw45-btn--primary{ background:var(--lbic-primary); color:#fff; }
.tw45-btn--primary:hover{ background:var(--lbic-primary-ink); }
.tw45-btn--ghost{ background:transparent; color:var(--lbic-ink-soft); }
.tw45-btn--ghost:hover{ background:var(--lbic-surface-2); color:var(--lbic-ink); }
.tw45-btn[disabled]{ opacity:.55; cursor:default; }
.tw45-btn:focus-visible{ outline:none; box-shadow:var(--lbic-focus); }
.tw45-doclink:focus-visible{ outline:none; box-shadow:var(--lbic-focus); }

.tw45-note{ font-size:.84rem; color:var(--lbic-ink-soft); background:var(--lbic-surface-2); border:1px solid var(--lbic-line);
  border-radius:var(--lbic-r-sm); padding:11px 13px; margin:10px 0; }
.tw45-muted{ color:var(--lbic-ink-faint); font-size:.85rem; }

/* buyer quote pulled into Step 5 */
.tw45-quotebox{ background:var(--lbic-surface-2); border:1px solid var(--lbic-line); border-radius:var(--lbic-r); padding:14px 16px;
  font-size:.9rem; color:var(--lbic-ink-soft); margin-bottom:18px; }
.tw45-quotebox b{ color:var(--lbic-ink); }

/* result */
.tw45-result{ margin-top:18px; }
.tw45-saved{ background:var(--lbic-good-bg); border:1px solid var(--lbic-good-line); color:var(--lbic-good);
  border-radius:var(--lbic-r); padding:16px 18px; font-size:.92rem; }
.tw45-saved b{ color:var(--lbic-ink); }
.tw45-insight{ margin-top:12px; display:flex; flex-wrap:wrap; gap:8px; }
.tw45-next{ font-size:.88rem; color:var(--lbic-ink-soft); }
.tw45-warn{ color:var(--lbic-crit); font-size:.88rem; }

.tw45-table{ width:100%; border-collapse:collapse; font-size:.88rem; margin-top:10px; }
.tw45-table th,.tw45-table td{ text-align:left; padding:9px 12px; border-bottom:1px solid var(--lbic-line); }
.tw45-table th{ font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--lbic-ink-soft); background:var(--lbic-surface-2); font-weight:700; }

/* chips — DS status vocabulary */
.tw45-chip{ display:inline-flex; align-items:center; gap:6px; font-size:.74rem; font-weight:700; padding:3px 10px; border-radius:var(--lbic-r-pill);
  border:1px solid var(--lbic-line-strong); color:var(--lbic-ink-soft); background:var(--lbic-surface-2); }
.tw45-chip--completed,.tw45-chip--on,.tw45-chip--on_track{ color:var(--lbic-good); background:var(--lbic-good-bg); border-color:var(--lbic-good-line); }
.tw45-chip--action,.tw45-chip--action_needed{ color:var(--lbic-warn); background:var(--lbic-warn-bg); border-color:var(--lbic-warn-line); }
.tw45-chip--blocked{ color:var(--lbic-crit); background:var(--lbic-crit-bg); border-color:var(--lbic-crit-line); }
.tw45-chip--waiting{ color:var(--lbic-ink-faint); background:var(--lbic-surface-2); border-color:var(--lbic-line); }

/* document controls (Print / Download) */
.tw45-docs{ margin-top:16px; padding-top:14px; border-top:1px solid var(--lbic-good-line); }
.tw45-docs__h{ font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--lbic-ink-faint); margin-bottom:8px; }
.tw45-doc{ display:flex; align-items:center; gap:10px; }
.tw45-doc .nm{ flex:1; font-size:.9rem; color:var(--lbic-ink); font-weight:600; }
.tw45-doclink{ font-size:.8rem; font-weight:700; color:var(--lbic-primary); border:1px solid var(--lbic-line-strong);
  border-radius:var(--lbic-r-pill); padding:4px 12px; text-decoration:none; }
.tw45-doclink:hover{ background:var(--lbic-primary-soft); border-color:var(--lbic-primary); }

.tw45-signin{ border:1px solid var(--lbic-line); border-radius:var(--lbic-r); padding:28px; text-align:center; background:var(--lbic-surface); max-width:440px; margin:40px auto; }
.tw45-signin h1{ font-family:var(--lbic-serif); font-weight:500; font-size:1.7rem; margin-bottom:8px; }
/* Build 2 — product lines */
.tw45-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.tw45-num{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.tw45-table .tw45-input{ min-width:88px; padding:6px 8px; }
