.qe-assessment-shell { padding: 44px 0 72px; }
.qe-assessment-app { display: grid; gap: 22px; }
.qe-assessment-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.qe-assessment-heading h1 { margin:6px 0 8px; color:var(--qe-navy); font-size:clamp(2rem,4vw,3.4rem); line-height:1; letter-spacing:-.035em; }
.qe-assessment-heading p { margin:0; color:var(--qe-slate); max-width:760px; }
.qe-assessment-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.qe-save-status { min-height:24px; color:var(--qe-slate); font-weight:800; font-size:.9rem; }
.qe-save-status.is-success { color:#227447; }
.qe-save-status.is-error { color:var(--qe-red-dark); }
.qe-btn { border:0; border-radius:13px; padding:13px 17px; font:inherit; font-weight:900; cursor:pointer; transition:.18s ease; }
.qe-btn:hover { transform:translateY(-1px); }
.qe-btn:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.qe-btn-primary { background:var(--qe-red); color:#fff; box-shadow:0 9px 18px rgba(216,59,64,.16); }
.qe-btn-primary:hover { background:var(--qe-red-dark); }
.qe-btn-ghost { background:var(--qe-grey); color:var(--qe-navy); }
.qe-btn-small { padding:10px 13px; font-size:.88rem; }

.qe-assessment-card { background:#fff; border:1px solid var(--qe-border); border-radius:var(--qe-radius); box-shadow:var(--qe-shadow); overflow:hidden; }
.qe-card-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 22px; border-bottom:1px solid var(--qe-border); }
.qe-card-head > div:first-child { display:flex; align-items:center; gap:13px; }
.qe-card-head h2 { margin:0; color:var(--qe-navy); font-size:1.14rem; }
.qe-card-head p { margin:3px 0 0; color:var(--qe-slate); font-size:.9rem; }
.qe-card-head-compact { padding-bottom:18px; }
.qe-step { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; flex:0 0 auto; background:var(--qe-navy); color:#fff; font-size:.82rem; font-weight:900; }
.qe-estimate-number { background:var(--qe-grey); color:var(--qe-navy); border-radius:10px; padding:9px 12px; font-weight:900; font-size:.86rem; }

.qe-case-card { padding-bottom:4px; }
.qe-form-grid { display:grid; gap:14px; padding:20px 22px 22px; }
.qe-form-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.qe-form-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0; }
.qe-assessment-app label { display:grid; gap:7px; color:var(--qe-navy); font-weight:800; font-size:.87rem; }
.qe-assessment-app input,
.qe-assessment-app select,
.qe-assessment-app textarea { width:100%; border:1px solid #d9dee8; background:#fbfcfe; color:#1d2e4f; border-radius:11px; padding:12px 13px; font:inherit; outline:none; }
.qe-assessment-app input:focus,
.qe-assessment-app select:focus,
.qe-assessment-app textarea:focus { border-color:var(--qe-navy); box-shadow:0 0 0 3px rgba(22,51,101,.10); background:#fff; }
.qe-assessment-app textarea { resize:vertical; }

.qe-assessment-layout { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr); gap:22px; align-items:start; }
.qe-vehicle-card { min-width:0; }
.qe-panel-editor { position:sticky; top:104px; }

.qe-car-stage { padding:18px 20px 8px; background:linear-gradient(180deg,#fafbfe,#f3f5f9); }
.qe-car-direction { display:flex; justify-content:space-between; max-width:470px; margin:0 auto 2px; color:var(--qe-slate); font-size:.74rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.qe-car-svg { display:block; width:min(100%,520px); height:auto; max-height:620px; margin:0 auto; filter:drop-shadow(0 18px 24px rgba(14,39,83,.10)); }
.qe-car-outline { fill:#eef1f5; stroke:#aeb8c8; stroke-width:6; }
.qe-panel { fill:#ffffff; stroke:#a8b4c6; stroke-width:4; cursor:pointer; transition:fill .16s ease, stroke .16s ease, transform .16s ease; transform-origin:center; }
.qe-panel:hover, .qe-panel:focus { fill:#fbe7e8; stroke:var(--qe-red); outline:none; }
.qe-panel.is-selected { fill:var(--qe-red); stroke:var(--qe-red-dark); }
.qe-panel.is-active { fill:#f6c6c8; stroke:var(--qe-red); }
.qe-glass { fill:#b9c7d9; stroke:#8ea0b7; stroke-width:3; pointer-events:none; }
.qe-wheel { fill:#25324a; pointer-events:none; }
.qe-car-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; padding:8px 0 14px; color:var(--qe-slate); font-size:.8rem; font-weight:800; }
.qe-car-legend span { display:flex; align-items:center; gap:7px; }
.qe-legend-dot { width:13px; height:13px; border-radius:4px; border:2px solid #a8b4c6; background:#fff; }
.qe-legend-dot.is-selected { background:var(--qe-red); border-color:var(--qe-red); }
.qe-generic-note { margin:0 20px 20px; background:#fff8e6; border:1px solid #f0d38f; color:#725c23; border-radius:13px; padding:13px 14px; font-size:.83rem; }

.qe-panel-form { display:grid; gap:16px; padding:20px 22px 22px; }
.qe-operation-tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
.qe-operation-tabs button { border:1px solid var(--qe-border); background:#fff; color:var(--qe-navy); padding:10px 5px; border-radius:9px; font-size:.78rem; font-weight:900; cursor:pointer; }
.qe-operation-tabs button.is-active { background:var(--qe-navy); color:#fff; border-color:var(--qe-navy); }
.qe-editor-preview { display:flex; justify-content:space-between; align-items:center; background:var(--qe-navy-dark); color:#fff; border-radius:13px; padding:14px 16px; }
.qe-editor-preview span { color:#ced8e8; font-weight:800; }
.qe-editor-preview strong { font-size:1.25rem; }
.qe-editor-actions { display:flex; justify-content:flex-end; gap:10px; }
.qe-part-field.is-disabled { opacity:.45; }
.qe-part-field.is-disabled input { pointer-events:none; }

.qe-estimate-card { min-width:0; }
.qe-estimate-empty { min-height:150px; display:grid; place-items:center; align-content:center; gap:4px; color:var(--qe-slate); text-align:center; padding:28px; }
.qe-estimate-empty strong { color:var(--qe-navy); font-size:1.05rem; }
.qe-estimate-table-wrap { border-bottom:1px solid var(--qe-border); }
.qe-estimate-table { min-width:900px; }
.qe-estimate-table td { vertical-align:top; }
.qe-line-name { display:block; color:var(--qe-navy); font-weight:900; }
.qe-line-meta { display:block; color:var(--qe-slate); font-size:.75rem; margin-top:2px; }
.qe-line-edit, .qe-line-remove { border:0; background:transparent; cursor:pointer; font-weight:900; padding:4px 6px; }
.qe-line-edit { color:var(--qe-navy); }
.qe-line-remove { color:var(--qe-red); }
.qe-operation-pill { display:inline-flex; padding:6px 9px; border-radius:999px; background:var(--qe-grey); color:var(--qe-navy); font-size:.76rem; font-weight:900; text-transform:uppercase; }
.qe-estimate-footer { display:grid; grid-template-columns:minmax(180px,1fr) minmax(320px,420px); gap:30px; padding:22px; align-items:start; }
.qe-vat-control { max-width:160px; }
.qe-total-box { display:grid; gap:9px; }
.qe-total-box > div { display:flex; align-items:center; justify-content:space-between; gap:22px; color:var(--qe-slate); }
.qe-total-box strong { color:var(--qe-navy); }
.qe-total-sub { border-top:1px solid var(--qe-border); padding-top:10px; margin-top:2px; }
.qe-total-grand { background:var(--qe-navy); color:#fff !important; border-radius:13px; padding:14px 15px; margin-top:5px; }
.qe-total-grand span { color:#dce5f4; font-weight:900; }
.qe-total-grand strong { color:#fff; font-size:1.32rem; }

@media (max-width: 980px) {
    .qe-form-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .qe-assessment-layout { grid-template-columns:1fr; }
    .qe-panel-editor { position:static; }
}

@media (max-width: 680px) {
    .qe-assessment-shell { padding:28px 0 52px; }
    .qe-assessment-heading { align-items:flex-start; flex-direction:column; }
    .qe-assessment-toolbar { width:100%; justify-content:flex-start; }
    .qe-card-head { align-items:flex-start; flex-direction:column; }
    .qe-card-head > div:first-child { align-items:flex-start; }
    .qe-estimate-number { align-self:flex-start; }
    .qe-form-grid-4, .qe-form-grid-2 { grid-template-columns:1fr; }
    .qe-operation-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .qe-car-stage { padding-left:8px; padding-right:8px; }
    .qe-generic-note { margin-left:12px; margin-right:12px; }
    .qe-editor-actions { flex-direction:column; }
    .qe-editor-actions .qe-btn { width:100%; }
    .qe-estimate-footer { grid-template-columns:1fr; }
    .qe-vat-control { max-width:none; }
}

@media print {
    .qe-topbar, .qe-header, .qe-footer, .qe-assessment-toolbar, .qe-panel-editor, .qe-vehicle-card, .qe-btn, .qe-generic-note { display:none !important; }
    body { background:#fff !important; }
    .qe-assessment-shell { padding:0; }
    .qe-container { width:100%; max-width:none; }
    .qe-assessment-card { box-shadow:none; border-color:#cfd5df; }
    .qe-assessment-heading { margin-bottom:16px; }
    .qe-case-card, .qe-estimate-card { break-inside:avoid; }
    .qe-form-grid { grid-template-columns:repeat(3,1fr); }
    .qe-assessment-app input, .qe-assessment-app select { border:0; background:transparent; padding:0; }
    .qe-estimate-table { min-width:0; font-size:11px; }
}

/* Vehicle catalogue picker */
.qe-catalogue-picker {
    margin-top: 20px;
    padding: 18px;
    border-radius: 16px;
    background: #f4f6fa;
    border: 1px solid #e2e6ee;
}

.qe-catalogue-picker-head,
.qe-catalogue-match {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.qe-catalogue-picker-head {
    margin-bottom: 14px;
}

.qe-catalogue-picker-head > div,
.qe-catalogue-match > div {
    display: grid;
    gap: 4px;
}

.qe-catalogue-picker-head strong,
.qe-catalogue-match strong {
    color: #162b58;
}

.qe-catalogue-picker-head span,
.qe-catalogue-match span {
    color: #667085;
    font-size: .9rem;
}

.qe-catalogue-badge {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 7px 11px;
    background: #e7eaf0;
    color: #536076 !important;
    font-weight: 700;
    font-size: .78rem !important;
}

.qe-catalogue-badge.is-active {
    background: #dce8ff;
    color: #162b58 !important;
}

.qe-form-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.qe-catalogue-match {
    margin: 0 0 14px;
    padding: 13px 14px;
    border: 1px solid #cfd9ed;
    border-radius: 12px;
    background: #f6f9ff;
}

.qe-line-meta {
    display: block;
    margin-top: 3px;
    font-size: .78rem;
    color: #7a8496;
}

@media (max-width: 760px) {
    .qe-form-grid-3 {
        grid-template-columns: 1fr;
    }

    .qe-catalogue-picker-head,
    .qe-catalogue-match {
        align-items: flex-start;
        flex-direction: column;
    }
}

.qe-panel.has-catalogue-data:not(.is-selected):not(.is-active) {
    stroke: #6f87b6;
    stroke-width: 2.5;
}

/* v1.4 multi-panel selection, licence-disc scan and compulsory photos */
.qe-panel.is-damage-selected:not(.is-selected) { fill:#ffe5aa; stroke:#d69616; stroke-width:5; }
.qe-panel.is-damage-selected.is-active:not(.is-selected) { fill:#ffd378; stroke:#b97900; }
.qe-legend-dot.is-damaged { background:#ffe5aa; border-color:#d69616; }
.qe-selected-panels-box { margin:0 20px 16px; padding:14px 16px; border:1px solid var(--qe-border); background:#f8f9fc; border-radius:13px; display:grid; gap:9px; }
#qe-selected-panels { display:flex; flex-wrap:wrap; gap:8px; }
.qe-damage-chip { display:inline-flex; align-items:center; gap:7px; padding:7px 8px 7px 11px; border-radius:999px; background:#fff1cf; color:#704b00; border:1px solid #e3b956; font-size:.82rem; font-weight:900; }
.qe-damage-chip button { width:23px; height:23px; border:0; border-radius:50%; background:#fff; color:#8a5b00; font-size:1rem; line-height:1; cursor:pointer; }

.qe-disc-scan-bar { margin:0 22px 18px; padding:15px 16px; display:flex; align-items:center; gap:16px; border-radius:14px; background:#eef3fb; border:1px solid #d5dfef; }
.qe-disc-scan-bar > div { display:grid; gap:3px; flex:1; }
.qe-disc-scan-bar strong { color:var(--qe-navy); }
.qe-disc-scan-bar span { color:var(--qe-slate); font-size:.84rem; }
.qe-scan-status { flex-basis:100%; font-weight:800; }
.qe-scan-status.is-success { color:#15743a; }
.qe-scan-status.is-error { color:#a72c32; }

.qe-photos-card { min-width:0; }
.qe-photo-progress { padding:8px 11px; border-radius:999px; background:var(--qe-grey); color:var(--qe-navy); font-size:.82rem; font-weight:900; white-space:nowrap; }
.qe-photo-instructions { margin:18px 22px 0; padding:13px 14px; border-left:4px solid var(--qe-red); background:#fff5f5; color:#5e3540; border-radius:9px; font-size:.88rem; }
.qe-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; padding:20px 22px 24px; }
.qe-photo-slot { display:grid; grid-template-rows:150px auto auto; gap:11px; min-width:0; padding:12px; border:1px solid #dfe4ec; border-radius:14px; background:#fafbfe; }
.qe-photo-slot.is-complete { border-color:#9dcfb0; background:#f5fcf7; box-shadow:inset 0 0 0 1px #c7e5d1; }
.qe-photo-preview { border-radius:10px; overflow:hidden; background:#e9edf4; display:grid; place-items:center; color:#77849a; font-size:.8rem; font-weight:900; text-align:center; }
.qe-photo-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.qe-photo-slot > div:nth-child(2) { display:grid; gap:3px; min-width:0; }
.qe-photo-slot strong { color:var(--qe-navy); line-height:1.2; }
.qe-photo-slot small { color:var(--qe-slate); }
.qe-photo-slot.is-complete small { color:#15743a; font-weight:800; }
.qe-photo-button { width:100%; text-align:center; cursor:pointer; }
.qe-damage-photo-section { border-top:1px solid var(--qe-border); padding-top:18px; }
.qe-damage-photo-section h3,.qe-damage-photo-section > p { margin-left:22px; margin-right:22px; }
.qe-damage-photo-section h3 { color:var(--qe-navy); margin-bottom:5px; }
.qe-damage-photo-section > p { margin-top:0; color:var(--qe-slate); }

@media (max-width: 980px) {
    .qe-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .qe-disc-scan-bar { flex-wrap:wrap; }
}
@media (max-width: 580px) {
    .qe-photo-grid { grid-template-columns:1fr; padding-left:14px; padding-right:14px; }
    .qe-disc-scan-bar { margin-left:14px; margin-right:14px; align-items:flex-start; flex-direction:column; }
    .qe-disc-scan-bar .qe-btn { width:100%; }
    .qe-selected-panels-box { margin-left:12px; margin-right:12px; }
}

@media print {
    .qe-disc-scan-bar .qe-btn, .qe-photo-button, .qe-photo-progress { display:none !important; }
    .qe-photo-grid { grid-template-columns:repeat(4,1fr); padding:10px; }
    .qe-photo-slot { grid-template-rows:100px auto; break-inside:avoid; }
}

/* v1.6 interactive exterior + structural component selector */
.qe-diagram-tabs{display:flex;gap:8px;padding:0 20px 14px;flex-wrap:wrap}.qe-diagram-tab{border:1px solid #d7deea;background:#f2f4f8;color:var(--qe-navy);border-radius:11px;padding:10px 14px;font:inherit;font-weight:900;cursor:pointer}.qe-diagram-tab.is-active{background:var(--qe-navy);color:#fff;border-color:var(--qe-navy)}
.qe-structure-warning{margin:0 20px 16px;padding:13px 15px;border-radius:12px;background:#fff7e8;border:1px solid #f0ce8e;color:#6d4b12;font-size:.86rem;line-height:1.5}.qe-structure-warning strong{color:#4e350b}.qe-diagram-view[hidden]{display:none!important}
.qe-structure-stage{margin:0 20px 18px;border:1px solid #dbe2ee;border-radius:18px;background:linear-gradient(180deg,#f8fafd,#eef2f7);padding:18px;overflow:auto}.qe-structure-svg{width:100%;min-width:620px;height:auto;display:block}.qe-structure-outline{fill:#fff;stroke:#c7d1df;stroke-width:4}.qe-structural-part{fill:#f4dfe1!important;stroke:#a3383f!important;stroke-width:3!important}.qe-structural-part:hover,.qe-structural-part:focus{fill:#efc4c8!important;stroke:#7f1f25!important}.qe-structural-part.is-damage-selected{fill:#ffcf7b!important;stroke:#a66800!important}.qe-structural-part.is-selected{fill:#d83b40!important;stroke:#9b252a!important}.qe-structure-labels{display:flex;justify-content:space-between;color:var(--qe-slate);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em;margin-top:8px}
.qe-legend-dot.is-structural{background:#f4dfe1;border-color:#a3383f}.qe-component-directory{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 20px 18px}.qe-component-directory>div{border:1px solid #e1e5ec;border-radius:14px;padding:13px;background:#fafbfc}.qe-component-directory>div>strong{display:block;color:var(--qe-navy);margin-bottom:10px}.qe-component-button-grid{display:flex;flex-wrap:wrap;gap:6px}.qe-component-button{border:1px solid #d6dde8;border-radius:999px;background:#fff;color:var(--qe-navy);padding:6px 9px;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.qe-component-button:hover,.qe-component-button.is-active{border-color:var(--qe-red);color:var(--qe-red);background:#fff4f4}.qe-component-button.is-structural{background:#fbf0f1;border-color:#e2bcc0;color:#8f282e}.qe-component-button.is-structural.is-active{background:#d83b40;color:#fff;border-color:#d83b40}
.qe-component-class-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f8fb;border:1px solid #e0e5ed;border-radius:12px;padding:11px 12px;margin-bottom:12px}.qe-component-class-row>span{font-size:.83rem;color:var(--qe-slate);font-weight:800}.qe-structure-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;background:#edf2f8;color:var(--qe-navy);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.qe-structure-badge.is-structural{background:#f7d9dc;color:#8d242a}.qe-structural-operation-note{margin:9px 0 13px;padding:10px 11px;border-radius:10px;background:#fff1e7;color:#7d4513;font-size:.8rem;line-height:1.4}.qe-operation-tabs button:disabled{opacity:.35;cursor:not-allowed}.qe-parts-cta-card{margin-top:20px}.qe-parts-cta-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 22px 18px}.qe-parts-cta-row>div{display:grid;gap:4px}.qe-parts-cta-row strong{color:var(--qe-navy)}.qe-parts-cta-row span{color:var(--qe-slate);font-size:.88rem;max-width:760px}.qe-parts-cta-row .is-disabled{opacity:.5;pointer-events:auto}.qe-parts-cta-card>.qe-muted{padding:0 22px 20px;margin:0}
@media(max-width:900px){.qe-component-directory{grid-template-columns:1fr}.qe-parts-cta-row{align-items:flex-start;flex-direction:column}.qe-parts-cta-row .qe-btn{width:100%}.qe-structure-stage{margin-left:12px;margin-right:12px}.qe-diagram-tabs,.qe-structure-warning,.qe-component-directory{margin-left:12px;margin-right:12px}.qe-diagram-tabs{padding-left:0;padding-right:0}}
@media print{.qe-diagram-tabs,.qe-component-directory,.qe-parts-cta-card{display:none!important}}


/* Model-specific non-structural component picture */
.qe-model-visual{margin-bottom:18px;background:#fff;border:1px solid rgba(22,43,88,.12);border-radius:18px;padding:14px;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.qe-model-visual-frame{position:relative;border-radius:14px;overflow:hidden;background:#e9edf3;padding:12px}
.qe-model-visual-frame img{display:block;width:100%;height:auto;object-fit:contain;background:#111827}
.qe-model-visual-hotspots{position:absolute;inset:12px}
.qe-hotspot{position:absolute;border:2px solid rgba(255,255,255,.8);background:rgba(194,69,67,.14);border-radius:10px;cursor:pointer;transition:.18s ease all;box-shadow:0 0 0 1px rgba(0,0,0,.12) inset}
.qe-hotspot:hover,.qe-hotspot:focus{background:rgba(194,69,67,.28);transform:scale(1.02);outline:none}
.qe-hotspot.is-damage-selected{background:rgba(194,69,67,.35);border-color:#c24543}
.qe-hotspot.is-selected{box-shadow:0 0 0 3px rgba(22,43,88,.95) inset;border-color:#162b58}
.qe-hotspot.is-active{background:rgba(22,43,88,.36);border-color:#162b58}
.qe-model-visual-help{margin-top:10px;color:#5f6980;font-size:.92rem;line-height:1.5}


/* Audatex-style exterior/non-structural list emphasis */
.qe-component-button-grid--large .qe-component-button{padding:10px 16px;font-size:1.05rem;line-height:1.2;border-width:2px;min-height:48px}
@media (min-width: 920px){
  .qe-component-directory{grid-template-columns:1.35fr 1fr;align-items:start}
  .qe-model-visual{margin-bottom:22px}
}

.qe-hotspot::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:900;font-size:clamp(12px,1.4vw,20px);text-shadow:0 1px 2px rgba(0,0,0,.45);pointer-events:none}.qe-hotspot{min-width:28px;min-height:28px}

/* v2.4: honor the cropped hotspot width/height saved by the admin editor. */
.qe-hotspot{min-width:12px!important;min-height:12px!important}
