/* ==========================================================================
   REQUIREMENT ENGINE — shared styling
   Neutral by design. It inherits each site's CSS variables where they exist,
   so the same engine looks native on all five sites rather than bolted on.
   ========================================================================== */
:root{--rq-ink:#1D2321;--rq-line:#DCDCD6;--rq-soft:#5F6B66;--rq-brand:#2E5C6E;
  --rq-accent:#B8873F;--rq-card:#fff;--rq-tint:#F3F1EC;--rq-ok:#1F7A4D;--rq-bad:#B4471F;}
.rq-badge{position:relative}
.rq-badge[data-count="0"] .rq-dot{display:none}
.rq-dot{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  background:var(--rq-accent);color:#241704;font-size:11.5px;font-weight:800;line-height:18px;
  text-align:center;margin-left:6px;vertical-align:middle}
/* ---- toast ---- */
.rq-toast{position:fixed;left:50%;bottom:78px;transform:translateX(-50%) translateY(14px);
  background:var(--rq-ink);color:#fff;padding:12px 20px;border-radius:10px;font-size:14.6px;
  font-weight:600;z-index:200;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;
  box-shadow:0 8px 24px rgba(0,0,0,.24);max-width:calc(100vw - 32px);text-align:center}
.rq-toast.is-on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(prefers-reduced-motion:reduce){.rq-toast{transition:none}}
/* ---- calculator ---- */
.rq-calc{background:var(--rq-card);border:1px solid var(--rq-line);border-radius:12px;
  padding:20px;margin:20px 0}
.rq-calc h3{margin-bottom:4px;font-size:18px}
.rq-calc .rq-lead{font-size:14.6px;color:var(--rq-soft);margin-bottom:14px}
.rq-grid{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.rq-calc label{display:block;font-size:13px;font-weight:700;color:var(--rq-ink);margin-bottom:5px}
.rq-calc input,.rq-calc select,.rq-calc textarea{width:100%;font-family:inherit;font-size:16px;
  color:var(--rq-ink);background:#fff;border:1.5px solid var(--rq-line);border-radius:8px;
  padding:11px 12px}
.rq-calc input:focus,.rq-calc select:focus{border-color:var(--rq-brand);outline:none}
.rq-row{display:grid;gap:10px;grid-template-columns:1fr 1fr 90px;margin-bottom:10px;
  align-items:end}
@media(max-width:560px){.rq-row{grid-template-columns:1fr 1fr}}
.rq-addrow{background:none;border:1.5px dashed var(--rq-line);border-radius:8px;padding:9px 14px;
  font-weight:700;font-size:14px;color:var(--rq-brand);cursor:pointer;margin-bottom:12px}
.rq-addrow:hover{border-color:var(--rq-brand)}
.rq-out{background:var(--rq-tint);border-radius:9px;padding:15px 17px;margin-top:14px;
  font-size:17px;color:var(--rq-ink)}
.rq-out b{font-size:22px;font-weight:800}
.rq-alt{display:block;font-size:13.4px;color:var(--rq-soft);margin-top:5px;font-weight:400}
.rq-empty{color:var(--rq-soft);font-size:15px}
.rq-disclaim{font-size:13.2px;color:var(--rq-soft);margin-top:12px;padding-top:11px;
  border-top:1px solid var(--rq-line);line-height:1.55}
.rq-btn{display:inline-block;background:var(--rq-brand);color:#fff;border:none;border-radius:9px;
  padding:12px 20px;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;
  font-family:inherit;margin-top:14px}
.rq-btn:hover{filter:brightness(1.08)}
.rq-btn--alt{background:var(--rq-accent);color:#241704}
.rq-btn--wa{background:var(--rq-ok)}
.rq-btn--ghost{background:none;border:1.5px solid var(--rq-line);color:var(--rq-ink)}
.rq-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
/* ---- requirement list ---- */
.rq-item{background:var(--rq-card);border:1px solid var(--rq-line);border-radius:12px;
  padding:18px;margin-bottom:14px}
.rq-item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;
  flex-wrap:wrap}
.rq-item-head h3{font-size:17.4px;margin:0}
.rq-item-tools{display:flex;gap:7px;flex-shrink:0}
.rq-mini{background:none;border:1px solid var(--rq-line);border-radius:7px;padding:6px 11px;
  font-size:13px;font-weight:700;cursor:pointer;color:var(--rq-soft);font-family:inherit}
.rq-mini:hover{border-color:var(--rq-brand);color:var(--rq-brand)}
.rq-mini--x:hover{border-color:var(--rq-bad);color:var(--rq-bad)}
.rq-meta{font-size:13.6px;color:var(--rq-soft);margin:5px 0 12px}
.rq-fields{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.rq-item label{display:block;font-size:12.6px;font-weight:700;color:var(--rq-ink);margin-bottom:4px}
.rq-item input,.rq-item select,.rq-item textarea{width:100%;font-family:inherit;font-size:16px;
  color:var(--rq-ink);background:#fff;border:1.5px solid var(--rq-line);border-radius:8px;
  padding:10px 11px}
.rq-item input:focus,.rq-item select:focus,.rq-item textarea:focus{border-color:var(--rq-brand);
  outline:none}
.rq-full{margin-top:11px}
.rq-x{background:none;border:none;font-size:20px;color:var(--rq-soft);cursor:pointer;
  line-height:1;padding:0 6px}
.rq-x:hover{color:var(--rq-bad)}
/* ---- tables ---- */
.rq-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rq-table{width:100%;border-collapse:collapse;background:#fff;font-size:14.4px;min-width:520px}
.rq-table th,.rq-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rq-line)}
.rq-table thead th{background:var(--rq-ink);color:#fff;font-size:11.8px;letter-spacing:.08em;
  text-transform:uppercase}
.rq-table tfoot th{background:var(--rq-tint);font-weight:800}
.rq-note-sm{font-size:13px;color:var(--rq-soft);margin-top:9px}
/* ---- print ---- */
#rq-print-sheet{display:none}
@media print{
  body>*{display:none!important}
  #rq-print-sheet{display:block!important;font-family:system-ui,sans-serif;color:#000;padding:0}
  #rq-print-sheet h1{font-size:20pt;margin-bottom:2mm}
  #rq-print-sheet .rq-print-meta{font-size:10pt;color:#333;margin-bottom:6mm;
    border-bottom:1px solid #000;padding-bottom:3mm}
  #rq-print-body{white-space:pre-wrap;font-size:10.5pt;line-height:1.5;font-family:inherit}
  #rq-print-sheet .rq-print-foot{margin-top:8mm;padding-top:3mm;border-top:1px solid #999;
    font-size:9pt;color:#444}
  @page{margin:14mm}
}

/* --- validation, tables, print name ------------------------------------- */
.rq-warn{display:block;color:#8C3B2E;font-size:14.6px;font-weight:600;line-height:1.5}
.rq-warn-inline{color:#8C3B2E;font-weight:600}
.rq-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rq-cap{text-align:left;font-size:12.8px;color:var(--rq-soft);padding:0 0 8px;caption-side:top}
.rq-chip{display:inline-flex;align-items:center;gap:8px;background:var(--rq-tint);
  border:1px solid var(--rq-line);border-radius:999px;padding:6px 14px;font-size:13.6px;
  font-weight:600;margin-bottom:14px}
.rq-chip select{border:none;background:none;font-family:inherit;font-size:13.6px;
  font-weight:700;color:var(--rq-brand);padding:2px 4px}
@media print{#rq-print-sheet .rq-print-name{font-size:20pt;font-weight:800;margin-bottom:2mm;
  letter-spacing:.04em}}
