:root{--modal-accent:var(--brand-cyan);--modal-accent-green:var(--brand-green);--modal-bg:var(--bg-body);--modal-surface:var(--bg-elevated);--modal-border:var(--border-default);--modal-border-hover:var(--border-strong);--modal-text-primary:var(--text-primary);--modal-text-secondary:var(--text-muted)}@keyframes modal-overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-content-scale-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modal-content-scale-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.96) translateY(8px)}}.ui-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg-overlay);animation:modal-overlay-fade-in .2s ease-out forwards;padding-bottom:env(safe-area-inset-bottom)}.ui-modal-overlay.closing{animation:modal-overlay-fade-out .15s ease-out forwards;pointer-events:none}.ui-modal-container{position:relative;display:flex;flex-direction:column;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);background:linear-gradient(165deg,rgba(22,26,30,.99),rgba(12,14,16,1));border:1px solid var(--modal-border);border-radius:var(--radius-xl);box-shadow:0 0 0 1px var(--bg-card) inset,var(--shadow-xl),0 0 60px -20px var(--bg-accent-subtle);overflow:hidden;animation:modal-content-scale-in .3s cubic-bezier(.16,1,.3,1) forwards}.ui-modal-container.closing{animation:modal-content-scale-out .15s ease-out forwards}.ui-modal-sm{width:100%;max-width:400px}.ui-modal-md{width:100%;max-width:520px}.ui-modal-lg{width:100%;max-width:720px}.ui-modal-xl{width:100%;max-width:1000px}.ui-modal-full{width:calc(100vw - 48px);height:calc(100vh - 48px);height:calc(100dvh - 48px);max-width:none;max-height:none}.ui-modal-close{position:absolute;top:var(--space-4);right:var(--space-4);z-index:10;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--bg-accent-subtle);border:1px solid var(--modal-border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1)}@media (hover:hover){.ui-modal-close:hover{background:var(--bg-glass-hover);border-color:var(--modal-border-hover);color:var(--text-primary)}}.ui-modal-close:focus-visible{outline:1px solid var(--border-strong);outline-offset:2px}.ui-modal-close:active{transform:scale(.95)}.ui-modal-close svg{width:18px;height:18px}.ui-modal-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) var(--space-6) 0}.ui-modal-title{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--modal-text-primary);letter-spacing:-.01em;line-height:1.4}.ui-modal-body{flex:1;padding:var(--space-5) var(--space-6);overflow-y:auto;min-height:0;color:var(--modal-text-secondary);font-size:var(--text-base);line-height:1.6;scrollbar-width:thin;scrollbar-color:var(--bg-glass) transparent}.ui-modal-body::-webkit-scrollbar{width:5px}.ui-modal-body::-webkit-scrollbar-track{background:transparent}.ui-modal-body::-webkit-scrollbar-thumb{background:var(--bg-glass);border-radius:var(--radius-xs)}@media (hover:hover){.ui-modal-body::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}}.ui-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:var(--space-4) var(--space-6) var(--space-6);border-top:1px solid var(--border-subtle)}.ui-modal-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);border:none;white-space:nowrap}.ui-modal-btn:focus-visible{outline:1px solid var(--border-strong);outline-offset:2px}.ui-modal-btn-secondary{background:var(--bg-accent-subtle);border:1px solid var(--modal-border);color:var(--modal-text-primary)}@media (hover:hover){.ui-modal-btn-secondary:hover{background:var(--bg-glass);border-color:var(--modal-border-hover)}}.ui-modal-btn-secondary:active{transform:scale(.98)}.ui-modal-btn-primary{background:var(--modal-accent-green);color:var(--text-on-brand);box-shadow:var(--glow-green)}@media (hover:hover){.ui-modal-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(var(--brand-green-rgb),.35);filter:brightness(1.05)}}.ui-modal-btn-primary:active{transform:translateY(0) scale(.98)}.ui-modal-btn-danger{background:var(--bg-error-subtle);color:var(--text-error);border:1px solid var(--border-error)}@media (hover:hover){.ui-modal-btn-danger:hover{background:rgba(var(--brand-red-rgb),.18);border-color:rgba(var(--brand-red-rgb),.35)}}.ui-modal-btn-danger:active{transform:scale(.98)}.ui-modal-input{width:100%;padding:14px var(--space-4);background:var(--bg-overlay-light);border:1px solid var(--modal-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--modal-text-primary);outline:none;transition:all var(--transition-normal);caret-color:var(--modal-accent)}.ui-modal-input::placeholder{color:var(--text-disabled)}@media (hover:hover){.ui-modal-input:hover{border-color:var(--modal-border-hover);background:var(--bg-overlay-light)}}.ui-modal-input:focus{border-color:var(--border-strong);background:var(--bg-overlay-light);box-shadow:none}.ui-modal-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-muted);margin-bottom:var(--space-2)}@media (max-width:768px){.ui-modal-overlay{padding:var(--space-4)}.ui-modal-container{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);border-radius:var(--radius-lg)}.ui-modal-lg,.ui-modal-md,.ui-modal-sm,.ui-modal-xl{max-width:none;width:100%}.ui-modal-close{top:var(--space-3);right:var(--space-3);width:44px;height:44px}.ui-modal-close svg{width:18px;height:18px}.ui-modal-header{padding:var(--space-5) var(--space-5) 0}.ui-modal-title{font-size:var(--text-lg)}.ui-modal-body{padding:var(--space-4) var(--space-5)}.ui-modal-footer{padding:var(--space-3) var(--space-5) var(--space-5);flex-direction:column}.ui-modal-footer>*{width:100%}}@media (max-width:480px){.ui-modal-overlay{padding:var(--space-3)}.ui-modal-container{border-radius:var(--radius-md)}.ui-modal-close{width:44px;height:44px}.ui-modal-header{padding:var(--space-4) var(--space-4) 0}.ui-modal-title{font-size:var(--text-base)}.ui-modal-body{padding:14px var(--space-4)}.ui-modal-footer{padding:10px var(--space-4) var(--space-4);gap:10px}}@media (prefers-reduced-motion:reduce){.ui-modal-container,.ui-modal-overlay{animation:none;opacity:1;transform:none}.ui-modal-close{transition:none}}