body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;font-family:Century Gothic,Twentieth Century,Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;letter-spacing:-.01em;margin:0;text-rendering:optimizeLegibility}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.toast-container{display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.toast{animation:toastSlideIn .3s ease-out;background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 10px 40px #00000026;overflow:hidden;pointer-events:all;position:relative}.toast-content{gap:12px;padding:16px 20px}.toast-content,.toast-icon{align-items:center;display:flex}.toast-icon{border-radius:50%;flex-shrink:0;font-size:14px;font-weight:600;height:24px;justify-content:center;width:24px}.toast-message{color:#1f2937;flex:1 1;font-size:14px;font-weight:500;line-height:1.5}.toast-action{background:#0000;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s ease}.toast-action:hover{background:#f3f4f6;border-color:#d1d5db}.toast-close{align-items:center;background:#0000;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:4px;transition:all .2s ease}.toast-close:hover{background:#f3f4f6;color:#374151}.toast-progress{background:#0000000d;bottom:0;height:3px;left:0;position:absolute;right:0}.toast-progress-bar{animation:toastProgress linear forwards;background:currentColor;height:100%}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes toastProgress{0%{width:100%}to{width:0}}@media (max-width:768px){.toast-container{left:10px;max-width:none;right:10px;top:10px}.toast-content{padding:12px 16px}.toast-message{font-size:13px}}.error-boundary{align-items:center;background:#f9fafb;display:flex;justify-content:center;min-height:100vh;padding:20px}.error-boundary-content{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;max-width:600px;padding:40px;text-align:center}.error-icon{color:#ef4444;display:flex;justify-content:center;margin-bottom:20px}.error-boundary-content h2{color:#1f2937;font-size:24px;font-weight:600;margin:0 0 12px}.error-boundary-content p{color:#6b7280;font-size:16px;line-height:1.5;margin:0 0 24px}.error-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}.error-button-primary,.error-button-secondary{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s ease}.error-button-primary{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary) 100%);color:#fff}.error-button-primary:hover{box-shadow:0 4px 12px #7b1f3b4d;transform:translateY(-2px)}.error-button-secondary{background:#f3f4f6;color:#374151}.error-button-secondary:hover{background:#e5e7eb}.loading-fullscreen{background:#f9fafb;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-container,.loading-fullscreen{align-items:center;display:flex;justify-content:center}.loading-container{min-height:200px;padding:40px}.loading-content{align-items:center;display:flex;flex-direction:column;gap:20px}.loading-message{animation:pulse 2s ease-in-out infinite;color:#666;color:var(--color-text-body,#666);font-size:14px;font-weight:500;margin:0}.spinner{display:inline-block;position:relative}.spinner-ring{animation:spin 1s linear infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--color-primary,#7b1f3b);height:100%;position:absolute;width:100%}.spinner-ring:first-child{animation-delay:0s}.spinner-ring:nth-child(2){animation-delay:.2s;border-top-color:#d2691e;border-top-color:var(--color-secondary,#d2691e);height:80%;left:10%;top:10%;width:80%}.spinner-ring:nth-child(3){animation-delay:.4s;border-top-color:#7b1f3b80;height:60%;left:20%;top:20%;width:60%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:#f0f0f0;border-radius:12px;overflow:hidden;position:relative}@media (max-width:768px){.loading-container{min-height:150px;padding:20px}.loading-message{font-size:12px}}.App{margin:0;padding:0}*,.App{box-sizing:border-box}