:root{--modal-width-sm:400px;--modal-width-md:500px;--modal-width-lg:600px;--modal-width-xl:800px;--modal-width-full:95vw;--modal-padding:var(--spacing-large);--modal-header-padding:var(--spacing-large);--modal-body-padding:var(--spacing-large);--modal-footer-padding:var(--spacing-large);--modal-gap:var(--spacing-medium);--modal-border-radius:var(--radius-large);--modal-shadow:0 25px 50px -12px rgba(0,0,0,0.25),0 10px 20px -5px rgba(0,0,0,0.04);--modal-backdrop-color:rgba(0,0,0,0.5);--modal-backdrop-blur:4px;--modal-duration:var(--duration-normal);--modal-easing:var(--easing-smooth)}.maite-modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--spacing-medium);background-color:var(--modal-backdrop-color);backdrop-filter:blur(var(--modal-backdrop-blur));opacity:0;visibility:hidden;transition:opacity var(--modal-duration) var(--modal-easing),visibility var(--modal-duration) var(--modal-easing)}.maite-modal--open{opacity:1;visibility:visible;overflow:hidden}.maite-modal__backdrop{position:absolute;inset:0;cursor:pointer}.maite-modal-content{position:relative;display:flex;flex-direction:column;width:100%;max-width:var(--modal-width-md);max-height:90vh;background:var(--color-background);border-radius:var(--modal-border-radius);box-shadow:var(--modal-shadow);overflow:hidden;transform:translateY(20px) scale(.95);transition:transform var(--modal-duration) var(--modal-easing)}.maite-modal--open .maite-modal-content{transform:translateY(0) scale(1)}.maite-modal-content--sm{max-width:var(--modal-width-sm)}.maite-modal-content--md{max-width:var(--modal-width-md)}.maite-modal-content--lg{max-width:var(--modal-width-lg)}.maite-modal-content--xl{max-width:var(--modal-width-xl)}.maite-modal-content--full{max-width:var(--modal-width-full);max-height:95vh}@media(width >= 640px){.maite-modal-content{margin:var(--spacing-small);max-height:calc(100vh - var(--spacing-medium))}}.maite-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--modal-header-padding);padding-bottom:0;background:var(--color-background);border-radius:var(--modal-border-radius) var(--modal-border-radius) 0 0}.maite-modal-header__title{margin:0;font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1.3}.maite-modal-header__actions{display:flex;align-items:center;gap:var(--spacing-small)}.maite-modal-header__close{display:flex;align-items:center;justify-content:center;width:var(--space-xl);height:var(--space-xl);padding:0;background:rgba(0,0,0,0);border:none;border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--easing-smooth),background-color var(--duration-fast) var(--easing-smooth)}.maite-modal-header__close:hover{color:var(--color-text);background-color:var(--neutral-100)}.maite-modal-header__close:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary-light)}.maite-modal-header__close:active{background-color:var(--neutral-200)}.maite-modal-body{flex:1;padding:var(--modal-body-padding);overflow-y:auto}.maite-modal-body::-webkit-scrollbar{width:6px}.maite-modal-body::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:var(--radius)}.maite-modal-body::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--radius)}.maite-modal-body::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}.maite-modal-body>*+*{margin-top:var(--spacing-medium)}.maite-modal-body>:first-child{margin-top:0}.maite-modal-body>:last-child{margin-bottom:0}.maite-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-small);padding:var(--modal-footer-padding);border-top:var(--border-width) solid var(--color-border);background:var(--color-background)}@media(width >= 640px){.maite-modal-footer{flex-direction:column-reverse}.maite-modal-footer>*{width:100%}}.maite-modal-footer--start{justify-content:flex-start}.maite-modal-footer--center{justify-content:center}.maite-modal-footer--between{justify-content:space-between}.maite-modal[aria-hidden=false] .maite-modal-content :not(input):not(textarea):not(select):focus-visible{outline:2px dashed var(--color-primary);outline-offset:2px;border-radius:var(--radius)}body.modal-open{overflow:hidden;padding-right:var(--scrollbar-width,0)}@media(prefers-reduced-motion:reduce){.maite-modal,.maite-modal-content{transition:none}.maite-modal-content{transform:none}}@media print{.maite-modal{display:none}}