/* ── Dialog ─────────────────────────────────────────────────── */
.sk-dialog__scrim{position:fixed;inset:0;background:rgba(11,22,32,.55);display:grid;place-items:center;padding:var(--space-5);z-index:100;animation:sk-fade var(--dur-base) var(--ease-out)}
.sk-dialog{position:relative;width:100%;background:var(--surface-card);border:var(--border-w-thick) solid var(--border-strong);border-radius:var(--radius-panel);box-shadow:var(--shadow-hard-xl);overflow:hidden;animation:sk-pop var(--dur-slow) var(--ease-overshoot)}
.sk-dialog--sm{max-width:400px}.sk-dialog--md{max-width:540px}.sk-dialog--lg{max-width:760px}
.sk-dialog__stripe{height:var(--space-2);background:var(--stripe-3)}
.sk-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) var(--space-6) var(--space-3)}
.sk-dialog__title{font:var(--type-heading-md);color:var(--text-strong)}
.sk-dialog__body{padding:0 var(--space-6) var(--space-6);font:var(--type-body-md);color:var(--text-body)}
.sk-dialog__foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:var(--border-w) solid var(--border-subtle);background:var(--surface-sunken)}
@keyframes sk-fade{from{opacity:0}to{opacity:1}}
@keyframes sk-pop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}

/* ── Toast ──────────────────────────────────────────────────── */
.sk-toast-stack{position:fixed;bottom:var(--space-6);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:var(--space-3);z-index:200;width:min(420px,calc(100vw - var(--space-10)))}
.sk-toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface-inverse);color:var(--grey-0);border:var(--border-w) solid var(--border-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-hard-md);font:var(--type-body-sm);font-weight:var(--fw-bold);animation:sk-toast-in var(--dur-slow) var(--ease-overshoot)}
.sk-toast--success{background:var(--green-600)}
.sk-toast--danger{background:var(--red-600)}
.sk-toast--warning{background:var(--yellow-400);color:var(--ink)}
.sk-toast--info{background:var(--blue-700)}
.sk-toast__text{flex:1}
.sk-toast__close{border:0;background:transparent;color:inherit;cursor:pointer;opacity:.7;padding:0;display:grid;place-items:center}
.sk-toast__close:hover{opacity:1}
@keyframes sk-toast-in{from{opacity:0;transform:translateY(20px) scale(.94)}to{opacity:1;transform:none}}

/* ── Tooltip ────────────────────────────────────────────────── */
.sk-tooltip{position:relative;display:inline-flex}
.sk-tooltip__bubble{position:absolute;z-index:50;padding:var(--space-2) var(--space-3);background:var(--ink);color:var(--grey-0);font:var(--type-body-sm);font-weight:var(--fw-medium);white-space:nowrap;border-radius:var(--radius-sm);pointer-events:none;opacity:0;transition:opacity var(--dur-fast) linear,transform var(--dur-fast) var(--ease-snap)}
.sk-tooltip__bubble--top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}
.sk-tooltip__bubble--bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%,-4px)}
.sk-tooltip__bubble--left{right:calc(100% + 8px);top:50%;transform:translate(4px,-50%)}
.sk-tooltip__bubble--right{left:calc(100% + 8px);top:50%;transform:translate(-4px,-50%)}
.sk-tooltip:hover .sk-tooltip__bubble,.sk-tooltip:focus-within .sk-tooltip__bubble{opacity:1}
.sk-tooltip:hover .sk-tooltip__bubble--top,.sk-tooltip:focus-within .sk-tooltip__bubble--top{transform:translate(-50%,0)}
.sk-tooltip:hover .sk-tooltip__bubble--bottom,.sk-tooltip:focus-within .sk-tooltip__bubble--bottom{transform:translate(-50%,0)}
.sk-tooltip:hover .sk-tooltip__bubble--left,.sk-tooltip:focus-within .sk-tooltip__bubble--left{transform:translate(0,-50%)}
.sk-tooltip:hover .sk-tooltip__bubble--right,.sk-tooltip:focus-within .sk-tooltip__bubble--right{transform:translate(0,-50%)}
