.backdrop { position: fixed; inset: 0; z-index: 1000; /* above the future feature-modal layer (discard-over-modal) */ display: flex; align-items: center; justify-content: center; padding: var(--space-5); background: rgb(0 0 0 / 0.5); } .dialog { width: 100%; max-width: 28rem; display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); background: var(--layer-01); border: var(--border-width) solid var(--border); border-radius: var(--radius); /* Minimal shadow, reserved for true overlays (doc ยง09). */ box-shadow: 0 2px 12px rgb(0 0 0 / 0.3); } .title { margin: 0; font-size: 16px; font-weight: 600; color: var(--text); } .message { margin: 0; font-size: 14px; line-height: 1.4; color: var(--text-secondary); } .actions { display: flex; justify-content: flex-end; gap: var(--space-3); margin-top: var(--space-2); } .cancel, .confirm { height: 40px; padding: 0 var(--space-5); border: var(--border-width) solid transparent; border-radius: var(--radius); font: inherit; font-weight: 600; cursor: pointer; transition: background var(--dur-fast) var(--ease); } .cancel { background: transparent; border-color: var(--border-strong); color: var(--text); } .cancel:hover { background: var(--layer-02); } .confirm { background: var(--accent); color: var(--accent-contrast); } .confirm:hover { background: var(--accent-hover); } .danger { background: var(--support-error); color: var(--on-status); } .danger:hover { /* Slightly darken; the error token already carries the meaning. */ filter: brightness(0.92); } .cancel:focus-visible, .confirm:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }