.modal-backdrop{width:100%;height:100%;z-index:var(--z-modal);background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:var(--modal-backdrop-blur,none);backdrop-filter:var(--modal-backdrop-blur,none);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.modal-container{width:90%;max-width:var(--modal-max-width);background:var(--modal-bg,#fff);border-radius:var(--modal-radius,8px);max-height:90vh;box-shadow:var(--modal-shadow,0 4px 6px #0000001a);border:var(--modal-border,none);flex-direction:column;display:flex;position:relative;overflow:hidden}.modal-header{z-index:var(--z-raised);padding:var(--modal-header-padding,1rem);border-bottom:var(--modal-header-border,1px solid #eee);border-top-left-radius:var(--modal-radius,8px);border-top-right-radius:var(--modal-radius,8px);flex-shrink:0;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.modal-header-content{gap:var(--space-3);flex-direction:column;flex:1;align-items:flex-start;display:flex}.modal-title{font-size:var(--modal-title-size,1.25rem);font-weight:var(--modal-title-weight,600);color:var(--modal-title-color,#000);margin:0;line-height:1.4}.modal-title.title-empty{color:var(--text-muted,#64748b);font-style:normal;font-weight:400}.modal-title.title-empty:after{content:attr(data-placeholder)}.modal-subtitle{font-size:var(--modal-subtitle-size,.875rem);font-weight:var(--modal-subtitle-weight,400);color:var(--modal-subtitle-color,#6c757d);margin:0;line-height:1.4}.modal-title-editable{align-items:center;gap:var(--space-3);width:100%;display:flex}.modal-title-editable .modal-title{flex:1}.modal-title-input{font-size:var(--modal-title-size,1.25rem);font-weight:var(--modal-title-weight,600);color:var(--modal-title-color,#000);background:var(--modal-title-input-bg,#2563eb0d);border:2px solid var(--modal-title-input-border,#2563eb4d);resize:none;box-shadow:var(--modal-title-input-shadow,0 0 0 3px #2563eb1a);border-radius:8px;outline:none;flex:1;min-height:auto;padding:6px 10px;font-family:inherit;line-height:1.4;transition:all .3s;overflow-y:auto}.modal-title-input:focus{border-color:var(--modal-title-input-focus-border,var(--primary,#2563eb));box-shadow:var(--modal-title-input-focus-shadow,0 0 0 3px #2563eb26)}body.dark .modal-title-input{background:#60a5fa14;border-color:#60a5fa4d;box-shadow:0 0 0 3px #60a5fa1a}body.dark .modal-title-input:focus{border-color:var(--blue-400,#60a5fa);box-shadow:0 0 0 3px #60a5fa26}.title-actions{align-items:center;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.title-edit-btn,.title-save-btn,.title-cancel-btn{width:28px;height:28px;color:var(--text-tertiary,#9ca3af);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.title-edit-btn i,.title-save-btn i,.title-cancel-btn i{font-size:var(--font-md)}.title-edit-btn:hover{background:var(--bg-input,#0000000d);color:var(--primary,#2563eb);opacity:1}.title-save-btn{color:var(--success,#10b981);opacity:1}.title-save-btn:hover{opacity:1;background:#10b9811a}.title-cancel-btn{color:var(--danger,#ef4444);opacity:1}.title-cancel-btn:hover{opacity:1;background:#ef44441a}.modal-close-btn{cursor:pointer;margin-top:0;margin-left:var(--space-3);width:var(--modal-close-size,32px);height:var(--modal-close-size,32px);color:var(--modal-close-color,#666);border-radius:var(--modal-close-radius,4px);background:0 0;border:none;flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;transition:all .2s;display:flex}.modal-close-btn:hover{background:var(--modal-close-hover-bg,#0000001a);color:var(--modal-close-hover-color,#000)}.modal-body{min-height:0;padding:var(--modal-body-padding-block,var(--modal-body-padding,1rem)) var(--modal-body-padding-inline,var(--modal-body-padding,1rem));color:var(--modal-text-color,inherit);scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;display:flex;overflow:hidden auto}.modal-body::-webkit-scrollbar{width:0;height:0;display:none}.modal-container--loading .modal-body{min-height:var(--modal-loading-body-min-height,clamp(280px, 40vh, 480px))}.modal-footer{z-index:var(--z-raised);padding:var(--modal-footer-padding,1rem);border-top:var(--modal-footer-border,1px solid #eee);background:var(--modal-footer-bg,transparent);border-bottom-left-radius:var(--modal-radius,8px);border-bottom-right-radius:var(--modal-radius,8px);flex-direction:row;flex-shrink:0;justify-content:flex-end;gap:10px;display:flex;position:relative;overflow:hidden}.modal-footer .btn-primary{order:2}.modal-footer .btn-secondary{order:1}.modal-footer .btn-danger,.modal-footer .btn-success,.modal-footer .btn-warning,.modal-footer .btn-info,.modal-footer .btn-transfer,.modal-footer .btn-outline{order:2}.modal-footer .btn{flex:none;width:auto;min-width:100px}.modal-loading-overlay{background:var(--modal-loading-overlay-bg,#fffc);z-index:var(--z-modal-inner-overlay);-webkit-backdrop-filter:var(--modal-loading-overlay-blur,blur(2px));backdrop-filter:var(--modal-loading-overlay-blur,blur(2px));justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-loading-fade-enter-active,.modal-loading-fade-leave-active{transition:opacity .28s}.modal-loading-fade-enter-from,.modal-loading-fade-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.modal-loading-fade-enter-active,.modal-loading-fade-leave-active{transition-duration:.01ms}}.feedback-overlay{z-index:calc(var(--z-modal-inner-overlay) + 1);background:var(--modal-feedback-bg,#fffffffa);-webkit-backdrop-filter:var(--modal-feedback-blur,blur(8px));backdrop-filter:var(--modal-feedback-blur,blur(8px));justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.feedback-content{padding:var(--modal-feedback-padding,2rem);border-radius:var(--modal-feedback-radius,16px);flex-direction:column;align-items:center;gap:1.5rem;animation:.4s cubic-bezier(.68,-.55,.265,1.55) feedback-pop;display:flex}.feedback-content--success .feedback-icon{color:var(--modal-feedback-success-color,var(--success,#34c759))}.feedback-content--error .feedback-icon{color:var(--modal-feedback-error-color,var(--danger,#ff3b30))}.feedback-icon{width:var(--modal-feedback-icon-size,80px);height:var(--modal-feedback-icon-size,80px);box-shadow:var(--modal-feedback-icon-shadow,0 8px 24px #0000001f);background:currentColor;border-radius:50%;justify-content:center;align-items:center;display:flex}.feedback-icon svg{width:var(--modal-feedback-icon-svg-size,48px);height:var(--modal-feedback-icon-svg-size,48px);stroke:var(--white,#fff)}.feedback-message{font-size:var(--modal-feedback-message-size,1.125rem);font-weight:var(--modal-feedback-message-weight,500);text-align:center;color:var(--modal-feedback-message-color,var(--text-primary,#000));background:var(--modal-feedback-message-bg,white);padding:var(--modal-feedback-message-padding,.75rem 1.5rem);border-radius:var(--modal-feedback-message-radius,999px);box-shadow:var(--modal-feedback-message-shadow,0 4px 16px #00000014)}.feedback-check{stroke-dasharray:22;stroke-dashoffset:22px;animation:.6s cubic-bezier(.65,0,.45,1) .2s forwards check}.feedback-error{stroke-dasharray:22;stroke-dashoffset:22px;animation:.6s cubic-bezier(.65,0,.45,1) .2s forwards error-line}@keyframes check{to{stroke-dashoffset:0}}@keyframes error-line{to{stroke-dashoffset:0}}@keyframes feedback-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.feedback-enter-active,.feedback-leave-active{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.feedback-enter-from,.feedback-leave-to{opacity:0}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .3s}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}.modal-fade-enter-active .modal-container,.modal-fade-leave-active .modal-container{transition:transform .3s cubic-bezier(.25,.8,.25,1)}.modal-fade-enter-from .modal-container{transform:scale(.95)translateY(10px)}.modal-fade-leave-to .modal-container{transform:scale(.95)}
