@keyframes ws-fade-in{from{opacity:0}to{opacity:1}}
@keyframes ws-rise-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ws-scrim{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:var(--overlay-scrim);animation:ws-fade-in var(--duration-base) var(--ease-standard)}
.ws-scrim--inline{position:absolute}
.ws-dialog{width:min(var(--dialog-width,520px),100%);max-height:calc(100% - 16px);overflow:auto;background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--text-body);animation:ws-rise-in var(--duration-slow) var(--ease-standard)}
.ws-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 0}
.ws-dialog__title{font:var(--type-h2);color:var(--text-strong)}
.ws-dialog__desc{font:var(--type-body);color:var(--text-secondary);margin-top:6px}
.ws-dialog__head .ws-iconbtn{margin:-8px -8px 0 0}
.ws-dialog__body{padding:20px 24px}
.ws-dialog__foot{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;padding:8px 24px 24px}
.ws-toast{display:flex;align-items:flex-start;gap:12px;width:min(400px,100%);padding:14px 12px 14px 16px;border-radius:var(--radius-md);background:var(--surface-inverse);color:#fff;box-shadow:var(--shadow-lg);animation:ws-rise-in var(--duration-slow) var(--ease-standard)}
.ws-toast>.ws-icon{font-size:22px;margin-top:1px;color:#B9D6C3}
.ws-toast--success>.ws-icon{color:#A9D7B3}
.ws-toast--warning>.ws-icon{color:#F2D07E}
.ws-toast--error>.ws-icon{color:#F4AFA2}
.ws-toast--note>.ws-icon{color:#B8CBE0}
.ws-toast__text{flex:1;min-width:0}
.ws-toast__title{font:var(--type-label);font-size:var(--text-md)}
.ws-toast__msg{font:var(--type-body-sm);color:#DCE4E0;margin-top:2px}
.ws-toast__action{margin-top:8px;background:none;border:0;padding:0;color:#fff;font:var(--type-label);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ws-toast .ws-iconbtn{color:#DCE4E0;margin:-6px 0}
.ws-toast .ws-iconbtn:hover{background:rgba(255,255,255,.1);color:#fff}
.ws-tooltip-wrap{position:relative;display:inline-flex}
.ws-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);z-index:50;max-width:260px;width:max-content;padding:7px 11px;border-radius:var(--radius-sm);background:var(--surface-inverse);color:#fff;font:var(--type-caption);font-size:var(--text-sm);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}
.ws-tooltip::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:var(--surface-inverse)}
.ws-tooltip--bottom{bottom:auto;top:calc(100% + 8px);transform:translate(-50%,-4px)}
.ws-tooltip--bottom::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--surface-inverse)}
.ws-tooltip-wrap:hover .ws-tooltip,.ws-tooltip-wrap:focus-within .ws-tooltip,.ws-tooltip--open{opacity:1;transform:translate(-50%,0)}
