.app-modal-backdrop{position:fixed;inset:0;z-index:9990;background:rgba(0,0,0,0);transition:background .2s ease;pointer-events:none}
.app-modal-backdrop.active{background:rgba(0,0,0,.5);pointer-events:auto}
.app-modal-layer{position:fixed;inset:0;z-index:9991;display:flex;align-items:center;justify-content:center;padding:1rem;pointer-events:none;transition:transform .2s ease,opacity .2s ease;opacity:0;transform:scale(.97) translateY(8px)}
.app-modal-layer.visible{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}
.app-modal-layer.stacked{opacity:.7;transform:scale(.95) translateY(-12px);pointer-events:none;filter:blur(1px)}
.app-modal-box{background:#fff;border-radius:1rem;box-shadow:0 24px 48px -12px rgba(0,0,0,.18);width:100%;overflow:hidden;max-height:calc(100vh - 2rem);display:flex;flex-direction:column}
.app-modal-sm .app-modal-box{max-width:24rem}
.app-modal-md .app-modal-box{max-width:32rem}
.app-modal-lg .app-modal-box{max-width:48rem}
.app-modal-xl .app-modal-box{max-width:64rem}
.app-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}
.app-modal-header h3{font-size:.9375rem;font-weight:600;color:#0f172a;margin:0;display:flex;align-items:center;gap:.5rem}
.app-modal-close{background:none;border:none;padding:.25rem;cursor:pointer;color:#94a3b8;border-radius:.375rem;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}
.app-modal-close:hover{color:#0f172a;background:#f1f5f9}
.app-modal-close svg{width:18px;height:18px}
.app-modal-body{padding:1.25rem;overflow-y:auto;flex:1;font-size:.875rem;line-height:1.5;color:#334155}
.app-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.875rem 1.25rem;border-top:1px solid #e2e8f0;flex-shrink:0}
.app-modal-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;border-radius:.5rem;border:1px solid #e2e8f0;background:#fff;color:#334155;cursor:pointer;transition:all .15s;line-height:1.25}
.app-modal-btn:hover{background:#f8fafc;border-color:#cbd5e1}
.app-modal-btn-primary{background:#4f46e5;color:#fff;border-color:#4f46e5}
.app-modal-btn-primary:hover{background:#4338ca;border-color:#4338ca}
.app-modal-btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}
.app-modal-btn-danger:hover{background:#dc2626;border-color:#dc2626}
@media(prefers-color-scheme:dark){
.dark .app-modal-box{background:#0f172a;box-shadow:0 24px 48px -12px rgba(0,0,0,.4)}
.dark .app-modal-header{border-color:#1e293b}
.dark .app-modal-header h3{color:#f8fafc}
.dark .app-modal-close{color:#64748b}
.dark .app-modal-close:hover{color:#f8fafc;background:#1e293b}
.dark .app-modal-body{color:#cbd5e1}
.dark .app-modal-footer{border-color:#1e293b}
.dark .app-modal-btn{background:#1e293b;color:#e2e8f0;border-color:#334155}
.dark .app-modal-btn:hover{background:#334155}
}
.dark .app-modal-box{background:#0f172a;box-shadow:0 24px 48px -12px rgba(0,0,0,.4)}
.dark .app-modal-header{border-color:#1e293b}
.dark .app-modal-header h3{color:#f8fafc}
.dark .app-modal-close{color:#64748b}
.dark .app-modal-close:hover{color:#f8fafc;background:#1e293b}
.dark .app-modal-body{color:#cbd5e1}
.dark .app-modal-footer{border-color:#1e293b}
.dark .app-modal-btn{background:#1e293b;color:#e2e8f0;border-color:#334155}
.dark .app-modal-btn:hover{background:#334155}
