/* Fast mobile diagnosis: primary choices first, utilities second. */
.intro { margin-bottom: 24px; }
.tools.secondary-tools { grid-template-columns: auto repeat(6, minmax(0, 1fr)); align-items: center; margin: 18px 0; }
.secondary-tools > span { color: var(--muted); font-size: .78rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; padding-right: 6px; }
.secondary-tools .tool { min-height: 62px; flex-direction: row; gap: 8px; }
.secondary-tools .tool span { font-size: 1.05rem; }
.choice-heading { font-size: 1rem; color: var(--blue); text-transform: uppercase; letter-spacing: .1em; }
.route-grid { grid-template-columns: repeat(2, 1fr); }
.route-card { min-height: 126px; padding: 18px; }
.route-card.featured { box-shadow: 0 10px 25px #071b3026; }
.appliance-row { margin: 24px 0 18px; }
.manual-appliance[hidden], #manual-fault-field[hidden], .field[hidden] { display: none; }
.appliance-row .manual-appliance { grid-column: 1 / -1; }
.appliance-row .manual-appliance input { width: 100%; height: 52px; border: 1px solid #cfdbe4; border-radius: 10px; padding: 0 14px; font: inherit; }
.appliance-row .manual-appliance input:focus { outline: 3px solid #25c5df24; border-color: var(--cyan); }
.safety-quick { margin: 20px 0 24px; }
.symptom-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.symptom-card { min-height: 96px; border: 1px solid #bfd0dc; border-radius: 12px; background: #fff; color: var(--ink); padding: 16px; text-align: left; font: inherit; cursor: pointer; }
.symptom-card:hover, .symptom-card:focus-visible { border-color: var(--cyan); outline: 3px solid #25c5df2e; }
.symptom-card b, .symptom-card small { display: block; }
.symptom-card b { font-size: 1rem; }
.symptom-card small { margin-top: 5px; color: var(--muted); line-height: 1.35; }
.quick-tests { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.quick-tests > div:first-child { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.quick-tests h2 { font-size: 1.08rem; margin: 4px 0 0; }
.quick-test-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 14px; }
.quick-test-grid button { min-height: 48px; border: 1px solid var(--blue); border-radius: 9px; background: #fff; color: var(--blue); font: inherit; font-weight: 800; cursor: pointer; }
.quick-test-grid button:hover, .quick-test-grid button:focus-visible { background: #eaf7fb; outline: 2px solid #25c5df55; }
dialog { max-height: calc(100dvh - 28px); overflow: auto; overscroll-behavior: contain; }

@media (max-width: 680px) {
  main { padding: 22px 12px 38px; }
  .intro { margin-bottom: 18px; }
  .intro h1 { font-size: 1.82rem; }
  .intro p { line-height: 1.42; }
  .workspace, .result, .placeholder { padding: 18px 14px; }
  .route-grid { grid-template-columns: 1fr; gap: 8px; }
  .route-card { min-height: 80px; padding: 13px 14px; display: grid; grid-template-columns: 38px 1fr; grid-template-rows: auto auto; column-gap: 11px; row-gap: 1px; }
  .route-card .route-icon { grid-row: 1 / 3; }
  .route-card b { font-size: 1rem; align-self: end; }
  .route-card small { font-size: .8rem; align-self: start; }
  .appliance-row { margin: 19px 0 14px; gap: 9px; }
  .safety-quick { padding: 11px 12px; gap: 7px; }
  .safety-quick span { font-size: .8rem; }
  .tools.secondary-tools { grid-template-columns: repeat(2, 1fr); gap: 6px; margin: 14px 0; }
  .secondary-tools > span { grid-column: 1 / -1; padding: 0; }
  .secondary-tools .tool { min-height: 49px; font-size: .74rem; flex-direction: row; padding: 7px 5px; }
  .symptom-grid { grid-template-columns: 1fr; gap: 8px; }
  .symptom-card { min-height: 76px; padding: 13px; }
  .quick-tests > div:first-child { display: block; }
  .quick-test-grid { grid-template-columns: 1fr 1fr; }
  .quick-test-grid button { font-size: .86rem; }
  dialog { width: calc(100% - 20px); padding: 18px; border-radius: 14px; }
}

.record-intro { color: var(--muted); line-height: 1.5; }
.record-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.record-wide { grid-column: 1 / -1; }
.optional-record textarea { min-height: 118px; line-height: 1.45; resize: vertical; }
.optional-record textarea:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px #25c5df24; }
@media (max-width: 680px) {
  .record-grid { grid-template-columns: 1fr; }
  .record-wide { grid-column: auto; }
  .optional-record textarea { min-height: 130px; }
}

.thermostat-workspace { max-width: 900px; margin: 0 auto; }
.thermostat-badge { background: #e8f8fb; color: var(--blue); }
.thermostat-alert { display: flex; align-items: center; gap: 12px; margin: 22px 0; padding: 14px 16px; border: 1px solid #f0d48b; background: #fff8e6; border-radius: 11px; color: #594c2f; }
.thermostat-alert strong { flex: 0 0 auto; color: #765100; }
.thermostat-alert span { line-height: 1.45; }
.thermostat-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.thermostat-wide { grid-column: 1 / -1; }
.thermostat-show { max-width: 680px; margin: 4px auto 0; }
.thermostat-card { margin-top: 24px; border: 1px solid #b9d9e5; border-radius: 14px; background: #f8fcfd; padding: 22px; }
.thermostat-ready { background: #d8f5e8 !important; color: #087349 !important; }
.thermostat-interface { margin: 16px 0; padding: 14px 16px; border-left: 4px solid var(--cyan); background: #eaf7fb; border-radius: 8px; }
.thermostat-interface small,.thermostat-interface strong { display: block; }
.thermostat-interface small { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; }
.thermostat-interface strong { margin-top: 5px; color: var(--blue); line-height: 1.45; }
.thermostat-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.thermostat-steps section { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 15px; }
.thermostat-steps b { color: var(--blue); }
.thermostat-steps p { margin: 7px 0 0; color: #506477; line-height: 1.5; }
.thermostat-note { margin: 16px 0; padding: 14px 16px; border-radius: 10px; background: #fff8e6; color: #594c2f; }
.thermostat-note p { margin: 5px 0 0; line-height: 1.45; }
.thermostat-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.thermostat-actions .primary,.thermostat-actions .secondary { width: 100%; margin: 0; }
@media (max-width: 680px) {
  .thermostat-alert { align-items: flex-start; flex-direction: column; }
  .thermostat-form,.thermostat-steps,.thermostat-actions { grid-template-columns: 1fr; }
  .thermostat-wide { grid-column: auto; }
  .thermostat-card { padding: 17px 14px; }
}

.service-workspace[hidden] { display: none; }
.service-badge { font-size: 1.25rem; }
.service-alert { display: flex; align-items: flex-start; gap: 12px; margin: 22px 0; padding: 14px 16px; border: 1px solid #f0d48b; background: #fff8e6; border-radius: 11px; color: #594c2f; }
.service-alert strong { flex: 0 0 auto; color: #765100; }
.service-alert span { line-height: 1.45; }
.service-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.service-form .field { margin: 0; }
.service-id-field { grid-column: 1 / -1; }
.service-show { margin-top: 14px; }
.service-card { margin-top: 20px; border: 1px solid #b9d9e5; border-radius: 14px; background: #f8fcfd; padding: 22px; }
.service-card[hidden] { display: none; }
.service-card > p { color: var(--muted); line-height: 1.5; }
.service-ready { background: #d8f5e8 !important; color: #087349 !important; }
.service-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 0; }
.service-steps section { padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.service-steps b { display: block; color: var(--blue); font-size: .84rem; }
.service-steps p { margin: 7px 0 0; color: #40566a; font-size: .88rem; line-height: 1.48; }
.service-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.service-actions .primary, .service-actions .secondary { width: 100%; margin: 0; text-decoration: none; }

@media (max-width: 760px) {
  .service-form, .service-steps, .service-actions { grid-template-columns: 1fr; }
  .service-id-field { grid-column: auto; }
  .service-alert { flex-direction: column; }
  .service-card { padding: 17px 14px; }
}

.pcb-workspace[hidden], .pcb-card[hidden] { display: none; }
.pcb-badge { font-size: 1.2rem; }
.pcb-alert { display: flex; align-items: flex-start; gap: 12px; margin: 22px 0; padding: 14px 16px; border: 1px solid #efb9b3; background: #fff3f1; border-radius: 11px; color: #653a36; }
.pcb-alert strong { flex: 0 0 auto; color: #9e271c; }
.pcb-alert span { line-height: 1.45; }
.pcb-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pcb-form .field { margin: 0; }
.pcb-wide { grid-column: 1 / -1; }
.pcb-show { margin-top: 14px; }
.pcb-card { margin-top: 20px; border: 1px solid #b9d9e5; border-radius: 14px; background: #f8fcfd; padding: 22px; }
.pcb-card > p { color: var(--muted); line-height: 1.5; }
.pcb-ready { background: #d8f5e8 !important; color: #087349 !important; }
.pcb-setup-type { margin: 16px 0; padding: 14px 16px; border-left: 4px solid var(--cyan); background: #eaf7fb; border-radius: 8px; }
.pcb-setup-type small, .pcb-setup-type strong { display: block; }
.pcb-setup-type small { color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .08em; }
.pcb-setup-type strong { margin-top: 5px; color: var(--blue); }
.pcb-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 0; }
.pcb-steps section { padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.pcb-steps b { display: block; color: var(--blue); font-size: .84rem; }
.pcb-steps p { margin: 7px 0 0; color: #40566a; font-size: .88rem; line-height: 1.48; }
.pcb-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pcb-actions .primary, .pcb-actions .secondary { width: 100%; margin: 0; text-decoration: none; }
.optional-mark { color: var(--muted); font-size: .72rem; font-weight: 750; }

@media (max-width: 760px) {
  .pcb-form, .pcb-steps, .pcb-actions { grid-template-columns: 1fr; }
  .pcb-wide { grid-column: auto; }
  .pcb-alert { flex-direction: column; }
  .pcb-card { padding: 17px 14px; }
}

.analytics-consent { position: fixed; z-index: 1000; left: 16px; right: 16px; bottom: 16px; max-width: 920px; margin: auto; padding: 17px 18px; display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; border: 1px solid #3c5c73; border-radius: 13px; background: #071b30; color: #fff; box-shadow: 0 16px 45px #0006; }
.analytics-consent[hidden] { display: none; }
.analytics-consent strong { display: block; font-size: 1rem; }
.analytics-consent p { margin: 5px 0 0; color: #d9e7ef; font-size: .86rem; line-height: 1.45; }
.analytics-consent-actions { display: flex; gap: 8px; }
.analytics-consent-actions button { white-space: nowrap; margin: 0; }
.analytics-consent .outline { color: #fff; border-color: #b9d9e5; background: transparent; }

@media (max-width: 680px) {
  .analytics-consent { left: 10px; right: 10px; bottom: 10px; grid-template-columns: 1fr; gap: 13px; padding: 15px; }
  .analytics-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .analytics-consent-actions button { width: 100%; }
}

.wiring-panel{margin:18px 0;padding:16px;background:#fff;border:1px solid #b9d9e5;border-radius:12px}.wiring-heading{display:flex;gap:12px;justify-content:space-between;align-items:center}.wiring-heading h4{margin:5px 0;color:var(--blue);font-size:1.1rem}.wiring-heading small{color:var(--muted);font-size:.7rem;letter-spacing:.08em}.wiring-heading button{width:auto;margin:0}.wiring-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.wiring-scroll svg{display:block;width:100%;min-width:680px;height:auto}.wiring-panel p{line-height:1.5;color:#506477}.wiring-caution{background:#fff8e6;padding:12px;border-radius:8px;font-size:.9rem;line-height:1.5}#wiring-dialog{width:min(1100px,95vw);max-width:95vw}#wiring-dialog .wiring-scroll svg{min-width:780px}.wiring-panel a{color:var(--blue);font-weight:700}@media(max-width:600px){.wiring-heading{align-items:flex-start;flex-direction:column}.wiring-panel{padding:12px}}

.conversion-context{color:#506477;line-height:1.5}.conversion-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.conversion-overview>div{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff}.conversion-overview small,.conversion-overview strong{display:block}.conversion-overview small{color:var(--muted);margin-bottom:6px}.conversion-overview strong{color:var(--blue)}.conversion-overview p{line-height:1.5;color:#506477}.conversion-diagram{margin-bottom:18px}.conversion-stage,.conversion-sources{border:1px solid var(--line);border-radius:10px;background:#fff;margin:10px 0;padding:14px 16px}.conversion-stage summary,.conversion-sources summary{font-weight:750;color:var(--blue);cursor:pointer}.conversion-stage li,.conversion-sources li{line-height:1.55;margin:10px 0;color:#506477}.conversion-sources a{color:var(--blue)}.conversion-sources p{font-size:.85rem;color:var(--muted)}@media(max-width:600px){.conversion-overview{grid-template-columns:1fr}.conversion-stage{padding:13px}.conversion-stage ul{padding-left:20px}}

.conversion-visual{margin:20px 0}.conversion-visual h3{color:var(--blue);font-size:1.3rem}.conversion-visual>p{line-height:1.5;color:#506477}.conversion-legend{display:flex;flex-wrap:wrap;gap:8px}.conversion-legend span{padding:7px 11px;border-radius:7px;font-size:.8rem;font-weight:800}.conversion-legend .retain{background:#effaf3;color:#18784b}.conversion-legend .remove{background:#fff0ed;color:#ae4337}.conversion-legend .new{background:#e9f9ff;color:#007898}.conversion-drawing{margin:16px 0;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.conversion-drawing-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.conversion-drawing-head h4{margin:0;color:var(--blue);font-size:1rem}.conversion-drawing-head button{margin:0;width:auto}.conversion-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.conversion-route-grid article{border:1px solid var(--line);border-radius:9px;padding:14px;background:#fff}.conversion-route-grid b{color:var(--blue)}.conversion-route-grid p{font-size:.9rem;line-height:1.5;color:#506477;margin:8px 0 0}#conversion-diagram-dialog{width:min(1100px,95vw);max-width:95vw}#conversion-diagram-dialog svg{min-width:820px}@media(max-width:600px){.conversion-route-grid{grid-template-columns:1fr}.conversion-drawing-head{align-items:flex-start;flex-direction:column}}
