/* Capability layer: neutral theme tokens, compact controls, and prototype-only states. */
:root{--cap-danger:#b42332;--cap-danger-soft:#fff0f1}
@media(prefers-color-scheme:dark){:root{--cap-danger:#ff9aa6;--cap-danger-soft:#3c2027}}
.app [class*="cap-"],dialog [class*="cap-"]{letter-spacing:0;overflow-wrap:anywhere}
.cap-config,.cap-chat-plan,.cap-job-card,.cap-export-panel,.cap-detail-evidence{color:var(--ink);border-radius:0;box-shadow:none;background:transparent}
.cap-config{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--line)}
.cap-config-heading,.cap-setting-row,.cap-chat-plan,.cap-export-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.cap-config-heading{align-items:flex-start}.cap-config-heading>div{min-width:0}
.app .cap-config h2{font-size:20px;line-height:1.4;margin:4px 0 0}
.cap-config .eyebrow,.cap-chat-plan .eyebrow,.cap-export-panel .eyebrow,.cap-job-card .eyebrow,.cap-detail-evidence .eyebrow{font-size:11px;line-height:1.5;letter-spacing:0}
.cap-prototype-tag{flex:none;max-width:88px;padding:3px 6px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:11px;line-height:1.5}
.cap-config>.sub{margin:10px 0 16px;font-size:12px;line-height:1.6}
.cap-setting-row{padding:14px 0;border-top:1px solid var(--line);align-items:flex-start}
.cap-setting-row>span{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.cap-setting-row strong{font-size:14px;line-height:1.5;font-weight:550}
.cap-setting-row small{font-size:12px;color:var(--muted);line-height:1.55}
.cap-segment{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.cap-segment button,.cap-generation-options button{min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font-size:13px;line-height:1.4;letter-spacing:0}
.cap-segment button.active,.cap-generation-options button.active{background:var(--action);color:var(--on-action);border-color:var(--action)}
.cap-segment button:disabled,.cap-generation-options button:disabled{background:var(--disabled);color:var(--disabled-ink);border-color:transparent;opacity:1;cursor:not-allowed}
.cap-quality{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:0 0 14px;font-size:12px;line-height:1.6}.cap-quality strong{font-size:14px;font-weight:550}.cap-quality small{flex-basis:100%;color:var(--muted);font-size:12px}
.cap-audio-control{position:relative;flex:0 1 184px;width:184px;max-width:184px;min-width:0}
.cap-audio-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:9px 9px 9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font-size:13px;line-height:1.5;letter-spacing:0;text-align:left}
.cap-audio-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cap-audio-trigger svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--muted);transition:transform 140ms ease}.cap-audio-trigger[aria-expanded=true]{border-color:var(--focus);background:var(--raised)}.cap-audio-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.cap-audio-menu{position:absolute;z-index:30;top:calc(100% + 6px);right:0;width:220px;max-width:calc(100vw - 32px);padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 14px 32px rgb(0 0 0 / 18%)}.cap-audio-menu.open-up{top:auto;bottom:calc(100% + 6px)}.cap-audio-menu[hidden]{display:none}
.cap-audio-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:42px;padding:8px;border:0;border-radius:5px;background:transparent;color:var(--ink);font-size:13px;line-height:1.5;letter-spacing:0;text-align:left}.cap-audio-option[aria-selected=true]{background:var(--raised);font-weight:550}.cap-audio-radio{display:block;width:16px;height:16px;border:1.5px solid var(--muted);border-radius:50%;background:transparent}.cap-audio-option[aria-selected=true] .cap-audio-radio{border-color:var(--focus);box-shadow:inset 0 0 0 4px var(--panel);background:var(--focus)}
.cap-audio-trigger:focus-visible,.cap-audio-option:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.cap-narration{display:flex;flex-direction:column;gap:7px;padding:14px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.5;color:var(--ink)}.cap-narration span{font-weight:550}.cap-narration textarea{width:100%;min-height:72px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;line-height:1.6;letter-spacing:0;resize:vertical}.cap-narration small{font-size:12px;line-height:1.6;color:var(--muted)}
.cap-upload-row{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:14px 0;border-top:1px solid var(--line);cursor:pointer}.cap-upload-row input{flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:var(--focus)}.cap-upload-row span{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.cap-upload-row strong{font-size:13px;line-height:1.5;font-weight:550}.cap-upload-row small{font-size:12px;line-height:1.6;color:var(--muted)}
.cap-share{min-height:44px;border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.5;letter-spacing:0;background:var(--action);color:var(--on-action)}
.cap-motion-summary{margin:8px 0 12px;padding:10px 0 10px 12px;border-left:2px solid var(--focus);color:var(--muted);font-size:12px;line-height:1.7}
/* Outrank the base album-item span caption rule. */
.album-grid .album-item .cap-media-badge{position:absolute;inset:auto 5px 5px auto;display:block;width:auto;max-width:calc(100% - 10px);height:auto;min-height:0;padding:3px 5px;border:0;border-radius:4px;background:rgb(0 0 0 / 72%);color:#fff;font-size:10px;font-weight:500;line-height:1.4;letter-spacing:0;white-space:normal;text-align:right;pointer-events:none}
.cap-evidence{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.cap-evidence span{font-size:12px;color:var(--ink);font-weight:550}.cap-evidence p{margin:5px 0;font-size:12px;line-height:1.6;color:var(--muted)}.cap-evidence small{font-size:11px;line-height:1.5;color:var(--muted)}
.cap-detail-evidence{margin-top:20px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.app .cap-detail-evidence h2{font-size:18px;line-height:1.5;margin:4px 0 8px}.cap-detail-evidence p{font-size:13px;line-height:1.7;color:var(--muted)}
.cap-chat-plan{margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid var(--line)}.cap-chat-plan>div{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.cap-chat-plan strong{font-size:14px;line-height:1.5;font-weight:550}.cap-chat-plan small{font-size:12px;line-height:1.5;color:var(--muted)}.cap-chat-plan button{flex:none;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:13px;line-height:1.5;letter-spacing:0}
.app #header .cap-header-icon{display:grid;place-items:center;flex:none;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:10px;color:var(--muted);background:transparent}
.app #header .cap-header-icon .cp-icon{width:20px;height:20px;flex:none}
.app #header .cap-header-icon[aria-expanded=true],.app #header .cap-header-icon:focus-visible{color:var(--ink);background:var(--raised)}
@media(hover:hover){.app #header .cap-header-icon:hover{color:var(--ink);background:var(--raised)}}
.app #header:has(.cap-header-icon){justify-content:flex-start}
.app #header .cap-header-storyboard{margin-left:auto}
.app #header .cap-header-settings{margin-left:4px}
.cap-settings-lead{max-width:34em;margin:8px 0 20px}
.cap-settings-page .cap-config{margin-bottom:16px}
dialog:has(.cap-modal-kicker){width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:24px 20px;border-radius:8px;overscroll-behavior:contain}dialog:has(.cap-modal-kicker) h2{font-size:22px;line-height:1.4;margin:7px 24px 14px 0}dialog:has(.cap-modal-kicker) .sub{font-size:13px;line-height:1.7}dialog:has(.cap-modal-kicker) button{min-height:44px;letter-spacing:0}dialog:has(.cap-modal-kicker) .option{min-height:48px;padding:12px;border-radius:6px;font-size:14px;line-height:1.5}.cap-modal-kicker{padding-right:24px;font-size:11px;line-height:1.5;letter-spacing:0;color:var(--muted)}
.cap-plan-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin:18px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cap-plan-summary div{display:flex;min-width:0;flex-direction:column;gap:4px}.cap-plan-summary span{font-size:12px;line-height:1.5;color:var(--muted)}.cap-plan-summary strong{font-size:14px;line-height:1.5;font-weight:550}
.cap-plan-list{display:flex;flex-direction:column;margin:14px 0 18px}.cap-plan-list>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px 10px;padding:12px 0;border-bottom:1px solid var(--line)}.cap-plan-list b{grid-row:span 2;color:var(--muted);font-size:12px;line-height:1.6;font-weight:500}.cap-plan-list span{min-width:0;font-size:14px;line-height:1.5}.cap-plan-list em{font-size:12px;line-height:1.6;color:var(--muted);font-style:normal}.cap-modal-boundary{padding:10px 0;color:var(--muted);font-size:12px;line-height:1.6}
.cap-plan-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:16px}
dialog:has(.cap-plan-actions) .cap-plan-actions>button{width:100%;min-height:48px;margin:0;padding:11px 14px;border-radius:6px;font-size:14px;line-height:1.4;text-align:left;box-shadow:none}
dialog:has(.cap-plan-actions) .cap-plan-actions>.cap-plan-primary{border:1px solid var(--action);background:var(--action);color:var(--on-action);font-weight:600}
dialog:has(.cap-plan-actions) .cap-plan-actions>.cap-plan-secondary{border:1px solid var(--line);background:transparent;color:var(--ink);font-weight:500}
dialog:has(.cap-plan-actions) .cap-plan-actions>.cap-plan-tertiary{align-self:flex-start;width:auto;min-height:40px;padding:8px 0;border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:400}
.cap-job-card{margin:0 0 20px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}.cap-job-card strong{display:block;margin:4px 0;font-size:14px;line-height:1.5;font-weight:550}.cap-job-card p{font-size:12px;color:var(--muted);line-height:1.7}.cap-export-panel{align-items:center;margin:20px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cap-export-panel>div{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.cap-export-panel strong{font-size:14px;line-height:1.5;font-weight:550}.cap-export-panel small{font-size:12px;line-height:1.6;color:var(--muted)}.cap-share{flex:none}.cap-result-note{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.6}
.cap-field{display:flex;flex-direction:column;gap:7px;margin:16px 0;min-width:0;font-size:14px;line-height:1.5;color:var(--ink)}.cap-field>span,.cap-field>label{font-weight:550}.cap-field small{font-size:12px;line-height:1.6;color:var(--muted)}.cap-field input:not([type=checkbox]):not([type=radio]),.cap-field select,.cap-field textarea{width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;letter-spacing:0}.cap-field textarea{min-height:108px;resize:vertical;line-height:1.6}.cap-field input[type=range]{padding:0;border:0;accent-color:var(--focus)}
dialog .duration-field{display:flex;flex-direction:column;gap:6px;margin:16px 0 10px;color:var(--muted);font-size:12px;line-height:1.5}dialog .duration-field input{width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;letter-spacing:0}dialog .timing-presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0 14px;color:var(--muted);font-size:11px}dialog .timing-presets>span{margin-right:2px}dialog .timing-presets .option{display:inline-block;width:auto;min-height:36px;margin:0;padding:7px 10px;font-size:11px;border-width:1px;box-shadow:1px 2px 0 #424b38}
.cap-toggle{display:flex;align-items:center;gap:10px;min-height:44px;margin:10px 0;font-size:13px;line-height:1.6;color:var(--ink)}.cap-toggle input{flex:none;width:18px;height:18px;accent-color:var(--focus)}.cap-toggle small{display:block;font-size:12px;color:var(--muted)}.cap-notice{margin:14px 0;padding:10px 0 10px 12px;border-left:2px solid var(--focus);color:var(--muted);font-size:12px;line-height:1.7}.cap-notice strong{display:block;margin-bottom:4px;color:var(--ink);font-size:13px;font-weight:550}.cap-notice.error,.cap-notice[data-state=failed]{border-color:var(--cap-danger)}.cap-notice.error strong,.cap-notice[data-state=failed] strong{color:var(--cap-danger)}
.cap-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.cap-actions button{flex:1;min-width:100px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font-size:13px;line-height:1.5;letter-spacing:0}.cap-actions .primary,.cap-actions [data-primary]{background:var(--action);color:var(--on-action);border-color:var(--action)}
.cap-evidence-list{display:flex;flex-direction:column;gap:0;margin:16px 0;padding:0;list-style:none}.cap-evidence-list>li,.cap-evidence-list>div{min-width:0;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7;color:var(--muted)}.cap-evidence-list strong{display:block;margin-bottom:4px;font-size:14px;color:var(--ink);font-weight:550}.cap-evidence-list img{width:64px;height:64px;border-radius:4px;object-fit:cover}.cap-evidence-list small{font-size:12px;color:var(--muted)}.cap-job-state,.cap-upload-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6}.cap-job-state small,.cap-upload-summary small{font-size:12px;color:var(--muted)}.cap-job-state[data-state=failed]{color:var(--cap-danger)}.cap-job-state button{min-height:44px;padding:8px 0;font-size:13px;letter-spacing:0;text-decoration:underline;text-underline-offset:4px}
@media(hover:hover){.cap-segment button:not(.active):not(:disabled):hover,.cap-generation-options button:not(.active):not(:disabled):hover,.cap-chat-plan button:hover,.cap-actions button:not(.primary):hover{background:var(--raised);border-color:var(--muted)}.cap-audio-option:not([aria-selected=true]):hover{background:var(--raised)}}
@media(max-width:380px){.cap-config-heading{gap:8px}.app .cap-config h2{font-size:18px}.cap-setting-row{align-items:stretch;flex-direction:column;gap:10px}.cap-setting-row>.cap-segment{justify-content:flex-start}.cap-setting-row>.cap-segment button{flex:1}.cap-audio-control{flex:auto;width:100%;max-width:none}.cap-audio-menu{left:0;right:0;width:100%;max-width:none}.cap-chat-plan{gap:8px}.cap-chat-plan button{padding:8px}.cap-export-panel{gap:10px}.cap-plan-summary{gap:14px 10px}}
