/* Catalogue: the fixed data table and the model inspector share the same scale. */
.catalogue-interactive{padding-top:0}
.catalogue-interactive .catalogue-toolbar{display:flex;gap:14px;align-items:center;margin:0 0 22px}
.catalogue-interactive .catalogue-result-count{color:#6a6776;font-size:.76rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.catalogue-interactive .catalogue-result-count strong{display:block;font-weight:500}.catalogue-interactive .catalogue-result-count small{display:block;margin-top:4px;font-size:.67rem;color:#887394}
.catalogue-model-status{margin:-8px 0 19px;font-size:.75rem;line-height:1.6;color:#85758f}
.piece-reference-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.piece-model-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 5px;border:1px solid #d9c7e5;border-radius:4px;background:#f5eefb;color:#78508f;font-size:.54rem;font-weight:700;line-height:1;letter-spacing:.06em}
.catalogue-interactive .fixed-catalogue-layout{grid-template-columns:minmax(0,1.62fr) minmax(330px,1fr);gap:28px;align-items:start}
.catalogue-interactive .catalogue-table-wrap{max-height:790px;border:1px solid #e1e0e8;border-radius:12px;background:#fff;scrollbar-color:#c5bbce #f7f5f9}
.catalogue-interactive .catalogue-table{min-width:610px;width:100%}
.catalogue-interactive .catalogue-table th{background:#f7f6fa;color:#777181;font-size:.64rem;letter-spacing:.07em;text-transform:uppercase;padding:17px 10px;border-bottom:1px solid #dedbe5}
.catalogue-interactive .catalogue-table td{border-color:#eceaf0;padding:13px 10px;color:#342e3d;font-size:.77rem;vertical-align:middle}
.catalogue-interactive .catalogue-table td:first-child{min-width:135px}
.catalogue-interactive .catalogue-table td:first-child strong{font-size:.82rem;letter-spacing:.03em;color:#2d2635}
.catalogue-interactive .catalogue-table small{display:block;margin-top:5px;font-size:.7rem;line-height:1.45;color:#787180}
.catalogue-interactive .catalogue-table td:nth-child(4),.catalogue-interactive .catalogue-table td:nth-child(5),.catalogue-interactive .catalogue-table td:nth-child(6){white-space:nowrap;font-variant-numeric:tabular-nums}
.catalogue-interactive .catalogue-table .table-piece{width:62px}
.catalogue-interactive .catalogue-table .table-piece svg{width:45px;height:44px;margin:0}
.catalogue-interactive .selected-row td{background:#f0ebf7}
.catalogue-interactive .selected-row td:first-child{box-shadow:inset 3px 0 #8355a0}
.catalogue-interactive .catalogue-table tr:hover td{background:#f7f3fb}
.catalogue-interactive .catalogue-table .catalogue-empty{text-align:center;padding:40px 18px;color:#787080}
.catalogue-stage{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:.72rem}
.catalogue-stage i{width:7px;height:7px;background:currentColor;border-radius:50%;flex-shrink:0}
.light-section .catalogue-stage.stage-1{color:#1b795f}.light-section .catalogue-stage.stage-2{color:#286da9}.light-section .catalogue-stage.stage-3{color:#b85042}
.piece-view-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:92px;min-height:37px;padding:8px 11px;border:1px solid #ddd4e6;border-radius:24px;color:#704285;background:#faf7fd;font-size:.76rem;font-weight:650;white-space:nowrap;transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s}
.piece-view-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.65;flex-shrink:0}
.piece-view-button .view-arrow{font-size:.9rem;line-height:1;transition:transform .18s}
.piece-view-button:hover{color:#fff;background:#704285;border-color:#704285;box-shadow:0 6px 15px #70428525;transform:translateY(-1px)}
.piece-view-button:hover .view-arrow{transform:translate(1px,-1px)}
.piece-view-button.is-selected{color:#fff;background:#704285;border-color:#704285}
.piece-view-button:focus-visible,.piece-nav-button:focus-visible,.piece-view-modes button:focus-visible{outline:3px solid #b592cd;outline-offset:3px}
.catalogue-inspector.fixed-inspector{display:block;position:sticky;top:85px;grid-row:auto;width:auto;padding:22px;border:1px solid #dedce5;border-radius:14px;background:#fff;color:#342b3e;box-shadow:0 18px 42px #2520330a;min-width:0}
.piece-navigation{display:flex;justify-content:space-between;align-items:center;gap:9px;padding-bottom:19px;margin-bottom:22px;border-bottom:1px solid #ebe8ef}
.piece-nav-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:35px;font-size:.72rem;color:#684780;border:1px solid #e0d8e8;padding:6px 9px;border-radius:7px;background:#fff;transition:background .18s,border-color .18s}
.piece-nav-button:hover:not(:disabled){background:#f4eef9;border-color:#b79bc9}
.piece-nav-button:disabled{opacity:.32;cursor:default}
.piece-position{white-space:nowrap;font-size:.68rem;color:#86808b;font-variant-numeric:tabular-nums}
.catalogue-inspector .piece-identity .eyebrow{display:flex;justify-content:space-between;gap:10px;margin:0 0 10px;font-size:.61rem;color:#7f7288;letter-spacing:.1em}
.catalogue-inspector .piece-identity .eyebrow span{color:#71458a;font-weight:700}
.catalogue-inspector .piece-identity h3{font-size:clamp(1.22rem,1.6vw,1.65rem);margin:0 0 19px;color:#2a2431;line-height:1.3;letter-spacing:-.02em}
.piece-identity>p:not(.eyebrow){font-size:.9rem;line-height:1.5;color:#716a7a}
.piece-view-modes{display:flex;gap:4px;width:fit-content;padding:4px;margin:0 0 13px;background:#f1eef5;border-radius:30px}
.piece-view-modes button{padding:8px 13px;min-height:34px;font-size:.72rem;border-radius:25px;color:#7a6c86}
.piece-view-modes button.active{background:#fff;box-shadow:0 2px 6px #3825470d;color:#563069;font-weight:650}
.rocket-part-viewer{height:280px;position:relative;border-radius:8px;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#f8f9fc,#e9ebf1 86%);touch-action:pan-y;isolation:isolate}
.rocket-part-viewer[hidden]{display:none!important}
.rocket-part-viewer canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y}
.rocket-part-viewer canvas:active{cursor:grabbing}
.rocket-part-viewer[data-state=loading]::after{content:"Chargement du modèle…";position:absolute;inset:0;display:grid;place-items:center;color:#8a7d96;font-size:.76rem;letter-spacing:.02em;background:linear-gradient(120deg,#f5f4f9d9,#e9eaf0b3);pointer-events:none}
.rocket-part-viewer .piece-model-fallback{display:block;width:100%;height:100%;object-fit:contain}
.rocket-part-viewer[data-state=error]::after{content:"Aperçu fixe · 3D indisponible";position:absolute;left:12px;right:12px;bottom:12px;padding:7px 10px;border-radius:6px;background:#fffc;color:#746181;font-size:.65rem;text-align:center;pointer-events:none}
.piece-model-hint{display:flex;align-items:center;justify-content:center;gap:7px;color:#8a8292;font-size:.63rem;line-height:1.6;margin:10px 0 6px;text-align:center}
.piece-model-caption{color:#796781;font-size:.63rem;line-height:1.5;margin:0 0 18px;text-align:center}
.piece-model-error{padding:10px 12px;background:#faf4ea;border-radius:6px;color:#866427;font-size:.75rem;line-height:1.5}
.catalogue-inspector .piece-footprint{margin:10px 0 18px}
.catalogue-inspector .piece-footprint .inspector-shape{display:flex;justify-content:center;align-items:center;height:190px;margin:0;padding:18px;background-color:#fafbfd;background-image:linear-gradient(#a89bbd13 1px,transparent 1px),linear-gradient(90deg,#a89bbd13 1px,transparent 1px);background-size:20px 20px;border:1px solid #ebe8f0;border-radius:8px}
.catalogue-inspector .piece-footprint .inspector-shape svg{width:100%;max-width:260px;height:155px;margin:0}
.catalogue-inspector .piece-footprint>p{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:7px;margin:10px 0 0;font-size:.7rem;color:#8b8091}
.catalogue-inspector .piece-footprint>p strong{font-size:.78rem;font-weight:600;color:#635269}
.catalogue-inspector .compact-footprint{display:grid;grid-template-columns:90px 1fr;gap:16px;align-items:center;padding:12px;background:#faf9fc;border:1px solid #eeebf2;border-radius:8px}
.catalogue-inspector .compact-footprint .inspector-shape{height:76px;padding:5px;border:0;background-color:transparent;border-radius:0;background-size:14px 14px}
.catalogue-inspector .compact-footprint .inspector-shape svg{height:68px;max-width:90px}
.catalogue-inspector .compact-footprint>p{display:grid;gap:7px;margin:0;line-height:1.5}
.catalogue-inspector .piece-rotate-button{min-height:40px;padding:8px 12px;font-size:.74rem;background:#fff;color:#735080;border-color:#dcd3e5;border-radius:8px;display:flex;gap:9px}
.piece-angle{margin-left:auto;font-variant-numeric:tabular-nums;color:#9e8bab}
.catalogue-inspector .piece-specifications{margin:14px 0 0}
.catalogue-inspector .piece-specifications>div{padding:11px 0;border-color:#eeebf1;gap:10px}
.catalogue-inspector .piece-specifications dt{color:#887d8e;font-size:.74rem}
.catalogue-inspector .piece-specifications dd{color:#42334c;font-size:.77rem;text-align:right}
.catalogue-inspector .piece-constraint-details{border-color:#e5e0eb;margin-top:16px}
.catalogue-inspector .piece-constraint-details summary{color:#755081;font-size:.77rem;line-height:1.5;padding-top:17px}
.catalogue-inspector .piece-constraints{font-size:.76rem;line-height:1.65;color:#7b6c83;padding-left:18px}
.catalogue-inspector p.muted{font-size:.68rem;line-height:1.6;color:#9b8ca4;margin-bottom:0}
@media(max-width:1100px){.catalogue-interactive .fixed-catalogue-layout{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:20px}.catalogue-inspector.fixed-inspector{padding:18px}.piece-nav-button{padding:7px;font-size:.68rem}.rocket-part-viewer{height:260px}.catalogue-interactive .catalogue-toolbar{gap:12px}}
@media(max-width:850px){.catalogue-interactive .fixed-catalogue-layout{grid-template-columns:minmax(0,1fr)}.catalogue-inspector.fixed-inspector{position:static;grid-row:auto;order:0}.catalogue-interactive .catalogue-table-wrap{max-height:440px}.rocket-part-viewer{height:330px}.catalogue-inspector .piece-identity h3{font-size:1.6rem}.catalogue-inspector .compact-footprint{grid-template-columns:100px 1fr}.catalogue-interactive .catalogue-toolbar{flex-wrap:wrap}.catalogue-interactive .catalogue-result-count{margin-left:auto}}
@media(max-width:580px){.catalogue-interactive .fixed-catalogue-layout{display:flex;flex-direction:column;gap:24px}.catalogue-interactive .catalogue-table-wrap{max-height:360px;order:0}.catalogue-inspector.fixed-inspector{order:1;width:100%;padding:20px}.piece-navigation{margin-bottom:22px}.piece-nav-button{font-size:.76rem;padding:9px 11px}.piece-position{font-size:.7rem}.rocket-part-viewer{height:275px}.catalogue-interactive .catalogue-toolbar{gap:12px;margin-bottom:18px}.catalogue-interactive .filter-buttons{gap:6px;flex-wrap:nowrap}.catalogue-interactive .filter-buttons button{font-size:.72rem;padding:8px 12px}.catalogue-interactive .catalogue-result-count{display:block!important;flex-basis:100%;margin-left:0}.catalogue-inspector .piece-identity h3{font-size:1.45rem}.catalogue-inspector .piece-footprint>p span{line-height:1.6}}
@media(prefers-reduced-motion:reduce){.piece-view-button,.piece-view-button .view-arrow,.piece-nav-button{transition:none}.piece-view-button:hover{transform:none}}

/* Dedicated dark catalogue section: shared by the immediate HTML table and
   the interactive viewer, so activation never swaps a dark table for a white card. */
.catalogue-section-dark{background:#090c13;color:#edf3fc;--line:#253142;--green:#7ee0b8;--blue:#8dbaff;--coral:#ffa495}
.catalogue-section-dark .catalogue-preview{padding:0;margin:0;border:0}
.catalogue-section-dark .catalogue-title-row{gap:24px;margin-bottom:24px}
.catalogue-section-dark .catalogue-title-row h3{color:#f2f6fc;font-size:clamp(1.6rem,2.2vw,2rem);letter-spacing:-.025em}
.catalogue-section-dark .catalogue-title-row p{color:#a9b9ce;font-size:.91rem}
.catalogue-section-dark .catalogue-file-links{gap:20px}
.catalogue-section-dark .catalogue-file-links a{color:#a6e5ee;border-color:#3a596b;font-size:.86rem}
.catalogue-section-dark .catalogue-file-links a:hover{color:#eee5ff;border-color:#c4acdf}
.catalogue-section-dark .static-catalogue-layout,
.catalogue-section-dark .catalogue-interactive .fixed-catalogue-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);gap:26px;align-items:start}
.catalogue-section-dark .catalogue-toolbar{gap:14px;margin-bottom:18px}
.catalogue-section-dark .filter-buttons button{background:#111924;color:#b9c9dc;border:1px solid #334256;padding:9px 13px;font-size:.78rem}
.catalogue-section-dark .filter-buttons button:hover{background:#1b2a3c;color:#edf7ff}
.catalogue-section-dark .filter-buttons button.active{background:#bfd7ea;color:#101924;border-color:#bfd7ea;font-weight:650}
.catalogue-section-dark .catalogue-result-count{color:#e0ebfa;font-size:.78rem}
.catalogue-section-dark .catalogue-result-count small,.catalogue-section-dark .catalogue-model-status{color:#a9b5cc}
.catalogue-section-dark .catalogue-table-wrap{height:auto;max-height:420px;overflow:auto;min-width:0;border:1px solid #2b394d;border-radius:11px;background:#0d131d;scrollbar-width:thin;scrollbar-color:#516580 #101722;overscroll-behavior:contain}
.catalogue-section-dark .catalogue-table-wrap:focus-visible{outline:2px solid #9de3ee;outline-offset:3px}
.catalogue-section-dark .catalogue-table{min-width:650px;width:100%;color:#e1eafa;border-collapse:separate;border-spacing:0}
.catalogue-section-dark .catalogue-table caption:not(.sr-only){padding:11px 14px;background:#111a27;border-bottom:1px solid #243246;color:#a8bdd4;font-size:.74rem;line-height:1.4;text-align:left}
.catalogue-section-dark .catalogue-table th{position:sticky;top:0;z-index:1;background:#152031;border-color:#2c3b51;color:#b4c7e0;padding:13px 10px;font-size:.67rem;letter-spacing:.055em;line-height:1.4}
.catalogue-section-dark .catalogue-table td{padding:10px;border-color:#202c3e;background:#0d131d;color:#dae6f6;font-size:.8rem;vertical-align:middle;line-height:1.4}
.catalogue-section-dark .catalogue-table td:first-child{min-width:155px}
.catalogue-section-dark .catalogue-table td:first-child strong{color:#f0f6ff;font-size:.83rem;letter-spacing:.035em}
.catalogue-section-dark .catalogue-table small{display:block;margin-top:4px;color:#9eb1c9;font-size:.75rem;line-height:1.45}
.catalogue-section-dark .catalogue-table td:nth-child(4),.catalogue-section-dark .catalogue-table td:nth-child(5),.catalogue-section-dark .catalogue-table td:nth-child(6){white-space:nowrap;font-variant-numeric:tabular-nums}
.catalogue-section-dark .catalogue-table .table-piece{width:59px}
.catalogue-section-dark .catalogue-table .table-piece svg{width:44px;height:40px;margin:0}
.catalogue-section-dark .catalogue-table tr:hover td{background:#142235}
.catalogue-section-dark .catalogue-table .selected-row td{background:#172d3d}
.catalogue-section-dark .catalogue-table .selected-row td:first-child{box-shadow:inset 3px 0 #94e4e9}
.catalogue-section-dark .catalogue-table .catalogue-empty{color:#afc0d6;background:#101824}
.catalogue-section-dark .table-piece.stage-1,.catalogue-section-dark .catalogue-stage.stage-1,.catalogue-section-dark td>span.stage-1{color:#7ee0b8}
.catalogue-section-dark .table-piece.stage-2,.catalogue-section-dark .catalogue-stage.stage-2,.catalogue-section-dark td>span.stage-2{color:#8dbaff}
.catalogue-section-dark .table-piece.stage-3,.catalogue-section-dark .catalogue-stage.stage-3,.catalogue-section-dark td>span.stage-3{color:#ffa495}
.catalogue-section-dark .piece-model-badge{border-color:#496381;background:#182b3d;color:#b9ecf5;font-size:.56rem;padding:3px 5px}
.catalogue-section-dark .piece-view-button{min-height:36px;min-width:88px;padding:7px 10px;background:#182636;border-color:#3c566f;color:#c5eff7;font-size:.78rem;box-shadow:none}
.catalogue-section-dark .piece-view-button:hover:not(:disabled),.catalogue-section-dark .piece-view-button.is-selected{background:linear-gradient(120deg,#b2e6eb,#cfc4ef);border-color:#c0e2f1;color:#101926;box-shadow:0 4px 14px #060b1459}
.catalogue-section-dark .static-catalogue-layout .piece-view-button span{background:#2a4057;color:#c4eaf3}
.catalogue-section-dark .static-catalogue-layout .piece-view-button:hover span{background:#ffffff40;color:#24364c}
.catalogue-section-dark .catalogue-invitation{padding:24px;border:1px solid #2d3b50;border-radius:13px;background:linear-gradient(145deg,#142033,#0d131e);color:#edf4ff;box-shadow:0 14px 40px #0002}
.catalogue-section-dark .catalogue-invitation .eyebrow{color:#a4c4dd;font-size:.68rem}
.catalogue-section-dark .catalogue-invitation .instruction-footprint{height:96px;width:100%;max-width:none;margin:18px 0;background:linear-gradient(#30465e26 1px,transparent 1px),linear-gradient(90deg,#30465e26 1px,transparent 1px);background-size:18px 18px;border:1px solid #2b3e53;border-radius:8px;color:#96e6d6;display:grid;place-items:center}
.catalogue-section-dark .catalogue-invitation .instruction-footprint svg{height:78px;width:75%;margin:0}
.catalogue-section-dark .catalogue-invitation h4{color:#f0f6ff;font-size:1.45rem;margin:17px 0 10px}
.catalogue-section-dark .catalogue-invitation p{color:#aebed3;font-size:.87rem;line-height:1.65;margin-bottom:17px}
.catalogue-section-dark .catalogue-invitation p strong{color:#e2effc;font-weight:600}
.catalogue-section-dark .catalogue-invitation [data-engine-status]{color:#90a7bf;font-size:.77rem;margin-top:16px;margin-bottom:0}
.catalogue-section-dark .catalogue-inspector.fixed-inspector{position:static;top:auto;padding:18px;border:1px solid #2d3c51;border-radius:13px;background:#101722;color:#e0eafa;box-shadow:0 14px 40px #0002}
.catalogue-section-dark .piece-navigation{padding-bottom:10px;margin-bottom:13px;border-color:#29374a;gap:9px}
.catalogue-section-dark .piece-nav-button{background:#162131;border-color:#374962;color:#cee0f7;min-height:34px;padding:7px 9px;font-size:.75rem;gap:6px}
.catalogue-section-dark .piece-nav-button:hover:not(:disabled){background:#223850;border-color:#7cabc5}
.catalogue-section-dark .piece-nav-button:disabled{opacity:.38}
.catalogue-section-dark .piece-position{color:#a7bad2;font-size:.72rem}
.catalogue-section-dark .piece-identity .eyebrow{font-size:.62rem;margin-bottom:6px;color:#9fb4cd}
.catalogue-section-dark .piece-identity .eyebrow span{color:#c4daf4}
.catalogue-section-dark .piece-identity h3{font-size:1.3rem;line-height:1.25;color:#f0f5ff;margin:0 0 12px;letter-spacing:-.015em}
.catalogue-section-dark .piece-identity>p:not(.eyebrow){color:#b1bfd3}
.catalogue-section-dark .piece-view-modes{background:#080f18;padding:3px;gap:3px;margin-bottom:9px;border:1px solid #27354b}
.catalogue-section-dark .piece-view-modes button{min-height:29px;padding:6px 11px;font-size:.74rem;color:#a6b8d0}
.catalogue-section-dark .piece-view-modes button.active{background:#28384e;color:#f1f6ff;box-shadow:none}
.catalogue-section-dark .rocket-part-viewer{height:220px;border:1px solid #293e53;background:radial-gradient(ellipse at 50% 40%,#334456,#142130 70%,#0c1723);border-radius:9px}
.catalogue-section-dark .rocket-part-viewer[data-state=loading]::after{color:#c6d9ef;background:linear-gradient(120deg,#152234e8,#0e1826e8);font-size:.8rem}
.catalogue-section-dark .rocket-part-viewer[data-state=error]::after{background:#0b1524e8;color:#c5daed;font-size:.72rem}
.catalogue-section-dark .piece-model-hint{color:#b6c7dd;font-size:.73rem;margin:7px 0 4px;line-height:1.4}
.catalogue-section-dark .piece-model-caption{color:#94adc5;font-size:.7rem;line-height:1.45;margin:0 0 10px}
.catalogue-section-dark .piece-model-error{background:#312819;color:#efcf9d;border:1px solid #6c5734;font-size:.76rem}
.catalogue-section-dark .piece-technical-strip{margin:0 0 10px}
.catalogue-section-dark .piece-technical-strip.is-model{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:10px;align-items:stretch}
.catalogue-section-dark .piece-footprint{margin:0 0 10px}
.catalogue-section-dark .piece-footprint .inspector-shape{background-color:#0c141f;background-image:linear-gradient(#7d9ebf13 1px,transparent 1px),linear-gradient(90deg,#7d9ebf13 1px,transparent 1px);border-color:#2a3b51;height:160px;padding:13px;background-size:19px 19px}
.catalogue-section-dark .piece-footprint .inspector-shape svg{height:132px}
.catalogue-section-dark .piece-footprint>p{font-size:.73rem;color:#9fb2ca;margin-top:8px}
.catalogue-section-dark .piece-footprint>p strong{color:#e0edfb;font-size:.82rem;display:flex;align-items:center;gap:9px}
.catalogue-section-dark .piece-orientation{color:#a8c5dc;font-size:.66rem;font-weight:500;padding:3px 5px;background:#24364c;border-radius:4px}
.catalogue-section-dark .compact-footprint{grid-template-columns:60px minmax(0,1fr);gap:9px;padding:8px;background:#0b131e;border-color:#293b51;border-radius:8px;margin:0}
.catalogue-section-dark .compact-footprint .inspector-shape{height:53px;padding:3px;border:0;background-color:transparent;background-size:12px 12px}
.catalogue-section-dark .compact-footprint .inspector-shape svg{height:47px;width:56px}
.catalogue-section-dark .compact-footprint>p{margin:0;font-size:.69rem;line-height:1.45;gap:4px}
.catalogue-section-dark .compact-footprint>p strong{font-size:.79rem}
.catalogue-section-dark .piece-rotate-button{min-height:38px;padding:8px 10px;background:#172536;color:#c2e6f2;border-color:#385773;font-size:.76rem;border-radius:8px;gap:7px}
.catalogue-section-dark .piece-rotate-button:hover:not(:disabled){background:#254058;border-color:#83b4c9;color:#f4fbff}
.catalogue-section-dark .is-model .piece-rotate-button{height:100%;min-height:62px;flex-direction:column;justify-content:center;gap:3px;padding:6px}
.catalogue-section-dark .piece-rotation-label{display:inline-flex;align-items:center;gap:6px}
.catalogue-section-dark .is-model .piece-rotation-label{display:block;line-height:1.3}
.catalogue-section-dark .piece-rotation-label small{font-size:.7rem;color:#9bc3d9}
.catalogue-section-dark .is-model .piece-rotation-label small{display:block;margin-top:2px}
.catalogue-section-dark .piece-specifications{display:grid;grid-template-columns:1fr 1.25fr;gap:13px;margin:10px 0 0}
.catalogue-section-dark .piece-specifications>div{display:block;padding:7px 0 10px;border-color:#29384d;min-width:0}
.catalogue-section-dark .piece-specifications dt{color:#96adc6;font-size:.74rem;margin-bottom:5px}
.catalogue-section-dark .piece-specifications dd{color:#e0ebfa;font-size:.8rem;margin:0;text-align:left}
.catalogue-section-dark .piece-specifications .catalogue-stage{font-size:.77rem}
.catalogue-section-dark .piece-constraint-details{border-color:#2a3a50;margin-top:7px}
.catalogue-section-dark .piece-constraint-details summary{padding-top:11px;font-size:.78rem;color:#c3dbf2;line-height:1.45}
.catalogue-section-dark .piece-extra-specifications{margin:11px 0}
.catalogue-section-dark .piece-extra-specifications>div{padding:8px 0;border-color:#29384d;gap:10px}
.catalogue-section-dark .piece-extra-specifications dt{color:#a2b9d2;font-size:.76rem}
.catalogue-section-dark .piece-extra-specifications dd{color:#e0ebfa;font-size:.79rem}
.catalogue-section-dark .piece-constraints{color:#b3c5db;font-size:.79rem;line-height:1.6;margin-top:13px}
.catalogue-section-dark .piece-constraints li{margin:7px 0}
.catalogue-section-dark .catalogue-inspector p.muted{color:#95aac3;font-size:.72rem;line-height:1.6}
.catalogue-section-dark :is(.piece-view-button,.piece-nav-button,.piece-view-modes button,.filter-buttons button,.piece-rotate-button):focus-visible{outline:2px solid #b3e9f4;outline-offset:3px}
@media(max-width:1100px){.catalogue-section-dark .static-catalogue-layout,.catalogue-section-dark .catalogue-interactive .fixed-catalogue-layout{grid-template-columns:minmax(0,1.35fr) minmax(315px,1fr);gap:21px}.catalogue-section-dark .catalogue-inspector.fixed-inspector{padding:16px}.catalogue-section-dark .piece-nav-button{padding:7px;font-size:.72rem}.catalogue-section-dark .piece-technical-strip.is-model{grid-template-columns:minmax(0,1fr) 70px;gap:8px}.catalogue-section-dark .compact-footprint{grid-template-columns:52px minmax(0,1fr);gap:7px;padding:7px}.catalogue-section-dark .compact-footprint .inspector-shape svg{width:48px}.catalogue-section-dark .compact-footprint>p{font-size:.67rem}}
@media(max-width:900px){.catalogue-section-dark .static-catalogue-layout,.catalogue-section-dark .catalogue-interactive .fixed-catalogue-layout{grid-template-columns:1fr;gap:24px}.catalogue-section-dark .catalogue-invitation{padding:23px}.catalogue-section-dark .catalogue-invitation .instruction-footprint{display:none}.catalogue-section-dark .catalogue-inspector.fixed-inspector{position:static;max-width:none;order:1;padding:20px}.catalogue-section-dark .catalogue-table-wrap{max-height:400px}.catalogue-section-dark .rocket-part-viewer{height:260px}.catalogue-section-dark .piece-technical-strip.is-model{grid-template-columns:minmax(0,1fr) 92px}.catalogue-section-dark .compact-footprint{grid-template-columns:72px minmax(0,1fr);gap:14px;padding:10px}.catalogue-section-dark .compact-footprint .inspector-shape svg{width:62px}.catalogue-section-dark .compact-footprint>p{font-size:.77rem}.catalogue-section-dark .compact-footprint>p strong{font-size:.88rem}.catalogue-section-dark .piece-identity h3{font-size:1.45rem}.catalogue-section-dark .piece-nav-button{font-size:.78rem;padding:8px 12px;min-height:38px}}
@media(max-width:580px){.catalogue-section-dark .catalogue-title-row{gap:15px;margin-bottom:21px}.catalogue-section-dark .catalogue-file-links{gap:20px}.catalogue-section-dark .catalogue-table-wrap{max-height:370px}.catalogue-section-dark .catalogue-toolbar{gap:11px}.catalogue-section-dark .filter-buttons{gap:6px;flex-wrap:wrap}.catalogue-section-dark .filter-buttons button{padding:8px 11px;font-size:.75rem}.catalogue-section-dark .catalogue-result-count{display:flex!important;align-items:center;gap:10px;flex-basis:100%}.catalogue-section-dark .catalogue-result-count small{margin:0;font-size:.72rem}.catalogue-section-dark .catalogue-inspector.fixed-inspector{padding:17px}.catalogue-section-dark .rocket-part-viewer{height:225px}.catalogue-section-dark .piece-technical-strip.is-model{grid-template-columns:minmax(0,1fr) 73px;gap:8px}.catalogue-section-dark .compact-footprint{grid-template-columns:53px minmax(0,1fr);padding:8px;gap:8px}.catalogue-section-dark .compact-footprint .inspector-shape svg{width:49px}.catalogue-section-dark .compact-footprint>p{font-size:.69rem}.catalogue-section-dark .compact-footprint>p strong{font-size:.79rem}.catalogue-section-dark .piece-navigation{gap:8px}.catalogue-section-dark .piece-nav-button{min-height:40px;padding:8px;font-size:.73rem}.catalogue-section-dark .piece-specifications dd{font-size:.78rem}.catalogue-section-dark .piece-model-hint{font-size:.72rem}.catalogue-section-dark .piece-model-caption{font-size:.69rem}}
@media(prefers-reduced-motion:reduce){.catalogue-section-dark :is(.piece-view-button,.piece-view-button span,.piece-nav-button,.filter-buttons button,.piece-rotate-button){transition:none!important;animation:none!important}.catalogue-section-dark .piece-view-button:hover,.catalogue-section-dark .piece-view-button:hover span{transform:none}}

/* Filters belong to the list column; the inspector starts on the same baseline. */
.catalogue-list-column{min-width:0}
.catalogue-section-dark .catalogue-list-column .catalogue-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;min-height:44px;margin:0 0 16px}
.catalogue-section-dark .catalogue-list-column .filter-buttons{display:flex;flex-wrap:wrap;gap:6px}
.catalogue-section-dark .catalogue-list-column .catalogue-result-count{margin:0;flex-basis:auto;font-size:.73rem}
.catalogue-section-dark .catalogue-list-column .catalogue-result-count small{font-size:.65rem}
.catalogue-section-dark .catalogue-list-column .catalogue-model-status{margin:0 0 13px}
.catalogue-section-dark .catalogue-table tr[data-piece-id]{cursor:pointer;outline:none}
.catalogue-section-dark .catalogue-table tr[data-piece-id]:focus-visible td{background:#203b50;box-shadow:inset 0 2px #9cddea,inset 0 -2px #9cddea}
.catalogue-section-dark .catalogue-table tr[data-piece-id]:focus-visible td:first-child{box-shadow:inset 3px 0 #9cddea,inset 0 2px #9cddea,inset 0 -2px #9cddea}
.catalogue-section-dark .catalogue-table tr[data-piece-id]:focus-visible td:last-child{box-shadow:inset -2px 0 #9cddea,inset 0 2px #9cddea,inset 0 -2px #9cddea}
.catalogue-section-dark .piece-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;padding-bottom:14px;margin-bottom:15px}
.catalogue-section-dark .piece-nav-button{min-height:44px;border-radius:25px;gap:7px;padding:6px 10px;background:linear-gradient(135deg,#213247,#152132);border:1px solid #49617c;color:#e2edfa;font-size:.74rem;font-weight:600;box-shadow:inset 0 1px #ffffff0d,0 4px 10px #060b122b;transition:background .18s,border-color .18s,color .18s,box-shadow .18s}
.catalogue-section-dark .piece-nav-button:hover:not(:disabled){background:linear-gradient(125deg,#b5e9f0,#c9bde9);color:#142134;border-color:#c6e5f1;box-shadow:0 5px 16px #7ba9d31a}
.catalogue-section-dark .piece-nav-button:disabled{background:#101925;border-color:#2c3d51;color:#8b9db4;box-shadow:none;opacity:.48}
.catalogue-section-dark .piece-nav-icon{width:25px;height:25px;display:grid;place-items:center;flex:0 0 25px;border-radius:50%;background:#ffffff0d;border:1px solid #ffffff12}
.catalogue-section-dark .piece-nav-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.catalogue-section-dark .piece-nav-button:hover:not(:disabled) .piece-nav-icon{background:#ffffff35;border-color:#ffffff50}
.catalogue-section-dark .piece-position{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:32px;line-height:1;font-size:.67rem;letter-spacing:.02em;color:#9fb6d0}
.catalogue-section-dark .piece-position strong{font-size:1.05rem;line-height:1.05;color:#e4f2fc;font-weight:600}
@media(max-width:1100px){.catalogue-section-dark .piece-navigation{gap:7px}.catalogue-section-dark .piece-nav-button{font-size:.69rem;padding:6px 7px;gap:5px}.catalogue-section-dark .piece-nav-icon{width:22px;height:22px;flex-basis:22px}.catalogue-section-dark .piece-position{min-width:27px}}
@media(max-width:900px){.catalogue-section-dark .piece-navigation{gap:13px}.catalogue-section-dark .piece-nav-button{font-size:.8rem;padding:7px 12px;gap:10px}.catalogue-section-dark .piece-nav-icon{width:28px;height:28px;flex-basis:28px}.catalogue-section-dark .piece-position{min-width:45px}}
@media(max-width:580px){.catalogue-section-dark .catalogue-list-column .catalogue-result-count{display:flex!important;flex-basis:100%;gap:12px}.catalogue-section-dark .catalogue-list-column .catalogue-result-count small{margin:0}.catalogue-section-dark .piece-navigation{gap:8px}.catalogue-section-dark .piece-nav-button{font-size:.73rem;padding:6px 8px;gap:7px}.catalogue-section-dark .piece-nav-icon{width:24px;height:24px;flex-basis:24px}.catalogue-section-dark .piece-position{min-width:33px}}

/* The original mobile inspector positioned every shape in rows 3–5.
   Reset that legacy placement inside the compact shape/description grid. */
@media(max-width:760px){
    .catalogue-section-dark .piece-footprint .inspector-shape{grid-column:auto;grid-row:auto;min-width:0}
    .catalogue-section-dark .compact-footprint>.inspector-shape{grid-area:1 / 1 / 2 / 2}
    .catalogue-section-dark .compact-footprint>p{grid-area:1 / 2 / 2 / 3;min-width:0}
}
@media(max-width:580px){
    .catalogue-section-dark .piece-technical-strip.is-model{grid-template-columns:minmax(0,1fr) 60px;gap:8px}
    .catalogue-section-dark .compact-footprint{grid-template-columns:48px minmax(0,1fr);gap:8px;padding:8px;min-width:0}
    .catalogue-section-dark .compact-footprint>.inspector-shape{width:48px;height:56px;padding:0}
    .catalogue-section-dark .compact-footprint .inspector-shape svg{width:48px;max-width:100%;height:52px;margin:0}
    .catalogue-section-dark .compact-footprint>p{gap:5px;font-size:.7rem;line-height:1.45}
    .catalogue-section-dark .compact-footprint>p strong{flex-wrap:nowrap;white-space:nowrap;gap:6px;font-size:.79rem}
    .catalogue-section-dark .compact-footprint>p span{word-break:normal;overflow-wrap:normal;line-height:1.5}
    .catalogue-section-dark .is-model .piece-rotate-button{grid-area:1 / 2 / 2 / 3;width:60px;min-width:0;min-height:72px;padding:5px;font-size:.7rem}
}

/* Mobile is a four-piece page, not a scrollable desktop table.
   These classes are already present in the static HTML before any script runs. */
.catalogue-pagination{display:none}
.catalogue-section-dark .catalogue-list-column{grid-column:1;grid-row:1}
.catalogue-section-dark :is(.catalogue-inspector.fixed-inspector,.catalogue-invitation){grid-column:2;grid-row:1}
.catalogue-section-dark .catalogue-file-links{display:flex;flex-wrap:nowrap;white-space:nowrap}
@media(max-width:900px){
    .catalogue-section-dark :is(.catalogue-inspector.fixed-inspector,.catalogue-invitation){grid-column:1;grid-row:1;order:0}
    .catalogue-section-dark .catalogue-list-column{grid-column:1;grid-row:2;order:1}
}
@media(max-width:760px){
    .catalogue-section-dark .static-catalogue-layout,.catalogue-section-dark .catalogue-interactive .fixed-catalogue-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
    .catalogue-section-dark .catalogue-table-wrap,.catalogue-section-dark .catalogue-interactive .catalogue-table-wrap{overflow:visible;max-height:none;height:auto;width:100%}
    .catalogue-section-dark .catalogue-table{min-width:0;width:100%;table-layout:fixed}
    .catalogue-section-dark .catalogue-table .catalogue-row-outside-page{display:none}
    .catalogue-section-dark .catalogue-table :is(th,td):nth-child(4),.catalogue-section-dark .catalogue-table :is(th,td):nth-child(5){display:none}
    .catalogue-section-dark .catalogue-table :is(th,td){padding:8px 4px;font-size:.7rem}
    .catalogue-section-dark .catalogue-table th{position:static;letter-spacing:0;font-size:.61rem;white-space:normal}
    .catalogue-section-dark .catalogue-table td:first-child{min-width:0;overflow-wrap:anywhere}
    .catalogue-section-dark .catalogue-table td:first-child strong{font-size:.76rem;letter-spacing:0}
    .catalogue-section-dark .catalogue-table :is(th,td):nth-child(2){width:43px}
    .catalogue-section-dark .catalogue-table :is(th,td):nth-child(3){width:34px}
    .catalogue-section-dark .catalogue-table :is(th,td):nth-child(6){width:40px}
    .catalogue-section-dark .catalogue-table :is(th,td):nth-child(7){width:48px;padding-left:0;padding-right:4px}
    .catalogue-section-dark .catalogue-table .table-piece svg{width:35px;max-width:100%;height:39px}
    .catalogue-section-dark .catalogue-table small{font-size:.64rem;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
    .catalogue-section-dark .catalogue-table .catalogue-stage{font-size:.7rem;gap:4px}
    .catalogue-section-dark .catalogue-table .catalogue-stage-name{display:none}
    .catalogue-section-dark .catalogue-table .catalogue-stage i{width:5px;height:5px}
    .catalogue-section-dark .catalogue-table .piece-view-button{width:44px;min-width:44px;min-height:44px;padding:10px;gap:0;border-radius:50%}
    .catalogue-section-dark .catalogue-table .piece-view-button span{display:none}
    .catalogue-section-dark .piece-reference-line{gap:5px;flex-wrap:nowrap}
    .catalogue-section-dark .piece-model-badge{padding:2px 3px;font-size:.48rem}
    .catalogue-section-dark .catalogue-list-column .catalogue-toolbar{margin-bottom:12px;gap:10px}
    .catalogue-section-dark .catalogue-list-column .filter-buttons{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
    .catalogue-section-dark .filter-buttons button{padding:9px 4px;min-height:40px;font-size:.72rem;white-space:nowrap}
    .catalogue-section-dark .catalogue-pagination{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:12px;color:#bfd0e5;font-size:.69rem;font-variant-numeric:tabular-nums}
    .catalogue-pagination button{width:38px;min-width:38px;min-height:42px;border-radius:9px;border:1px solid #38516d;background:#142436;color:#e9f5ff;font-size:1rem}
    .catalogue-pagination button:disabled{opacity:.35}
    .catalogue-pagination label{display:flex;align-items:center;gap:5px;white-space:nowrap}
    .catalogue-pagination select{min-width:0;width:72px;min-height:42px;padding:7px 5px;background:#142436;border:1px solid #38516d;border-radius:8px;color:#f0f6ff;font-size:.7rem}
    .catalogue-pagination>span{white-space:nowrap;font-size:.67rem}
    .catalogue-pagination :is(button,select):focus-visible{outline:2px solid #7ce6ed;outline-offset:3px}
    .catalogue-section-dark .catalogue-file-links{gap:14px;margin-top:8px}
    .catalogue-section-dark .catalogue-file-links a{font-size:.73rem}
}
@media(min-width:761px){
    .catalogue-section-dark .static-catalogue-layout .catalogue-table .piece-view-button span:not(.view-arrow){display:inline;width:auto;height:auto;background:transparent;color:inherit}
}
@media(max-width:760px){
    .catalogue-section-dark #piece-catalogue .catalogue-table :is(th,td):last-child{position:static;box-shadow:none}
}
