.modal-overlay[data-v-0d3db590]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.modal-overlay--elevated[data-v-0d3db590]{z-index:calc(var(--z-modal) + 1)}.modal-panel[data-v-0d3db590]{width:100%;max-height:var(--surface-max-height);display:flex;flex-direction:column;background:var(--color-bg-panel);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);outline:none}.modal-panel--sm[data-v-0d3db590]{max-width:400px}.modal-panel--md[data-v-0d3db590]{max-width:560px}.modal-panel--lg[data-v-0d3db590]{max-width:720px}.modal-panel--xl[data-v-0d3db590]{max-width:960px}.modal-panel--2xl[data-v-0d3db590]{max-width:1200px}.modal-panel--full[data-v-0d3db590]{max-width:calc(100vw - var(--space-8));height:calc(100vh - var(--space-8));max-height:90vh}.modal-panel--confirm[data-v-0d3db590]{max-width:var(--modal-width-confirm)}.modal-panel--quick[data-v-0d3db590]{max-width:var(--modal-width-quick)}.modal-panel--standard[data-v-0d3db590]{max-width:var(--modal-width-standard)}.modal-panel--wide[data-v-0d3db590]{max-width:var(--modal-width-wide)}@media(max-width:640px){.modal-overlay[data-v-0d3db590]:has(.modal-panel--quick,.modal-panel--standard){padding:0}.modal-panel--quick[data-v-0d3db590],.modal-panel--standard[data-v-0d3db590]{max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}}.modal-header[data-v-0d3db590]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.modal-title[data-v-0d3db590]{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text)}.modal-body[data-v-0d3db590]{flex:1;overflow-y:auto;padding:var(--space-4)}.modal-footer[data-v-0d3db590]{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--color-border)}.modal-enter-active[data-v-0d3db590],.modal-leave-active[data-v-0d3db590]{transition:opacity var(--transition-normal) var(--easing-default)}.modal-enter-active .modal-panel[data-v-0d3db590],.modal-leave-active .modal-panel[data-v-0d3db590]{transition:transform var(--transition-normal) var(--easing-out),opacity var(--transition-normal) var(--easing-out)}.modal-enter-from[data-v-0d3db590],.modal-leave-to[data-v-0d3db590]{opacity:0}.modal-enter-from .modal-panel[data-v-0d3db590],.modal-leave-to .modal-panel[data-v-0d3db590]{transform:scale(.97) translateY(8px);opacity:0}
