.ca-language-visibility { margin-bottom:16px; min-width:0; }
.ca-language-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; margin:6px 0; }
.ca-language-choices .ca-checkbox { font-size:var(--admin-text-control); min-width:0; }
@media (max-width:600px) { .ca-language-choices .ca-checkbox { min-height:var(--admin-control-touch); } }
/* Shared admin controls. See docs/admin-ui.md and admin_ui_example.html. */
.ca-dialog-input-label { display:block; margin-top:18px; color:var(--admin-text-secondary); font-size:var(--admin-text-sm); }
.ca-content-picker { min-width:0; }
.ca-content-choices { display:grid; gap:8px; }
.admin-ui .ca-content-choice { display:flex; align-items:center; gap:14px; width:100%; min-width:0; padding:12px; border:1px solid var(--admin-border); border-radius:var(--admin-radius-control); background:var(--admin-surface); color:var(--admin-text); text-align:left; transition:border-color var(--admin-duration),background var(--admin-duration); }
.admin-ui .ca-content-choice:hover:not(:disabled) { border-color:var(--admin-border-hover); background:var(--admin-surface-subtle); }
.admin-ui .ca-content-choice.is-selected { border-color:var(--admin-primary-border); background:var(--admin-primary-soft); }
.admin-ui .ca-content-choice.is-selected:hover:not(:disabled) { border-color:var(--admin-primary); background:var(--admin-primary-hover-bg); }
.ca-content-choice-cover { display:grid; place-items:center; width:96px; height:60px; flex-shrink:0; overflow:hidden; border-radius:var(--admin-radius-small); background:var(--admin-surface-subtle); color:var(--admin-text-secondary); font-size:var(--admin-text-caption); }
.ca-content-choice-cover img { width:100%; height:100%; object-fit:cover; }
.ca-content-choice-copy { display:grid; flex:1; gap:5px; min-width:0; }
.ca-content-choice-copy strong { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--admin-text); font-size:var(--admin-text-body); font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.ca-content-choice-copy > span { color:var(--admin-text-secondary); font-size:var(--admin-text-caption); line-height:1.5; }
.ca-content-choice-mark { display:grid; place-items:center; width:20px; height:20px; border:1px solid var(--admin-border); border-radius:50%; color:transparent; flex-shrink:0; }
.ca-content-choice-mark svg { width:13px; height:13px; }
.is-selected > .ca-content-choice-mark { border-color:var(--admin-primary); background:var(--admin-primary); color:var(--admin-surface); }
.ca-content-picker-status { display:flex; align-items:center; justify-content:center; gap:8px; margin:0; padding:24px 12px; color:var(--admin-text-secondary); font-size:var(--admin-text-sm); }
@media(max-width:600px) { .admin-ui .ca-content-choice { gap:10px; } .ca-content-choice-cover { width:76px; height:48px; } }
.ca-cover-drop { position:relative; min-width:0; }
.ca-cover-drop.is-file-over .ca-cover { border-color:var(--admin-primary); box-shadow:var(--admin-focus-shadow); }
.ca-cover-drop.is-paste-target .ca-cover { border-color:var(--admin-primary); }
.admin-ui .image-tool.is-paste-target { outline:1px solid var(--admin-primary-border); outline-offset:2px; }
.admin-ui .gallery-tool.is-paste-target { border-color:var(--admin-primary); }
.ca-cover-drop-hint { position:absolute; inset:0; display:grid; place-items:center; padding:16px; background:var(--admin-primary-soft); color:var(--admin-primary); font-family:var(--admin-font); font-size:var(--admin-text-control); font-weight:500; pointer-events:none; }
.admin-ui .image-tool.is-file-over { position:relative; outline:2px solid var(--admin-primary); outline-offset:2px; }
.admin-ui .image-tool.is-file-over::after { content:attr(data-file-drop-hint); position:absolute; inset:0; display:grid; place-items:center; padding:16px; background:var(--admin-primary-soft); color:var(--admin-primary); font-family:var(--admin-font); font-size:var(--admin-text-control); font-weight:500; pointer-events:none; }
/* File selection and transfer status; transport and queue ownership stay with the caller. */
.ca-file-upload { min-width:0; }
.ca-file-upload.is-compact .ca-upload-dropzone { min-height:var(--admin-control-height); padding:0; border:0; background:transparent; }
.ca-file-upload.is-compact .ca-upload-dropzone > svg { display:none; }
.ca-file-upload.is-compact .ca-upload-prompt,.ca-file-upload.is-compact .ca-upload-rules { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.ca-file-upload.is-compact .ca-upload-picker { width:auto; }
.ca-file-upload.is-compact .ca-upload-dropzone.is-dragging { outline:3px solid var(--admin-primary-ring); outline-offset:4px; }
.ca-upload-dropzone { display:flex; align-items:center; gap:16px; min-width:0; padding:20px; border:1px dashed var(--admin-border); border-radius:var(--admin-radius-panel); background:var(--admin-surface); transition:border-color var(--admin-duration),background var(--admin-duration); }
.ca-upload-dropzone > .ca-control-icon { width:24px; height:24px; flex-shrink:0; color:var(--admin-text-secondary); }
.ca-upload-prompt { flex:1; min-width:0; }
.ca-upload-label { margin:0 0 4px; color:var(--admin-text); font-size:var(--admin-text-body); font-weight:500; }
.ca-upload-prompt .ca-help { margin:0; overflow-wrap:anywhere; }
.ca-upload-dropzone:not(.is-disabled):hover { border-color:var(--admin-border-hover); background:var(--admin-surface-subtle); }
.ca-upload-dropzone:focus-within:not(.is-disabled),.ca-upload-dropzone.is-dragging { border-color:var(--admin-primary); background:var(--admin-primary-soft); box-shadow:var(--admin-focus-shadow); }
.ca-upload-dropzone.is-disabled { background:var(--admin-surface-subtle); }
.ca-upload-dropzone.is-disabled .ca-upload-prompt,.ca-upload-dropzone.is-disabled > .ca-control-icon { opacity:.55; }
.ca-upload-picker { flex-shrink:0; }
.ca-upload-rules { margin:8px 0 0; line-height:1.7; overflow-wrap:anywhere; }
.ca-upload-errors { margin:12px 0 0; padding-left:18px; overflow-wrap:anywhere; line-height:1.7; }
.ca-upload-list { margin:16px 0 0; padding:0; list-style:none; }
.ca-file-upload.is-readonly .ca-upload-list { margin-top:0; }
.ca-upload-item { display:flex; align-items:flex-start; gap:12px; min-width:0; padding:16px 0; border-bottom:1px solid var(--admin-divider); }
.ca-upload-item:first-child { border-top:1px solid var(--admin-divider); }
.ca-upload-item > .ca-control-icon { width:18px; height:18px; margin-top:2px; flex-shrink:0; color:var(--admin-text-secondary); }
.ca-upload-file { flex:1; min-width:0; }
.ca-upload-name { margin:0; color:var(--admin-text); font-size:var(--admin-text-body); line-height:1.5; overflow-wrap:anywhere; }
.ca-upload-meta { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; margin-top:5px; color:var(--admin-text-secondary); font-size:var(--admin-text-caption); }
.ca-upload-status { font-size:var(--admin-text-sm); }
.ca-upload-item[data-status="success"] .ca-upload-status { color:var(--admin-success); }
.ca-upload-item[data-status="error"] .ca-upload-status { color:var(--admin-danger); }
.ca-upload-progress { height:4px; margin-top:10px; overflow:hidden; border-radius:var(--admin-radius-small); background:var(--admin-divider); }
.ca-upload-progress > span { display:block; height:100%; border-radius:inherit; background:var(--admin-primary); }
.ca-upload-progress.is-indeterminate > span { animation:ca-upload-pending 1.2s ease-in-out infinite alternate; }
.ca-upload-file-error { margin:6px 0 0; line-height:1.7; overflow-wrap:anywhere; }
.ca-upload-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
@keyframes ca-upload-pending { from { transform:translateX(0); } to { transform:translateX(210%); } }
@media (max-width:600px) {
    .ca-upload-dropzone { flex-wrap:wrap; padding:16px; gap:12px; }
    .ca-upload-prompt { flex-basis:calc(100% - 36px); }
    .ca-upload-picker { width:100%; }
    .ca-upload-item { flex-wrap:wrap; gap:8px 12px; }
    .ca-upload-file { flex-basis:calc(100% - 30px); }
    .ca-upload-actions { width:100%; justify-content:flex-end; }
    .ca-upload-actions .ca-text-button { min-height:var(--admin-control-touch); }
}
@media (prefers-reduced-motion:reduce) { .ca-upload-dropzone { transition:none; } .ca-upload-progress.is-indeterminate > span { animation:none; } }
.ca-recorded-pointer { position:absolute; z-index:20; pointer-events:none; color:var(--admin-text); }
.ca-recorded-pointer-visual { position:absolute; width:24px; height:24px; transform-origin:0 0; }
.ca-recorded-pointer-cursor { position:absolute; left:-12px; top:-12px; width:24px; height:24px; overflow:visible; }
.ca-recorded-pointer[data-shape="arrow"] .ca-recorded-pointer-cursor { left:-2px; top:-1.5px; }
.ca-recorded-pointer[data-shape="hand"] .ca-recorded-pointer-cursor { left:-9px; top:-1.5px; }
.ca-recorded-pointer-filled { fill:currentColor; stroke:var(--admin-surface); stroke-width:1.5; stroke-linejoin:round; }
.ca-recorded-pointer-outline,.ca-recorded-pointer-line { fill:none; stroke-linecap:round; stroke-linejoin:round; }
.ca-recorded-pointer-outline { stroke:var(--admin-surface); stroke-width:4; }
.ca-recorded-pointer-line { stroke:currentColor; stroke-width:1.6; }
.ca-recorded-pointer.is-pressed { color:var(--admin-primary); }
.ca-recorded-pointer-ring { position:absolute; top:0; left:0; width:28px; height:28px; border:2px solid var(--admin-primary); border-radius:50%; background:var(--admin-primary-tint); }
.ca-recorded-pointer-contact { position:absolute; width:18px; height:18px; border:2px solid var(--admin-primary); border-radius:50%; background:var(--admin-primary-tint); box-shadow:0 0 0 1px var(--admin-surface); transform:translate(-50%,-50%); }
.ca-recorded-pointer-wheel { position:absolute; top:20px; left:16px; width:16px; height:16px; color:var(--admin-primary); }
.ca-recorded-pointer-wheel.is-up { transform:rotate(180deg); }
.ca-timeline { display:flex; align-items:center; gap:12px; min-width:0; }
.ca-timeline-time { flex-shrink:0; color:var(--admin-text-secondary); font-size:var(--admin-text-sm); font-variant-numeric:tabular-nums; line-height:1.5; }
.ca-timeline-track { display:flex; align-items:center; flex:1; min-width:24px; height:var(--admin-control-height); padding:0 7px; border-radius:var(--admin-radius-control); cursor:pointer; touch-action:none; user-select:none; }
.ca-timeline-rail { position:relative; display:block; width:100%; height:4px; border-radius:var(--admin-radius-small); background:var(--admin-divider); }
.ca-timeline-fill { display:block; height:100%; border-radius:inherit; background:var(--admin-primary); }
.ca-timeline-thumb { position:absolute; top:50%; width:12px; height:12px; border:2px solid var(--admin-surface); border-radius:50%; background:var(--admin-primary); box-shadow:0 0 0 1px var(--admin-primary-border); transform:translate(-50%,-50%); }
.ca-timeline:not(.is-disabled) .ca-timeline-track:hover .ca-timeline-thumb,.ca-timeline.is-dragging:not(.is-disabled) .ca-timeline-thumb { box-shadow:0 0 0 4px var(--admin-primary-tint); }
.ca-timeline-track:focus-visible { outline:3px solid var(--admin-primary-ring); outline-offset:0; }
.ca-timeline.is-disabled .ca-timeline-track { cursor:not-allowed; opacity:.45; }
@media (max-width:600px) { .ca-timeline-track { height:var(--admin-control-touch); } }
.admin-ui { font-size:var(--admin-text-body); line-height:1.5; color:var(--admin-text); background:var(--admin-page); font-family:var(--admin-font); -webkit-font-smoothing:antialiased; }
.admin-ui [v-cloak] { display:none; }

.admin-ui *, .admin-ui *::before, .admin-ui *::after { box-sizing:border-box; }
.admin-ui button, .admin-ui input, .admin-ui select, .admin-ui textarea { font-family:var(--admin-font); font-size:var(--admin-text-control); line-height:1.5; }
.admin-ui label { font-size:var(--admin-text-sm); }
.admin-ui button { cursor:pointer; }
.admin-ui [hidden] { display:none!important; }
.admin-ui :is(button,input,textarea) { appearance:none; -webkit-appearance:none; }
.admin-ui input::-webkit-search-cancel-button { display:none; }
.admin-ui button:disabled { cursor:not-allowed; opacity:.45; }
.admin-ui :is(button,a,input,textarea,select,summary):focus-visible { outline:3px solid var(--admin-primary-ring); outline-offset:3px; }
.admin-ui input:focus, .admin-ui select:focus, .admin-ui textarea:focus { outline:none; border-color:var(--ca-blue); box-shadow:var(--admin-focus-shadow); }
.admin-ui input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
.admin-ui input[type="number"]::-webkit-inner-spin-button,.admin-ui input[type="number"]::-webkit-outer-spin-button { appearance:none; -webkit-appearance:none; margin:0; }
.ca-sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.ca-button { min-height:var(--admin-control-height); display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:8px 14px; border:1px solid var(--admin-border); border-radius:var(--admin-radius-control); background:white; color:#424245; font-size:var(--admin-text-control)!important; font-weight:500!important; line-height:1.4; white-space:nowrap; transition:background .16s,border-color .16s,transform .16s; }
.ca-button:hover:not(:disabled) { background:#f6f6f8; border-color:var(--admin-border-hover); }
.ca-button:active:not(:disabled) { transform:translateY(1px); }
.ca-button:active:not(:disabled):not(.ca-primary):not(.ca-danger-button):not(.ca-danger-outline):not(.ca-quiet) { background:var(--admin-divider); }
.ca-primary { background:var(--ca-blue); border-color:var(--ca-blue); color:white; }
.ca-primary:hover:not(:disabled) { background:var(--admin-primary-hover); border-color:var(--admin-primary-hover); }
.ca-primary:active:not(:disabled) { background:var(--admin-primary-hover); filter:brightness(.94); }
.ca-button-small { min-height:var(--admin-control-compact); padding:7px 11px; font-size:var(--admin-text-sm)!important; }
.ca-button.ca-quiet { border-color:transparent; background:transparent; color:var(--admin-text-secondary); }
.ca-button.ca-quiet:hover:not(:disabled) { border-color:transparent; background:var(--admin-surface-subtle); color:var(--admin-text); }
.ca-button.ca-quiet[aria-expanded="true"] { background:var(--admin-primary-soft); color:var(--admin-primary); }
.ca-button.ca-quiet:active:not(:disabled),.ca-button.ca-quiet[aria-pressed="true"]:not(:disabled) { background:var(--admin-primary-soft); color:var(--admin-primary); }
.ca-icon-button { width:var(--admin-control-height); height:var(--admin-control-height); flex-shrink:0; border:0; border-radius:var(--admin-radius-control); display:inline-flex; align-items:center; justify-content:center; background:transparent; color:#7b7b82; }
.ca-icon-button:hover:not(:disabled) { background:#ececf0; color:var(--admin-text); }
.ca-icon-button:active:not(:disabled):not(.ca-danger) { background:var(--admin-divider); color:var(--admin-text); }
.ca-icon-button[aria-pressed="true"]:not(:disabled):not(.ca-danger) { background:var(--admin-primary-soft); color:var(--admin-primary); }
/* A full touch target with a smaller visual background inside the password field. */
.ca-password-field { position:relative; margin-top:7px; }
.ca-password-field > .ca-input { margin:0; padding-right:44px; }
.ca-password-toggle { position:absolute; top:0; right:1px; display:flex; align-items:center; justify-content:center; width:var(--admin-control-height); height:var(--admin-control-height); padding:0; border:0; border-radius:var(--admin-radius-control); background:transparent; color:var(--admin-text-secondary); }
.ca-password-visual { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:var(--admin-radius-control); transition:background var(--admin-duration),color var(--admin-duration); }
.ca-password-toggle:hover:not(:disabled) .ca-password-visual { background:var(--admin-surface-subtle); color:var(--admin-text); }
.ca-password-toggle:active:not(:disabled) .ca-password-visual,.ca-password-toggle[aria-pressed="true"]:not(:disabled) .ca-password-visual { background:var(--admin-primary-soft); color:var(--admin-primary); }
.ca-password-toggle[aria-pressed="true"]:hover:not(:disabled) .ca-password-visual { background:var(--admin-primary-hover-bg); }
@media(max-width:600px) { .ca-password-toggle { width:var(--admin-control-touch); height:var(--admin-control-touch); } }
.ca-format-tools { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; min-width:0; flex:1; }
.ca-format-section { display:flex; align-items:center; gap:2px; }
.ca-format-section + .ca-format-section { padding-left:10px; border-left:1px solid var(--admin-divider); }
.ca-format-style { width:116px; }
.ca-format-align { width:100px; }
.admin-ui .ca-format-tools .ca-select-trigger { min-height:var(--admin-control-compact); height:var(--admin-control-compact); padding:5px 9px; font-size:var(--admin-text-sm); }
.ca-format-color { position:relative; }
.ca-format-color > span:first-child { display:flex; }
.ca-format-color-line { position:absolute; bottom:5px; left:9px; right:9px; height:2px; border-radius:2px; background:currentColor; }
.ca-format-menu { position:fixed; z-index:225; padding:6px; overflow:auto; border:1px solid var(--admin-border); border-radius:var(--admin-radius-panel); background:var(--admin-surface); box-shadow:0 8px 28px #1823391a; }
.ca-format-menu-caption { margin:3px 9px 5px; color:var(--admin-text-secondary); font-size:var(--admin-text-sm); }
.admin-ui .ca-format-menu button { display:flex; align-items:center; gap:10px; width:100%; min-height:34px; padding:6px 9px; border:0; border-radius:var(--admin-radius-control); background:transparent; color:var(--admin-text); text-align:left; font-size:var(--admin-text-control); }
.ca-format-menu button > span:last-child:not(:nth-child(2)) { margin-left:auto; }
.ca-format-menu button:hover:not(:disabled), .ca-format-menu button:focus-visible { background:var(--admin-surface-subtle); }
.ca-format-menu button[aria-checked="true"] { background:var(--admin-primary-soft); }
.ca-format-menu .editor-icon { display:flex; width:18px; height:18px; }
.ca-format-menu .editor-icon svg { width:100%; height:100%; }
.ca-format-swatch { width:24px; font-size:16px; text-align:center; font-weight:600; }
.ca-format-button { width:var(--admin-control-compact); height:var(--admin-control-compact); font-size:var(--admin-text-sm); }
.admin-ui .ca-format-button { font-size:var(--admin-text-sm); }
.ca-format-button .editor-icon { width:19px; height:19px; }
.ca-format-button[aria-pressed="true"]:not(:disabled), .ca-format-button[aria-expanded="true"]:not(:disabled) { color:var(--admin-primary); background:var(--admin-primary-soft); }
.ca-format-button[aria-pressed="true"]:hover:not(:disabled) { color:var(--admin-primary-hover); background:var(--admin-primary-soft); }
.ca-format-link { position:fixed; z-index:220; border:1px solid var(--admin-border); border-radius:var(--admin-radius-panel); background:var(--admin-surface); box-shadow:0 8px 28px #1823391a; }
.ca-format-link[hidden] { display:none; }
.admin-ui .ca-format-link .editor-link-panel { color:var(--admin-text); }
.admin-ui .ca-format-link .editor-link-panel__label { color:var(--admin-text-secondary); font-size:var(--admin-text-sm); }
.admin-ui .ca-format-link .editor-link-panel__field { border-color:var(--admin-border); border-radius:var(--admin-radius-control); }
.admin-ui .ca-format-link .editor-link-panel__field:focus-within { border-color:var(--admin-primary); box-shadow:0 0 0 2px var(--admin-primary-soft); }
.admin-ui .ca-format-link .editor-link-panel input { font-size:var(--admin-text-control); color:var(--admin-text); }
.admin-ui .ca-format-link .editor-link-panel button { border-radius:var(--admin-radius-control); font-size:var(--admin-text-sm); }
.admin-ui .ca-format-link .editor-link-panel__apply { background:var(--admin-primary); }
.admin-ui .ca-format-link .editor-link-panel__apply:hover:not(:disabled) { background:var(--admin-primary-hover); }
.admin-ui .ca-format-link .editor-link-panel__remove:hover:not(:disabled) { color:var(--admin-danger-hover); background:var(--admin-danger-hover-bg); }
.admin-ui .ca-format-link .editor-link-panel__error { font-size:var(--admin-text-sm); color:var(--admin-danger); }
@media (max-width:600px) { .ca-format-button { width:var(--admin-control-touch); height:var(--admin-control-touch); } .admin-ui .ca-format-link .editor-link-panel button { min-height:var(--admin-control-touch); } }
@media (max-width:600px) {
    .ca-format-tools { gap:4px 8px; }
    .ca-format-section + .ca-format-section { padding-left:0; border-left:0; }
    .admin-ui .ca-format-tools .ca-select-trigger { min-height:var(--admin-control-touch); height:var(--admin-control-touch); }
    .admin-ui .ca-format-menu button { min-height:var(--admin-control-touch); }
    .ca-format-color-line { bottom:10px; left:14px; right:14px; }
}
.ca-text-button { padding:5px 0; border:0; background:transparent; color:var(--admin-text-secondary); font-size:var(--admin-text-sm)!important; }
.ca-link { color:var(--ca-blue); }
.ca-text-button { transition:color var(--admin-duration); text-underline-offset:3px; }
.ca-text-button:hover:not(:disabled):not(.ca-danger) { color:var(--admin-text); text-decoration:underline; }
.ca-text-button.ca-link:hover:not(:disabled):not(.ca-danger) { color:var(--admin-primary-hover); }
.ca-text-button:active:not(:disabled):not(.ca-danger) { color:var(--admin-primary); }
.ca-disclosure-trigger:hover:not(:disabled) { color:var(--admin-primary); }
.ca-disclosure-trigger:active:not(:disabled) { color:var(--admin-primary-hover); }
.ca-checkbox { display:inline-flex; align-items:center; gap:6px; padding:3px 0; border:0; background:transparent; color:inherit; font-size:inherit; line-height:1.5; text-align:left; }
.ca-checkbox-box { display:grid; place-items:center; flex-shrink:0; width:16px; height:16px; border:1px solid #c5c9d2; border-radius:4px; background:#fff; color:#fff; transition:background .14s,border-color .14s; }
.ca-checkbox-box svg { width:14px; height:14px; visibility:hidden; }
.ca-checkbox[aria-checked="true"] .ca-checkbox-box { background:var(--ca-blue); border-color:var(--ca-blue); }
.ca-checkbox[aria-checked="true"] .ca-checkbox-box svg { visibility:visible; }
.ca-checkbox:hover:not(:disabled) .ca-checkbox-box { border-color:var(--ca-blue); }
.ca-disclosure-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:0; border:0; background:transparent; color:inherit; text-align:left; font-size:inherit; }
.ca-disclosure-label { display:flex; align-items:center; gap:8px; min-width:0; }
.ca-disclosure-label > span { font-size:inherit; }
.ca-disclosure-chevron { width:14px; height:14px; flex-shrink:0; color:#9aa4b0; transition:transform .16s; }
.ca-disclosure-control[data-expanded="true"] > .ca-disclosure-trigger .ca-disclosure-chevron { transform:rotate(180deg); }
.ca-disclosure-content { min-width:0; }
.ca-number-control { display:flex; align-items:stretch; margin-left:auto; border:1px solid #dfe4eb; border-radius:var(--admin-radius-small); overflow:hidden; background:white; }
.ca-number-control:focus-within { border-color:var(--ca-blue); box-shadow:0 0 0 2px var(--admin-primary-tint); }
.ca-number-steps { display:flex; flex-direction:column; border-left:1px solid #e8e8ed; }
.ca-number-steps button { width:24px; flex:1; padding:0; border:0; background:#f7f8fa; color:#667080; font-size:var(--admin-text-sm); line-height:14px; }
.ca-number-steps button + button { border-top:1px solid #e8e8ed; }
.ca-number-steps button:hover { background:var(--admin-primary-soft); color:var(--ca-blue); }
.ca-control-tooltip { position:fixed; z-index:10000; max-width:min(280px,calc(100vw - 24px)); padding:7px 10px; border-radius:7px; background:#25282f; color:white; box-shadow:0 4px 16px #0002; pointer-events:none; font:12px/1.5 var(--admin-font); overflow-wrap:anywhere; }
.admin-ui .ca-label-help { display:flex; align-items:center; gap:5px; }
.ca-label-help > label { display:block; margin:0; line-height:var(--admin-line-height); align-self:center; }
.ca-label-help > .ca-info-button { align-self:center; margin:0; line-height:1; vertical-align:middle; }
.admin-ui .ca-info-button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:24px; height:24px; padding:4px; border:0; border-radius:var(--admin-radius-control); background:transparent; color:var(--admin-text-secondary); font-size:var(--admin-text-sm); cursor:help; }
.ca-info-button .ca-control-icon { display:block; flex-shrink:0; width:15px; height:15px; }
.ca-info-button:hover:not(:disabled),.ca-info-button:focus-visible { color:var(--admin-primary); background:var(--admin-primary-soft); }
.ca-info-button:disabled { color:var(--admin-text-disabled); cursor:default; }
@media (max-width:600px) { .admin-ui .ca-info-button { width:var(--admin-control-touch); height:var(--admin-control-touch); } }
.admin-ui * { scrollbar-width:thin; scrollbar-color:#c6cbd4 transparent; }
.admin-ui ::-webkit-scrollbar { width:7px; height:7px; }
.admin-ui ::-webkit-scrollbar-thumb { background:#c6cbd4; border:2px solid transparent; background-clip:padding-box; border-radius:8px; }
.ca-media-player { position:relative; width:100%; background:#16181c; border-radius:8px; overflow:hidden; }
.ca-media-player video { display:block; width:100%; max-height:65vh; object-fit:contain; }
.ca-media-controls { display:flex; align-items:center; gap:8px; padding:9px 10px; background:#23262d; color:#f3f4f6; font:11px/1.4 var(--admin-font); }
.ca-media-button { flex-shrink:0; min-height:28px; padding:4px 6px; border:0; border-radius:4px; background:transparent; color:inherit; font-family:inherit; font-size:var(--admin-text-caption); }
.ca-media-button:hover { background:#ffffff20; }
.ca-media-time { flex-shrink:0; font-variant-numeric:tabular-nums; }
.ca-media-slider { position:relative; min-width:45px; height:24px; flex:1; cursor:pointer; touch-action:none; }
.ca-media-slider::before,.ca-media-slider > span { position:absolute; left:0; right:0; top:10px; height:4px; border-radius:4px; background:#ffffff35; }
.ca-media-slider::before { content:""; }
.ca-media-slider > span { right:auto; background:var(--admin-primary-on-dark); pointer-events:none; }
.ca-media-slider > span::after { content:""; position:absolute; right:-4px; top:-2px; width:8px; height:8px; border-radius:50%; background:#fff; }
.ca-media-volume { flex:0 1 64px; }
.ca-media-player:fullscreen { display:flex; flex-direction:column; border-radius:0; }
.ca-media-player:fullscreen video { flex:1; min-height:0; max-height:none; }
.ca-media-player :focus-visible { outline:2px solid var(--admin-primary-on-dark); outline-offset:2px; }
@media (max-width:480px) { .ca-media-controls { flex-wrap:wrap; gap:4px; } .ca-media-slider:not(.ca-media-volume) { flex-basis:100%; order:2; } .ca-media-time { margin-right:auto; } }
.ca-danger { color:var(--admin-danger); }
.ca-input { display:block; width:100%; min-width:0; min-height:var(--admin-control-height); margin-top:7px; padding:9px 11px; background:white; color:var(--ca-text); border:1px solid var(--admin-border); border-radius:var(--admin-radius-control); font-size:var(--admin-text-control)!important; transition:border-color .16s,box-shadow .16s; }
.ca-input::placeholder { color:var(--admin-text-placeholder); }
.ca-select { position:relative; min-width:0; }
.ca-select-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; text-align:left; cursor:pointer; }
.ca-select-trigger > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ca-select-trigger .is-placeholder { color:var(--admin-text-placeholder); }
.ca-select-trigger > i { font-size:9px; color:#a2a4ae; transition:transform .18s; }
.ca-select-trigger > i.is-open { transform:rotate(180deg); }
.ca-select-panel { z-index:200; padding:6px; overflow:auto; overscroll-behavior:contain; border:1px solid #e5e6ec; border-radius:var(--admin-radius-panel); background:white; box-shadow:0 12px 35px #0000001a; color:#52525b; font-family:var(--admin-font); }
.ca-select-panel > button { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:10px 11px; min-height:var(--admin-control-height); border:0; border-radius:7px; background:none; text-align:left; font-size:var(--admin-text-control); color:var(--admin-text-secondary); }
.ca-select-panel > button.is-active { background:var(--admin-primary-soft); }
.ca-select-panel > button.is-selected { color:var(--admin-primary); font-weight:500; }
.ca-select-panel > button > i { font-size:10px; }
.ca-field .ca-select { margin-top:7px; }
.ca-date { margin-top:7px; }
.ca-date-input { position:relative; }
.ca-date-input > .ca-input { margin:0; padding-right:42px; }
.ca-date-input > .ca-icon-button { position:absolute; top:1px; right:1px; }
.ca-calendar { z-index:200; padding:12px; border:1px solid #e5e6ec; border-radius:var(--admin-radius-panel); background:white; box-shadow:0 12px 35px #0000001a; color:#62626c; font-family:var(--admin-font); overflow:auto; }
.ca-calendar > header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.ca-calendar > header strong { font-size:var(--admin-text-sm); font-weight:500; }
.ca-calendar .ca-icon-button { width:30px; height:30px; font-size:10px; }
.ca-calendar-week,.ca-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; }
.ca-calendar-week { margin-bottom:6px; color:#a7a7b0; font-size:10px; }
.ca-calendar-days { gap:3px; }
.ca-calendar-days button { width:100%; aspect-ratio:1; padding:0; border:0; border-radius:7px; background:none; font-size:var(--admin-text-caption); color:#62626c; }
.ca-calendar-days button:hover { background:var(--admin-primary-soft); }
.ca-calendar-days button.is-outside { color:#c4c4cc; }
.ca-calendar-days button.is-today { box-shadow:inset 0 0 0 1px var(--admin-primary-border); }
.ca-calendar-days button.is-selected { background:var(--admin-primary); color:white; }
.ca-calendar > footer { display:flex; align-items:center; justify-content:space-between; padding:9px 3px 0; margin-top:8px; border-top:1px solid #eeeef2; }

.ca-segment { display:inline-flex; padding:4px; gap:3px; border-radius:var(--admin-radius-panel); background:#eaeaef; }
.ca-segment button { min-height:var(--admin-control-compact); padding:7px 18px; background:transparent; border:0; border-radius:8px; font-size:var(--admin-text-control); color:#73737a; white-space:nowrap; transition:background .16s,color .16s,box-shadow .16s; }
.ca-badge { display:inline-flex; align-items:center; padding:3px 7px; border-radius:5px; background:#f0f0f3; color:#7b7b83; font-size:var(--admin-text-caption); line-height:1.3; white-space:nowrap; }
.ca-language-badge { white-space:nowrap; }
.ca-content-badges { display:flex; align-items:center; flex-wrap:wrap; gap:6px; min-width:0; }
.ca-badge.is-published { background:var(--admin-success-bg); color:var(--admin-success); }
.ca-field { display:block; margin-top:17px; color:#52525b; font-size:var(--admin-text-sm); font-weight:500; }
.ca-help { margin:8px 0 0; font-size:var(--admin-text-sm); line-height:1.7; font-weight:400; color:#95959e; }
.ca-error { color:var(--admin-danger); font-size:var(--admin-text-sm); line-height:1.6; }
.ca-switch { flex-shrink:0; width:34px; height:20px; padding:2px; border:0; background:#d9dce3; border-radius:20px; transition:background .18s; }
.ca-switch span { display:block; width:16px; height:16px; background:white; border-radius:50%; box-shadow:0 1px 3px #00000015; transition:transform .18s; }
.ca-switch.is-on { background:var(--ca-blue); }
.ca-switch.is-on span { transform:translateX(14px); }
.ca-dialog-overlay { position:fixed; inset:0; z-index:120; background:#00000030; backdrop-filter:blur(5px); display:flex; align-items:center; justify-content:center; padding:20px; }
.ca-dialog { width:100%; max-width:390px; padding:26px; border-radius:var(--admin-radius-dialog); background:white; box-shadow:0 20px 70px #00000020; }
.ca-dialog h2 { margin:0 0 12px; font-size:var(--admin-text-section); font-weight:600; }
.ca-dialog p { color:#7a7a83; font-size:var(--admin-text-control); line-height:1.9; white-space:pre-line; }
.ca-dialog-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:24px; }
.ca-danger-outline { border-color:var(--admin-danger); color:var(--admin-danger); }
.ca-danger-outline:hover:not(:disabled) { background:var(--admin-danger-hover-bg); border-color:var(--admin-danger-hover); color:var(--admin-danger-hover); }
.ca-danger-button { background:var(--admin-danger); border-color:var(--admin-danger); color:white; }
.ca-danger-button:hover:not(:disabled) { background:var(--admin-danger-hover); border-color:var(--admin-danger-hover); color:var(--admin-surface); }
.ca-icon-button.ca-danger:hover:not(:disabled) { background:var(--admin-danger-hover-bg); color:var(--admin-danger-hover); }
.ca-text-button.ca-danger:hover:not(:disabled) { color:var(--admin-danger-hover); text-decoration:underline; }
.ca-input-compact { min-height:var(--admin-control-compact); height:var(--admin-control-compact); padding:6px 11px; font-size:var(--admin-text-sm)!important; }
.ca-input:disabled { opacity:.55; background:var(--admin-surface-subtle); cursor:not-allowed; }
.ca-input[aria-invalid="true"] { border-color:var(--admin-danger); }
.ca-button:disabled { opacity:.45; cursor:not-allowed; }
.ca-number-field { min-width:0; }
.ca-number-field .ca-number-control { margin:0; min-height:var(--admin-control-height); }
.ca-number-field input { width:100%; min-width:0; padding:8px 11px; border:0; outline:0; background:transparent; font-size:var(--admin-text-control); }
.ca-number-field input:focus { box-shadow:none; }
.ca-color { position:relative; min-width:0; }
.ca-color-input { display:flex; align-items:center; gap:8px; }
.ca-color-input .ca-input { margin:0; font-family:ui-monospace,monospace; }
.ca-color-swatch { width:var(--admin-control-height); height:var(--admin-control-height); flex-shrink:0; padding:0; border:1px solid var(--admin-border); border-radius:var(--admin-radius-control); box-shadow:inset 0 0 0 4px var(--admin-surface); }
.ca-color-presets { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; padding:12px; border:1px solid var(--admin-border); border-radius:var(--admin-radius-control); background:var(--admin-surface); }
.ca-color-presets button { width:26px; height:26px; padding:0; border:1px solid var(--admin-border); border-radius:var(--admin-radius-small); }
.ca-color-presets button[aria-pressed="true"] { outline:2px solid var(--admin-primary); outline-offset:2px; }
.ca-alert { display:block; overflow-wrap:anywhere; padding:12px 14px; border:1px solid var(--admin-divider); border-radius:var(--admin-radius-control); font-size:var(--admin-text-control); line-height:1.6; background:var(--admin-primary-soft); color:var(--admin-primary); }
.ca-alert.is-error { background:var(--admin-danger-bg); color:var(--admin-danger); }
.ca-alert.is-success { background:var(--admin-success-bg); color:var(--admin-success); }
.ca-alert.is-warning { background:var(--admin-warning-bg); color:var(--admin-warning); }
.admin-ui .apple-input { min-height:var(--admin-control-height); border-color:var(--admin-border); border-radius:var(--admin-radius-control); font-family:var(--admin-font); font-size:var(--admin-text-control); }
.admin-ui .apple-input:focus { outline:none; border-color:var(--admin-primary); box-shadow:var(--admin-focus-shadow); }
.ca-switch-field { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; width:100%; padding:12px 14px; border:1px solid var(--admin-border); border-radius:var(--admin-radius-control); background:var(--admin-surface); color:var(--admin-text); text-align:left; }
.ca-switch-field .ca-switch { margin-top:2px; }
.ca-spinner { display:inline-block; flex-shrink:0; box-sizing:border-box; width:16px; height:16px; border:2px solid var(--admin-border); border-top-color:currentColor; border-radius:50%; color:var(--admin-text); animation:admin-control-spin 1s linear infinite; }
.ca-spinner-medium { width:24px; height:24px; border-width:2.5px; }
.ca-spinner-large { width:32px; height:32px; border-width:3px; }
.ca-button .ca-spinner { color:inherit; border-color:color-mix(in srgb,currentColor 22%,transparent); border-top-color:currentColor; }
@keyframes admin-control-spin { to { transform:rotate(360deg); } }
@media (max-width:600px) { .ca-select-trigger,.ca-button,.ca-icon-button { min-height:var(--admin-control-touch); } .ca-input-compact { height:var(--admin-control-touch); } .ca-find-count { height:var(--admin-control-touch); } }
@media (prefers-reduced-motion:reduce) { .admin-ui *, .admin-ui *::before, .admin-ui *::after { transition:none!important; scroll-behavior:auto!important; } }

.ca-segment button.is-active { color:var(--admin-text); background:white; box-shadow:0 1px 4px #0000000e; font-weight:600; }
.ca-tabs { display:flex; align-self:stretch; gap:26px; }
.ca-tab-label-short { display:none; }
@media (max-width:760px) { .ca-tab-label-full { display:none; } .ca-tab-label-short { display:inline; } }
.ca-tabs button { position:relative; min-width:28px; min-height:var(--admin-control-height); padding:0 0 1px; border:0; border-radius:0; background:transparent; color:var(--admin-text-secondary); font-size:var(--admin-text-control); font-weight:500; transition:color var(--admin-duration); white-space:nowrap; }
.ca-tabs button:hover:not(:disabled) { color:var(--admin-primary-hover); }
.ca-tabs button::after { content:""; position:absolute; right:0; bottom:0; left:0; height:2px; background:transparent; transition:background var(--admin-duration); }
.ca-tabs button:hover:not(:disabled)::after { background:var(--admin-primary-border); }
.ca-tabs button[aria-selected="true"] { color:var(--admin-primary); }
.ca-tabs button[aria-selected="true"]::after { background:var(--admin-primary); }
.ca-tabs button[aria-selected="true"]:hover:not(:disabled)::after { background:var(--admin-primary-hover); }
@media (max-width:600px) { .ca-tabs button { min-height:var(--admin-control-touch); } }
/* Shared find/replace sub-toolbar, also used by the reference page. */
.ca-find-bar { flex-shrink:0; padding:0 24px 12px; border-bottom:1px solid var(--ca-line); background:white; }
.ca-find-header { display:flex; align-items:center; justify-content:space-between; height:44px; border-bottom:1px solid #e7e9ee; }
.ca-find-close { width:28px; height:28px; border-radius:5px; color:#7b818c; }
.ca-find-close .editor-icon,.ca-find-close svg { display:block; width:18px; height:18px; }
.ca-find-controls { display:grid; grid-template-columns:minmax(220px,460px) auto; align-items:end; justify-content:start; gap:20px; padding-top:14px; }
.ca-find-controls.is-replace { grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto; }
.ca-find-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.ca-find-label { color:#414650; font-size:var(--admin-text-sm); font-weight:400; line-height:18px; }
.ca-find-controls:not(.is-replace) .ca-find-label { display:none; }
.ca-find-field .ca-input { margin:0; }
.ca-find-input-wrap { position:relative; display:block; min-width:0; }
.ca-find-input-wrap .ca-input { padding-right:76px; }
.ca-find-count { position:absolute; top:0; right:12px; height:var(--admin-control-compact); display:flex; align-items:center; justify-content:flex-end; min-width:44px; color:#7c828e; font-size:var(--admin-text-sm); font-variant-numeric:tabular-nums; pointer-events:none; }
.ca-find-actions { display:flex; align-items:center; gap:8px; }
.ca-find-actions .ca-button { white-space:nowrap; }
.ca-find-action-divider { width:1px; height:18px; margin:0 2px; background:#e5e7eb; }
.ca-find-footer { display:flex; align-items:center; gap:12px; min-height:30px; padding-top:8px; color:#959ba6; font-size:var(--admin-text-caption); line-height:18px; }
.ca-find-options-toggle { padding:0; border:0; background:none; color:#747c89; font-size:var(--admin-text-sm); white-space:nowrap; }
.ca-find-options-toggle:hover,.ca-find-options-toggle[aria-expanded="true"] { color:var(--admin-primary); }
.ca-find-scope-summary { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ca-find-location,.ca-find-feedback { margin-left:auto; color:#9298a3; white-space:nowrap; }
.ca-find-options { display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; margin-top:10px; padding:12px 0 0; border-top:1px solid #eef0f3; color:#727986; font-size:var(--admin-text-sm); }
.ca-find-option-group { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.ca-find-option-group > span { color:#9a9faa; margin-right:2px; }
.ca-find-bar .ca-checkbox { padding:0; font-size:var(--admin-text-sm); }
.ca-find-bar .ca-error { margin:8px 0 0; font-size:var(--admin-text-sm); }
@media (max-width:1100px) {
    .ca-find-controls.is-replace { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px 18px; }
    .ca-find-controls.is-replace .ca-find-actions { grid-column:1 / -1; justify-content:flex-end; }
}
@media (max-width:600px) {
    .ca-find-bar { padding:0 16px 10px; }
    .ca-find-header { height:42px; }
    .ca-find-controls,.ca-find-controls.is-replace { grid-template-columns:minmax(0,1fr); gap:12px; }
    .ca-find-controls .ca-find-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-column:1; gap:8px; }
    .ca-find-actions .ca-button { width:100%; padding:7px 8px; }
    .ca-find-action-divider { display:none; }
    .ca-find-footer { gap:10px; flex-wrap:wrap; padding-top:10px; }
    .ca-find-scope-summary { max-width:calc(100% - 80px); }
    .ca-find-location,.ca-find-feedback { flex-basis:100%; margin:0; }
    .ca-find-options { gap:12px; }
    .ca-find-option-group { gap:12px; }
}

/* Semantic typography: shared by all admin pages, including legacy adapters. */
.ca-label,.ca-help,.ca-error { font-size:var(--admin-text-sm); }
.ca-body { font-size:var(--admin-text-body); line-height:var(--admin-line-height); }
.ca-caption { font-size:var(--admin-text-caption); }
.admin-ui .ca-section-title { font-size:var(--admin-text-section); font-weight:600; }
.admin-ui .ca-page-title { font-size:var(--admin-text-title); font-weight:600; }
.admin-ui .ca-select-panel > button { font-size:var(--admin-text-control); }

.admin-ui .ca-input:not(textarea):not(.ca-input-compact) { height:var(--admin-control-height); }
@media (max-width:600px) { .admin-ui .ca-input:not(textarea):not(.ca-input-compact) { height:var(--admin-control-touch); } }

.admin-ui input.apple-input { height:var(--admin-control-height); padding-top:8px; padding-bottom:8px; }
.admin-ui .ca-select-panel > button[aria-selected="true"] { color:var(--admin-primary); font-weight:500; }
.admin-ui .ca-select-panel > button:is(.is-active,[data-active="true"]) { background:var(--admin-primary-soft); }
.ca-control-icon { width:16px; height:16px; flex-shrink:0; }
.ca-select-chevron { width:12px; height:12px; color:var(--admin-text-secondary); transition:transform var(--admin-duration); }
.ca-select-chevron.is-open { transform:rotate(180deg); }
@media (max-width:600px) { .admin-ui input.apple-input { height:var(--admin-control-touch); } }

.admin-ui .ca-input,.admin-ui .ca-button { border-radius:var(--admin-radius-control); }
.ca-calendar-days button { font-size:var(--admin-text-sm); }

/* Narrow screens retain the same type scale; reflow layout instead of enlarging text. */
.admin-ui { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.admin-ui fieldset { min-inline-size:0; }
.ca-dialog { max-height:calc(100dvh - 32px); overflow:auto; }
.ca-dialog-actions { flex-wrap:wrap; }
.ca-select-panel > button > span { min-width:0; white-space:normal; overflow-wrap:anywhere; }
@media (max-width:600px) {
    .ca-find-controls,.ca-find-controls.is-replace { gap:8px; padding-top:10px; }
    .ca-find-label { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); }
    .ca-find-footer { align-items:flex-start; }
    .ca-find-scope-summary { flex:1; min-width:0; max-width:none; white-space:normal; overflow-wrap:anywhere; }
    .ca-find-location,.ca-find-feedback { flex-basis:auto; margin:0; white-space:normal; overflow-wrap:anywhere; }
    .ca-switch-field { gap:12px; }
    .ca-switch-field > span:first-child { min-width:0; overflow-wrap:anywhere; }
    .ca-dialog { padding:20px; }
}

@media (max-width:600px) { .admin-ui .ca-page-title { font-size:var(--admin-text-section); } .ca-number-field .ca-number-control { min-height:var(--admin-control-touch); } .ca-color-swatch { width:var(--admin-control-touch); height:var(--admin-control-touch); } }
