/* Engine library: existing AircraftDirectives palette and Atkinson type.
   Opus 5 design contract, 2026-09-08. No model downloads before a load gesture. */
.engine-library,.engine-breakdown{font-size:18px;line-height:1.55;margin:32px 0 56px}
.engine-library h1,.engine-breakdown h1{font-size:40px;line-height:1.15;margin:0 0 16px;letter-spacing:-.02em}
.engine-library h2,.engine-breakdown h2{font-size:28px;line-height:1.25;margin:0 0 16px}
.engine-library h3,.engine-breakdown h3{font-size:22px;line-height:1.3;margin:0 0 8px}
.engine-library p,.engine-breakdown p{margin:0 0 16px}
.engine-intro{max-width:780px;font-size:20px;margin-bottom:32px!important}
.engine-manufacturer{color:#4b535b;margin:0 0 4px!important}
.engine-library :is(input,select,button),.engine-breakdown :is(input,select,button){font:inherit;min-height:48px;border:1px solid #918b82;border-radius:4px;padding:10px 14px;box-sizing:border-box;background:#fff;color:#12171d;max-width:100%}
.engine-library button,.engine-breakdown button{cursor:pointer;font-weight:700}
.engine-library button:disabled,.engine-breakdown button:disabled{cursor:default;color:#555;background:#eee}
.engine-library :is(a,button,input,select):focus-visible,.engine-breakdown :is(a,button,input,select,canvas):focus-visible{outline:3px solid #17457c;outline-offset:3px}
.engine-library .engine-primary,.engine-breakdown .engine-primary{background:#f5a524;color:#12171d;border-color:#785015}
.engine-primary:hover{border-color:#12171d}
.engine-search{display:grid;grid-template-columns:minmax(0,1fr) 240px auto;gap:16px;align-items:end;margin:32px 0 24px}
.engine-search label,.engine-assemblies label{display:block;font-weight:700;margin:0 0 8px}
.engine-search :is(input,select){width:100%}
.engine-result-count{margin-bottom:24px!important}
.engine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.engine-card{min-width:0;background:#fff;border:1px solid #918b82;border-radius:4px;overflow:hidden}
.engine-card-anchor{display:block;color:#12171d;text-decoration:none}
.engine-card-anchor:focus-visible{outline-offset:-4px!important}
.engine-card-image{display:block;background:#141619;aspect-ratio:4/3}
.engine-card-image img{display:block;width:100%;height:100%;object-fit:contain}
.engine-card-caption{padding:20px 24px 16px}
.engine-card h2{font-size:24px;margin:0 0 12px;color:#17457c}
.engine-card-anchor:hover h2{text-decoration:underline}
/* 2026-09-18 Grok batch-2 review (P2, same bug family fixed in layout.js for .rec-act-primary/
   .save-btn/.save-aircraft a): inline-flex's gap:12px landed BETWEEN arrowGlue()'s text and its
   .arrow-glue span (the only two children here), turning the intended single space into a 12px
   hole ("View  breakdown") instead of a full collapse - same root cause, different symptom.
   inline-block + line-height:48px (the full min-height; no padding/border here) replaces
   align-items:center; the gap simply isn't needed once this is normal inline text flow. */
.engine-card-link{display:inline-block;line-height:48px;min-height:48px;font-weight:700;color:#17457c}
.engine-scope{border-top:1px solid #918b82;margin-top:40px;padding-top:28px;max-width:900px}
.engine-scope li{margin:8px 0}
.engine-empty{padding:32px;border:1px solid #918b82;background:#fff}
.engine-breadcrumb{margin-bottom:24px!important}
.engine-breadcrumb a{display:inline-flex;align-items:center;min-height:44px}
.engine-breakdown-layout{display:grid;grid-template-columns:minmax(0,1.78fr) minmax(0,1fr);gap:24px;align-items:start}
.engine-visual,.engine-assemblies{min-width:0}
.engine-stage{position:relative;aspect-ratio:4/3;width:100%;background:#141619;border:1px solid #918b82;border-radius:4px;overflow:hidden}
.engine-stage>img,.engine-stage>canvas{display:block;width:100%;height:100%;object-fit:contain}
.engine-stage>canvas{position:absolute;inset:0;touch-action:none}
.engine-stage>canvas:focus-visible{outline-color:#f5a524;outline-offset:-4px}
.engine-load-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:20px}
.engine-load-overlay[hidden],.engine-breakdown [hidden]{display:none!important}
.engine-view-status{margin:12px 0!important;min-height:28px}
.engine-view-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.engine-view-tools button{flex:1 0 auto;padding:10px;box-shadow:inset 0 0 0 2px transparent}
/* SP3: same amber "on" wash already used on .engine-group[aria-pressed=true] below, extended to
   this row's own toggle (Engine power) -- not a new colour. */
.engine-view-tools button[aria-pressed=true]{box-shadow:inset 0 0 0 2px #f5a524;background:#f4f2ed}
.engine-view-hint{color:#4b535b}
.engine-selection{border-top:1px solid #918b82;margin-top:24px;padding:24px 0;overflow-wrap:anywhere}
.engine-selection h2{font-size:24px}
.engine-selection-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.engine-selection dl{margin:16px 0}.engine-selection dt{font-weight:700}.engine-selection dd{margin:0 0 12px}
.engine-assemblies{position:sticky;top:24px;background:#fff;border:1px solid #918b82;border-radius:4px;padding:24px}
.engine-group-list{display:grid;gap:0;border-top:1px solid #918b82;margin:24px 0}
.engine-breakdown .engine-group{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:0;border-bottom:1px solid #918b82;border-radius:0;padding:12px 12px 12px 16px;min-height:48px;box-shadow:inset 4px 0 transparent}
.engine-group span:last-child{font-weight:400}
.engine-breakdown .engine-group[aria-pressed=true]{box-shadow:inset 4px 0 #f5a524;background:#f4f2ed}
.engine-group:hover{background:#f4f2ed}
.engine-source-jump{display:inline-flex;align-items:center;min-height:48px;font-weight:700}
.engine-component-list{max-height:340px;overflow:auto;overscroll-behavior:contain;margin:12px 0}
.engine-component-list button{display:block;width:100%;text-align:left;margin:0 0 8px;font-weight:400!important;overflow-wrap:anywhere}
.engine-component-list button[aria-pressed=true]{border-left:4px solid #f5a524;font-weight:700!important}
#engine-part-search{width:100%}#engine-component-count{margin:12px 0}
.engine-references{max-width:900px;margin:40px 0 0;border-top:1px solid #918b82;padding-top:28px;overflow-wrap:anywhere}
.engine-references ol{padding-left:24px}.engine-references li{padding-left:8px;margin:24px 0}
@media(max-width:1023px){.engine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.engine-breakdown-layout{grid-template-columns:1fr}.engine-assemblies{position:static}.engine-search{grid-template-columns:minmax(0,1fr) 240px}.engine-search>button{grid-column:1/-1;justify-self:start}}
@media(max-width:599px){.engine-library,.engine-breakdown{margin-top:24px}.engine-library h1,.engine-breakdown h1{font-size:32px}.engine-intro{font-size:18px}.engine-grid{grid-template-columns:1fr}.engine-search{grid-template-columns:1fr}.engine-search>button{width:100%}.engine-card-caption,.engine-assemblies{padding:20px}.engine-load-overlay{padding:12px}.engine-view-tools button{flex-basis:calc(50% - 8px)}.engine-selection h2{font-size:24px}}
@media print{.engine-search,.engine-load-overlay,.engine-view-tools,.engine-view-hint,.engine-group-list button,.engine-component-list{display:none!important}.engine-grid{grid-template-columns:repeat(2,1fr)}.engine-breakdown-layout{display:block}.engine-assemblies{position:static}.engine-stage>canvas{display:none}.engine-stage>img{display:block!important}.engine-card,.engine-stage,.engine-references li{break-inside:avoid}}
