/* Public presentation and studio use the existing charcoal/gold tokens. */
.studio-quick-slot{position:relative;min-width:0;display:flex}
.studio-quick-slot>.studio-quick-piece{width:100%;height:100%;padding-top:14px;border-radius:7px}
.studio-quick-slot .studio-slot-clear{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:6px;background:var(--bg-panel);color:var(--text-soft);box-shadow:none}
.studio-slot-clear svg{width:18px;height:18px;pointer-events:none}
.studio-quick-slot .studio-slot-clear:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--bg-panel))}
.studio-quick-slot .studio-slot-clear:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.studio-npc-picker .studio-actor-result{display:flex;align-items:center;gap:14px;padding:10px 12px;min-height:80px;border-radius:6px}
.studio-actor-result .studio-actor-portrait{flex:0 0 54px;width:54px;height:62px;object-fit:contain;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px}
.studio-actor-result>span{min-width:0;display:grid;gap:4px}.studio-actor-result small{overflow-wrap:anywhere}
.studio-actor-result[aria-pressed=true]{border-color:var(--brand-muted);background:var(--brand-tint)}
.studio-actor-missing{display:grid!important;place-items:center;color:var(--text-muted);font-size:11px}
.studio-model-dialog-body{overflow:hidden;min-height:0}
.studio-model-dialog-body>.studio-model-editor{height:100%;min-height:0;grid-template-columns:minmax(0,1fr) minmax(310px,.72fr);grid-template-rows:minmax(0,1fr);gap:20px}
.studio-model-dialog-body .studio-model-settings{grid-column:1;grid-row:1;display:grid;align-content:start;gap:14px;min-width:0;min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--brand-muted) var(--bg-panel);padding:2px 14px 16px 2px;scroll-padding-block:12px}
.studio-model-dialog-body .studio-model-settings>h4:last-of-type{display:none}
.studio-model-dialog-body .studio-model-live{grid-column:2;grid-row:1;position:relative;inset:auto;align-self:stretch;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;margin:0;border-radius:8px;background:var(--bg-panel)}
@media(max-width:700px){
 .studio-model-dialog-body>.studio-model-editor{grid-template-columns:minmax(0,1fr);grid-template-rows:clamp(140px,28dvh,240px) minmax(0,1fr);gap:12px}
 .studio-model-dialog-body .studio-model-live{grid-column:1;grid-row:1}
 .studio-model-dialog-body .studio-model-settings{grid-column:1;grid-row:2;padding-right:8px}
 .studio-model-dialog-head{padding:12px 14px}.studio-model-dialog-head h3{font-size:18px}
 .studio-model-dialog-foot{padding:10px 12px;gap:8px}.studio-model-dialog-foot .btn{min-height:40px;padding:8px 12px;font-size:12px}
}
[data-content-studio]{--studio-surface:color-mix(in srgb,var(--bg-panel) 85%,var(--bg-sunken));--studio-header:color-mix(in srgb,var(--bg-panel) 98%,var(--brand));--studio-field:color-mix(in srgb,var(--bg-panel) 68%,var(--bg-sunken));--studio-border:color-mix(in srgb,var(--line) 80%,var(--text-muted));--bg-input:var(--studio-field)}
[data-content-studio] .studio-builder{background:var(--bg-panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
[data-content-studio] .studio-builder-head{background:var(--studio-surface);border-color:var(--line);padding:24px}
[data-content-studio] .studio-block,[data-content-studio] .studio-live-preview{background:var(--studio-surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
[data-content-studio] .studio-block{margin-bottom:16px;box-shadow:0 2px 6px color-mix(in srgb,var(--bg-sunken) 18%,transparent);transition:border-color var(--motion-color),box-shadow var(--motion-color)}
[data-content-studio] .studio-block:focus-within{border-color:var(--brand-muted);box-shadow:0 0 0 1px color-mix(in srgb,var(--brand-muted) 20%,transparent)}
[data-content-studio] .studio-block-toolbar,[data-content-studio] .studio-preview-head{background:var(--studio-header);border-color:var(--line);padding:12px 18px;min-height:64px}
[data-content-studio] .studio-block-identity{gap:12px}[data-content-studio] .studio-block-identity i{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:6px;color:var(--brand-muted);font-size:11px;background:var(--studio-surface)}
[data-content-studio] .studio-block-identity strong{font-family:var(--body);font-size:13px;letter-spacing:.035em}
[data-content-studio] .studio-block-fields,[data-content-studio] .studio-pv-block{background:var(--studio-surface)}
[data-content-studio] .studio-block-fields{padding:22px;gap:20px}
[data-content-studio] .studio-field{gap:9px}[data-content-studio] .studio-field>span{color:var(--text-soft);font-size:13px;font-weight:500}
[data-content-studio] .studio-block-fields input,[data-content-studio] .studio-block-fields textarea,[data-content-studio] .studio-block-fields select{background:var(--studio-field);border-color:var(--studio-border);border-radius:7px;color:var(--text);font-size:14px;line-height:1.65;scrollbar-color:var(--brand-muted) var(--studio-field);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--bg-sunken) 16%,transparent)}
[data-content-studio] .studio-block-fields input{min-height:46px}[data-content-studio] .studio-block-fields textarea{min-height:126px}
[data-content-studio] .studio-block-fields input:focus,[data-content-studio] .studio-block-fields textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
[data-content-studio] .studio-block-tools button{min-width:40px;min-height:40px;border-radius:7px;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--text-soft);border:1px solid transparent;transition:background-color var(--motion-color),border-color var(--motion-color),color var(--motion-color)}
[data-content-studio] .studio-block-tools .studio-model-link{padding:0 12px;margin-right:8px;background:var(--studio-surface);border-color:var(--line);font:500 12px var(--body);letter-spacing:0;gap:6px}
[data-content-studio] .studio-block-tools button:last-child:hover:not(:disabled){color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--studio-surface));border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}
[data-content-studio] .studio-block-tools button:hover:not(:disabled){background:var(--bg-hover);color:var(--brand)}
[data-content-studio] .studio-block-tools svg{width:18px;height:18px}
[data-content-studio] .studio-block-tools{flex-wrap:wrap;gap:6px;min-width:0}
[data-content-studio] .studio-live-preview{align-self:start;position:sticky;top:76px}[data-content-studio] .studio-preview-head{min-height:52px;color:var(--text-soft)}
[data-content-studio] [data-block-preview]{padding:16px;display:grid;gap:12px}[data-content-studio] .studio-pv-block{margin:0;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--studio-field)}
.visual-manager{margin-top:28px;border:1px solid var(--line);background:var(--bg-panel);padding:24px;border-radius:8px}
.visual-manager .studio-builder-head{padding:0 0 20px;background:none}
.visual-manager .studio-builder-head{flex-wrap:wrap;gap:12px}.visual-manager .studio-builder-head>div{min-width:0}
.visual-image-list{display:grid;gap:12px;margin-bottom:20px;max-height:clamp(320px,60vh,640px);overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--brand-muted) var(--bg-panel);padding-right:4px}
.visual-image-row{display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:20px;padding:14px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:8px}
.visual-image-row figure{margin:0;background:var(--bg-panel);border-radius:6px;overflow:hidden;height:88px}
.visual-image-row img{width:100%;height:100%;object-fit:contain}
.visual-image-number{display:block;color:var(--brand-muted);font:600 11px var(--mono);letter-spacing:.08em;margin-bottom:8px}
.visual-image-copy label{display:grid;gap:6px;font-size:12px;color:var(--text-muted)}
.visual-image-copy{min-width:0}
.visual-image-copy input{width:100%;background:var(--bg-panel);font-size:14px}
.visual-image-actions{display:flex;gap:6px}.visual-image-actions .imp-btn{width:40px;height:40px;min-height:40px;color:var(--text-soft)}
.visual-image-actions svg,.visual-empty svg{width:20px;height:20px}
.visual-empty{display:grid;justify-items:center;gap:10px;text-align:center;padding:28px;background:var(--bg-elevated);border:1px dashed var(--line-strong);border-radius:8px;color:var(--text-muted)}
.visual-empty svg{width:28px;height:28px;color:var(--brand-muted)}.visual-empty p{margin:0;font-size:14px}
.visual-add-tabs{background:var(--bg-elevated);padding:6px}.visual-add-tabs .imp-tab{font-size:14px;min-height:44px}
.visual-add-panel{padding:16px 10px 10px}.visual-add-panel label{display:block;margin-bottom:8px;color:var(--text-soft);font-size:14px}
.visual-add-panel .imp-textarea,.visual-add-panel .imp-file-input{width:100%;background:var(--bg-panel);border:1px solid var(--line-input);color:var(--text-soft)}
.visual-feedback{padding:12px 16px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--text-soft);font-size:14px;line-height:1.6;border-radius:6px}
.visual-feedback[data-kind=error]{border-color:var(--danger);color:var(--text)}.visual-feedback[data-kind=warning]{border-color:var(--brand-muted)}.visual-feedback[data-kind=success]{border-color:var(--ok)}
.visual-manager footer{display:flex;align-items:center;gap:16px;margin-top:16px}.visual-manager footer p{margin:0;color:var(--text-muted);font-size:12px;max-width:65ch}
.presentation-tabs{padding:6px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:8px;gap:4px}
.presentation-tabs>.imp-tab{height:46px;font-size:15px;font-weight:600;color:var(--text-soft);border-radius:6px}
.presentation-tabs>.imp-tab:checked{background:var(--brand-tint);color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand-muted)}
.presentation-panel{width:100%;min-width:0;padding:12px 14px;background:var(--bg-panel);border-radius:6px}
.visual-story{max-width:1000px;margin:0 auto}.visual-story header{padding:8px 0 18px;color:var(--text-muted)}.visual-story header span{color:var(--brand-muted);font:600 12px var(--mono);letter-spacing:.1em}.visual-story header p{margin:8px 0 0;font-size:14px}
/* Posters and small social ribbons may shrink to fit, but never upscale. The
   stored intrinsic width/height also reserve their original aspect ratio. */
.visual-story figure{margin:0 auto 16px;width:fit-content;max-width:min(100%,750px)}.visual-story img{display:block;width:auto;max-width:100%;height:auto;margin-inline:auto;object-fit:contain;border-radius:4px}.visual-story figcaption{padding:10px 0;color:var(--text-soft);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
/* Apply the same natural-size rule to image blocks and editor previews. Cover
   is an explicit owner choice and keeps its existing cropped layout. */
.listing-widget--image:not(.is-cover) img,.studio-pv-image img,.studio-live-preview>[data-block-preview].is-image-strip .studio-pv-image img,.listing-content:has(>.listing-widget--image:nth-child(2)):not(:has(>:not(.listing-widget--image))) .listing-widget--image:not(.is-cover) img{width:auto;max-width:100%;height:auto;max-height:none;margin-inline:auto;object-fit:contain}
.sro-chapter-index summary span{width:32px;height:32px;background:var(--bg-hover);border-radius:6px;border-color:var(--line-strong)}
.sro-chapter-index summary svg{display:block}
@media(max-width:700px){.visual-manager{padding:16px}.visual-image-row{grid-template-columns:72px minmax(0,1fr);gap:12px}.visual-image-actions{grid-column:2;justify-content:flex-end}.visual-image-actions .imp-btn{width:44px;height:44px}.visual-manager footer{align-items:flex-start;flex-direction:column}.presentation-panel{padding:8px}.presentation-tabs>.imp-tab{font-size:14px;padding-inline:12px}[data-content-studio] .studio-block-toolbar{padding:12px;flex-wrap:wrap;gap:10px}}
@media(max-width:700px){[data-content-studio] .studio-block-fields{padding:16px;gap:16px}[data-content-studio] .studio-block-tools button{min-width:44px;min-height:44px}[data-content-studio] .studio-live-preview{position:static}[data-content-studio] .studio-builder-head{padding:18px}}
/* Card identity and actions have independent rows: text buttons never inherit icon widths. */
[data-content-studio] .studio-block-toolbar{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:14px}
[data-content-studio] .studio-block-identity{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center;width:100%;min-width:0}
[data-content-studio] .studio-editorial-card-title{max-width:none;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.5}
[data-content-studio] .studio-block-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:10px 16px;width:100%;min-width:0}
[data-content-studio] .studio-block-primary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}
[data-content-studio] .studio-block-order-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;width:252px;max-width:100%}
[data-content-studio] .studio-block-tools button{display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;height:44px;min-height:44px;margin:0;line-height:1;font-size:13px;border-radius:8px}
[data-content-studio] .studio-block-primary-actions button{width:auto;max-width:none;min-width:0;padding:0 12px;white-space:nowrap;border-color:var(--line-input);color:var(--text-muted);background:var(--bg-sunken)}
[data-content-studio] .studio-block-order-actions button{width:100%;min-width:0;padding:0;border-color:var(--line);background:var(--bg-sunken)}
[data-content-studio] .studio-block-order-actions svg{display:block;flex:none;width:20px;height:20px}
[data-content-studio] .studio-block-tools button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
[data-content-studio] .studio-block-order-actions [data-block-action="remove"]:hover{color:var(--color-error,var(--brand));border-color:currentColor}
@media(max-width:480px){[data-content-studio] .studio-block-toolbar{padding:12px}[data-content-studio] .studio-block-tools{gap:10px}[data-content-studio] .studio-block-primary-actions{width:100%}[data-content-studio] .studio-block-primary-actions button{font-size:12px;padding-inline:10px}}
