.app-tooltip {position:fixed;inset:auto;margin:0;padding:7px 10px;border:0;border-radius:var(--radius-control);width:max-content;max-width:min(280px,calc(100vw - 16px));overflow-wrap:anywhere;background:var(--tooltip-bg);color:var(--surface);font-size:var(--text-sm);line-height:1.5;box-shadow:var(--shadow-tooltip);pointer-events:none;overflow:visible;z-index:2000}
.app-tooltip:before {content:'';position:absolute;width:7px;height:7px;background:inherit;transform:rotate(45deg);left:calc(50% - 3px);bottom:-3px}
.app-tooltip[data-side=bottom]:before {top:-3px;bottom:auto}
.app-tooltip[data-side=right]:before {left:-3px;top:calc(50% - 3px);bottom:auto}
.app-tooltip.tooltip-details {padding:10px 14px;white-space:pre-line;line-height:1.8;font-variant-numeric:tabular-nums;text-align:left}
.confirm-dialog {width:min(450px,calc(100vw - 32px));padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-dialog);background:var(--surface);box-shadow:var(--shadow-dialog);color:var(--ink)}
.confirm-dialog::backdrop {background:var(--overlay)}
.confirm-dialog h2 {font-size:19px;margin:0 0 16px}
.confirm-dialog p {font-size:var(--text-base);color:var(--text-secondary);white-space:pre-wrap;line-height:1.8;margin:0 0 24px}
.confirm-actions {display:flex;justify-content:flex-end;gap:10px}
.confirm-actions button {font-size:var(--text-md);min-width:76px;padding:9px 18px;border-radius:var(--radius-control)}
.confirm-actions button[value=accept]:not(.confirm-danger) {background:var(--accent);border-color:var(--accent);color:var(--surface)}
.confirm-actions .confirm-danger {background:var(--danger);border-color:var(--danger);color:var(--surface)}
.confirm-actions .confirm-danger:hover {background:var(--danger-hover)}
.notice-dots {display:inline-block;overflow:hidden;vertical-align:bottom;width:1em;text-align:left;animation:notice-dots 1.2s steps(1,end) infinite}
@keyframes notice-dots {0%,100%{clip-path:inset(0 66% 0 0)}
33%{clip-path:inset(0 33% 0 0)}
66%{clip-path:inset(0)}}
