:root { --service-max: 900px; }
body { padding-bottom: 32px; }
.service-header { background:var(--white); border-bottom:1px solid var(--border); box-shadow:var(--shadow); position:sticky; top:0; z-index:10; }
.service-header__inner, .service-main { max-width:var(--service-max); margin:0 auto; padding-left:16px; padding-right:16px; }
.service-header__inner { min-height:62px; display:flex; align-items:center; gap:12px; }
.service-logo { color:var(--text); font-weight:700; text-decoration:none; font-size:20px; }
.service-logo span { color:var(--accent); }
.service-back { margin-left:auto; color:var(--text-dim); font-size:14px; font-weight:700; text-decoration:none; }
.service-main { padding-top:20px; }
.service-card { background:var(--white); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); padding:18px; margin-bottom:16px; }
.service-title { font-size:22px; margin:0 0 6px; }
.service-subtitle, .service-note { color:var(--text-dim); font-size:14px; line-height:1.45; }
.service-warning { border-left:3px solid var(--accent); background:var(--surface2); padding:12px; border-radius:8px; font-size:14px; line-height:1.45; margin-top:14px; }
.service-load-error { border:2px solid var(--accent); background:var(--white); color:var(--text); border-radius:12px; padding:14px; margin-bottom:16px; font-weight:700; line-height:1.4; }
.service-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:16px 0; }
.service-actions__label { width:100%; color:var(--text-dim); font-size:13px; font-weight:700; }
.service-action { min-height:44px; border:1px solid var(--border); border-radius:9px; background:var(--white); color:var(--text); font:inherit; font-weight:700; padding:8px 12px; cursor:pointer; }
.service-action.is-active { background:var(--accent); border-color:var(--accent); color:#fff; }
.service-action:disabled { opacity:.45; cursor:not-allowed; }
.service-section[hidden] { display:none; }
.service-search, .service-select { width:100%; min-height:48px; border:1.5px solid var(--border); border-radius:8px; padding:10px 12px; font:inherit; font-size:16px; color:var(--text); background:var(--white); }
.service-filters { display:grid; grid-template-columns:1fr; gap:10px; margin:14px 0 10px; }
.service-filter-label { display:block; color:var(--text-dim); font-size:13px; font-weight:700; margin:0 0 5px; }
.refine-filters { margin-top:12px; color:var(--text-dim); font-size:14px; }
.refine-filters summary { cursor:pointer; font-weight:700; }
.refine-filters .service-filters { margin-bottom:0; }
.service-search:focus, .service-select:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(212,43,43,.08); }
.service-results { display:grid; gap:8px; margin-top:12px; }
.error-result { width:100%; min-height:56px; text-align:left; background:var(--white); border:1px solid var(--border); border-radius:9px; padding:10px 12px; font:inherit; color:var(--text); cursor:pointer; }
.error-result:active, .error-result.is-active { border-color:var(--accent); background:var(--surface2); }
.error-code { color:var(--accent); font-weight:700; margin-right:8px; }
.error-models { display:block; color:var(--text-dim); font-size:13px; font-weight:400; margin-top:4px; }
.selected-boiler { background:var(--surface2); border-radius:9px; padding:14px; margin-top:14px; }
.selected-boiler__label { color:var(--text-dim); font-size:13px; font-weight:700; margin-bottom:3px; }
.selected-boiler__title { font-weight:700; font-size:18px; }
.trait-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.trait { background:var(--white); border:1px solid var(--border); border-radius:999px; padding:4px 8px; color:var(--text-dim); font-size:13px; font-weight:700; }
.selected-boiler a, .service-card a { color:var(--accent2); font-weight:700; }
.service-section-title { font-size:16px; margin:18px 0 8px; }
.service-list { margin:0; padding-left:20px; display:grid; gap:9px; line-height:1.4; }
.check-item { display:flex; gap:10px; align-items:flex-start; font-size:16px; line-height:1.35; }
.check-item input { width:20px; height:20px; margin:0; flex:0 0 auto; accent-color:var(--accent); }
.part-row { border-top:1px solid var(--border); padding:12px 0; display:grid; grid-template-columns:34px 1fr; gap:8px; align-items:start; }
.part-position { color:var(--accent); font-weight:700; }
.part-name { font-weight:700; line-height:1.35; }
.part-article { color:var(--text-dim); font-size:13px; margin-top:3px; }
.service-button { min-height:44px; border:0; border-radius:8px; background:var(--accent); color:#fff; padding:10px 14px; font:inherit; font-weight:700; cursor:pointer; margin-top:10px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.service-button:active { background:var(--accent2); }
.scheme-viewport { overflow:hidden; border:1px solid var(--border); border-radius:10px; background:var(--surface2); touch-action:none; }
.scheme-choice { margin:0 0 12px; }
.scheme-viewport svg { display:block; width:100%; height:auto; user-select:none; }
.scheme-viewport .scheme-image { display:block; width:100%; height:auto; background:#fff; }
.scheme-image-wrap { position:relative; }
.scheme-hotspot { position:absolute; transform:translate(-50%,-50%); width:22px; height:22px; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.scheme-hotspot::after { content:''; position:absolute; top:0; right:0; width:7px; height:7px; border:2px solid #fff; border-radius:50%; background:var(--accent); box-shadow:var(--shadow); pointer-events:none; }
.scheme-hotspot.is-active { border:2px solid var(--accent); background:rgba(212,43,43,.12); }
.scheme-viewport .hotspot { cursor:pointer; }
.scheme-viewport .hotspot.is-active circle { stroke:var(--text); stroke-width:6px; }
.part-row.is-active { background:var(--surface2); box-shadow:inset 3px 0 var(--accent); padding-left:8px; border-radius:4px; }
.part-preview { border:2px solid var(--accent); border-radius:10px; padding:13px; margin-top:12px; background:var(--surface2); }
.part-preview__label { color:var(--text-dim); font-size:13px; font-weight:700; }
.part-preview__name { font-size:18px; font-weight:700; margin-top:3px; }
.parts-group-title { margin:18px 0 0; padding:8px 10px; border-radius:7px; background:var(--surface2); color:var(--text-dim); font-size:14px; }
.offline-state { font-size:12px; color:var(--text-dim); margin-left:auto; }
@media (min-width:700px) { .service-filters { grid-template-columns:1fr 1fr; } .service-main { padding-top:28px; } }
