/* Toast 组件 - 毛玻璃风格 */
.toast-container{position:fixed;top:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.toast{pointer-events:auto;min-width:300px;max-width:380px;background:rgba(255,255,255,0.85);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-radius:14px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.08),0 2px 8px rgba(0,0,0,0.04);border:1px solid rgba(255,255,255,0.5);transform:translateX(120%);opacity:0;transition:transform .5s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease}
.toast.show{transform:translateX(0);opacity:1}
.toast.hiding{transform:translateX(120%);opacity:0}
.toast-main{display:flex;align-items:flex-start;gap:12px;padding:14px 16px}
.toast-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.toast.success .toast-icon{background:rgba(61,124,95,0.12);color:#3d7c5f}
.toast.error .toast-icon{background:rgba(192,57,43,0.12);color:#c0392b}
.toast.warning .toast-icon{background:rgba(154,123,60,0.12);color:#9a7b3c}
.toast.info .toast-icon{background:rgba(var(--oc-primary-rgb),0.12);color:var(--oc-primary)}
.toast-body{flex:1;min-width:0}
.toast-title{font-weight:600;font-size:13px;color:#1a1a1a;line-height:1.4}
.toast-message{color:var(--oc-text-subtle);font-size:12px;margin-top:2px;line-height:1.4}
.toast-close{color:var(--oc-text-muted-2);padding:2px;margin:-2px -4px 0 0;background:none;border:none;cursor:pointer;transition:color .2s;font-size:14px;line-height:1}
.toast-close:hover{color:var(--oc-text-strong)}
/* Confirm 组件 */
.confirm-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:99998;align-items:center;justify-content:center}
.confirm-overlay.show{display:flex}
.confirm-box{background:rgba(255,255,255,0.92);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-radius:14px;width:100%;max-width:380px;box-shadow:0 20px 40px rgba(var(--oc-primary-rgb),0.2);border:1px solid rgba(255,255,255,0.5);animation:confirmSlideIn .3s cubic-bezier(.175,.885,.32,1.275)}
.confirm-header{padding:20px 24px;border-bottom:1px solid var(--oc-border);display:flex;justify-content:space-between;align-items:center}
.confirm-title{font-size:16px;font-weight:600;color:var(--oc-text-strong)}
.confirm-close{width:32px;height:32px;border:1px solid var(--oc-border);background:#fff;border-radius:8px;color:var(--oc-primary);font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
.confirm-close:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}
.confirm-body{padding:24px;text-align:center}
.confirm-message{font-size:14px;color:var(--oc-text-strong);line-height:1.6}
.confirm-footer{padding:16px 24px;border-top:1px solid var(--oc-border);display:flex;gap:12px;justify-content:flex-end}
.confirm-btn{padding:8px 20px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;border:none}
.confirm-btn-cancel{background:#fff;border:1px solid var(--oc-border);color:var(--oc-primary)}
.confirm-btn-cancel:hover{background:var(--oc-surface);border-color:var(--oc-chip-border)}
.confirm-btn-ok{background:linear-gradient(135deg,var(--oc-primary),var(--oc-text-strong));color:#fff}
.confirm-btn-ok:hover{box-shadow:0 4px 12px rgba(var(--oc-primary-rgb),0.3)}
@keyframes confirmSlideIn{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}
