/* FDS extension: FPA kit composition canvas and responsive editor. */
.fpa-kit-editor { border: 1px solid var(--fds-border); border-radius: var(--fds-radius-md); padding: var(--fds-space-4); margin-block: var(--fds-space-4); }
.fpa-kit-layout { display: grid; grid-template-columns: minmax(160px, 230px) minmax(0,1fr); gap: var(--fds-space-4); }
.fpa-kit-layout > *, .fpa-kit-content { min-width: 0; }
.fpa-kit-list { display: grid; gap: var(--fds-space-2); max-height: 480px; overflow: auto; padding-block: var(--fds-space-2); }
.fpa-kit-list button { white-space: normal; overflow-wrap: anywhere; text-align: start; }
.fpa-kit-toolbar, .fpa-kit-member-list { display: flex; flex-wrap: wrap; gap: var(--fds-space-2); align-items: center; margin-block: var(--fds-space-3); }
.fpa-kit-toolbar > *, .fpa-kit-member-list > * { max-width: 100%; }
[data-kit-status]:empty { display: none; }
.fpa-kit-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: var(--fds-space-3); min-width: 0; }
.fpa-kit-fields label { display: grid; gap: var(--fds-space-2); min-width: 0; }
.fpa-kit-fields input, .fpa-kit-fields select, .fpa-kit-toolbar select { width: 100%; min-width: 0; }
.fpa-kit-editor button, .fpa-kit-dialog button, .fpa-kit-editor input, .fpa-kit-editor select, .fpa-kit-dialog input, .fpa-kit-dialog select { min-height: var(--ssa-compact-control, 44px); font-size: var(--ssa-compact-font, 1rem); }
.fpa-kit-stage { border: 1px solid var(--fds-border); border-radius: var(--fds-radius-md); overflow: hidden; margin-block: var(--fds-space-3); }
.fpa-kit-canvas { display: block; width: 100%; height: 280px; touch-action: none; }
.fpa-kit-canvas polygon { fill: var(--fds-gray-200,#e5e7eb); stroke: var(--fds-gray-600,#4b5563); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.fpa-kit-canvas .is-selected polygon, .fpa-kit-canvas g:focus-visible polygon { stroke: var(--fds-blue-600); stroke-width: 3px; }
.fpa-kit-canvas text { font-size: 14px; fill: var(--fds-gray-900,#111827); pointer-events: none; }
.fpa-kit-canvas g { cursor: pointer; }
.fpa-kit-3d { height: 320px; position: relative; }
.fpa-kit-3d canvas { display: block; max-width: 100%; }
.fpa-kit-dialog { width: min(960px,calc(100vw - 24px)); max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); overflow: auto; padding: var(--fds-space-4); box-sizing: border-box; }
.fpa-kit-dialog > header { justify-content: space-between; }
.fpa-kit-dialog section { margin-block: var(--fds-space-4); padding-block-end: var(--fds-space-3); border-bottom: 1px solid var(--fds-border); }
.fpa-kit-dialog .fpa-kit-member-list label { display: flex; align-items: center; gap: var(--fds-space-2); overflow-wrap: anywhere; }
.fpa-kit-dialog .fpa-kit-member-list input { flex-shrink: 0; }
.fpa-kit-toolbar select { flex: 1 1 180px; }
.fpa-kit-editor button[aria-pressed="true"] { outline: 2px solid var(--fds-blue-600); outline-offset: -2px; }
@media(max-width: 767px) { .fpa-kit-layout { grid-template-columns: minmax(0,1fr); } .fpa-kit-list { max-height: 180px; } .fpa-kit-dialog { padding: var(--fds-space-3); } .fpa-kit-canvas { height: 220px; } }

/* FDS extension: shared resource tabs and the dedicated composition page. */
.fpa-kit-resource-tabs{display:flex;flex-wrap:wrap;gap:var(--fds-space-2);margin-block:var(--fds-space-4)}
.fpa-kit-resource-tabs [aria-current="page"]{background:var(--fds-gray-100);box-shadow:inset 0 -2px var(--fds-blue-600)}
.fpa-kit-resource-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:var(--fds-space-4);margin-block:var(--fds-space-4)}
.fpa-kit-resource-card{padding:var(--fds-space-4);min-width:0;overflow-wrap:anywhere}
.fpa-kit-resource-art{background:var(--fds-gray-50);border-radius:var(--fds-radius-md)}
.fpa-kit-resource-art .fpa-kit-canvas{height:180px}
.fpa-kit-resource-card h2{font-size:1rem;margin-block:var(--fds-space-3)}
.fpa-kit-resource-card p{margin-block:var(--fds-space-2)}
.fpa-kit-workspace{display:grid;grid-template-columns:220px minmax(0,1fr) 240px;border:1px solid var(--fds-border);border-radius:var(--fds-radius-md);background:var(--fds-white,#fff);overflow:hidden}
.fpa-kit-workspace > *{min-width:0;padding:var(--fds-space-4)}
.fpa-kit-workspace h2{font-size:1rem;margin-block:0 var(--fds-space-3);overflow-wrap:anywhere}
.fpa-kit-workspace-picker{border-inline-end:1px solid var(--fds-border)}
.fpa-kit-workspace-picker > input,.fpa-kit-workspace-picker > select{width:100%;margin-block-end:var(--fds-space-3)}
.fpa-kit-workspace-properties{border-inline-start:1px solid var(--fds-border)}
.fpa-kit-workspace-properties .fpa-kit-fields{grid-template-columns:minmax(0,1fr);margin-block-end:var(--fds-space-5)}
.fpa-kit-workspace-work{background:var(--fds-gray-50)}
.fpa-kit-workspace .fpa-kit-stage{position:relative;background:var(--fds-white,#fff);margin-block:var(--fds-space-3)}
.fpa-kit-workspace .fpa-kit-canvas,.fpa-kit-workspace .fpa-kit-3d{height:400px}
.fpa-kit-workspace .fpa-kit-3d{touch-action:none}
.fpa-kit-workspace .fpa-kit-canvas text{font-size:14px}
.fpa-kit-workspace .fpa-kit-canvas [data-kit-drop-preview] rect{fill:var(--fds-blue-600);fill-opacity:.3;stroke:var(--fds-blue-600);stroke-width:2;vector-effect:non-scaling-stroke}
.fpa-kit-picker-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--fds-space-2);max-height:620px;overflow:auto;align-content:start;padding:var(--fds-space-1)}
.fpa-kit-picker-card{display:flex;flex-direction:column;gap:var(--fds-space-2);min-width:0;padding:var(--fds-space-2);border:1px solid var(--fds-border);border-radius:var(--fds-radius-md);background:var(--fds-white,#fff);text-align:start;font:inherit;cursor:grab;overflow-wrap:anywhere}
.fpa-kit-picker-card:disabled{cursor:default}
.fpa-kit-picker-card > span{font-size:.8125rem}
.fpa-kit-picker-card small{font-size:.75rem;color:var(--fds-gray-600)}
.fpa-kit-picker-art{height:76px;width:100%;display:grid;place-items:center;background:var(--fds-gray-50)}
.fpa-kit-picker-art img,.fpa-kit-picker-art svg{width:100%;height:100%;object-fit:contain;max-width:100%;pointer-events:none}
.fpa-kit-carrier-badge{color:var(--fds-blue-600)}
.fpa-kit-selection{position:absolute;inset-block-start:var(--fds-space-3);inset-inline-start:var(--fds-space-3);display:flex;align-items:center;gap:var(--fds-space-2);max-width:calc(100% - 24px);padding:var(--fds-space-2);background:var(--fds-white,#fff);border:1px solid var(--fds-border);border-radius:var(--fds-radius-md);pointer-events:none;overflow-wrap:anywhere;font-size:.8125rem}
.fpa-kit-selected-art{width:44px;height:36px;flex-shrink:0}
.fpa-kit-selected-art svg,.fpa-kit-selected-art img{width:100%;height:100%;object-fit:contain}
.fpa-kit-selection[hidden],[data-kit-drop-note][hidden]{display:none}
.fpa-kit-drag-shape{position:fixed;inset:0 auto auto 0;width:120px;height:96px;pointer-events:none;z-index:1100}
.fpa-kit-drag-shape svg{width:100%;height:100%;filter:drop-shadow(0 4px 6px var(--fds-gray-300))}
.fpa-kit-workspace button,.fpa-kit-workspace input,.fpa-kit-workspace select{min-height:var(--ssa-compact-control,40px)}
.fpa-kit-workspace .fpa-kit-member-list button{white-space:normal;text-align:start;overflow-wrap:anywhere}
@media(max-width:1199px){.fpa-kit-workspace{grid-template-columns:190px minmax(0,1fr)}.fpa-kit-workspace-properties{grid-column:1/-1;border-inline-start:0;border-block-start:1px solid var(--fds-border)}.fpa-kit-workspace-properties .fpa-kit-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media(max-width:767px){.fpa-kit-workspace{grid-template-columns:minmax(0,1fr)}.fpa-kit-workspace-work{grid-row:1}.fpa-kit-workspace-picker{border-inline-end:0;border-block-start:1px solid var(--fds-border)}.fpa-kit-workspace .fpa-kit-canvas,.fpa-kit-workspace .fpa-kit-3d{height:300px}.fpa-kit-picker-cards{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.fpa-kit-workspace-properties .fpa-kit-fields{grid-template-columns:minmax(0,1fr)}}
@media(pointer:coarse){.fpa-kit-workspace button,.fpa-kit-workspace input,.fpa-kit-workspace select{min-height:var(--ssa-compact-control,44px)}.fpa-kit-picker-card{cursor:default}}

/* Kit optimizations (2026-10-13): problem list, invalid members, shelf, drop ghost, read-only list. */
.fpa-kit-problems{margin:0;padding:0;list-style:none;display:grid;gap:var(--fds-space-1,4px)}
.fpa-kit-problems li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fds-space-2,8px);color:var(--fds-red-700,#b91c1c)}
.fpa-kit-problems li.is-warning{color:var(--fds-amber-700,#b45309)}
.fpa-kit-problems button{min-height:var(--ssa-compact-control,32px);font-size:var(--ssa-compact-font,.875rem)}
.fpa-kit-canvas .is-invalid polygon{stroke:var(--fds-red-600,#dc2626);stroke-width:3px;fill:var(--fds-red-50,#fef2f2)}
.fpa-kit-canvas .is-invalid.is-selected polygon{stroke-dasharray:6 3}
.fpa-kit-check{display:flex;align-items:center;gap:var(--fds-space-2,8px)}
.fpa-kit-check input{width:20px;height:20px;min-height:0}
.fpa-kit-workspace textarea{min-height:72px;resize:vertical}
.fpa-shelf-switch{display:inline-flex;gap:2px}
.fpa-shelf-switch button[aria-pressed="true"]{background:var(--fds-blue-600,#2563eb);color:#fff;border-color:var(--fds-blue-600,#2563eb)}
.fpa-kit-card{padding-bottom:40px}
.fpa-kit-card.is-unfit{opacity:.6;cursor:not-allowed}
.fpa-kit-card .fpa-kit-card-art{top:10px;height:64px}
.fpa-kit-card-art .fpa-kit-canvas{width:70px;height:64px}
.fpa-kit-card-art .fpa-kit-canvas text{display:none}
.fpa-kit-card > .fpa-unfit{position:absolute;top:4px;inset-inline-end:6px;font-size:9px}
.fpa-kit-card-actions{position:absolute;left:6px;right:6px;bottom:6px;display:flex;gap:4px}
:where(body:not([data-ssa-controls="compact-v1"])) .fpa-kit-card-actions button{flex:1 1 auto;min-height:26px;padding:0 2px;font-size:10.5px;white-space:nowrap;border:1px solid var(--fds-border);border-radius:6px;background:var(--fds-white,#fff);cursor:pointer}
.fpa-kit-card-actions button:first-child{flex:0 0 36px}
.fpa-kit-card-actions button:disabled{opacity:.5;cursor:not-allowed}
#stage .fpa-kit-ghost rect{fill:var(--fds-blue-600,#2563eb);fill-opacity:.25;stroke:var(--fds-blue-600,#2563eb);stroke-width:2;vector-effect:non-scaling-stroke}
#stage .fpa-kit-ghost.invalid rect{fill:var(--fds-red-600,#dc2626);stroke:var(--fds-red-600,#dc2626)}
.fpa-kit-readonly-list{margin:0;padding:0;list-style:none;display:grid;gap:var(--fds-space-2,8px)}
.fpa-kit-readonly-list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fds-space-2,8px)}
.fpa-kit-dialog optgroup{font-style:normal}
.fpa-kit-fields label.fpa-kit-check{display:flex;flex-direction:row}
/* A kit a component edit has broken (FDS extension: card-level error note). */
.fpa-kit-resource-card [data-kit-broken] { color: var(--fds-red-700); }

/* Kit visual refresh (2026-10-14, FDS extension): plan levels, carriers, toolbar groups, tabs, picker rows, list cards. */
.fpa-kit-workspace{grid-template-columns:260px minmax(0,1fr) 280px}
.fpa-kit-workspace .fpa-kit-canvas{height:480px;background:var(--fds-white,#fff);cursor:grab}
.fpa-kit-workspace .fpa-kit-canvas.is-panning{cursor:grabbing}
.fpa-kit-grid-line{fill:none;stroke:var(--fds-gray-200);stroke-width:1px;vector-effect:non-scaling-stroke}
.fpa-kit-canvas .is-level-1 > polygon:first-of-type{fill:var(--fds-gray-200)}
.fpa-kit-canvas .is-level-2 > polygon:first-of-type{fill:color-mix(in srgb,var(--fds-blue-600) 16%,var(--fds-white,#fff))}
.fpa-kit-canvas .is-level-3 > polygon:first-of-type{fill:color-mix(in srgb,var(--fds-green-700) 16%,var(--fds-white,#fff))}
.fpa-kit-canvas .is-level-4 > polygon:first-of-type{fill:color-mix(in srgb,var(--fds-amber-700) 16%,var(--fds-white,#fff))}
.fpa-kit-canvas .is-invalid > polygon:first-of-type{fill:var(--fds-red-50,#fef2f2)}
.fpa-kit-canvas path.fpa-kit-hatch{stroke:none}
.fpa-kit-hatch-line{stroke:var(--fds-red-600,#dc2626);stroke-width:2.5;opacity:.4}
.fpa-kit-canvas polygon.fpa-kit-slot{fill:none;stroke:var(--fds-gray-500);stroke-width:1px;stroke-dasharray:4 3}
.fpa-kit-canvas polygon.fpa-kit-slot.is-recess{fill:var(--fds-gray-100)}
.fpa-kit-carrier-hint{fill:none;stroke:var(--fds-text-secondary,var(--fds-gray-600));stroke-width:1.7;opacity:.6}
.fpa-kit-canvas g.fpa-kit-labels text{font-size:inherit;font-weight:600;fill:var(--fds-gray-800)}
.fpa-kit-canvas g.fpa-kit-labels .fpa-kit-problem-mark circle{fill:var(--fds-red-600,#dc2626)}
.fpa-kit-canvas g.fpa-kit-labels .fpa-kit-problem-mark text{fill:var(--fds-white,#fff);font-weight:700}
.fpa-kit-canvas g.fpa-kit-front text{font-size:inherit;fill:var(--fds-blue-600)}
.fpa-kit-front line{stroke:var(--fds-blue-600);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.fpa-kit-front path{fill:var(--fds-blue-600)}
.fpa-kit-statusbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--fds-space-2) var(--fds-space-4);min-height:var(--ssa-compact-control,44px)}
.fpa-kit-statusbar-end{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--fds-space-3);font-size:.8125rem;color:var(--fds-gray-700)}
.fpa-kit-workspace .fpa-kit-selection{position:static;max-width:none;padding:0;background:none;border:0;box-shadow:none}
.fpa-kit-legend{display:inline-flex;gap:var(--fds-space-3)}
.fpa-kit-legend-item{display:inline-flex;align-items:center;gap:6px}
.fpa-kit-legend-item::before{content:"";width:12px;height:12px;border:1px solid var(--fds-gray-600);border-radius:2px;background:var(--fds-gray-200)}
.fpa-kit-legend-item.is-level-2::before{background:color-mix(in srgb,var(--fds-blue-600) 16%,var(--fds-white,#fff))}
.fpa-kit-legend-item.is-level-3::before{background:color-mix(in srgb,var(--fds-green-700) 16%,var(--fds-white,#fff))}
.fpa-kit-legend-item.is-level-4::before{background:color-mix(in srgb,var(--fds-amber-700) 16%,var(--fds-white,#fff))}
.fpa-kit-workspace .fpa-kit-toolbar{gap:var(--fds-space-3);margin-block:0 var(--fds-space-2)}
.fpa-kit-toolbar-group{display:inline-flex;align-items:center;gap:4px}
.fpa-kit-toolbar-group.is-end{margin-inline-start:auto}
.fpa-kit-toolbar-group.is-segmented{gap:0}
.fpa-kit-toolbar-group.is-segmented button{border-radius:0}
.fpa-kit-toolbar-group.is-segmented button:first-child{border-start-start-radius:var(--fds-radius-md);border-end-start-radius:var(--fds-radius-md)}
.fpa-kit-toolbar-group.is-segmented button:last-child{border-start-end-radius:var(--fds-radius-md);border-end-end-radius:var(--fds-radius-md);margin-inline-start:-1px}
.fpa-kit-workspace .fpa-kit-toolbar-group.is-segmented button[aria-pressed="true"]{background:var(--fds-gray-900);border-color:var(--fds-gray-900);color:var(--fds-white,#fff);outline:0}
.fpa-kit-icon-btn{min-width:var(--ssa-compact-control,40px);font-size:1.125rem;line-height:1}
.fpa-kit-workspace .fds-btn:disabled{opacity:.45;color:var(--fds-gray-700);border-color:var(--fds-gray-300);background:var(--fds-white,#fff)}
.fpa-kit-menu{position:relative}
.fpa-kit-menu > summary{list-style:none;cursor:pointer}
.fpa-kit-menu > summary::-webkit-details-marker{display:none}
.fpa-kit-menu > summary::after{content:"▾";margin-inline-start:6px;font-size:1em}
.fpa-kit-menu-items{position:absolute;z-index:20;inset-block-start:calc(100% + 4px);inset-inline-start:0;display:grid;gap:4px;min-width:168px;padding:6px;background:var(--fds-white,#fff);border:1px solid var(--fds-border);border-radius:var(--fds-radius-md);box-shadow:0 8px 24px color-mix(in srgb,var(--fds-gray-900) 14%,transparent)}
.fpa-kit-menu-items > *{justify-content:flex-start;text-align:start}
.fpa-kit-tabs{display:flex;border-bottom:1px solid var(--fds-border);margin:calc(-1 * var(--fds-space-2)) 0 var(--fds-space-4)}
.fpa-kit-workspace .fpa-kit-tabs .fpa-kit-tab{border-radius:0;flex:1;min-height:var(--ssa-compact-control,40px);border:0;border-bottom:2px solid transparent;background:none;font:inherit;font-size:var(--ssa-compact-font,inherit);color:var(--fds-gray-700);cursor:pointer}
.fpa-kit-workspace .fpa-kit-tab[aria-selected="true"]{border-bottom-color:var(--fds-blue-600);color:var(--fds-gray-900);font-weight:600}
.fpa-kit-fields[hidden]{display:none}
.fpa-kit-member-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:var(--fds-space-2)}
.fpa-kit-member-head h2{margin:0;font-size:1rem}
.fpa-kit-member-head p{margin:2px 0 0}
.fpa-kit-member-actions{display:flex;flex-wrap:wrap;gap:var(--fds-space-2)}
.fpa-kit-member-actions button{flex:1 1 auto}
.fpa-kit-facing-field{display:grid;gap:var(--fds-space-2)}
.fpa-kit-facings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.fpa-kit-workspace .fpa-kit-facings button{padding-inline:4px;white-space:nowrap}
.fpa-kit-workspace .fpa-kit-facings button[aria-pressed="true"]{background:var(--fds-gray-900);border-color:var(--fds-gray-900);color:var(--fds-white,#fff);outline:0}
.fpa-kit-picker-cards{grid-template-columns:minmax(0,1fr)}
.fpa-kit-picker-card{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:var(--fds-space-2);padding-inline-end:var(--fds-space-3)}
.fpa-kit-picker-art{height:48px}
.fpa-kit-picker-text{display:grid;gap:2px;min-width:0}
.fpa-kit-picker-name,.fpa-kit-picker-text small{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fpa-kit-picker-name{font-size:.8125rem;font-weight:500}
.fpa-kit-carrier-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;line-height:14px;color:var(--fds-text-secondary,var(--fds-gray-600))}
.fpa-kit-carrier-badge svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7}
.fpa-kit-picker-card .fpa-kit-carrier-badge{position:absolute;inset-block-start:4px;inset-inline-end:6px}
.fpa-kit-picker-card:has(.fpa-kit-carrier-badge) .fpa-kit-picker-text{padding-block-start:10px}
.fpa-kit-resource-card{position:relative}
.fpa-kit-resource-status{position:absolute;inset-block-start:var(--fds-space-5);inset-inline-end:var(--fds-space-5);z-index:1}
.fpa-kit-resource-art img{display:block;width:100%;height:180px;object-fit:contain}
.fpa-kit-card-row{display:flex;align-items:center;gap:var(--fds-space-2);margin-block-start:var(--fds-space-3)}
.fpa-kit-card-row > a{flex:1;justify-content:center}
.fpa-kit-card-more .fpa-kit-menu-items{inset-inline-start:auto;inset-inline-end:0}
@media(max-width:1199px){.fpa-kit-workspace{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:767px){.fpa-kit-workspace{grid-template-columns:minmax(0,1fr)}.fpa-kit-workspace .fpa-kit-canvas{height:320px}.fpa-kit-toolbar-group.is-end{margin-inline-start:0}}
