.ui-modal-overlay{position:fixed;inset:0;background:var(--clr-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:1000;animation:ui-modal-fade-in var(--duration-base) var(--ease-out)}@keyframes ui-modal-fade-in{0%{opacity:0}to{opacity:1}}.ui-modal-panel{position:relative;background:var(--clr-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-height:min(94vh,920px);display:flex;flex-direction:column;overflow:hidden;outline:none}.ui-modal-sm{max-width:400px}.ui-modal-md{max-width:560px}.ui-modal-lg{max-width:760px}.ui-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--clr-border);flex-shrink:0}.ui-modal-title{font-size:var(--text-lg);font-weight:700;color:var(--app-text-primary);margin:0}.ui-modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--app-text-faint);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.ui-modal-close svg{width:18px;height:18px}.ui-modal-close:hover:not(:disabled){background:var(--clr-surface-2);color:var(--app-text-primary)}.ui-modal-close:focus-visible{outline:2px solid var(--clr-accent-light);outline-offset:2px}.ui-modal-close:disabled{cursor:not-allowed;opacity:.4}.ui-modal-body{padding:var(--space-6);overflow-y:auto;color:var(--app-text-primary)}.ui-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--clr-border);flex-shrink:0}.ui-modal-busy{position:absolute;inset:0;z-index:2;background:var(--clr-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:ui-modal-fade-in var(--duration-base) var(--ease-out)}.ui-modal-busy-card{background:var(--clr-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);max-width:280px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.ui-modal-busy-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--clr-accent-muted);border-top-color:var(--clr-accent);animation:ui-modal-spin .7s linear infinite}@keyframes ui-modal-spin{to{transform:rotate(1turn)}}.ui-modal-busy-message{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);color:var(--app-text-primary)}@media (max-width:480px){.ui-modal-body,.ui-modal-footer,.ui-modal-header{padding:var(--space-4)}}.ui-card{border-radius:var(--radius-lg);padding:var(--space-5)}.ui-card-default{background:var(--clr-surface);border:1px solid var(--clr-border);box-shadow:var(--shadow-sm)}.ui-card-quiet{background:var(--clr-surface-2);border:1px solid transparent}.ui-card-interactive{cursor:pointer;transition:box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),transform .12s var(--ease-out)}.ui-card-interactive:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-accent)}.ui-card-interactive:active{transform:scale(.995)}