.ds-modal-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--overlay);animation:ds-modal-fade var(--dur) var(--ease)}.ds-modal-panel{display:flex;flex-direction:column;width:100%;max-width:520px;max-height:90vh;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);overflow:hidden;outline:none;animation:ds-modal-rise var(--dur) var(--ease)}.ds-modal-panel.sm{max-width:380px}.ds-modal-panel.md{max-width:520px}.ds-modal-panel.lg{max-width:760px}.ds-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);flex-shrink:0}.ds-modal-title{font-size:var(--fs-h3);line-height:var(--lh-h3);font-weight:700;color:var(--text-strong);margin:0;min-width:0}.ds-modal-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);cursor:pointer;-webkit-margin-start:auto;margin-inline-start:auto;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ds-modal-close:hover{background:var(--surface-2);color:var(--text-strong)}.ds-modal-body{flex:1 1;min-height:0;overflow-y:auto;padding:var(--space-2) var(--space-5) var(--space-5);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text)}.ds-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--border);flex-shrink:0}.ds-alertdialog .ds-modal-body{padding:var(--space-6) var(--space-5) var(--space-4)}.ds-alertdialog-desc{margin:var(--space-2) 0 0;font-size:var(--fs-small);line-height:var(--lh-body);color:var(--text-muted)}.ds-alertdialog-foot{border-top:0;padding-top:var(--space-2)}@keyframes ds-modal-fade{0%{opacity:0}to{opacity:1}}@keyframes ds-modal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}