/* Shared modal styles — imported by sidebar modals that portal to document.body. These must be global (not scoped) since portaled elements live outside component DOM. */ .pcr-modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; z-index: 10001; } .pcr-modal { background: #262626; border: 1px solid #3a3a3a; border-radius: 8px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5); min-width: 320px; max-width: 480px; } .pcr-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #3a3a3a; } .pcr-modal-title { font-size: 16px; font-weight: 600; color: #fff; } .pcr-modal-close { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; background: transparent; border: none; border-radius: 4px; color: #888; cursor: pointer; } .pcr-modal-close:hover { background: rgba(255, 255, 255, 0.1); color: #fff; } .pcr-modal-close svg { width: 16px; height: 16px; } .pcr-modal-body { padding: 20px; } .pcr-modal-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 20px; border-top: 1px solid #3a3a3a; } .pcr-modal-btn { padding: 8px 16px; border: none; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; outline: none; } .pcr-modal-btn:focus-visible { outline: 2px solid var(--comfy-primary, #5dcaff); outline-offset: 2px; } .pcr-modal-btn-secondary { background: #3a3a3a; color: #ccc; } .pcr-modal-btn-secondary:hover { background: #4a4a4a; } .pcr-modal-btn-primary { background: #973f00; color: #fff; } .pcr-modal-btn-primary:hover, .pcr-modal-btn-primary:focus { background: #c85909; } .pcr-modal-btn-danger { background: #8b2020; color: #fff; } .pcr-modal-btn-danger:hover, .pcr-modal-btn-danger:focus { background: #b42a2a; } /* Sectioned-card chrome for the upscale + inpaint options panels — each logical group (Engine / Mode / Prompt / Settings / …) sits in a titled card, so the two modals read identically. Global (the modals portal to body). */ .pcr-mcard { background: #1e1e1e; border: 1px solid #333; border-radius: 8px; padding: 11px 13px; margin-bottom: 12px; display: flex; flex-direction: column; gap: 9px; } .pcr-mcard:last-child { margin-bottom: 0; } /* card children stack on the card's gap — kill the section margins that were tuned for the old flat layout so they don't double up. */ .pcr-mcard > * { margin-top: 0 !important; } .pcr-mcard-title { font-size: 10.5px; font-weight: 700; letter-spacing: 0.7px; text-transform: uppercase; color: #7c7c7c; }