/* Shared action rhythm for the client studio and administration. */
.editor-app .batch-panel{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.batch-actions{display:grid;gap:12px;margin:20px 0 16px}
.batch-actions>*{box-sizing:border-box;width:100%;min-height:46px;padding:12px 14px;font-size:13px;line-height:1.45;border-radius:10px;text-align:center;justify-content:center}
.batch-actions>[hidden]{display:none!important}
.batch-actions a.button{background:var(--surface-soft);color:var(--ink);border:1px solid var(--line);font-weight:650;text-decoration:none}
.batch-actions a.button:hover{border-color:var(--lime);background:var(--surface)}
.editor-app .quick-finish-actions{gap:12px}
.editor-app .preset-buttons{gap:8px;margin-block:14px 18px}
.editor-app .preset-buttons button{min-height:42px;padding:10px 12px}
.editor-app .selection-bar,.editor-app .inline-tools{gap:10px;row-gap:12px}
.editor-app .folder-tools,.editor-app .bulk-tools{row-gap:12px}
.editor-app .media-actions{gap:8px;margin-top:12px}
.editor-app .media-actions>button,.editor-app .media-actions>a{min-height:40px;padding:9px 11px;box-sizing:border-box}
.editor-app .tabs,.editor-app .filters{gap:6px}
.editor-app .timeline .panel-heading{gap:12px}
.editor-app .timeline .panel-heading>div{gap:8px}
.editor-app .batch-panel>.hint{line-height:1.75}
body:not(.editor-app) main button,body:not(.editor-app) main .button{min-height:44px;box-sizing:border-box;line-height:1.45;padding:11px 16px}
.hero-actions,.page-actions,.render-actions,.package-payments{gap:12px}
.render-actions a,.render-actions button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--ink);font-weight:650;line-height:1.4;text-decoration:none}
.render-actions a:hover{border-color:var(--lime);background:var(--surface)}
.render-actions form{display:inline-flex;margin:0}
.render-actions form>button{margin:0}
.form-card form>button,.panel form>button{margin-top:8px}
.download-row{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.download-row a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);text-decoration:none;overflow-wrap:anywhere}
.download-row p{margin:0}
/* Admin controls remain grouped, with destructive actions separated. */
#changelist .actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px!important}
#changelist .actions label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;min-width:0}
#changelist .actions select{min-height:44px;max-width:100%;box-sizing:border-box}
#changelist .actions .button{margin:0;min-height:44px;padding:10px 16px;box-sizing:border-box}
#changelist-search>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
#changelist-search input[type=submit]{min-height:44px;padding:10px 16px}
#changelist-search input[type=search],#changelist-search input[type=text]{min-height:44px;min-width:0;max-width:100%;box-sizing:border-box}
body #content .submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px!important}
body #content .submit-row input,body #content .submit-row a{box-sizing:border-box;min-height:44px;margin:0!important;padding:11px 16px!important;line-height:1.45;border-radius:9px}
body #content .submit-row .deletelink-box{float:none;margin:0 0 0 auto!important}
body #content .object-tools{display:flex;flex-wrap:wrap;gap:10px;float:none;margin:0 0 20px;padding:0}
body #content .object-tools li{float:none;margin:0;padding:0}
body #content .object-tools a{display:inline-flex;align-items:center;box-sizing:border-box;min-height:42px;padding:10px 16px;border-radius:9px}
.admin-workspace-nav{gap:10px;padding-block:14px}
.admin-workspace-nav a{min-height:46px}
.ops-actions{gap:14px}
.mobile-table-hint{display:none}
@media(max-width:600px){
 .editor-app .media-actions>*{min-height:44px}
 .editor-app .preset-buttons{gap:10px}
 .render-actions{display:grid;grid-template-columns:1fr;width:100%}
 .render-actions a,.render-actions form,.render-actions button{width:100%;min-height:44px}
 .admin-workspace-nav{gap:10px;padding:12px}
 .admin-workspace-nav a{min-height:48px;font-size:11px;gap:5px;padding:10px 4px}
 body #content .submit-row{display:grid;grid-template-columns:1fr;gap:12px}
 body #content .submit-row input,body #content .submit-row a{width:100%;text-align:center;justify-content:center}
 body #content .submit-row .deletelink-box{width:100%;margin:4px 0 0!important;padding-top:12px;border-top:1px solid var(--hairline-color)}
 #changelist .actions label{width:100%;align-items:stretch;flex-direction:column}
 #changelist .actions select{width:100%}
 #changelist .actions .action-counter{flex-basis:100%}
 #changelist-search input[type=search],#changelist-search input[type=text]{flex:1;width:0}
 #changelist .mobile-table-hint{display:block;margin:0;padding:10px 12px;border-bottom:1px solid var(--hairline-color);color:var(--body-quiet-color);font-size:12px;font-weight:650;letter-spacing:.02em}
 #changelist-filter li a{display:flex;align-items:center;box-sizing:border-box;min-height:44px;padding-block:10px}
}

/* Keep Django's fixed-width form widgets inside their action panels. */
#content .aligned .form-row>div,#content .aligned .flex-container{min-width:0;max-width:100%;box-sizing:border-box}
#content .aligned .form-row input:not([type=checkbox]):not([type=radio]),#content .aligned .form-row textarea,#content .aligned .form-row select{box-sizing:border-box;max-width:100%;min-width:0}

/* Large source images and short landscape screens must keep controls reachable. */
.editor-app #media-dialog{box-sizing:border-box;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.editor-app #preview-content{min-width:0}
.editor-app #preview-content img{display:block;width:auto;height:auto;max-width:100%;max-height:min(65dvh,calc(100dvh - 150px));object-fit:contain;margin-inline:auto}
.account-popover,.admin-account-panel{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
.editor-app .inspector input[type=range]{margin-inline:0}
#changelist .actions{box-sizing:border-box;max-width:100%}
#changelist .actions label select{margin:0}
.render-actions a,.render-actions button{min-width:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:380px){.pipeline-flow{grid-template-columns:1fr}}
#content .selector ul.selector-chooser{box-sizing:content-box;width:auto;min-width:35px}
#content .selector ul.selector-chooser li{width:auto;min-width:35px}
@media(max-width:1024px){
 #content .selector{flex-direction:column;gap:12px}
 #content .selector .selector-available,#content .selector .selector-chosen{width:100%;flex:auto}
 #content .selector ul.selector-chooser{display:flex;gap:8px;align-self:center;width:auto;height:auto;padding:4px;transform:none}
 #content .selector .selector-remove{background-position:0 0}
 #content .selector :enabled.selector-remove:hover,#content .selector :enabled.selector-remove:focus{background-position:0 -24px}
 #content .selector .selector-add{background-position:0 -48px}
 #content .selector :enabled.selector-add:hover,#content .selector :enabled.selector-add:focus{background-position:0 -72px}
 #content .aligned .field-password .flex-container{flex-direction:column;gap:10px}
 #content .aligned .field-password .readonly{min-width:0;max-width:100%;overflow-wrap:anywhere}
}
@media(max-width:600px){
 .editor-app .topbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .editor-app .topbar .brand{grid-row:1;grid-column:1}
 .editor-app .topbar .theme-switch{grid-row:1;grid-column:2}
 .editor-app .topbar #project-title{grid-row:2;grid-column:1/-1;width:100%}
 .editor-app .topbar #save-project{grid-row:3;grid-column:1}
 .editor-app .topbar #export-one{grid-row:3;grid-column:2}
}
