/* DEV hybrid boundaries only; ordinary authoring and Published View are unchanged. */
.cloud-notice { position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:10050;max-width:640px;padding:12px 16px;background:var(--surface-2,#151718);border:1px solid var(--border,#454545);border-radius:6px;display:flex;gap:16px;align-items:center;font-size:12px; }
.cloud-notice[hidden],.cloud-unavailable-message[hidden] {display:none;}
.cloud-unavailable #app { visibility:hidden;pointer-events:none; }
.cloud-unavailable-message {position:fixed;inset:0;display:grid;place-items:center;background:#080909;color:#eee;z-index:10040;font-size:15px;}
body.cloud-workspace #importScriptBtn,
body.cloud-workspace [data-comment-key],body.cloud-workspace #addLook,body.cloud-workspace [data-delete-look],body.cloud-workspace [data-edit-shot-id]~.edit-only,
body.cloud-workspace [data-arm-coverage],body.cloud-workspace [data-clear-coverage],body.cloud-workspace [data-define-coverage],
body.cloud-workspace .common-media-add,body.cloud-workspace .media-add-card,body.cloud-workspace .common-media-actions,
body.cloud-workspace .character-doc-drop,body.cloud-workspace [data-delete-document],body.cloud-workspace [data-element-select],
body.cloud-workspace #addElement,body.cloud-workspace #mergeElements {display:none!important;}
body.cloud-workspace .character-profile .edit-block {display:none!important;}
body.cloud-workspace .character-profile .view-value {display:block!important;}
body.cloud-workspace #confirmMessage {white-space:pre-wrap;max-height:55vh;overflow:auto;}

body.cloud-workspace #editModeBtn[hidden] {display:none!important;}
body.cloud-workspace .edit-only:not([data-add-shot]),body.cloud-workspace .mode-edit-only:not([data-add-shot]),
body.cloud-workspace details.media-add,body.cloud-workspace .media-replace-affordance,
body.cloud-workspace .coverage-micro-control,body.cloud-workspace .tag-add,
body.cloud-workspace .add-media-label {display:none!important;}
body.cloud-unavailable:not(.public-auth-locked) > :not(#cloudUnavailable):not(script):not(link) {visibility:hidden!important;pointer-events:none!important;}

/* Bounded Block 1A upload action; never adds a grid cell or changes row height. */
.cloud-workspace .shot-images {position:relative;}
.cloud-workspace .shot-images > [data-cloud-upload],
.cloud-workspace .shot-image-wrap > [data-cloud-upload] {position:absolute;right:4px;bottom:4px;z-index:4;}
.cloud-workspace [data-cloud-upload][hidden] {display:none!important;}

.cloud-upload-draft {position:relative;min-height:100px;background:var(--surface-2,#151718);}
.shot-images > .cloud-upload-draft {position:absolute;inset:0;z-index:5;}
.cloud-upload-draft img {width:100%;height:100%;object-fit:contain;}
.cloud-upload-draft button {position:absolute;bottom:4px;left:4px;font-size:10px;}

/* Existing Frame controls only. Role/scope + VIEW/EDIT remain authoritative. */
body.cloud-workspace.cloud-frames-editable .shotlist:not(.special-shotlist) [data-add-storyboard],
body.cloud-workspace.cloud-frames-editable .shotlist:not(.special-shotlist) [data-delete-storyboard],
body.cloud-workspace.cloud-frames-editable .shotlist:not(.special-shotlist) .media-replace-affordance {display:inline-flex!important;}
body.cloud-workspace.cloud-frames-editable .shotlist:not(.special-shotlist) .storyboard-reorder-strip,
body.cloud-workspace.cloud-frames-editable .shotlist:not(.special-shotlist) .table-frame-actions {display:flex!important;}
body.cloud-workspace.cloud-frames-editable .shotlist:not(.special-shotlist) .empty-thumb .drop-cue {display:inline!important;}
.storyboard-frame-wrap > .cloud-upload-draft {position:absolute;inset:0;z-index:5;}

/* Window-local pending previews: all accepted files are visible before upload. */
.cloud-upload-tray {position:absolute;inset:0;z-index:15;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(44px,1fr);gap:2px;overflow:auto;background:var(--surface-media);}
.cloud-upload-tray:empty {display:none;}
.cloud-upload-tray .cloud-upload-draft {min-height:44px;min-width:0;overflow:hidden;}
.cloud-upload-tray .cloud-upload-draft img {display:block;object-fit:contain;}
.cloud-upload-tray .cloud-upload-draft button {font-size:7px;left:0;bottom:0;max-width:100%;padding:3px;}
body.editing.cloud-workspace.cloud-frames-editable .cloud-file-drag .table-frame-actions,
body.editing.cloud-workspace.cloud-frames-editable .cloud-file-drag .media-replace-affordance,
body.editing.cloud-workspace.cloud-frames-editable .cloud-file-drag .storyboard-add-frame {opacity:1!important;visibility:visible!important;pointer-events:auto!important;}
body.editing.cloud-workspace.cloud-frames-editable .cloud-file-target {outline:2px solid var(--accent);outline-offset:-2px;}

/* Keep the first durable Frame visible while the remaining previews commit. */
.cloud-upload-tray.has-canonical-frame {top:auto;height:48%;}

/* First import is Owner-only; later Script version migration remains excluded. */
body.cloud-workspace.cloud-first-import #importScriptBtn {display:block!important;}
.cloud-project-fields {display:flex;flex-direction:column;gap:12px;margin:16px 0;}

/* Existing Location controls become available only through the scoped commands. */
body.cloud-workspace.cloud-locations-editable [data-nav-add],
body.cloud-workspace.cloud-locations-editable #addBackup {display:inline-flex!important;}
body.cloud-workspace .cloud-gallery-editable .add-media-card,
body.cloud-workspace .cloud-gallery-editable .media-add-card,
body.cloud-workspace .cloud-gallery-editable .common-media-actions,
body.cloud-workspace .cloud-gallery-editable .media-replace-affordance {display:flex!important;}
[data-cloud-gallery-context] {position:relative;}
body.cloud-workspace .cloud-gallery-editable.add-media-card,
body.cloud-workspace .cloud-gallery-editable.nav-media-drop,
body.cloud-workspace .cloud-gallery-editable .add-media-label {display:block!important;}

body.cloud-workspace .cloud-gallery-editable .media-card-menu,
body.cloud-workspace .cloud-gallery-editable [data-common-delete] {display:block!important;}

body.cloud-workspace.cloud-locations-editable [data-grid-delete],
body.cloud-workspace.cloud-locations-editable [data-element-select],
body.cloud-workspace.cloud-locations-editable [data-delete-nav^="location:"] {display:inline-flex!important;}

body.cloud-workspace.cloud-locations-editable [data-element-doc-add],
body.cloud-workspace.cloud-locations-editable [data-set-doc-delete] {display:inline-flex!important;}

/* Existing Character/Profile/Look controls, gated by CHARACTERS_LOOKS. */
body.cloud-workspace.cloud-characters-editable [data-nav-add],
body.cloud-workspace.cloud-characters-editable .character-section-tools,
body.cloud-workspace.cloud-characters-editable [data-character-doc-drop],
body.cloud-workspace.cloud-characters-editable [data-delete-look],
body.cloud-workspace.cloud-characters-editable [data-delete-document],
body.cloud-workspace.cloud-characters-editable [data-delete-nav^="character:"],
body.cloud-workspace.cloud-characters-editable [data-remove-sequence-character],
body.cloud-workspace.cloud-characters-editable [data-costume-drag],
body.cloud-workspace.cloud-characters-editable .custom-look-picker,
body.cloud-workspace.cloud-characters-editable #addSeqCharacter {display:flex!important;}
body.cloud-workspace.cloud-characters-editable #addLook,
body.cloud-workspace.cloud-characters-editable .character-profile .edit-block {display:block!important;}
body.cloud-workspace.cloud-characters-editable .character-profile .view-value {display:none!important;}
body.cloud-workspace.cloud-characters-editable [data-element-select],
body.cloud-workspace.cloud-characters-editable [data-grid-delete] {display:inline-flex!important;}

/* Costume authority exposes only existing Sequence association controls. */
body.cloud-workspace.cloud-costume-editable [data-remove-sequence-character],
body.cloud-workspace.cloud-costume-editable [data-costume-drag],
body.cloud-workspace.cloud-costume-editable .custom-look-picker,
body.cloud-workspace.cloud-costume-editable #addSeqCharacter {display:flex!important;}

body.cloud-workspace.cloud-special-editable .tag-picker {display:block!important;}
body.cloud-workspace.cloud-special-editable [data-vfx-status] {display:block!important;}
body.cloud-workspace.cloud-special-editable .special-status .mode-view-only {display:none!important;}

body.cloud-workspace:not(.cloud-frames-editable) [data-add-shot] {display:none!important;}

/* Resume feedback shares the canonical confirmation shell, without progress estimates. */
.review-resume-modal .review-resume-motion{height:2px;margin-top:18px;overflow:hidden;background:var(--border-default)}
.review-resume-motion::after{content:"";display:block;width:30%;height:100%;background:var(--accent-control-hover);animation:review-resume-pulse 1.4s ease-in-out infinite alternate}
.review-resume-modal [hidden]{display:none!important}
@keyframes review-resume-pulse{from{transform:translateX(0);opacity:.35}to{transform:translateX(230%);opacity:.85}}
@media(prefers-reduced-motion:reduce){.review-resume-motion::after{animation:none}}

body.cloud-workspace.cloud-coverage-editable [data-arm-coverage],
body.cloud-workspace.cloud-coverage-editable [data-clear-coverage],
body.cloud-workspace.cloud-coverage-editable [data-define-coverage]{display:inline-flex!important}

/* Shared galleries reserve a normal card; Frames retain their validated tray. */
.common-media-gallery > .cloud-upload-draft {position:relative;background:transparent;min-height:0;}
.common-media-gallery > .cloud-upload-draft .common-media-surface {overflow:hidden;background:var(--surface-media);}
.common-media-gallery > .cloud-upload-draft img {display:block;width:100%;height:100%;object-fit:contain;}
.common-media-gallery > .cloud-upload-draft button {position:static;max-width:100%;font-size:9px;}
.profile-documents > .cloud-upload-tray,.character-documents-section > .cloud-upload-tray {position:relative;inset:auto;background:transparent;grid-auto-rows:auto;}
.document-drop-zone.drag-over,.add-document-control.drag-over {outline:1px solid var(--accent);outline-offset:-2px;}
