/* ============================================================
   Bluestream · Toolbox styles
   ============================================================
   Combined styles for the unified Toolbox page covering:
     1 GMC Matcher        (formerly Platform / panel-1)
     2 Criticality        (formerly Develop / panel-1)
     3 FMECA              (formerly Develop / panel-2)
     4 RCM                (formerly Develop / panel-3)
     5 Concept Builder    (formerly Develop / panel-4)
     6 Work Instructions  (formerly Platform / panel-2)
   Depends on /style.css for base tokens (--accent, --surface, --nav-h, etc.)
   ============================================================ */

/* ---------- Platform chrome (shared header / status / tab strip) ---------- */
.platform-header {
  position: sticky;
  top: var(--nav-h);
  z-index: 100;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-s);
}

.tool-strip {
  display: flex;
  align-items: stretch;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.tool-strip::-webkit-scrollbar { display: none; }

.tool-tab {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 14px 28px 13px;
  border: none;
  background: none;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  font-family: var(--sans);
  text-align: left;
  transition: all .18s;
  flex-shrink: 0;
  color: var(--text-mid);
}
.tool-tab:hover { background: var(--surface2); }
.tool-tab.active {
  border-bottom-color: var(--accent);
  background: var(--accent-l);
  color: var(--accent);
}
/* tool-num is the small "Step 0X" eyebrow above the tool-name */
.tool-num {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--mono);
  color: var(--text-dim);
  margin-bottom: 2px;
}
.tool-tab.active .tool-num { color: var(--accent); }
.tool-name {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
}

/* "Free" pill rendered inline with the Step 01 eyebrow on the Criticality tab.
   Backed by the server-side allowlist in api/deduct.js (criticality_classification). */
.tool-tab-free {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 20px;
  background: #dcfce7;
  color: #166534;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Free pill used on the Classify run button. */
.run-btn-free {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(255,255,255,.22);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tool-tab-divider {
  width: 1px;
  background: var(--border);
  flex-shrink: 0;
  margin: 8px 0;
}

/* Matcher shortcut — sits at the right edge of the tool-strip, visually
   distinct from the linear 5-step flow. GMC Matcher is an alternate entry
   path, not Step 1 of the workflow. */
.matcher-shortcut {
  margin-left: auto;
  margin-right: 16px;
  align-self: center;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  border: 1px dashed var(--border);
  border-radius: var(--r-s);
  background: var(--surface);
  color: var(--text-mid);
  cursor: pointer;
  font-family: var(--sans);
  transition: all .18s;
  flex-shrink: 0;
  text-align: left;
}
.matcher-shortcut:hover {
  border-color: var(--accent);
  border-style: solid;
  background: var(--accent-l);
  color: var(--accent);
}
.matcher-shortcut.active {
  border: 1px solid var(--accent);
  background: var(--accent-l);
  color: var(--accent);
}
.matcher-shortcut svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.matcher-shortcut-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.matcher-shortcut-lead {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--mono);
  color: var(--text-dim);
  margin-bottom: 2px;
}
.matcher-shortcut.active .matcher-shortcut-lead,
.matcher-shortcut:hover .matcher-shortcut-lead { color: var(--accent); opacity: .75; }
.matcher-shortcut-main {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.01em;
}
@media (max-width: 900px) {
  .matcher-shortcut { margin-left: 8px; margin-right: 8px; padding: 7px 12px; }
  .matcher-shortcut-lead { display: none; }
}

.tool-panel { display: none; }
.tool-panel.active { display: block; }

/* ---------- Status strip with crumbs and context pill ---------- */
.platform-status {
  background: var(--surface2);
  border-bottom: 1px solid var(--border);
  padding: 7px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 11px;
  color: var(--text-dim);
  font-family: var(--mono);
  overflow-x: auto;
  scrollbar-width: none;
}
.platform-status::-webkit-scrollbar { display: none; }
.status-crumb {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.status-crumb.done { color: var(--success); }
.status-crumb.active { color: var(--accent); font-weight: 700; }
.status-sep { color: var(--border-s); }

.cc-context-wrap {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.cc-context-pill {
  padding: 2px 10px;
  border-radius: 20px;
  background: var(--accent-l);
  border: 1px solid var(--accent-m);
  color: var(--accent);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}
.cc-file-chip {
  display: none;
  align-items: center;
  gap: 5px;
  padding: 2px 10px 2px 8px;
  border-radius: 20px;
  background: var(--success-l);
  border: 1px solid #bbf7d0;
  color: #15803d;
  font-size: 10px;
  font-weight: 600;
  font-family: var(--mono);
  white-space: nowrap;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cc-file-chip.visible { display: inline-flex; }
.cc-file-chip svg {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cc-file-chip .chip-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ---------- Shared sidebar layout (Develop tools) ---------- */
.dev-layout{display:grid;grid-template-columns:380px 1fr;gap:0;min-height:calc(100vh - var(--nav-h) - 56px);}
.dev-sidebar{border-right:1px solid var(--border);background:var(--surface);padding:28px 24px;position:sticky;top:calc(var(--nav-h) + 56px);height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;}
.dev-main{padding:28px 32px;background:var(--bg);}
.form-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);margin-bottom:10px;margin-top:4px;display:flex;align-items:center;gap:6px;}

/* ---------- Form fields (shared across all tools) ---------- */
.field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 12px;
}
.field label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-mid);
}
.field input,
.field select,
.field textarea {
  padding: 9px 11px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text);
  outline: none;
  transition: border-color .15s;
}
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--accent); }
.field textarea {
  resize: vertical;
  min-height: 60px;
}

/* ---------- Primary action button (shared) ---------- */
.run-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 20px;
  background: var(--text);
  color: #fff;
  border: none;
  border-radius: var(--r-s);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  box-shadow: var(--shadow-s);
  margin-top: auto;
  /* Stick to the bottom of the viewport so the call-to-action is never
     scrolled out of view. z-index keeps it above sibling fields. */
  position: sticky;
  bottom: 12px;
  z-index: 5;
}

/* Secondary action below the run button: 'develop from scratch'. */
.run-secondary {
  width: 100%;
  margin-top: 6px;
  padding: 8px 12px;
  background: transparent;
  color: var(--text-mid);
  border: 1px dashed var(--border-s);
  border-radius: var(--r-s);
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all .15s;
  position: sticky;
  bottom: 0;
  z-index: 5;
}
.run-secondary:hover {
  color: var(--text);
  border-color: var(--text-mid);
  background: var(--surface2);
}
.run-btn:hover {
  background: #292524;
  box-shadow: var(--shadow-m);
}
.run-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.run-btn svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- Results-empty placeholders (shared) ---------- */
.results-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  text-align: center;
  color: var(--text-dim);
}
.results-empty-icon {
  width: 56px;
  height: 56px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.results-empty-icon svg {
  width: 24px;
  height: 24px;
  stroke: var(--text-dim);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.results-empty h3 {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-mid);
  margin-bottom: 6px;
}
.results-empty p {
  font-size: 13px;
  max-width: 300px;
  line-height: 1.6;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: none; }
}

/* ============================================================
   TOOL 2: CRITICALITY
   ============================================================ */
.crit-layout{display:grid;grid-template-columns:420px 1fr;gap:0;min-height:calc(100vh - var(--nav-h) - 56px);}
.crit-sidebar{border-right:1px solid var(--border);background:var(--surface);padding:28px 24px;position:sticky;top:calc(var(--nav-h) + 56px);height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto;display:flex;flex-direction:column;gap:20px;}
.crit-main{padding:28px 32px;background:var(--bg);}
.std-selector-wrap{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-s);padding:12px 14px;}
.std-selector-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.std-pills{display:flex;flex-direction:column;gap:4px;}
.std-pill{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);cursor:pointer;transition:all .15s;gap:8px;}
.std-pill:hover{border-color:var(--accent-m);background:var(--accent-l);}
.std-pill.active{border-color:var(--accent);background:var(--accent-l);}
.std-pill.soon{opacity:.5;cursor:not-allowed;}
.std-pill.soon:hover{border-color:var(--border);background:var(--bg);}
.std-pill-left{display:flex;flex-direction:column;gap:1px;}
.std-pill-name{font-size:12px;font-weight:700;color:var(--text);font-family:var(--mono);}
.std-pill.active .std-pill-name{color:var(--accent);}
.std-pill-desc{font-size:10px;color:var(--text-dim);}
.std-pill-badge{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:3px;flex-shrink:0;background:var(--accent-l);border:1px solid var(--accent-m);color:var(--accent);}
.std-pill.soon .std-pill-badge{background:var(--surface2);border-color:var(--border);color:var(--text-dim);}
.std-pills.collapsed .std-pill:not(.active){display:none;}
.std-change-btn{margin-top:6px;width:100%;padding:5px 10px;background:none;border:1px dashed var(--border);border-radius:var(--r-s);font-size:11px;font-family:var(--mono);color:var(--text-dim);cursor:pointer;transition:all .15s;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:6px;}
.std-change-btn:hover{border-color:var(--accent-m);color:var(--accent);}
.std-change-btn.hidden{display:none;}
.std-warn-triangle{display:inline-flex;align-items:center;gap:4px;color:#d97706;font-size:11px;flex-shrink:0;}
.std-superseded-notice{display:none;align-items:flex-start;gap:8px;margin-top:8px;padding:8px 10px;border-radius:var(--r-s);background:#fef9c3;border:1px solid #fde68a;font-size:11px;color:#92400e;line-height:1.5;}
.std-superseded-notice.visible{display:flex;}
.ref-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;flex-shrink:0;background:var(--accent-l);border:1px solid var(--accent-m);cursor:pointer;transition:all .15s;margin-left:auto;color:var(--accent);}
.ref-icon-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.ref-icon-btn svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.cc-radio-group{display:flex;flex-direction:column;gap:4px;}
.cc-radio-opt{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-s);cursor:pointer;transition:all .15s;background:var(--bg);}
.cc-radio-opt:hover{border-color:var(--accent-m);background:var(--accent-l);}
.cc-radio-opt.selected{border-color:var(--accent);background:var(--accent-l);}
.cc-radio-opt input[type="radio"]{margin-top:2px;accent-color:var(--accent);flex-shrink:0;}
.cc-radio-label{font-size:12px;font-weight:700;color:var(--text);line-height:1.3;}
.cc-radio-sub{font-size:11px;color:var(--text-dim);font-weight:400;margin-top:1px;}
.cc-level-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:4px;}
.dot-c1{background:#22c55e;}.dot-c2{background:#f59e0b;}.dot-c3{background:#ef4444;}
.red-grid{display:flex;flex-direction:column;gap:4px;}
.red-opt{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-s);cursor:pointer;transition:all .15s;background:var(--bg);}
.red-opt:hover{border-color:var(--accent-m);background:var(--accent-l);}
.red-opt.selected{border-color:var(--accent);background:var(--accent-l);}
.red-opt input[type="radio"]{margin-top:2px;accent-color:var(--accent);flex-shrink:0;}
.red-code{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--accent);min-width:28px;}
.red-label{font-size:12px;font-weight:600;color:var(--text);line-height:1.3;}
.red-sub{font-size:11px;color:var(--text-dim);font-weight:400;margin-top:1px;}
.rationale-field{margin-top:6px;}
.rationale-field textarea{width:100%;padding:8px 10px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:12px;color:var(--text);outline:none;transition:border-color .15s;resize:none;min-height:52px;line-height:1.5;}
.rationale-field textarea:focus{border-color:var(--accent);}
.rationale-field textarea::placeholder{color:var(--text-dim);}
.rationale-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);display:block;margin-bottom:4px;}
.barrier-flag-wrap{background:#fef9c3;border:1px solid #fde68a;border-radius:var(--r-s);padding:12px 13px;}
.barrier-flag-top{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;}
.barrier-flag-top input[type="checkbox"]{width:15px;height:15px;accent-color:#d97706;flex-shrink:0;cursor:pointer;}
.barrier-flag-label{font-size:12px;font-weight:700;color:#92400e;}
.barrier-flag-sub{font-size:11px;color:#a16207;margin-top:2px;line-height:1.4;}
.barrier-ps-field{margin-top:10px;display:none;}
.barrier-ps-field.visible{display:block;}
.barrier-ps-field input{width:100%;padding:7px 10px;border-radius:var(--r-s);border:1px solid #fde68a;background:#fffbeb;font-family:var(--mono);font-size:12px;color:#92400e;outline:none;transition:border-color .15s;}
.barrier-ps-field input:focus{border-color:#d97706;}
.barrier-ps-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#a16207;font-family:var(--mono);display:block;margin-bottom:4px;}
.assessor-wrap{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-s);padding:13px 14px;}
.assessor-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.assessor-field{display:flex;flex-direction:column;gap:4px;}
.assessor-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);}
.assessor-field input{padding:7px 10px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:12px;color:var(--text);outline:none;transition:border-color .15s;}
.assessor-field input:focus{border-color:var(--accent);}
.annex-c-notice{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--warn,#f59e0b);border-radius:var(--r-s);padding:10px 13px;font-size:11px;color:var(--text-mid);line-height:1.55;margin-top:12px;}
.annex-c-notice strong{color:var(--text);font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:3px;}
.crit-results-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:var(--text-dim);}
.crit-results-empty-icon{width:56px;height:56px;background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.crit-results-empty-icon svg{width:24px;height:24px;stroke:var(--text-dim);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.crit-results-empty h3{font-size:16px;font-weight:600;color:var(--text-mid);margin-bottom:6px;}
.crit-results-empty p{font-size:13px;max-width:300px;line-height:1.6;}
.z008-result{animation:fadeUp .35s ease both;}
.z008-header{border-radius:var(--r);overflow:hidden;border:1px solid var(--border);margin-bottom:16px;box-shadow:var(--shadow-m);}
.z008-header-top{padding:20px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:var(--text);color:#fff;}
.z008-header-meta{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:var(--mono);opacity:.6;margin-bottom:6px;}
.z008-header-title{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px;}
.z008-header-sub{font-size:13px;opacity:.65;}
.z008-std-badge{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:4px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;font-family:var(--mono);text-transform:uppercase;white-space:nowrap;}
.z008-cc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--surface);border-top:1px solid var(--border);}
.z008-cc-cell{padding:14px 16px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;}
.z008-cc-cell:last-child{border-right:none;}
.z008-cc-cat{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);}
.z008-cc-val{display:flex;align-items:center;gap:6px;}
.z008-cc-code{font-size:18px;font-weight:900;font-family:var(--mono);letter-spacing:-.02em;}
.z008-cc-desc{font-size:11px;color:var(--text-mid);font-weight:500;line-height:1.3;}
.cc-c1{color:#16a34a;}.cc-c2{color:#d97706;}.cc-c3{color:#dc2626;}
.z008-red-badge{padding:14px 16px;background:var(--surface);border-top:1px solid var(--border);display:flex;align-items:center;gap:12px;}
.z008-red-code{font-family:var(--mono);font-size:22px;font-weight:900;color:var(--accent);}
.z008-red-info-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);margin-bottom:2px;}
.z008-red-info-val{font-size:13px;font-weight:600;color:var(--text);}
.z008-dominant{padding:14px 18px;display:flex;align-items:center;gap:14px;border-top:1px solid var(--border);background:var(--surface2);}
.z008-dominant-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);}
.z008-dominant-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;font-family:var(--mono);}
.dom-high{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;}
.dom-med{background:#fef3c7;color:#92400e;border:1px solid #fde68a;}
.dom-low{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;}
.z008-dominant-priority{margin-left:auto;font-size:12px;font-weight:600;color:var(--text-mid);font-family:var(--mono);}
.z008-implications{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:14px;overflow:hidden;}
.z008-impl-header{padding:12px 16px;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);background:var(--surface2);}
.z008-impl-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-mid);line-height:1.55;}
.z008-impl-row:last-child{border-bottom:none;}
.z008-impl-icon{font-size:14px;flex-shrink:0;margin-top:1px;}
.z008-impl-content strong{display:block;font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin-bottom:3px;}
.z008-trace{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:14px;}
.z008-trace-header{padding:12px 16px;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);background:var(--surface2);display:flex;align-items:center;gap:8px;}
.z008-trace-header .ref-tag{font-size:10px;color:var(--accent);font-family:var(--mono);background:var(--accent-l);border:1px solid var(--accent-m);padding:1px 6px;border-radius:3px;font-weight:600;}
.trace-row{display:flex;align-items:flex-start;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:12px;}
.trace-row:last-child{border-bottom:none;}
.trace-q{color:var(--text-mid);min-width:160px;font-weight:500;flex-shrink:0;}
.trace-a{color:var(--text);font-weight:700;font-family:var(--mono);font-size:11px;}
.trace-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:4px;background:var(--accent);}
.z008-actions{display:flex;gap:10px;margin-top:16px;}
.btn-proceed{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:11px;border-radius:var(--r-s);background:var(--accent);color:#fff;border:none;font-family:var(--sans);font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;}
.btn-proceed:hover{background:#1d4ed8;}
.btn-proceed svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ============================================================
   TOOL 2 — Function-tree UI (Z-008:2024 §8.3 conformance)
   ============================================================
   The function tree replaces the old tag-direct form. Layout:
     sidebar          — standard selector, assessor record, run button
     main             — documentation header → MF cards → SF cards → tags
     after Run        — result panel replaces the tree
*/

/* Sidebar helpers (How-this-works card + token note) */
.ft-help-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-s);padding:12px 13px;font-size:12px;color:var(--text-mid);line-height:1.5;display:flex;flex-direction:column;gap:6px;}
.ft-help-step{display:flex;align-items:flex-start;gap:8px;}
.ft-help-num{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:var(--mono);margin-top:1px;}
.ft-token-note{font-size:11px;color:var(--text-dim);line-height:1.5;padding:0 2px;margin-top:-8px;}

/* Documentation header (top of main panel) */
.ft-doc-header{margin-bottom:16px;display:flex;flex-direction:column;gap:10px;}
.ft-doc-grid{display:grid;grid-template-columns:1fr 1.4fr 0.5fr;gap:10px;}
.ft-doc-grid-3{grid-template-columns:1fr 1fr 1fr;}
.ft-doc-field{display:flex;flex-direction:column;gap:4px;}
.ft-doc-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);}
.ft-doc-field input,.ft-doc-field textarea{padding:7px 10px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:12px;color:var(--text);outline:none;transition:border-color .15s;width:100%;box-sizing:border-box;}
.ft-doc-field textarea{resize:vertical;line-height:1.5;min-height:38px;}
.ft-doc-field input:focus,.ft-doc-field textarea:focus{border-color:var(--accent);}
.ft-required{color:var(--danger,#dc2626);}

/* Tree container + add-MF button */
.ft-tree{display:flex;flex-direction:column;gap:14px;}
.ft-add-mf-wrap{margin-top:12px;display:flex;justify-content:flex-start;}
.ft-add-mf-btn{padding:10px 18px;border-radius:var(--r-s);background:var(--surface);border:1px dashed var(--border-s,var(--border));color:var(--text-mid);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;}
.ft-add-mf-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-l);border-style:solid;}

/* Main Function card */
.ft-mf-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow-s);display:flex;flex-direction:column;gap:12px;}
.ft-mf-head{display:flex;align-items:flex-start;gap:12px;}
.ft-mf-num{flex-shrink:0;font-size:11px;font-weight:700;font-family:var(--mono);color:var(--accent);background:var(--accent-l);border:1px solid var(--accent-m);border-radius:4px;padding:4px 9px;letter-spacing:.04em;margin-top:1px;}
.ft-mf-titles{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;}
.ft-mf-verb-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ft-mf-verb{flex:1;min-width:200px;padding:8px 11px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:14px;font-weight:700;color:var(--text);outline:none;transition:border-color .15s;}
.ft-mf-verb:focus{border-color:var(--accent);}
.ft-mf-number{flex:0 0 90px;padding:8px 11px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--mono);font-size:12px;color:var(--text);outline:none;transition:border-color .15s;}
.ft-mf-number:focus{border-color:var(--accent);}
.ft-mf-descriptor{padding:7px 11px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:12px;color:var(--text);outline:none;transition:border-color .15s;width:100%;box-sizing:border-box;}
.ft-mf-descriptor:focus{border-color:var(--accent);}
.ft-mf-dom{flex-shrink:0;font-size:10px;font-weight:700;font-family:var(--mono);padding:3px 8px;border-radius:3px;letter-spacing:.04em;}
.ft-mf-extras{font-size:12px;color:var(--text-mid);}
.ft-mf-extras summary{cursor:pointer;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);padding:4px 0;outline:none;}
.ft-mf-extras summary:hover{color:var(--accent);}
.ft-mf-extras[open] summary{margin-bottom:8px;}
.ft-rationale-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;}
.ft-rationale-grid textarea{padding:6px 9px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:11px;color:var(--text);outline:none;resize:vertical;min-height:30px;line-height:1.5;}
.ft-rationale-grid textarea:focus{border-color:var(--accent);}
.ft-barrier-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-mid);flex-wrap:wrap;padding:6px 10px;background:#fef9c3;border:1px solid #fde68a;border-radius:var(--r-s);}
.ft-barrier-row input[type="checkbox"]{accent-color:#d97706;width:14px;height:14px;cursor:pointer;}
.ft-barrier-ps{flex:1;min-width:200px;padding:5px 9px;border-radius:4px;border:1px solid #fde68a;background:#fff;font-family:var(--mono);font-size:11px;color:var(--text);outline:none;}

/* Classification grid (per-MF and per-SF) */
.ft-classify-grid,.ft-sf-classify{display:grid;gap:8px;align-items:start;}
.ft-classify-grid.cols-5,.ft-sf-classify.cols-5{grid-template-columns:repeat(5,1fr);}
.ft-classify-grid.cols-6,.ft-sf-classify.cols-6{grid-template-columns:repeat(6,1fr);}
.ft-cc-col{display:flex;flex-direction:column;gap:4px;min-width:0;}
.ft-cc-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-family:var(--mono);display:flex;align-items:center;gap:5px;}
.ft-cc-buttons{display:flex;gap:3px;}
.ft-cc-btn{flex:1;padding:5px 0;border-radius:4px;border:1px solid var(--border);background:var(--bg);font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text-mid);cursor:pointer;transition:all .12s;letter-spacing:.02em;}
.ft-cc-btn:hover{border-color:var(--text-mid);color:var(--text);}
.ft-cc-btn.active.ft-cc-c1{background:#dcfce7;border-color:#22c55e;color:#15803d;}
.ft-cc-btn.active.ft-cc-c2{background:#fef3c7;border-color:#f59e0b;color:#a16207;}
.ft-cc-btn.active.ft-cc-c3{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
.ft-cc-btn.active.ft-cc-na{background:var(--surface2);border-color:var(--text-mid);color:var(--text);}
.ft-red-buttons{display:flex;gap:3px;}
.ft-red-btn{flex:1;padding:5px 0;border-radius:4px;border:1px solid var(--border);background:var(--bg);font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text-mid);cursor:pointer;transition:all .12s;}
.ft-red-btn:hover{border-color:var(--text-mid);color:var(--text);}
.ft-red-btn.active{background:var(--accent-l);border-color:var(--accent);color:var(--accent);}

/* Sub-function section inside a MF */
.ft-sf-section{margin-top:6px;border-top:1px dashed var(--border);padding-top:14px;}
.ft-sf-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);margin-bottom:8px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.ft-sf-help{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-dim);font-family:var(--sans);font-size:11px;}
.ft-sf-list{display:flex;flex-direction:column;gap:10px;}

/* Sub-function card */
.ft-sf-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-s);padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.ft-sf-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ft-sf-num{flex-shrink:0;font-size:10px;font-weight:700;font-family:var(--mono);color:var(--text-dim);background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:3px 7px;letter-spacing:.04em;}
.ft-sf-name{flex:1;min-width:160px;padding:6px 10px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:13px;font-weight:600;color:var(--text);outline:none;transition:border-color .15s;}
.ft-sf-name:focus{border-color:var(--accent);}
.ft-sf-typebadge{flex-shrink:0;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px;font-family:var(--mono);}
.ft-sf-annexb{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd;}
.ft-sf-custom{background:var(--surface);color:var(--text-dim);border:1px solid var(--border);}
.ft-sf-dom{flex-shrink:0;font-size:9px;font-weight:700;font-family:var(--mono);padding:2px 6px;border-radius:3px;letter-spacing:.04em;}
.ft-sf-descriptor{padding:6px 10px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:11px;color:var(--text);outline:none;transition:border-color .15s;}
.ft-sf-descriptor:focus{border-color:var(--accent);}
.ft-sf-rationale{padding:6px 10px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:11px;color:var(--text);outline:none;resize:vertical;min-height:30px;line-height:1.5;}
.ft-sf-rationale:focus{border-color:var(--accent);}

/* Override badge (when user manually changes an inherited cell) */
.ft-override-tag{font-size:9px;font-weight:600;font-family:var(--mono);color:#a16207;background:#fef3c7;border:1px solid #fde68a;border-radius:3px;padding:1px 5px;text-transform:none;letter-spacing:0;}
.ft-override-tag a{color:#a16207;text-decoration:none;font-weight:700;margin-left:2px;}
.ft-override-tag a:hover{color:#78350f;}

/* Tag rows inside a sub function */
.ft-tag-section{margin-top:4px;padding-top:10px;border-top:1px dashed var(--border);}
.ft-tag-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);margin-bottom:6px;}
.ft-tag-list{display:flex;flex-direction:column;gap:5px;}
.ft-tag-row{display:grid;grid-template-columns:1.3fr 0.8fr 1fr 50px 28px;gap:5px;align-items:center;}
.ft-tag-row input[type="text"]{padding:5px 9px;border-radius:4px;border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:11px;color:var(--text);outline:none;transition:border-color .15s;}
.ft-tag-row input[type="text"]:focus{border-color:var(--accent);}
.ft-tag-no{font-family:var(--mono)!important;}
.ft-tag-barrier{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;font-family:var(--mono);color:var(--text-dim);cursor:pointer;justify-content:center;}
.ft-tag-barrier input[type="checkbox"]{accent-color:#d97706;width:12px;height:12px;cursor:pointer;}

/* Add buttons */
.ft-add-btn{margin-top:8px;padding:6px 12px;border-radius:var(--r-s);background:transparent;border:1px dashed var(--border);color:var(--text-dim);font-family:var(--sans);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;align-self:flex-start;}
.ft-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-l);}
.ft-add-btn-small{font-size:10px;padding:4px 10px;}

/* Icon buttons (remove rows) */
.ft-icon-btn{width:24px;height:24px;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--text-dim);font-size:18px;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.ft-icon-btn:hover{border-color:#fecaca;background:#fee2e2;color:#dc2626;}
.ft-remove-tag{width:22px;height:22px;font-size:14px;}

/* Edit button on result panel */
.ft-edit-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:4px;border:1px solid var(--border);background:var(--surface);color:var(--text-mid);font-family:var(--sans);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;margin-left:auto;}
.ft-edit-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-l);}
.ft-edit-btn svg{flex-shrink:0;}

/* Result panel — function-tree summary + per-tag table */
.ft-result-section{margin-top:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;}
.ft-result-section-head{padding:12px 16px;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);background:var(--surface2);display:flex;align-items:center;gap:8px;}
.ft-result-section-head .ref-tag{font-size:9px;color:var(--accent);font-family:var(--mono);background:var(--accent-l);border:1px solid var(--accent-m);padding:1px 5px;border-radius:3px;font-weight:600;}

.ft-summary-mf{padding:12px 16px;border-bottom:1px solid var(--border);}
.ft-summary-mf:last-child{border-bottom:none;}
.ft-summary-mf-head{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);flex-wrap:wrap;margin-bottom:8px;}
.ft-summary-mf-head strong{font-size:14px;color:var(--text);}
.ft-summary-mf-num{font-size:10px;font-weight:700;font-family:var(--mono);color:var(--accent);background:var(--accent-l);border:1px solid var(--accent-m);border-radius:3px;padding:2px 7px;letter-spacing:.04em;flex-shrink:0;}
.ft-summary-mf-desc{flex:1;min-width:160px;font-size:11px;color:var(--text-dim);font-style:italic;}
.ft-summary-sf-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px;padding-left:36px;}
.ft-summary-sf-list li{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-mid);flex-wrap:wrap;padding:4px 0;}
.ft-summary-sf-num{font-size:10px;font-family:var(--mono);color:var(--text-dim);min-width:32px;}
.ft-summary-tagcount{margin-left:auto;font-size:10px;font-family:var(--mono);color:var(--text-dim);}

.ft-result-table{width:100%;border-collapse:collapse;font-size:12px;}
.ft-result-table thead{background:var(--surface2);}
.ft-result-table th{padding:9px 10px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-family:var(--mono);border-bottom:1px solid var(--border);white-space:nowrap;}
.ft-result-table td{padding:9px 10px;border-bottom:1px solid var(--border);color:var(--text);}
.ft-result-table tr:last-child td{border-bottom:none;}
.ft-result-table tr:hover td{background:var(--surface2);}
.ft-tag-cell{font-family:var(--mono);font-weight:700;color:var(--accent);}
.ft-red-cell{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text-mid);}

.ft-cc-cell{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 7px;border-radius:3px;letter-spacing:.02em;}
.ft-cc-cell.ft-cc-c1{background:#dcfce7;color:#15803d;}
.ft-cc-cell.ft-cc-c2{background:#fef3c7;color:#a16207;}
.ft-cc-cell.ft-cc-c3{background:#fee2e2;color:#b91c1c;}
.ft-cc-cell.ft-cc-na{background:var(--surface2);color:var(--text-dim);}

.ft-mf-pill,.ft-sf-pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:3px;background:var(--surface2);color:var(--text-mid);border:1px solid var(--border);}
.ft-sf-pill{background:#eff6ff;color:#1e40af;border-color:#bfdbfe;}

.ft-dom-pill{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;letter-spacing:.02em;}
.ft-dom-pill.ft-cc-c1{background:#dcfce7;color:#15803d;}
.ft-dom-pill.ft-cc-c2{background:#fef3c7;color:#a16207;}
.ft-dom-pill.ft-cc-c3{background:#fee2e2;color:#b91c1c;}

.ft-be-tick{color:#d97706;font-weight:700;font-size:14px;}

.ft-result-notags{padding:24px 32px;text-align:center;color:var(--text-dim);font-size:12px;line-height:1.6;}

/* Responsive — tighten the classification grid on narrower screens */
@media (max-width: 1100px){
  .ft-classify-grid.cols-5,.ft-classify-grid.cols-6,
  .ft-sf-classify.cols-5,.ft-sf-classify.cols-6{grid-template-columns:repeat(3,1fr);gap:10px 8px;}
  .ft-doc-grid{grid-template-columns:1fr 1fr;}
  .ft-doc-grid-3{grid-template-columns:1fr;}
  .ft-tag-row{grid-template-columns:1fr 1fr;}
}

/* ============================================================
   TOOL 3: FMECA
   ============================================================ */
.fmeca-layout{display:grid;grid-template-columns:320px 1fr;gap:0;min-height:calc(100vh - var(--nav-h) - 56px);}
.fmeca-sidebar{border-right:1px solid var(--border);background:var(--surface);padding:28px 24px;position:sticky;top:calc(var(--nav-h) + 56px);height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto;display:flex;flex-direction:column;gap:0;}
.fmeca-main{padding:28px 32px;background:var(--bg);overflow-x:auto;min-width:0;}
.f2-cc-btn{padding:7px 12px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;color:var(--text-mid);}
.f2-cc-btn:hover{border-color:var(--accent-m);background:var(--accent-l);color:var(--accent);}
.f2-cc-btn.active{border-color:var(--accent);background:var(--accent-l);color:var(--accent);}
.fmeca-table{width:100%;border-collapse:collapse;font-size:12px;min-width:1400px;table-layout:fixed;}
.fmeca-table thead tr{background:var(--surface2);}
.fmeca-table th{text-align:left;padding:9px 10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-family:var(--mono);border-bottom:2px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface2);z-index:1;}
.fmeca-table td{padding:0;border-bottom:1px solid var(--border);vertical-align:middle;}
.fmeca-table tr:last-child td{border-bottom:none;}
.fmeca-table tr:hover td{background:rgba(29,78,216,.025);}
.fmeca-cell{width:100%;padding:8px 10px;border:none;background:transparent;font-family:var(--sans);font-size:12px;color:var(--text);outline:none;resize:none;min-height:34px;line-height:1.4;box-sizing:border-box;word-break:break-word;white-space:pre-wrap;overflow-wrap:break-word;}
.fmeca-cell:focus{background:var(--accent-l);outline:2px solid var(--accent-m);outline-offset:-2px;}
.fmeca-num{width:100%;padding:8px 6px;text-align:center;border:none;background:transparent;font-family:var(--mono);font-size:12px;color:var(--text);outline:none;box-sizing:border-box;}
.fmeca-num:focus{background:var(--accent-l);outline:2px solid var(--accent-m);outline-offset:-2px;}
.fmeca-code-cell{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);padding:8px 10px;white-space:nowrap;}
.fmeca-code-sel{width:100%;padding:6px 6px;border:none;background:transparent;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);outline:none;cursor:pointer;min-width:60px;}
.fmeca-code-sel:focus{background:var(--accent-l);}
.rpn-low{color:#16a34a;font-weight:800;font-family:var(--mono);}
.rpn-med{color:#d97706;font-weight:800;font-family:var(--mono);}
.rpn-high{color:#dc2626;font-weight:800;font-family:var(--mono);}
.fmeca-del-btn{background:none;border:none;cursor:pointer;padding:6px 8px;color:var(--text-dim);transition:color .15s;width:100%;display:flex;align-items:center;justify-content:center;}
.fmeca-del-btn:hover{color:var(--danger);}

/* ============================================================
   TOOL 4: RCM
   ============================================================ */
.strat-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;font-family:var(--mono);border:1px solid;white-space:nowrap;}
.strat-cbm{color:#15803d;border-color:#bbf7d0;background:#f0fdf4;}
.strat-sr{color:var(--accent);border-color:#bfdbfe;background:var(--accent-l);}
.strat-sd{color:#7c3aed;border-color:#ddd6fe;background:#f5f3ff;}
.strat-ff{color:#0e7490;border-color:#a5f3fc;background:#ecfeff;}
.strat-rtf{color:#64748b;border-color:var(--border);background:var(--surface2);}
.strat-red{color:#92400e;border-color:#fde68a;background:#fef9c3;}
.strat-review{color:#be123c;border-color:#fecdd3;background:#fff1f2;}
.strat-cal{color:var(--accent);border-color:#bfdbfe;background:var(--accent-l);} /* legacy alias for back-compat */
.rcm-cat-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-s);font-size:11px;font-weight:700;font-family:var(--mono);border:1px solid;}
.rcm-cat-se{color:#991b1b;background:#fee2e2;border-color:#fca5a5;}
.rcm-cat-op{color:#92400e;background:#fef3c7;border-color:#fde68a;}
.rcm-cat-no{color:#166534;background:#dcfce7;border-color:#bbf7d0;}
.rcm-cat-hid{color:#5b21b6;background:#ede9fe;border-color:#c4b5fd;}
.rcm-cat-override{font-size:10px;color:var(--accent);cursor:pointer;text-decoration:underline;font-family:var(--sans);font-weight:500;margin-left:8px;}
.rcm-cat-override:hover{color:#1d4ed8;}
.rcm-q-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-s);overflow:hidden;}
.rcm-q-header{padding:10px 14px;background:var(--surface2);border-bottom:1px solid var(--border);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);display:flex;align-items:center;gap:8px;}
.rcm-q-text{padding:12px 14px 8px;font-size:14px;color:var(--text);line-height:1.55;}
.rcm-q-sub{padding:0 14px 10px;font-size:11px;color:var(--text-dim);line-height:1.5;}
.rcm-q-opts{padding:10px 14px 14px;display:flex;gap:8px;flex-wrap:wrap;}
.rcm-opt-btn{padding:8px 18px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;color:var(--text-mid);}
.rcm-opt-btn:hover{border-color:var(--accent-m);background:var(--accent-l);color:var(--accent);}
.rcm-opt-btn.selected-yes{border-color:#16a34a;background:#f0fdf4;color:#15803d;}
.rcm-opt-btn.selected-no{border-color:#dc2626;background:#fef2f2;color:#991b1b;}
.rcm-strategy-result{margin:10px 14px 14px;padding:10px 14px;border-radius:var(--r-s);border:1px solid;font-size:13px;font-weight:600;}
.rcm-strategy-result.cbm{background:#f0fdf4;border-color:#bbf7d0;color:#15803d;}
.rcm-strategy-result.sr{background:var(--accent-l);border-color:var(--accent-m);color:var(--accent);}
.rcm-strategy-result.sd{background:#f5f3ff;border-color:#ddd6fe;color:#7c3aed;}
.rcm-strategy-result.ff{background:#ecfeff;border-color:#a5f3fc;color:#0e7490;}
.rcm-strategy-result.rtf{background:var(--surface2);border-color:var(--border);color:var(--text-mid);}
.rcm-strategy-result.red{background:#fef9c3;border-color:#fde68a;color:#92400e;}
.rcm-strategy-result.review{background:#fff1f2;border-color:#fecdd3;color:#be123c;}
.rcm-strategy-result.cal{background:var(--accent-l);border-color:var(--accent-m);color:var(--accent);}

/* ============================================================
   TOOL 5: CONCEPT BUILDER
   ============================================================ */
.cb-layout{display:grid;grid-template-columns:340px 1fr;gap:0;min-height:calc(100vh - var(--nav-h) - 56px);}
.cb-sidebar{border-right:1px solid var(--border);background:var(--surface);padding:28px 24px;position:sticky;top:calc(var(--nav-h) + 56px);height:calc(100vh - var(--nav-h) - 56px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;}
.cb-main{padding:28px 32px;background:var(--bg);}
.gmc-id-preview{font-family:var(--mono);font-size:22px;font-weight:800;color:var(--accent);letter-spacing:.04em;padding:10px 14px;background:var(--accent-l);border:1px solid var(--accent-m);border-radius:var(--r-s);margin-bottom:4px;}
.gmc-id-sub{font-size:11px;color:var(--text-dim);font-family:var(--mono);margin-bottom:16px;}
.concept-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-m);animation:fadeUp .3s ease both;margin-bottom:20px;}
.concept-preview-header{background:var(--text);color:#fff;padding:20px 24px;}
.concept-preview-meta{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:var(--mono);opacity:.6;margin-bottom:6px;}
.concept-preview-id{font-size:11px;font-family:var(--mono);color:#93C5FD;margin-bottom:6px;}
.concept-preview-title{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px;}
.concept-preview-sub{font-size:13px;opacity:.65;}
.concept-preview-attrs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-top:1px solid var(--border);}
.cpa-cell{background:var(--surface2);padding:12px 16px;}
.cpa-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);font-family:var(--mono);margin-bottom:4px;}
.cpa-val{font-size:12px;color:var(--text);font-weight:500;}
.concept-preview-plan{padding:0;}
.concept-preview-plan-header{padding:12px 20px;border-top:1px solid var(--border);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);display:flex;align-items:center;gap:8px;background:var(--surface2);}
.concept-preview-plan-header::after{content:'';flex:1;height:1px;background:var(--border);}
.cb-pm-table{width:100%;border-collapse:collapse;font-size:12px;}
.cb-pm-table th{text-align:left;padding:8px 14px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-family:var(--mono);border-bottom:1px solid var(--border);background:var(--surface2);}
.cb-pm-table td{padding:0;border-bottom:1px solid var(--border);vertical-align:middle;}
.cb-pm-table tr:last-child td{border-bottom:none;}
.cb-pm-table tr:hover td{background:rgba(29,78,216,.025);}
.cb-cell{width:100%;padding:8px 10px;border:none;background:transparent;font-family:var(--sans);font-size:12px;color:var(--text);outline:none;resize:none;min-height:34px;line-height:1.4;box-sizing:border-box;}
.cb-cell:focus{background:var(--accent-l);outline:2px solid var(--accent-m);outline-offset:-2px;}
.cb-strat-sel{width:100%;padding:6px 8px;border:none;background:transparent;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);outline:none;cursor:pointer;}
.cb-strat-sel:focus{background:var(--accent-l);}
.cb-del-btn{background:none;border:none;cursor:pointer;padding:6px 8px;color:var(--text-dim);transition:color .15s;width:100%;display:flex;align-items:center;justify-content:center;}
.cb-del-btn:hover{color:var(--danger);}
.cb-no-rcm{padding:48px 32px;text-align:center;color:var(--text-dim);}
.cb-no-rcm svg{width:48px;height:48px;stroke:var(--border);fill:none;stroke-width:1.5;margin-bottom:16px;}
.cb-no-rcm p{font-size:15px;margin-bottom:16px;}
.cb-no-rcm button{padding:10px 24px;border-radius:var(--r-s);background:var(--accent);color:#fff;border:none;font-size:14px;font-weight:700;cursor:pointer;font-family:var(--sans);}
.cb-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;}
.cb-dl-btn{display:inline-flex;align-items:center;gap:7px;padding:11px 20px;border-radius:var(--r-s);border:none;cursor:pointer;background:var(--text);color:#fff;font-size:14px;font-weight:700;font-family:var(--sans);transition:all .15s;}
.cb-dl-btn:hover{background:#292524;}
.cb-dl-btn:disabled{opacity:.5;cursor:not-allowed;}
.cb-dl-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.cb-match-btn{display:inline-flex;align-items:center;gap:7px;padding:11px 20px;border-radius:var(--r-s);border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text-mid);font-size:14px;font-weight:600;font-family:var(--sans);text-decoration:none;transition:all .15s;}
.cb-match-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-l);}
.cb-pub-btn{display:inline-flex;align-items:center;gap:7px;padding:11px 20px;border-radius:var(--r-s);border:none;cursor:pointer;background:var(--accent);color:#fff;font-size:14px;font-weight:700;font-family:var(--sans);transition:all .15s;box-shadow:0 2px 10px rgba(26,125,232,.3);}
.cb-pub-btn:hover{background:#1565c0;transform:translateY(-1px);box-shadow:0 4px 14px rgba(26,125,232,.4);}
.cb-pub-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.cb-pub-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
/* WI-handoff modal interval-picker cards */
.wi-pick-note{font-size:12px;color:var(--text-mid);line-height:1.6;margin:0 0 14px;padding:10px 12px;background:var(--surface2);border-radius:var(--r-s);border:1px solid var(--border);}
.wi-pick-grid{display:flex;flex-direction:column;gap:8px;}
.wi-pick-card{display:flex;align-items:stretch;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-s);background:var(--surface);transition:all .15s;}
.wi-pick-card:hover{border-color:var(--accent-m);background:var(--accent-l);}
.wi-pick-head{display:flex;flex-direction:column;gap:2px;min-width:0;}
.wi-pick-freq{font-size:14px;font-weight:800;color:var(--text);letter-spacing:-.01em;}
.wi-pick-meta{font-size:11px;color:var(--text-dim);font-family:var(--mono);}
.wi-pick-tasks{font-size:11px;color:var(--text-mid);margin-top:4px;line-height:1.5;}
.wi-pick-go{align-self:center;flex-shrink:0;padding:8px 14px;border-radius:var(--r-s);background:var(--accent);color:#fff;border:none;cursor:pointer;font-size:12px;font-weight:700;font-family:var(--sans);display:inline-flex;align-items:center;gap:6px;}
.wi-pick-go:hover{background:#1565c0;}
.wi-pick-go svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}

/* ============================================================
   MODAL (reference popovers + WI-handoff picker)
   ============================================================ */
.modal-overlay{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.45);backdrop-filter:blur(3px);align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:0 24px 64px rgba(0,0,0,.25);max-width:680px;width:100%;max-height:85vh;display:flex;flex-direction:column;animation:fadeUp .22s ease both;}
.modal-header{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-shrink:0;}
.modal-title{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em;margin-bottom:2px;}
.modal-subtitle{font-size:11px;color:var(--text-dim);font-family:var(--mono);}
.modal-close{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-dim);transition:color .15s;flex-shrink:0;font-size:18px;line-height:1;}
.modal-close:hover{color:var(--text);}
.modal-body{padding:20px;overflow-y:auto;}
.ref-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:18px;}
.ref-table caption{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-family:var(--mono);text-align:left;padding-bottom:8px;}
.ref-table th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-family:var(--mono);border-bottom:2px solid var(--border);background:var(--surface2);}
.ref-table td{padding:9px 12px;border-bottom:1px solid var(--border);color:var(--text-mid);vertical-align:top;line-height:1.45;}
.ref-table tr:last-child td{border-bottom:none;}
.ref-c1{color:#16a34a;font-weight:800;font-family:var(--mono);}
.ref-c2{color:#d97706;font-weight:800;font-family:var(--mono);}
.ref-c3{color:#dc2626;font-weight:800;font-family:var(--mono);}
.ref-table-note{font-size:11px;color:var(--text-dim);line-height:1.6;padding:10px 12px;background:var(--surface2);border-radius:var(--r-s);border:1px solid var(--border);}

@media(max-width:860px){
  .crit-layout,.fmeca-layout,.cb-layout{grid-template-columns:1fr;}
  .crit-sidebar,.fmeca-sidebar,.cb-sidebar{position:static;height:auto;}
  .z008-cc-grid{grid-template-columns:1fr 1fr;}
  .concept-preview-attrs{grid-template-columns:1fr 1fr;}
}

/* ============================================================
   TOOL 1: GMC MATCHER (Matcher analyse layout + match cards)
   ============================================================ */
.analyse-layout {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 0;
  min-height: calc(100vh - 105px);
}

.input-panel {
  border-right: 1px solid var(--border);
  background: var(--surface);
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  /* No fixed height/overflow: let the panel flow with content. The run
     button below uses position:sticky;bottom:0 so it stays visible no
     matter the platform-header size or viewport height. */
}

.panel-section-title {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 10px;
}

/* Upload zone */
.upload-zone {
  border: 1.5px dashed var(--border);
  border-radius: var(--r);
  padding: 24px 16px;
  text-align: center;
  cursor: pointer;
  transition: all .2s;
  background: var(--surface2);
  position: relative;
  overflow: hidden;
}
.upload-zone::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(26,125,232,0) 0%, rgba(26,125,232,.06) 100%);
  opacity: 0;
  transition: opacity .2s;
  pointer-events: none;
}
.upload-zone:hover,
.upload-zone.dragging {
  border-color: var(--accent);
  background: var(--accent-l);
}
.upload-zone:hover::before,
.upload-zone.dragging::before { opacity: 1; }

.upload-icon-box {
  width: 40px;
  height: 40px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
  transition: all .2s;
  position: relative;
  z-index: 1;
}
.upload-zone:hover .upload-icon-box,
.upload-zone.dragging .upload-icon-box {
  background: var(--accent-l);
  border-color: var(--accent-m);
}
.upload-icon-box svg {
  width: 18px;
  height: 18px;
  stroke: var(--text-mid);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke .2s;
}
.upload-zone:hover .upload-icon-box svg,
.upload-zone.dragging .upload-icon-box svg { stroke: var(--accent); }

.upload-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 3px;
  position: relative;
  z-index: 1;
}
.upload-sub {
  font-size: 11px;
  color: var(--text-dim);
  position: relative;
  z-index: 1;
}
.upload-formats {
  margin-top: 10px;
  display: flex;
  justify-content: center;
  gap: 5px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.format-tag {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text-dim);
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 6px;
}
.upload-limits {
  margin-top: 8px;
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text-dim);
  line-height: 1.5;
  position: relative;
  z-index: 1;
}

#file-input { display: none; }

.file-loaded {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--success-l);
  border: 1px solid #bbf7d0;
  border-radius: var(--r-s);
  margin-top: 8px;
}
.file-loaded.visible { display: flex; }

.file-icon-box {
  width: 30px;
  height: 30px;
  background: #dcfce7;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.file-icon-box svg {
  width: 14px;
  height: 14px;
  stroke: var(--success);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.file-meta { flex: 1; min-width: 0; }
.file-meta .fname {
  font-size: 12px;
  font-weight: 500;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.file-meta .fsize {
  font-size: 10px;
  color: var(--text-dim);
  font-family: var(--mono);
}
.remove-file {
  background: none;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 2px;
  transition: color .15s;
  flex-shrink: 0;
}
.remove-file:hover { color: var(--danger); }

/* Results panel */
.results-panel {
  padding: 28px 32px;
  background: var(--bg);
}

.status-bar {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  margin-bottom: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  box-shadow: var(--shadow-s);
}
.status-bar.visible { display: flex; }
.status-text {
  font-size: 13px;
  color: var(--text-mid);
}

.error-bar {
  display: none;
  padding: 12px 16px;
  margin-bottom: 20px;
  background: var(--danger-l);
  border: 1px solid #fecaca;
  border-radius: var(--r-s);
  font-size: 13px;
  color: var(--danger);
}
.error-bar.visible { display: block; }

.results-header {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 20px;
}
.results-header h2 {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.02em;
}
.results-count {
  font-size: 12px;
  color: var(--text-dim);
  font-family: var(--mono);
}

.summary-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: var(--r-s);
  padding: 14px 16px;
  margin-bottom: 20px;
}
.summary-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.summary-label-row .summary-label { margin-bottom: 0; }
.summary-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--accent);
  margin-bottom: 6px;
  font-family: var(--mono);
}
.summary-text {
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.65;
}

.doc-status-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  font-family: var(--mono);
  letter-spacing: .04em;
  border: 1px solid;
}
.doc-status-badge.no-doc {
  background: var(--surface2);
  color: var(--text-dim);
  border-color: var(--border);
}
.doc-status-badge.unreadable {
  background: #fef3c7;
  color: #92400e;
  border-color: #fde68a;
}
.doc-status-badge.read {
  background: #dcfce7;
  color: #166534;
  border-color: #bbf7d0;
}

/* No-match prompt */
.no-match-prompt {
  display: none;
  margin-bottom: 20px;
  padding: 16px 20px;
  border-radius: var(--r);
  background: #fef9c3;
  border: 1px solid #fde68a;
}
.no-match-prompt.visible {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.no-match-prompt svg {
  width: 20px;
  height: 20px;
  stroke: #d97706;
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
  margin-top: 1px;
}
.no-match-prompt-title {
  font-size: 13px;
  font-weight: 700;
  color: #92400e;
  margin-bottom: 4px;
}
.no-match-prompt-text {
  font-size: 12px;
  color: #a16207;
  line-height: 1.55;
}
.no-match-prompt-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 7px 14px;
  border-radius: var(--r-s);
  background: #92400e;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  font-family: var(--sans);
  transition: opacity .15s;
  border: none;
  cursor: pointer;
}
.no-match-prompt-link:hover { opacity: .85; }

/* Match cards */
.match-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
  margin-bottom: 12px;
  box-shadow: var(--shadow-s);
  overflow: hidden;
  animation: fadeUp .3s ease both;
  transition: box-shadow .2s, border-color .2s;
}
.match-card:hover { box-shadow: var(--shadow-m); }
.match-card:nth-child(1) { animation-delay: .00s; }
.match-card:nth-child(2) { animation-delay: .05s; }
.match-card:nth-child(3) { animation-delay: .10s; }
.match-card:nth-child(4) { animation-delay: .15s; }
.match-card:nth-child(5) { animation-delay: .20s; }

.match-card-top {
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  user-select: none;
}
.match-card-top:hover { background: var(--surface2); }

.donut-wrap {
  position: relative;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}
.donut-svg {
  width: 48px;
  height: 48px;
  transform: rotate(-90deg);
}
.donut-bg {
  fill: none;
  stroke: var(--bg2);
  stroke-width: 4;
}
.donut-fg {
  fill: none;
  stroke-width: 4;
  stroke-linecap: round;
  transition: stroke-dashoffset 1s ease;
}
.donut-val {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  font-family: var(--mono);
}

.match-main {
  flex: 1;
  min-width: 0;
}
.match-id {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  margin-bottom: 2px;
}
.match-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.match-meta {
  font-size: 12px;
  color: var(--text-dim);
}

.match-badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}

.expand-icon {
  flex-shrink: 0;
  color: var(--text-dim);
  transition: transform .25s;
}
.match-card-top.open .expand-icon { transform: rotate(180deg); }

.match-card-body {
  display: none;
  border-top: 1px solid var(--border);
  background: var(--surface2);
}
.match-card-body.open { display: block; }

/* Plan ID hero */
.plan-id-hero { padding: 20px 20px 0; }
.plan-id-box {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
}
.plan-id-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 4px;
}
.plan-id-value {
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .02em;
}
.plan-id-desc {
  font-size: 13px;
  color: var(--text-mid);
  margin-top: 2px;
}
.copy-btn {
  margin-left: auto;
  flex-shrink: 0;
  padding: 7px 14px;
  border-radius: var(--r-s);
  background: var(--accent-l);
  border: 1px solid var(--accent-m);
  color: var(--accent);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  font-family: var(--sans);
  display: flex;
  align-items: center;
  gap: 6px;
}
.copy-btn:hover { background: #dbeafe; }
.copy-btn svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rationale-row {
  padding: 14px 20px;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--text-mid);
  line-height: 1.65;
}
.rationale-row strong {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  display: block;
  margin-bottom: 5px;
}

.attrs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.attr-cell {
  background: var(--surface2);
  padding: 12px 16px;
}
.attr-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 4px;
}
.attr-val {
  font-size: 12px;
  color: var(--text);
  font-weight: 500;
}

/* PM section inside match card */
.pm-section { padding: 20px; }
.pm-section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.pm-section-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}
.pm-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.pm-table thead tr { background: var(--bg2); }
.pm-table th {
  text-align: left;
  padding: 8px 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-dim);
  font-family: var(--mono);
  border-bottom: 1px solid var(--border);
}
.pm-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--border);
  color: var(--text-mid);
  vertical-align: top;
  line-height: 1.4;
}
.pm-table tr:last-child td { border-bottom: none; }
.pm-table tr:hover td { background: rgba(29, 78, 216, .03); }

/* Strategy pills (Matcher view) */
.strategy-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  font-family: var(--mono);
  border: 1px solid;
  white-space: nowrap;
}
.s-calendar {
  color: var(--accent);
  border-color: #bfdbfe;
  background: var(--accent-l);
}
.s-condition {
  color: var(--success);
  border-color: #bbf7d0;
  background: var(--success-l);
}
.s-firstline {
  color: var(--warn);
  border-color: #fde68a;
  background: var(--warn-l);
}

.freq-badge {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--text);
}

.pm-empty {
  padding: 20px;
  text-align: center;
  color: var(--text-dim);
  font-size: 13px;
}

/* Intervals section */
.routines-section {
  padding: 16px 20px 20px;
  border-top: 1px solid var(--border);
}
.routines-section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.routines-section-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}
.routines-empty {
  font-size: 13px;
  color: var(--text-dim);
  padding: 8px 0;
}

.strategy-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-bottom: 12px;
  padding: 8px 12px;
  border-radius: var(--r-s);
  background: var(--bg2);
  border: 1px solid var(--border);
  font-size: 11px;
}
.strategy-legend-label {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-dim);
}
.strategy-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--text-mid);
}
.strategy-legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.strategy-legend-dot.cal { background: var(--accent); }
.strategy-legend-dot.cond { background: var(--success); }
.strategy-legend-dot.fl { background: var(--warn); }

.cascade-hint {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--r-s);
  background: var(--accent-l);
  border: 1px solid var(--accent-m);
  font-size: 11px;
  color: #1d4ed8;
  line-height: 1.55;
  margin-bottom: 12px;
}
.cascade-hint svg {
  width: 14px;
  height: 14px;
  stroke: var(--accent);
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
  margin-top: 1px;
}
.cascade-hint strong { font-weight: 700; }
.cascade-hint-close {
  margin-left: auto;
  background: none;
  border: none;
  color: var(--accent);
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 0 4px;
  opacity: .6;
  transition: opacity .15s;
}
.cascade-hint-close:hover { opacity: 1; }

.interval-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  overflow: hidden;
  margin-bottom: 8px;
  transition: border-color .15s, box-shadow .15s;
}
.interval-card:hover {
  border-color: var(--accent-m);
  box-shadow: 0 2px 8px rgba(29, 78, 216, .08);
}

.interval-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: var(--surface);
}
.interval-freq {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--accent);
}
.interval-meta {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 1px;
}

.interval-task-row {
  display: flex;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  align-items: flex-start;
}
.interval-task-row:last-child { border-bottom: none; }
.interval-task-type {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--accent);
  flex-shrink: 0;
  padding-top: 1px;
  min-width: 32px;
}
.interval-task-desc { color: var(--text-mid); }

.interval-carried {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 8px;
  padding: 6px 10px;
  background: var(--accent-l);
  border-radius: var(--r-s);
  border: 1px solid var(--accent-m);
}

/* Generate WI button (interval-card action) */
.wi-gen-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
  padding: 6px 14px;
  border-radius: var(--r-s);
  font-size: 12px;
  font-weight: 600;
  background: linear-gradient(135deg, #1a4b82, #1a7de8);
  border: 1px solid var(--accent);
  color: #fff;
  cursor: pointer;
  transition: all .18s;
  font-family: var(--sans);
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(26, 125, 232, .25);
}
.wi-gen-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(26, 125, 232, .35);
}
.interval-card:hover .wi-gen-btn {
  box-shadow: 0 3px 10px rgba(26, 125, 232, .3);
}
.wi-gen-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}
.wi-gen-btn svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ============================================================
   TOOL 6: WORK INSTRUCTION GENERATOR
   ============================================================ */
.wi-panel {
  padding: 32px 40px;
  max-width: 680px;
  margin: 0 auto;
}
.wi-panel-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -.02em;
  margin-bottom: 6px;
}
.wi-panel-sub {
  font-size: 13px;
  color: var(--text-dim);
  margin-bottom: 28px;
  line-height: 1.6;
}

.wi-context-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  padding: 14px 16px;
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.wi-context-item label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-dim);
  font-family: var(--mono);
  display: block;
  margin-bottom: 3px;
}
.wi-context-item span {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.wi-doc-status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border-radius: var(--r-s);
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 20px;
  border: 1px solid;
}
.wi-doc-status.has-doc {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #15803d;
}
.wi-doc-status.no-doc {
  background: #fef9c3;
  border-color: #fde68a;
  color: #92400e;
}
.wi-doc-status svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  flex-shrink: 0;
}

.wi-form-section {
  margin-bottom: 18px;
}
.wi-form-section-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.wi-form-section-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}

.wi-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.wi-form-grid.three-col {
  grid-template-columns: 1fr 1fr 1fr;
}

.wi-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.wi-field.span-2 { grid-column: span 2; }

.wi-field label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-dim);
  font-family: var(--mono);
}
.wi-field input {
  padding: 8px 10px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text);
  outline: none;
  transition: border-color .15s;
}
.wi-field input:focus { border-color: var(--accent); }
.wi-field input.warn {
  border-color: #fde68a;
  background: #fffbeb;
}

.wi-soft-hint {
  display: none;
  align-items: flex-start;
  gap: 9px;
  padding: 10px 12px;
  margin-bottom: 16px;
  border-radius: var(--r-s);
  background: #fef9c3;
  border: 1px solid #fde68a;
  font-size: 12px;
  color: #92400e;
  line-height: 1.55;
}
.wi-soft-hint.visible { display: flex; }
.wi-soft-hint svg {
  width: 14px;
  height: 14px;
  stroke: #92400e;
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
  margin-top: 1px;
}
.wi-soft-hint-actions {
  margin-top: 6px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.wi-soft-hint button {
  background: none;
  border: 1px solid #fde68a;
  color: #92400e;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 600;
  border-radius: 12px;
  cursor: pointer;
  font-family: var(--sans);
  transition: background .15s;
}
.wi-soft-hint button:hover { background: #fef3c7; }
.wi-soft-hint button.primary {
  background: #92400e;
  color: #fff;
  border-color: #92400e;
}
.wi-soft-hint button.primary:hover { background: #78350f; }

.wi-generate-btn {
  width: 100%;
  padding: 13px;
  border-radius: var(--r-s);
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, #1a4b82, #1a7de8);
  color: #fff;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  transition: all .2s;
  box-shadow: 0 4px 16px rgba(26, 125, 232, .3);
}
.wi-generate-btn:hover {
  opacity: .9;
  transform: translateY(-1px);
}
.wi-generate-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}
.wi-generate-btn svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wi-clarify-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.wi-clarify-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent-l);
  border: 1px solid var(--accent-m);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.wi-clarify-icon svg {
  width: 16px;
  height: 16px;
  stroke: var(--accent);
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.wi-clarify-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.wi-clarify-progress {
  font-size: 12px;
  color: var(--text-dim);
  font-family: var(--mono);
}
.wi-clarify-reassure {
  font-size: 11px;
  color: var(--text-dim);
  margin-bottom: 16px;
  font-style: italic;
  padding-left: 48px;
}

.wi-clarify-card {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: var(--r-s);
  padding: 14px 16px;
  margin-bottom: 20px;
}
.wi-clarify-card-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--accent);
  font-family: var(--mono);
  margin-bottom: 6px;
}
.wi-clarify-card-q {
  font-size: 14px;
  color: var(--text);
  line-height: 1.65;
}

.wi-clarify-answer-wrap {
  margin-bottom: 16px;
}
.wi-clarify-answer-wrap label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-dim);
  font-family: var(--mono);
  display: block;
  margin-bottom: 4px;
}
.wi-clarify-answer-wrap textarea {
  padding: 9px 11px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text);
  outline: none;
  resize: vertical;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .15s;
}
.wi-clarify-answer-wrap textarea:focus { border-color: var(--accent); }
.wi-clarify-hint {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 4px;
}

.wi-clarify-actions {
  display: flex;
  gap: 10px;
}
.wi-clarify-cancel {
  padding: 13px 18px;
  border-radius: var(--r-s);
  background: var(--surface);
  color: var(--text-mid);
  border: 1px solid var(--border);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.wi-clarify-cancel:hover { background: var(--surface2); }

.wi-clarify-history {
  margin-top: 24px;
  display: none;
}
.wi-clarify-history.visible { display: block; }
.wi-clarify-history-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text-dim);
  font-family: var(--mono);
  margin-bottom: 10px;
}
.wi-clarify-history-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wi-clarify-history-item {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  padding: 10px 13px;
  font-size: 12px;
}
.wi-clarify-history-item .hi-label {
  font-weight: 700;
  color: var(--text-dim);
  margin-bottom: 3px;
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.wi-clarify-history-item .hi-q { color: var(--text-mid); margin-bottom: 8px; }
.wi-clarify-history-item .hi-a { color: var(--text); }

/* Done panel */
.wi-result {
  padding: 20px;
  border-radius: var(--r-s);
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  margin-bottom: 16px;
}
.wi-result-title {
  font-size: 14px;
  font-weight: 700;
  color: #15803d;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.wi-result-title svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
}
.wi-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 20px;
  border-radius: var(--r-s);
  border: none;
  cursor: pointer;
  background: #15803d;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  font-family: var(--sans);
  transition: all .15s;
}
.wi-download-btn:hover { background: #166534; }
.wi-download-btn svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wi-planner-reminder {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: #fef9c3;
  border: 1px solid #fde68a;
  border-radius: var(--r-s);
  font-size: 12px;
  color: #92400e;
  line-height: 1.55;
  margin-bottom: 16px;
}
.wi-planner-reminder svg {
  width: 14px;
  height: 14px;
  stroke: #92400e;
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
  margin-top: 2px;
}
.wi-planner-reminder strong { font-weight: 700; }

.wi-regenerate {
  padding: 9px 18px;
  border-radius: var(--r-s);
  background: var(--surface);
  color: var(--text-mid);
  border: 1px solid var(--border);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.wi-regenerate:hover { background: var(--surface2); }

/* No-match (WI) state */
.wi-no-match {
  padding: 48px 32px;
  text-align: center;
  color: var(--text-dim);
}
.wi-no-match svg {
  width: 48px;
  height: 48px;
  stroke: var(--border);
  fill: none;
  stroke-width: 1.5;
  margin-bottom: 16px;
}
.wi-no-match p {
  font-size: 15px;
  margin-bottom: 16px;
}
.wi-no-match button {
  padding: 10px 24px;
  border-radius: var(--r-s);
  background: var(--accent);
  color: #fff;
  border: none;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--sans);
}

/* Responsive */
@media (max-width: 860px) {
  .analyse-layout { grid-template-columns: 1fr; }
  .input-panel { position: static; height: auto; }
  .attrs-grid { grid-template-columns: 1fr 1fr; }
  .wi-form-grid.three-col { grid-template-columns: 1fr 1fr; }
  .wi-panel { padding: 24px 20px; }
}

/* ---------- Work Instruction document-attachment block ----------
   Shown on tab 6. State A: file loaded (carried over from Matcher or
   uploaded here). State B: no file, inline upload widget so develop-from-
   scratch users can attach a manual without going back to the Matcher. */
.wi-doc-block { margin-bottom: 20px; }

.wi-doc-loaded {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  background: var(--success-l);
  border: 1px solid #bbf7d0;
  border-left: 3px solid var(--success);
  border-radius: var(--r-s);
}
.wi-doc-loaded-icon {
  width: 18px; height: 18px;
  stroke: var(--success);
  fill: none;
  stroke-width: 2.5;
  flex-shrink: 0;
}
.wi-doc-loaded-meta { flex: 1; min-width: 0; }
.wi-doc-loaded-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--success);
  word-break: break-all;
}
.wi-doc-loaded-sub {
  font-size: 11px;
  font-family: var(--mono);
  color: #166534;
  margin-top: 2px;
}
.wi-doc-loaded-remove {
  flex-shrink: 0;
  width: 26px; height: 26px;
  border: 1px solid transparent;
  background: transparent;
  color: #166534;
  border-radius: 50%;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  transition: all .15s;
}
.wi-doc-loaded-remove:hover {
  background: #ffffffaa;
  border-color: #bbf7d0;
}

.wi-upload-zone {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: var(--surface);
  border: 1.5px dashed var(--border-s);
  border-radius: var(--r-s);
  cursor: pointer;
  transition: all .15s;
}
.wi-upload-zone:hover,
.wi-upload-zone.dragging {
  border-color: var(--accent);
  background: var(--accent-l);
}
.wi-upload-zone svg {
  width: 22px; height: 22px;
  stroke: var(--text-mid);
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.wi-upload-zone:hover svg,
.wi-upload-zone.dragging svg { stroke: var(--accent); }
.wi-upload-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.wi-upload-text strong {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.005em;
}
.wi-upload-text span {
  font-size: 12px;
  color: var(--text-mid);
  font-weight: 400;
}
.wi-upload-formats {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text-dim);
  letter-spacing: .04em;
  flex-shrink: 0;
  text-align: right;
  line-height: 1.45;
}

/* ---------- Work Instruction preview ---------- */
.wi-preview {
  margin-top: 24px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--r);
  box-shadow: var(--shadow-s);
  overflow: hidden;
}
.wi-preview:empty { display: none; }

.wp-header {
  background: #0D1B3E;
  color: #fff;
  padding: 20px 28px;
}
.wp-header-eyebrow {
  font-size: 11px;
  color: #BFDBFE;
  margin-bottom: 4px;
  letter-spacing: .02em;
}
.wp-header-title {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.01em;
  margin-bottom: 6px;
}
.wp-header-meta {
  font-size: 12px;
  color: #93C5FD;
}
.wp-header-tag {
  margin-top: 8px;
  font-weight: 700;
  font-size: 14px;
  color: #fff;
}

.wp-body { padding: 24px 28px; }

.wp-h2 {
  font-size: 13px;
  font-weight: 700;
  color: #1A4B82;
  background: #F0F7FF;
  border-left: 4px solid #1A4B82;
  padding: 6px 10px;
  margin: 24px 0 10px;
  border-radius: 0 var(--r-s) var(--r-s) 0;
}
.wp-h2:first-child { margin-top: 0; }

.wp-info-grid {
  display: grid;
  grid-template-columns: max-content 1fr;
  border: 1px solid #e2e8f0;
  border-radius: var(--r-s);
  overflow: hidden;
  font-size: 13px;
}
.wp-info-grid dt {
  background: #F8FAFC;
  color: #64748B;
  font-weight: 700;
  padding: 8px 12px;
  border-bottom: 1px solid #e2e8f0;
}
.wp-info-grid dd {
  margin: 0;
  color: #1E293B;
  padding: 8px 12px;
  border-bottom: 1px solid #e2e8f0;
}
.wp-info-grid dt:last-of-type,
.wp-info-grid dd:last-of-type { border-bottom: none; }

.wp-para {
  font-size: 13px;
  color: #334155;
  line-height: 1.7;
  margin: 0 0 10px;
}

.wp-bullets {
  list-style: disc;
  padding-left: 22px;
  font-size: 13px;
  color: #334155;
  line-height: 1.7;
}
.wp-bullets li { margin-bottom: 4px; }

.wp-steps { list-style: none; padding: 0; margin: 0; counter-reset: wp-step; }
.wp-step {
  padding: 10px 0;
  border-bottom: 1px solid #e2e8f0;
}
.wp-step:last-child { border-bottom: none; }
.wp-step-action {
  display: flex;
  gap: 8px;
  font-size: 14px;
  color: #1E293B;
  counter-increment: wp-step;
}
.wp-step-action::before {
  content: counter(wp-step) ".";
  font-weight: 700;
  color: #64748B;
  min-width: 22px;
}
.wp-step-fm {
  display: inline-block;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: #64748B;
  margin-right: 6px;
}
.wp-step-hazard {
  margin: 6px 0 0 30px;
  padding: 8px 12px;
  border-left: 4px solid #D97706;
  background: #FEF3C7;
  color: #92400E;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 0 var(--r-s) var(--r-s) 0;
}
.wp-step-hazard strong {
  font-weight: 700;
  margin-right: 6px;
}
.wp-step-acceptance {
  margin: 4px 0 0 30px;
  color: #16A34A;
  font-size: 12px;
  font-style: italic;
  line-height: 1.5;
}
.wp-step-acceptance::before {
  content: "\2713 ";
  font-weight: 700;
  font-style: normal;
}

.wp-readings {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.wp-readings td {
  padding: 8px 12px;
  border-bottom: 1px solid #e2e8f0;
  color: #334155;
}
.wp-readings td:first-child {
  background: #F8FAFC;
  color: #64748B;
  font-weight: 500;
  width: 45%;
}
.wp-readings td:last-child {
  color: #94A3B8;
  font-style: italic;
}
.wp-readings tr:last-child td { border-bottom: none; }

.wp-signoff { font-size: 12px; color: #64748B; }
.wp-signoff dt {
  display: inline-block;
  min-width: 140px;
  color: #64748B;
  padding: 6px 0;
}
.wp-signoff dd {
  display: inline-block;
  min-width: 220px;
  border-bottom: 1px solid #94A3B8;
  margin: 0 0 0 8px;
  padding: 6px 0;
}

.wp-disclaimer {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: var(--r-s);
  font-size: 12px;
  line-height: 1.6;
}
.wp-disclaimer.danger {
  background: #FEF2F2;
  border-left: 4px solid #FCA5A5;
  color: #991B1B;
}
.wp-disclaimer.amber {
  background: #FEF3C7;
  border-left: 4px solid #D97706;
  color: #92400E;
}
.wp-disclaimer.info {
  background: #FEF9C3;
  border-left: 4px solid #F59E0B;
  color: #78350F;
}
.wp-disclaimer strong { font-weight: 700; }

/* ============================================================
   MODE STRIP — Develop / Operate track toggle
   ============================================================ */
.mode-strip {
  background: linear-gradient(180deg, var(--surface) 0%, var(--surface2) 100%);
  border-bottom: 1px solid var(--border);
  padding: 10px 24px;
}
.mode-strip-inner {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.mode-strip-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--mono);
  color: var(--text-dim);
  flex-shrink: 0;
}
.mode-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.mode-pill {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 7px 14px;
  border-radius: var(--r-s);
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-mid);
  cursor: pointer;
  font-family: var(--sans);
  text-align: left;
  transition: all .18s;
  min-width: 180px;
  max-width: 320px;
}
.mode-pill:hover {
  border-color: var(--accent-m);
  background: var(--accent-l);
}
.mode-pill.active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
  box-shadow: 0 1px 4px rgba(26,125,232,.25);
}
.mode-pill-name {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -.01em;
}
.mode-pill-sub {
  font-size: 10px;
  font-weight: 400;
  opacity: .8;
  line-height: 1.3;
}
.mode-pill.active .mode-pill-sub { color: rgba(255,255,255,.85); opacity: 1; }

/* Mode-driven visibility — body[data-toolbox-mode] gates which strips/crumbs are visible */
body[data-toolbox-mode="develop"] [data-mode="operate"] { display: none !important; }
body[data-toolbox-mode="operate"] [data-mode="develop"] { display: none !important; }

/* "Soon" stub tabs on the Operate strip */
.tool-tab-soon { opacity: .55; cursor: not-allowed; }
.tool-tab-soon:hover { background: none; }
.tool-tab-soon-pill {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 20px;
  background: var(--surface2);
  color: var(--text-dim);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid var(--border);
}

@media (max-width: 900px) {
  .mode-strip { padding: 8px 16px; }
  .mode-pill { min-width: 140px; padding: 6px 10px; }
  .mode-pill-sub { display: none; }
}

/* ============================================================
   RCA — Root Cause Analysis (Tool 7)
   ============================================================ */
.rca-layout {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 0;
  min-height: calc(100vh - var(--nav-h) - 200px);
}
.rca-sidebar {
  background: var(--surface);
  border-right: 1px solid var(--border);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow-y: auto;
}
.rca-main {
  padding: 28px 32px;
  overflow-y: auto;
}

/* Method picker pills */
.rca-method-pills {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.rca-method-pill {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  padding: 9px 12px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text-mid);
  cursor: pointer;
  font-family: var(--sans);
  text-align: left;
  transition: all .18s;
}
.rca-method-pill:hover {
  border-color: var(--accent-m);
  background: var(--accent-l);
}
.rca-method-pill.active {
  border-color: var(--accent);
  background: var(--accent-l);
  color: var(--accent);
}
.rca-method-pill.active .rca-method-pill-sub { color: var(--accent); opacity: .8; }
.rca-method-pill-name {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -.01em;
}
.rca-method-pill-sub {
  font-size: 10px;
  font-weight: 400;
  color: var(--text-dim);
  line-height: 1.3;
}
.rca-method-pill-soon { opacity: .55; cursor: not-allowed; }
.rca-method-pill-soon:hover { background: var(--bg); border-color: var(--border); }
.rca-method-soon-pill {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 20px;
  background: var(--surface2);
  color: var(--text-dim);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid var(--border);
}

/* Severity toggle buttons */
.rca-sev-btn {
  padding: 5px 11px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text-mid);
  font-size: 11px;
  font-weight: 600;
  font-family: var(--sans);
  cursor: pointer;
  transition: all .15s;
}
.rca-sev-btn:hover { border-color: var(--accent-m); }
.rca-sev-btn.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* Evidence upload (compact Matcher-style) */
.rca-upload-zone {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 14px;
  border: 1.5px dashed var(--border);
  border-radius: var(--r-s);
  background: var(--bg);
  cursor: pointer;
  transition: all .18s;
  text-align: center;
}
.rca-upload-zone:hover {
  border-color: var(--accent);
  background: var(--accent-l);
}
.rca-upload-zone.dragging {
  border-color: var(--accent);
  background: var(--accent-l);
}
.rca-upload-zone input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
.rca-upload-icon { color: var(--text-dim); }
.rca-upload-icon svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rca-upload-text { font-size: 12px; color: var(--text-mid); line-height: 1.4; }
.rca-upload-text strong { display: block; font-weight: 700; color: var(--text); font-size: 12px; }
.rca-upload-text span { font-size: 11px; color: var(--text-dim); }
.rca-upload-formats {
  font-size: 10px;
  color: var(--text-dim);
  font-family: var(--mono);
  letter-spacing: .03em;
}
.rca-file-loaded {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-s);
  background: var(--success-l);
}
.rca-file-loaded.active { display: flex; }

.rca-method-note {
  font-size: 11px;
  color: var(--text-dim);
  line-height: 1.6;
  padding: 10px 12px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
}
.rca-method-note strong { color: var(--text-mid); font-weight: 700; }

/* Result header */
.rca-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}
.rca-result-title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.02em;
  margin-bottom: 2px;
}
.rca-result-sub {
  font-size: 11px;
  color: var(--text-dim);
  font-family: var(--mono);
}
.rca-result-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.rca-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--r-s);
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--sans);
  color: var(--text-mid);
  transition: all .15s;
}
.rca-btn-secondary:hover {
  border-color: var(--accent-m);
  color: var(--accent);
}

/* Result blocks */
.rca-block {
  margin-bottom: 22px;
}
.rca-block-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--mono);
  color: var(--text-dim);
  margin-bottom: 10px;
}
.rca-add-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 7px 14px;
  border-radius: var(--r-s);
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--sans);
  color: var(--text-mid);
  transition: all .15s;
}
.rca-add-row:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* 5-Whys chain */
.rca-5why-chain {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rca-why-row {
  display: grid;
  grid-template-columns: 52px 1fr 28px;
  gap: 10px;
  align-items: center;
  padding: 10px 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: var(--r-s);
}
.rca-why-num {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  color: var(--accent);
  text-transform: uppercase;
}
.rca-why-row textarea {
  width: 100%;
  padding: 6px 10px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text);
  outline: none;
  resize: vertical;
  min-height: 36px;
  line-height: 1.5;
  transition: border-color .15s;
}
.rca-why-row textarea:focus { border-color: var(--accent); }
.rca-why-row .remove-file {
  background: none;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  font-size: 14px;
  padding: 4px;
  border-radius: 4px;
  transition: all .15s;
}
.rca-why-row .remove-file:hover { color: #dc2626; background: rgba(220,38,38,.08); }

/* Fishbone 6-M grid */
.rca-fishbone-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.rca-fishbone-cat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-top: 3px solid var(--accent);
  border-radius: var(--r-s);
  padding: 14px 14px 10px;
}
.rca-fishbone-cat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.rca-fishbone-cat-name {
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -.01em;
}
.rca-fishbone-cat-sub {
  font-size: 10px;
  color: var(--text-dim);
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.rca-fishbone-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 6px;
}
.rca-fishbone-item {
  display: flex;
  gap: 6px;
  align-items: flex-start;
}
.rca-fishbone-item textarea {
  flex: 1;
  padding: 5px 9px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--sans);
  font-size: 12px;
  color: var(--text);
  outline: none;
  resize: vertical;
  min-height: 32px;
  line-height: 1.45;
}
.rca-fishbone-item textarea:focus { border-color: var(--accent); }
.rca-fishbone-item .remove-file {
  background: none;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  font-size: 13px;
  padding: 3px;
  flex-shrink: 0;
}
.rca-fishbone-item .remove-file:hover { color: #dc2626; }
.rca-fishbone-add {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: 1px dashed var(--border);
  color: var(--text-dim);
  font-size: 11px;
  font-weight: 600;
  font-family: var(--sans);
  padding: 4px 10px;
  border-radius: var(--r-s);
  cursor: pointer;
  transition: all .15s;
}
.rca-fishbone-add:hover { border-color: var(--accent); color: var(--accent); border-style: solid; }

@media (max-width: 900px) {
  .rca-fishbone-grid { grid-template-columns: 1fr; }
}

/* Root cause rows */
.rca-roots {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.rca-root-row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-s);
}
.rca-root-label {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-family: var(--mono);
  padding: 4px 10px;
  border-radius: 20px;
  text-align: center;
  white-space: nowrap;
}
.rca-root-immediate { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.rca-root-contributing { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.rca-root-systemic { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }
.rca-root-row textarea {
  width: 100%;
  padding: 7px 11px;
  border-radius: var(--r-s);
  border: 1px solid var(--border);
  background: var(--bg);
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text);
  outline: none;
  resize: vertical;
  min-height: 44px;
  line-height: 1.5;
  box-sizing: border-box;
}
.rca-root-row textarea:focus { border-color: var(--accent); }

/* Write-back call-to-action block */
.rca-writeback {
  background: linear-gradient(135deg, var(--accent-l) 0%, var(--surface2) 100%);
  border: 1px solid var(--accent-m);
  border-radius: var(--r);
  padding: 18px 22px;
  margin-bottom: 20px;
}
.rca-writeback-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--mono);
  color: var(--accent);
  margin-bottom: 4px;
}
.rca-writeback-text {
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.6;
  margin-bottom: 14px;
}
.rca-writeback-btns {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.rca-writeback-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: var(--r-s);
  background: var(--surface);
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--sans);
  transition: all .15s;
}
.rca-writeback-btn:hover {
  background: var(--accent);
  color: #fff;
}

/* "Coming Soon" placeholder panels (Tools 8/9/10) */
.rca-soon {
  max-width: 540px;
  margin: 64px auto;
  text-align: center;
  padding: 48px 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r);
}
.rca-soon-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--accent-l);
  display: flex;
  align-items: center;
  justify-content: center;
}
.rca-soon-icon svg {
  width: 26px;
  height: 26px;
  stroke: var(--accent);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rca-soon-tag {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 20px;
  background: var(--accent-l);
  color: var(--accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--mono);
  margin-bottom: 12px;
}
.rca-soon h2 {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.02em;
  margin-bottom: 12px;
  color: var(--text);
}
.rca-soon p {
  font-size: 14px;
  font-weight: 300;
  color: var(--text-mid);
  line-height: 1.7;
  margin-bottom: 12px;
}
.rca-soon-meta {
  font-size: 12px !important;
  color: var(--text-dim) !important;
  margin-top: 18px !important;
}
.rca-soon-meta a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}
.rca-soon-meta a:hover { text-decoration: underline; }

@media (max-width: 900px) {
  .rca-layout { grid-template-columns: 1fr; }
  .rca-sidebar { border-right: none; border-bottom: 1px solid var(--border); }
  .rca-main { padding: 20px 18px; }
  .rca-root-row { grid-template-columns: 1fr; }
}
