.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary, #0f0f0f);padding:20px}.error-content{text-align:center;max-width:500px}.error-icon{font-size:80px;margin-bottom:20px}.error-title{color:var(--text-primary, #fff);font-size:28px;font-weight:600;margin:0 0 16px}.error-message{color:var(--text-secondary, #aaa);font-size:16px;line-height:1.6;margin:0 0 24px}.error-details{text-align:left;background:var(--bg-secondary, #1a1a1a);border-radius:8px;padding:12px;margin-bottom:24px}.error-details summary{color:var(--text-secondary, #aaa);cursor:pointer;font-size:14px}.error-details pre{color:#ff6b6b;font-size:12px;overflow-x:auto;margin:12px 0 0;white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;gap:12px;justify-content:center}.error-actions .btn-primary,.error-actions .btn-secondary{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.error-actions .btn-primary{background:var(--primary-color, #ff4444);color:#fff}.error-actions .btn-primary:hover{opacity:.9;transform:translateY(-1px)}.error-actions .btn-secondary{background:var(--bg-secondary, #333);color:var(--text-primary, #fff)}.error-actions .btn-secondary:hover{background:var(--bg-hover, #444)}.loading-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--bg-primary, #0f0f0f);z-index:9999}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px}.loading-spinner{border-radius:50%;border-style:solid;border-color:var(--primary-color, #ff4444) transparent transparent transparent;animation:spin 1s linear infinite}.loading-container.small .loading-spinner{width:20px;height:20px;border-width:2px}.loading-container.medium .loading-spinner{width:40px;height:40px;border-width:3px}.loading-container.large .loading-spinner{width:60px;height:60px;border-width:4px}.loading-text{color:var(--text-secondary, #aaa);font-size:14px;margin:0}.loading-container.small .loading-text{font-size:12px}.loading-container.large .loading-text{font-size:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999}.login-modal{background:#fff;border-radius:16px;padding:32px;width:90%;max-width:400px;position:relative}.login-modal .close-btn{position:absolute;top:16px;right:16px;background:none;border:none;font-size:24px;cursor:pointer;color:#666}.login-modal h2{margin:0 0 24px;text-align:center;font-size:24px;color:#171717}.login-modal .form-group{margin-bottom:16px}.login-modal .form-group label{display:block;margin-bottom:6px;font-size:14px;color:#525252}.login-modal .form-group input{width:100%;padding:12px 16px;border:1px solid #e5e5e5;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s;box-sizing:border-box}.login-modal .form-group input:focus{border-color:#000}.login-modal .error-msg{color:#dc2626;font-size:14px;margin-bottom:16px;text-align:center}.login-modal .submit-btn{width:100%;padding:12px;background:#000;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.login-modal .submit-btn:hover{background:#262626}.login-modal .submit-btn:disabled{background:#a3a3a3;cursor:not-allowed}.login-modal .switch-mode{margin-top:20px;text-align:center;font-size:14px;color:#525252}.login-modal .switch-mode button{background:none;border:none;color:#2563eb;cursor:pointer;font-size:14px}.login-modal .switch-mode button:hover{text-decoration:underline}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e5e5e5;--text-primary: #171717;--text-secondary: #525252;--text-tertiary: #737373;--text-disabled: #a3a3a3;--border-color: rgba(0, 0, 0, .06);--border-hover: rgba(0, 0, 0, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--accent-primary: #000000;--accent-secondary: #262626;--accent-hover: #404040;--card-bg: #ffffff;--card-hover: rgba(0, 0, 0, .02);--overlay-bg: rgba(255, 255, 255, .95);--overlay-dark: rgba(0, 0, 0, .5)}[data-theme=dark],.dark{--bg-primary: #0f0f0f;--bg-secondary: #171717;--bg-tertiary: #262626;--text-primary: #f5f5f5;--text-secondary: #d4d4d4;--text-tertiary: #a3a3a3;--text-disabled: #737373;--border-color: rgba(255, 255, 255, .1);--border-hover: rgba(255, 255, 255, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--accent-primary: #ffffff;--accent-secondary: #f5f5f5;--accent-hover: #e5e5e5;--card-bg: #1a1a1a;--card-hover: rgba(255, 255, 255, .05);--overlay-bg: rgba(0, 0, 0, .95);--overlay-dark: rgba(0, 0, 0, .8)}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}*{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}*:not(.theme-transition){transition-property:none}.theme-transition{transition:all .3s ease}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#171717;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,#root{min-height:100vh}
