.toast-viewport{position:fixed;inset-block-end:var(--space-6);inset-inline-end:var(--space-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-3);max-width:min(420px,calc(100vw - 2 * var(--space-4)));pointer-events:none;padding-block-end:env(safe-area-inset-bottom)}.toast-viewport>*{pointer-events:auto}.toast{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border-default);border-inline-start:3px solid var(--color-accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:toast-in .18s var(--ease-out);min-width:280px}.toast--success{border-inline-start-color:var(--color-success)}.toast--warning{border-inline-start-color:var(--color-warning)}.toast--error{border-inline-start-color:var(--color-danger)}.toast--info{border-inline-start-color:var(--color-info)}.toast__icon{flex-shrink:0;inline-size:20px;block-size:20px;display:flex;align-items:center;justify-content:center;color:var(--color-accent)}.toast--success .toast__icon{color:var(--color-success)}.toast--warning .toast__icon{color:var(--color-warning)}.toast--error .toast__icon{color:var(--color-danger)}.toast--info .toast__icon{color:var(--color-info)}.toast__body{flex:1;min-width:0}.toast__title{font-weight:var(--font-semibold);font-size:var(--text-sm);line-height:var(--leading-snug);margin:0 0 2px}.toast__message{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text-secondary);word-break:break-word}.toast__action{margin-block-start:var(--space-2);background:transparent;border:none;color:var(--color-accent);font-weight:var(--font-medium);font-size:var(--text-sm);padding:0;cursor:pointer}.toast__action:hover{color:var(--color-accent-hover)}.toast__action:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.toast__close{flex-shrink:0;inline-size:24px;block-size:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background-color .15s,color .15s}.toast__close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.toast__close:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.confirm-overlay{position:fixed;inset:0;z-index:var(--z-modal, 9000);display:flex;align-items:center;justify-content:center;padding:var(--space-4, 1rem);background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:confirm-overlay-in .16s ease-out}.confirm-dialog{width:100%;max-width:420px;background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, .4));padding:var(--space-5, 1.25rem);animation:confirm-dialog-in .18s ease-out}.confirm-dialog__title{margin:0 0 var(--space-2, .5rem);font-size:var(--font-size-lg, 1.125rem);font-weight:600;color:var(--color-text-primary)}.confirm-dialog__description{margin:0 0 var(--space-5, 1.25rem);font-size:var(--font-size-sm, .875rem);line-height:1.55;color:var(--color-text-secondary)}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-2, .5rem)}.confirm-dialog--danger .confirm-dialog__title{color:var(--color-danger)}@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.confirm-overlay,.confirm-dialog{animation:none}}.loading-spinner{display:inline-flex;align-items:center;justify-content:center}.loading-logo{width:100%;height:100%}.tooltip{position:fixed;z-index:1000;padding:.5rem .75rem;background:var(--color-bg-inverse, #1a1a1a);color:var(--color-text-inverse, #ffffff);border-radius:4px;font-size:.875rem;line-height:1.4;max-width:250px;box-shadow:0 2px 8px #00000026;pointer-events:none;white-space:normal;word-wrap:break-word;animation:tooltipFadeIn .2s ease-out}.tooltip:before{content:"";position:absolute;width:0;height:0;border:6px solid transparent}.tooltip-top:before{bottom:-12px;left:50%;transform:translate(-50%);border-top-color:var(--color-bg-inverse, #1a1a1a)}.tooltip-bottom:before{top:-12px;left:50%;transform:translate(-50%);border-bottom-color:var(--color-bg-inverse, #1a1a1a)}.tooltip-left:before{right:-12px;top:50%;transform:translateY(-50%);border-left-color:var(--color-bg-inverse, #1a1a1a)}.tooltip-right:before{left:-12px;top:50%;transform:translateY(-50%);border-right-color:var(--color-bg-inverse, #1a1a1a)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.toggle-root{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.toggle-root:has(.toggle-input:disabled){cursor:not-allowed;opacity:.6}.toggle-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toggle-track{position:relative;width:51px;height:31px;flex-shrink:0;border-radius:31px;background-color:var(--toggle-track-off, #e9e9eb);transition:background-color .2s ease}.toggle-track[data-checked=true]{background-color:var(--toggle-track-on, #34c759)}.toggle-root:focus-within .toggle-track{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.toggle-thumb{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background-color:#fff;box-shadow:0 2px 4px #0003;transition:transform .2s ease}.toggle-track[data-checked=true] .toggle-thumb{transform:translate(20px)}.toggle-label{font-size:inherit;color:inherit;cursor:inherit;user-select:none}.toggle-root:has(.toggle-input:disabled) .toggle-label{cursor:not-allowed}.particle-background-wrapper{position:relative;width:100%;height:100%;overflow:hidden}.particle-background{position:absolute;top:0;left:0;width:100%;height:100%;min-width:100px;min-height:100px;background:#fff;z-index:0;pointer-events:none;display:block}
