/* 3.3 — editor chrome only. Slide typography, compositions and brand graphics are untouched. */
:root{--motion-fast:140ms;--motion-normal:220ms;--ease-out:cubic-bezier(.2,.8,.2,1)}
.modal{background:var(--surface);color:var(--ink);border-color:var(--line);border-radius:16px;box-shadow:0 24px 80px #0b122d26}
.modal[open]{animation:studio-dialog-in var(--motion-normal) var(--ease-out) both}
.modal::backdrop{background:#101b3047;backdrop-filter:blur(5px);animation:studio-fade-in 180ms ease-out both}
.modal .modal-header{min-height:68px;padding:20px 24px;border-color:var(--line)}
.modal .modal-header h2{font-size:20px;font-weight:600;letter-spacing:-.45px}
.modal .modal-footer{padding:14px 24px;gap:10px;min-height:64px;border-color:var(--line)}
.modal :is(.btn,.icon-btn){transition:background var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast)}
.modal .btn:active:not(:disabled){transform:translateY(1px)}
.modal .field-help,.creation-review{color:var(--muted)}
.info-callout{display:flex;align-items:flex-start;gap:10px;background:var(--surface-alt);border:1px solid var(--line);border-radius:10px;padding:13px 14px;color:var(--muted);font-size:12px;line-height:1.6}.info-callout>svg{margin-top:2px;color:var(--blue)}
.info-callout[hidden]{display:none}.generation-screen header{margin-bottom:38px}.generation-status{margin-top:30px}

#project-list{animation:studio-fade-in 160ms ease-out}
.hub-trash-panel{margin-top:18px}.hub-trash-panel .modal-body{padding:0}.hub-trash-panel .trash-row{border:1px solid var(--line);border-radius:11px;padding:16px 18px;background:var(--surface);box-shadow:none}.hub-trash-panel .trash-row:hover{background:var(--surface-alt)}.hub-trash-panel .trash-row .trash-item-info{flex:1;min-width:0}.trash-item-info b{overflow-wrap:anywhere}.hub-trash-panel .trash-item-icon{width:42px;height:44px;border-radius:9px}.hub-trash-panel .trash-list{gap:10px}.hub-trash-panel .trash-row-actions{gap:10px}
.modal.users-dialog{width:min(1020px,calc(100vw - 36px));max-width:1020px}.users-dialog .modal-body{padding:22px 24px;min-height:220px}.users-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.users-total{font-size:12px;color:var(--muted);margin-right:auto}.users-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden}.user-row{display:flex;align-items:center;gap:14px;min-height:72px;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.user-row:last-child{border-bottom:0}.user-row:hover{background:var(--surface-alt)}.user-row[hidden]{display:none}.user-row-identity{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.user-row-identity b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row-identity small{font-size:11px;color:var(--muted)}.user-row-role{font-size:12px;color:var(--muted);width:135px}.user-row-status{display:flex;align-items:center;gap:8px;font-size:11px;width:90px;color:var(--muted)}.user-row-status .status-dot{margin:0}.user-row .icon-btn{border:1px solid var(--line);background:var(--surface);height:34px;width:34px;border-radius:8px}.users-not-found[hidden]{display:none}.users-dialog .template-management{margin-top:22px;padding-top:18px}.template-management summary{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);cursor:pointer}.template-management[open]>label{margin-top:15px}
.modal.user-settings-dialog{width:min(1060px,calc(100vw - 36px));max-width:1060px;max-height:calc(100dvh - 36px)}.user-settings-dialog .modal-body{padding:24px;max-height:calc(100dvh - 184px);overflow:auto}.user-settings-form{display:flex;flex-direction:column;gap:24px}.user-detail-identity{display:flex;align-items:center;gap:14px}.user-detail-identity h3{font-size:16px}.user-detail-identity p{font-size:12px;color:var(--muted);margin-top:5px}.user-choice-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:22px}.user-option-field,.permission-field{padding:0;margin:0;border:0;min-width:0}.user-option-field legend,.permission-field legend{font-size:12px;color:var(--muted);margin:0 0 10px}.user-option-field .segmented label>span{font-size:12px;padding:10px 8px}.user-settings-form .form-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.user-settings-form .form-two>label{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:12px}.user-settings-form input:not([type=checkbox]):not([type=radio]){background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;min-height:40px;padding:9px 12px;width:100%}.permission-field legend{width:100%;display:flex;align-items:center;justify-content:space-between}.permission-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.permission-card{display:block;position:relative;cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:9px;background:var(--surface);transition:border-color 160ms,box-shadow 160ms}.permission-card:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 13%,transparent)}.permission-card>input{position:absolute;right:24px;bottom:25px;width:18px;height:18px;opacity:0;z-index:1}.permission-cover{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:6px;background:var(--surface-alt);pointer-events:none}.permission-cover>span{display:contents}.permission-card-info{display:flex;position:relative;flex-direction:column;gap:6px;padding:16px 42px 12px 10px}.permission-card-info>b{font-size:17px;font-weight:600}.permission-card-info>small{font-size:11px;color:var(--muted)}.permission-check{position:absolute;right:10px;top:24px;display:flex;align-items:center;justify-content:center;width:23px;height:23px;border:1px solid var(--line);border-radius:6px;color:transparent;background:var(--surface)}.permission-card:has(input:checked) .permission-check{background:var(--blue);border-color:var(--blue);color:var(--surface)}.permission-card:has(input:disabled){cursor:default}
.review-dialog.modal{width:min(980px,calc(100vw - 36px))}.review-dialog .modal-body{padding:0}.review-layout{grid-template-columns:295px minmax(0,1fr);min-height:400px}.review-compose{padding:24px;background:var(--surface);display:flex;flex-direction:column;align-items:stretch;gap:16px}.review-composer-title{display:flex;gap:9px;align-items:center;color:var(--ink);font-size:13px;font-weight:600}.review-composer-title svg{color:var(--blue)}.review-compose textarea{background:var(--surface-alt);min-height:165px;font-size:13px;resize:vertical}.review-compose .btn{margin:0}.review-discussion{background:var(--surface);padding:24px}.review-list .studio-empty{min-height:225px}.review-comment{box-shadow:none}
.preflight-dialog.modal{width:min(880px,calc(100vw - 36px))}.preflight-dialog .check-overview{padding:0 0 20px;border-bottom:1px solid var(--line);margin-bottom:20px;gap:13px}.preflight-dialog .check-overview h3{font-size:16px;font-weight:600}.preflight-dialog .check-overview p{font-size:12px;margin-top:5px}.preflight-dialog .check-status-symbol{width:39px;height:39px;border-radius:10px}.preflight-dialog .check-status-symbol svg{width:20px;height:20px}.preflight-dialog .check-levels{display:flex;gap:8px;margin-bottom:8px}.preflight-dialog .check-level{padding:10px 12px;flex:1;display:flex;align-items:center;border-radius:9px;min-height:42px;gap:10px;background:var(--surface);font-size:12px}.preflight-dialog .check-level b{font-size:15px;font-weight:600}.preflight-dialog .check-level.selected{background:var(--surface-alt)}.preflight-dialog .check-toolbar{padding:8px 0 16px;margin:0;border-bottom:0}.preflight-dialog .check-group>header{padding:0 0 10px;margin:0}.preflight-dialog .check-group h4{font-size:11px;color:var(--muted);font-weight:500}.preflight-dialog .check-issue{padding:14px 16px;border:1px solid var(--line);border-radius:9px;min-height:76px;margin:0 0 8px;gap:12px}.preflight-dialog .check-issue b{font-size:12px;line-height:1.5}.preflight-dialog .check-slide{font-size:11px;color:var(--muted);margin-bottom:4px}.preflight-dialog .check-issue-actions{flex-direction:row;align-items:center;gap:8px}.preflight-disclaimer{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);margin-right:auto}
.settings-dialog .modal-body{padding:22px 24px}.settings-local-fonts{padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-local-fonts>div{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.settings-version{display:flex;align-items:center;justify-content:space-between;padding-top:17px;color:var(--muted);font-size:11px}.settings-version [data-app-version]{font-variant-numeric:tabular-nums;border:1px solid var(--line);border-radius:5px;padding:4px 7px;background:var(--surface-alt)}
.font-letter-preview{font-size:23px;line-height:1.1;width:42px;margin-left:auto;color:var(--ink)}.font-option:disabled .font-letter-preview{opacity:.3}.font-option{gap:10px}
/* Free images are above template photo hit areas and text handles, but below the transform UI. */
.slide-scene [data-free-image]{z-index:12;cursor:move;outline:2px solid transparent;outline-offset:2px}.slide-scene [data-free-image]:hover{outline-color:#4460ac}.slide-scene [data-free-image] a{pointer-events:none}.free-image-transform{position:absolute;z-index:30;outline:3px solid #4460ac;outline-offset:0;cursor:move;touch-action:none;background:transparent;box-shadow:0 0 0 1px #fff;user-select:none}.free-image-transform:focus{outline:3px solid #4460ac;outline-offset:0}.free-image-transform>img{width:100%;height:100%;object-fit:contain;pointer-events:none;display:block}.free-image-transform [data-resize]{position:absolute;width:17px;height:17px;border:3px solid #4460ac;background:#fff;border-radius:3px;min-height:0;padding:0;touch-action:none}.free-image-transform [data-resize=nw]{left:-9px;top:-9px;cursor:nwse-resize}.free-image-transform [data-resize=ne]{right:-9px;top:-9px;cursor:nesw-resize}.free-image-transform [data-resize=sw]{left:-9px;bottom:-9px;cursor:nesw-resize}.free-image-transform [data-resize=se]{right:-9px;bottom:-9px;cursor:nwse-resize}.free-image-size{position:absolute;bottom:-31px;left:50%;transform:translateX(-50%);white-space:nowrap;font:16px/23px Arial,sans-serif;letter-spacing:0;padding:0 8px;border-radius:4px;background:#4460ac;color:#fff;pointer-events:none}.free-image-transform.is-dragging{cursor:grabbing}
.free-image-popover{position:fixed;z-index:900;width:300px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 78px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 45px #101c3233;color:var(--ink);animation:studio-dialog-in 160ms var(--ease-out)}.free-image-popover header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.free-image-popover header strong{display:flex;align-items:center;gap:8px;font-size:13px}.free-image-popover footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}.free-image-fields{padding:15px;display:flex;flex-direction:column;gap:14px}.image-coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.image-coordinate-grid label{min-width:0;display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted)}.image-coordinate-grid label>div{display:flex;align-items:center;gap:3px;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding-right:8px}.image-coordinate-grid input{border:0;background:transparent;color:var(--ink);width:100%;min-width:0;padding:8px 9px;min-height:35px;font-size:12px}.image-coordinate-grid small{font-size:10px}.image-ratio-toggle{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.image-ratio-toggle input{accent-color:var(--blue);width:14px;height:14px;margin:0}.free-image-link{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted)}.free-image-link input{font-size:12px;background:var(--surface);border-color:var(--line);color:var(--ink)}.free-image-actions{display:flex;gap:8px}.free-image-status{font-size:11px;color:var(--danger);line-height:1.5;padding:0 15px 12px}.free-image-status:empty{display:none}.free-image-popover [aria-busy=true]{cursor:progress}
.free-image-section{padding-top:16px;border-top:1px solid var(--line);margin-top:16px}.free-image-section>h4{font-size:11px;color:var(--muted);margin:0 0 10px}.free-image-list{display:flex;flex-direction:column;gap:7px;margin-bottom:10px}.free-image-item{display:flex;align-items:center;gap:9px;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px;text-align:left}.free-image-item img{width:35px;height:35px;object-fit:contain;border:1px solid var(--line);border-radius:3px}.free-image-item span{flex:1;min-width:0;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.free-image-item small{color:var(--muted);font-size:10px;display:block;margin-top:3px}
@keyframes studio-dialog-in{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@keyframes studio-fade-in{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.modal.users-dialog,.modal.user-settings-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.users-dialog .modal-body,.user-settings-dialog .modal-body{padding:17px}.users-toolbar{flex-wrap:wrap}.users-toolbar .btn{margin-left:auto}.user-row{gap:9px;padding:13px 10px}.user-row-role{display:none}.user-row-status{width:20px;font-size:0}.user-row-status .status-dot{width:7px;height:7px}.user-row .avatar{width:31px;height:31px;font-size:12px}.user-choice-grid{grid-template-columns:1fr;gap:17px}.permission-gallery{gap:12px}.permission-card{padding:6px;border-radius:8px}.permission-card-info{padding:10px 30px 9px 4px}.permission-card-info>b{font-size:15px}.permission-check{right:1px;top:14px}.user-settings-form .form-two{grid-template-columns:1fr;gap:16px}.hub-trash-panel .trash-row{flex-wrap:wrap;padding:14px}.hub-trash-panel .trash-row-actions{margin-left:auto}.settings-local-fonts{align-items:flex-start;flex-direction:column;gap:10px}.preflight-dialog .check-levels{gap:5px}.preflight-dialog .check-level{font-size:10px;padding:9px 7px;gap:5px}.preflight-dialog .check-issue-actions{flex-direction:column;gap:4px}.review-layout{display:block}.review-compose{padding:20px}.review-compose textarea{min-height:105px}.preflight-disclaimer{max-width:62%;font-size:10px}}
@media(prefers-reduced-motion:reduce){.modal[open],.modal::backdrop,.free-image-popover,#project-list{animation:none}.modal :is(.btn,.icon-btn),.permission-card{transition:none}}

.permission-cover .slide-scene{transform-origin:top left}

.plan-controls>.visual-balance+.field{margin-top:22px}
