.toast-stack{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000;display:flex;flex-direction:column;gap:.625rem;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;min-width:280px;max-width:380px;padding:.75rem .875rem;border-radius:var(--radius-md, 8px);box-shadow:0 4px 16px #0000002e,0 1px 4px #0000001f;color:#fff;pointer-events:all;animation:toast-slide-in .22s cubic-bezier(.34,1.56,.64,1) both;word-break:break-word}.toast--success{background:#2e7d32;border-left:4px solid #1b5e20}.toast--error{background:#c62828;border-left:4px solid #8b1a1a}.toast--info{background:#00838f;border-left:4px solid #006064}.toast__icon{flex-shrink:0;width:1.375rem;height:1.375rem;border-radius:50%;background:#ffffff38;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;line-height:1;margin-top:.05rem}.toast__body{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.toast__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.85;line-height:1}.toast__message{font-size:.875rem;line-height:1.4;opacity:.97}.toast__dismiss{flex-shrink:0;background:none;border:none;color:#ffffffb3;cursor:pointer;padding:0;font-size:.75rem;line-height:1;margin-top:.1rem;transition:color .15s ease;outline:none}.toast__dismiss:hover{color:#fff}.toast__dismiss:focus-visible{outline:2px solid rgba(255,255,255,.7);border-radius:2px}@keyframes toast-slide-in{0%{opacity:0;transform:translate(calc(100% + 1.5rem))}to{opacity:1;transform:translate(0)}}html.dark .toast--success{background:#1b5e20;border-left-color:#0a3d0f}html.dark .toast--error{background:#8b1a1a;border-left-color:#5c0f0f}html.dark .toast--info{background:#006064;border-left-color:#004044}html.dark .toast{box-shadow:0 4px 20px #00000073,0 1px 6px #0000004d}@media(max-width:480px){.toast-stack{bottom:1rem;right:1rem;left:1rem}.toast{min-width:0;max-width:100%}}html.dark{--color-surface: #23262a;--filter-input-bg: #2d3035;--color-text: #e1e3e5;--color-text-muted: #9aa0a6;--color-text-dark: #f0f1f2;--color-text-secondary: #9aa0a6;--color-text-muted-dark: #9aa0a6;--color-text-body: #c4c8cc;--color-label: #b0b6bc;--color-border: #3d4147;--color-border-medium: #2d3035;--color-border-light: #2d3035;--color-bg-light: #1e2124;--color-teal-bg: #0a2a2e;--color-teal-bg-light: #0d2f33;--color-error: #ff6b6b;--color-error-dark: #ff4444;--color-warning-bg: #2a2000;--color-warning-text: #f0c060;--color-warning-border: #6a5000}:root{--color-primary: #0066cc;--color-success: #4CAF50;--color-danger: #d32f2f;--color-text: #333;--color-text-muted: #999;--color-text-dark: #212529;--color-text-secondary: #666;--color-text-muted-dark: #6c757d;--color-text-body: #495057;--color-label: #555;--color-border: #ccc;--color-positive: #2e7d32;--color-negative: #d32f2f;--color-teal: #17a2b8;--color-teal-dark: #138496;--color-teal-bg: #e7f5f7;--color-teal-bg-light: #f1f8f9;--color-border-medium: #dee2e6;--color-border-light: #e9ecef;--color-bg-light: #f8f9fa;--color-error: #e74c3c;--color-error-dark: #c0392b;--color-chart-positive: #02a7b4;--color-surface: #ffffff;--color-chart-negative: #71001a;--color-warning-bg: #fff3cd;--color-warning-text: #856404;--color-warning-border: #ffc107;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--z-sticky: 10;--z-header: 100;--z-modal: 1000}.vote-btn{background:var(--color-surface);border:2px solid #e0e0e0;border-radius:var(--radius-sm);font-size:.9rem;transition:all .2s;cursor:pointer;flex-shrink:0}.vote-btn.upvote{color:var(--color-teal);border-color:var(--color-teal)}.vote-btn.downvote{color:var(--color-error);border-color:var(--color-error)}.vote-btn:hover:not(:disabled){transform:scale(1.1)}.vote-btn.active.upvote{background:var(--color-teal);color:#fff;border-color:var(--color-teal-dark);font-weight:700}.vote-btn.active.downvote{background:var(--color-error);color:#fff;border-color:var(--color-error-dark);font-weight:700}.vote-btn:disabled{cursor:not-allowed;opacity:.5}.vote-count{font-weight:600;font-size:.9rem;min-width:auto;line-height:1}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal-content{background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);width:90%;max-width:400px;box-shadow:0 10px 40px #0003}.modal-content.large{max-width:600px;max-height:80vh;overflow-y:auto}.modal-content h2{margin-bottom:1.5rem;color:var(--color-text)}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem;justify-content:flex-end}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-label)}.form-group input{width:100%;padding:.8rem;border:2px solid var(--color-border-medium);border-radius:6px;font-size:1rem}.form-group input:focus{outline:none;border-color:var(--color-teal)}.error-message{padding:.8rem;background:var(--color-error-bg, #fee);color:#c33;border-radius:6px;margin:1rem 0}.error-boundary-container{padding:2rem;text-align:center;max-width:600px;margin:4rem auto}.error-boundary-container p{color:var(--color-text-secondary);margin-bottom:1rem}.error-boundary-refresh-btn{padding:.75rem 1.5rem;background:var(--color-teal);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem}.error-boundary-details{margin-top:2rem;text-align:left}.error-boundary-details summary{cursor:pointer;color:var(--color-text-secondary)}.error-boundary-details pre{background:var(--color-bg-light);padding:1rem;border-radius:var(--radius-sm);overflow:auto;font-size:.875rem}.loading-spinner-fullpage{display:flex;justify-content:center;align-items:center;height:100vh}.loading-spinner-ring{width:48px;height:48px;border:4px solid var(--color-border, #e0e0e0);border-top:4px solid var(--color-teal);border-radius:50%;animation:loading-spinner-spin 1s linear infinite}@keyframes loading-spinner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.modal-content{padding:1.5rem;width:95%}.modal-actions{flex-direction:column}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,var(--color-teal) 0%,var(--color-teal-dark) 100%);min-height:100vh}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none}button:disabled{cursor:not-allowed;opacity:.6}.tab:active{transform:translateZ(0)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img{content-visibility:auto}
