/* FDS extension: catalog editing and exact publication review. */
.ss-catalog-form { display: grid; gap: var(--fds-space-4); }
.ss-catalog-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--fds-space-3); }
.ss-catalog-fields label { display: grid; gap: var(--fds-space-2); min-width: 0; }
:where(body:not([data-ssa-controls="compact-v1"])) .ss-catalog-fields input, :where(body:not([data-ssa-controls="compact-v1"])) .ss-catalog-fields select { min-height: 44px; width: 100%; font-size: 1rem; }
.ss-catalog-fields details { grid-column: 1 / -1; border: 1px solid var(--fds-border); padding: var(--fds-space-3); border-radius: var(--fds-radius-md); }
.ss-catalog-fields details > .ss-catalog-fields { padding-top: var(--fds-space-3); }
.ss-catalog-hash { overflow-wrap: anywhere; font-family: monospace; font-size: .8rem; }
.ss-catalog-diff { width: 100%; border-collapse: collapse; table-layout: fixed; }
.ss-catalog-diff th,.ss-catalog-diff td { text-align: left; vertical-align: top; overflow-wrap: anywhere; border-bottom: 1px solid var(--fds-border); padding: var(--fds-space-2); font-size: .875rem; }
.ss-catalog-json { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .8125rem; max-height: 480px; overflow: auto; }
.ss-catalog-review { margin-top: var(--fds-space-5); }
#catalog-message:not(:empty) { margin-bottom: var(--fds-space-4); }
.ss-platform textarea:focus-visible { outline: 2px solid var(--fds-blue-600); outline-offset: 3px; }
/* FPA stacking S3: slots of a carrier card. */
.ss-catalog-slots { grid-column: 1 / -1; display: grid; gap: var(--fds-space-3); min-width: 0; border: 1px solid var(--fds-border); border-radius: var(--fds-radius-md); padding: var(--fds-space-3); }
.ss-catalog-slot { display: grid; grid-template-columns: repeat(auto-fill,minmax(120px,1fr)); gap: var(--fds-space-2); align-items: end; }
.ss-catalog-slot label { display: grid; gap: var(--fds-space-1); min-width: 0; }
.ss-catalog-slot-preview { width: 100%; max-width: 280px; height: auto; }
.ss-catalog-slot-preview .ss-slot-top { fill: var(--fds-gray-100); stroke: var(--fds-gray-600); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ss-catalog-slot-preview .ss-slot { fill: none; stroke: var(--fds-gray-700); stroke-width: 1.5; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; }
.ss-catalog-slot-preview .ss-slot.is-recess { fill: var(--fds-gray-300); }
@media(max-width:480px) { .ss-catalog-fields { grid-template-columns:minmax(0,1fr); } }
#catalog-root summary { justify-content: space-between; gap: var(--fds-space-3); }
#catalog-root summary::after { content: ''; flex: 0 0 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin-right: 4px; }
#catalog-root details[open] > summary::after { transform: rotate(225deg); }
/* FDS extension: update assistant and the advanced area below it. */
.ss-catalog-assistant { margin-bottom: var(--fds-space-5); }
.ss-catalog-update { display: grid; gap: var(--fds-space-2); justify-items: start; padding-top: var(--fds-space-3); border-top: 1px solid var(--fds-border); }
.ss-catalog-update p { margin: 0; overflow-wrap: anywhere; }
.ss-catalog-check { display: flex; gap: var(--fds-space-2); align-items: flex-start; min-height: 44px; }
.ss-catalog-check input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 2px; }
.ss-catalog-field { display: grid; gap: var(--fds-space-2); max-width: 480px; }
.ss-catalog-field textarea { width: 100%; min-height: 96px; font-size: .875rem; }
.ss-catalog-record { resize: vertical; }
.ss-catalog-steps { margin: 0; padding-left: var(--fds-space-5); display: grid; gap: var(--fds-space-1); }
.ss-catalog-steps [data-state="waiting"] { color: var(--fds-text-muted); }
.ss-catalog-steps [data-state="done"] { color: var(--fds-green-700); }
.ss-catalog-steps [data-state="failed"] { color: var(--fds-red-700); }
.ss-catalog-diff-wrap { max-height: 420px; overflow: auto; }
.ss-catalog-advanced > summary { display: flex; align-items: center; min-height: 44px; font-weight: 600; cursor: pointer; }
.ss-catalog-advanced > p { margin: 0 0 var(--fds-space-4); }
/* FDS extension: the pointer to the lighting page that replaced the lighting section. */
.ss-catalog-moved { margin-top: var(--fds-space-6); }

/* Admin V3-5: catalog, lighting and update assistant markup on the admin shell (FDS extension). */
.ssa-admin #catalog-root { font-size: .875rem; }
.ssa-admin .ss-platform-meta { color: var(--fds-text-muted); font-size: .8125rem; line-height: 1.5; margin: 0; }
.ssa-admin .fds-card-body > h2 { margin: 0; font-size: 1rem; line-height: 1.4; font-weight: 600; }
.ssa-admin .fds-card-body > h3 { margin: 0; font-size: .9375rem; font-weight: 600; }
.ssa-admin .ss-platform-row { display: flex; align-items: center; justify-content: space-between; gap: var(--fds-space-3); padding: var(--fds-space-3) 0; border-bottom: 1px solid var(--fds-border); }
.ssa-admin .ss-platform-row:last-child { border-bottom: 0; }
.ssa-admin .ss-platform-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fds-space-2); }
.ssa-admin .ss-catalog-draft { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fds-space-2); min-width: 0; overflow-wrap: anywhere; }
.ssa-admin .ss-catalog-title { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--fds-space-2); }
.ssa-admin .ss-catalog-fields label { font-size: var(--ssa-compact-font, .8125rem); font-weight: 550; }
.ssa-admin .ss-catalog-fields input, .ssa-admin .ss-catalog-fields select { min-height: 0; height: var(--ssa-control); font-size: var(--ssa-compact-input-font, .875rem); }
.ssa-admin .ss-catalog-diff th { background: var(--fds-gray-25); color: var(--fds-text-muted); font-weight: 500; font-size: .8125rem; }
.ssa-admin .ss-catalog-diff th, .ssa-admin .ss-catalog-diff td { padding: var(--fds-space-2) var(--fds-space-3); }
.ssa-admin .ss-catalog-diff-wrap, .ssa-admin .ss-catalog-impact { border: 1px solid var(--fds-border); border-radius: var(--fds-radius-md); }
.ssa-admin .ss-catalog-advanced { margin-top: var(--fds-space-4); }
.ssa-admin .ss-catalog-advanced > summary { font-size: 1rem; padding: var(--fds-space-2) 0; }
.ssa-admin .ss-catalog-advanced > .ss-platform-grid { margin-top: var(--fds-space-4); }
.ssa-admin #catalog-root details > summary { font-size: .875rem; }
.ssa-admin .ssa-steps { margin-bottom: var(--fds-space-2); }

/* FDS extension: dedicated rules template form and showcase choice cards. */
.ss-rules-editor { display:grid; gap:var(--fds-space-6,24px); }
.ss-rules-section { padding:var(--fds-space-4,16px); border:1px solid var(--fds-border); border-radius:var(--fds-radius-lg); }
.ss-rules-fields,.ss-rules-types { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:var(--fds-space-4,16px); }
.ss-rules-fields label { display:grid; gap:var(--fds-space-2,8px); }
.ss-rules-type { display:grid; grid-template-columns:24px 1fr; gap:var(--fds-space-2,8px); padding:var(--fds-space-3,12px); border:1px solid var(--fds-border); border-radius:var(--fds-radius-md); }
.ss-rules-type small,.ss-rules-type svg { grid-column:2; }
.ss-rules-type svg { width:100%; height:100px; }
.ss-rules-type:has(input:checked) { outline:2px solid var(--fds-action-primary); }
.ss-rules-error { color:var(--fds-red-700); }
.ss-rules-issues:empty { display:none; }
.ss-rules-filter { display:flex; align-items:center; flex-wrap:wrap; gap:var(--fds-space-3,12px); margin-bottom:var(--fds-space-4,16px); }
.ss-rules-distance-diagram svg { width:100%; max-width:480px; height:140px; fill:var(--fds-bg-panel); stroke:currentColor; stroke-width:2; }
.ss-rules-editor input:not([type=checkbox]):not([type=radio]),.ss-rules-editor select { min-height:var(--ssa-compact-control,44px); }
.ss-rules-editor pre { white-space:pre-wrap; overflow-wrap:anywhere; }

.ss-rules-comparison { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:var(--fds-space-4); }
.ss-rules-comparison svg { width:100%; max-height:360px; }

.ss-release-navigation { display:flex; flex-wrap:wrap; gap:var(--fds-space-2); margin-bottom:var(--fds-space-4); }
#release-update,#release-channel,#release-drafts,#release-history { scroll-margin-top:var(--fds-space-6); }

/* FDS extension: explicit parameter titles; preserve unmarked rule form defaults. */
body[data-ssa-controls="compact-v1"] .ss-rules-section h3 { margin:0 0 var(--fds-space-2); font-size:.875rem; line-height:1.4; }
:where(body:not([data-ssa-controls="compact-v1"])) .ss-rules-editor input:is([type=checkbox],[type=radio]) { min-height:44px; }
