.cim-ui-modal[hidden] { display:none!important; }
.cim-ui-modal { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:20px; font-family:var(--cim-font-family); }
.cim-ui-modal__backdrop { position:absolute; inset:0; background:var(--cim-overlay-bg); backdrop-filter:blur(3px); animation:cim-ui-fade-in 160ms ease-out; }
.cim-ui-modal__dialog { position:relative; z-index:1; width:min(100%,640px); max-height:min(86vh,820px); overflow:auto; padding:30px 32px; border:1px solid var(--cim-color-border); border-radius:var(--cim-app-panel-radius); background:#fff; color:var(--cim-color-text); box-shadow:0 28px 90px rgba(18,26,31,.22); animation:cim-ui-dialog-in 180ms cubic-bezier(.2,.7,.2,1); }
.cim-ui-modal__dialog--sm { width:min(100%,460px); }
.cim-ui-modal__dialog--lg { width:min(100%,900px); }
.cim-ui-modal__header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-right:42px; margin-bottom:18px; }
.cim-ui-modal__header h2,.cim-ui-modal__header h3 { margin:0; color:var(--cim-color-heading); }
.cim-ui-modal__body > :first-child { margin-top:0; }
.cim-ui-modal__body > :last-child { margin-bottom:0; }
.cim-ui-modal__footer { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:24px; padding-top:20px; border-top:1px solid var(--cim-color-border); }
.cim-ui-modal__close { position:absolute; right:14px; top:14px; display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid transparent; border-radius:10px; background:var(--cim-color-bg-page); color:var(--cim-color-text); font-size:22px; line-height:1; cursor:pointer; transition:background var(--cim-transition-fast),border-color var(--cim-transition-fast); }
.cim-ui-modal__close:hover { border-color:var(--cim-color-border); background:#fff; }
.cim-ui-modal__close:focus-visible { outline:3px solid rgba(var(--cim-orange-rgb),.14); outline-offset:2px; }
.cim-ui-modal-open { overflow:hidden; }
@keyframes cim-ui-fade-in { from { opacity:0; } }
@keyframes cim-ui-dialog-in { from { opacity:0; transform:translateY(10px) scale(.985); } }
@media(max-width:600px){
    .cim-ui-modal { align-items:end; padding:0; }
    .cim-ui-modal__dialog,.cim-ui-modal__dialog--sm,.cim-ui-modal__dialog--lg { width:100%; max-height:92vh; padding:24px 20px; border-radius:22px 22px 0 0; }
    .cim-ui-modal__footer { align-items:stretch; flex-direction:column-reverse; }
    .cim-ui-modal__footer .cim-ui-btn { width:100%; }
}
@media(prefers-reduced-motion:reduce){ .cim-ui-modal__backdrop,.cim-ui-modal__dialog { animation:none; } }
