:root{--bg-primary:#fff;--bg-secondary:#f5f7fa;--bg-tertiary:#f8f9fa;--text-primary:#2c3e50;--text-secondary:#6b7280;--text-muted:#9ca3af;--border-color:#e5e7eb;--shadow:0 1px 3px #0000001a;--shadow-lg:0 10px 30px #00000026;--nav-bg:#2c3e50;--nav-text:#fff;--accent-primary:#3498db;--accent-success:#2ecc71;--accent-danger:#e74c3c;--accent-warning:#f39c12;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1200px}[data-theme=dark]{--bg-primary:#1a202c;--bg-secondary:#2d3748;--bg-tertiary:#4a5568;--text-primary:#f7fafc;--text-secondary:#e2e8f0;--text-muted:#a0aec0;--border-color:#4a5568;--shadow:0 1px 3px #0000004d;--shadow-lg:0 10px 30px #0006;--nav-bg:#1a202c;--nav-text:#f7fafc;--accent-primary:#63b3ed;--accent-success:#68d391;--accent-danger:#fc8181;--accent-warning:#f6e05e}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;background-color:var(--bg-secondary);color:#2c3e50;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;margin:0;transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:#3498db;color:var(--accent-primary);text-decoration:none;transition:color .2s ease}a:hover{opacity:.8}button{background:none;border:none;cursor:pointer;font-family:inherit}h1,h2,h3,h4,h5,h6{color:#2c3e50;color:var(--text-primary);line-height:1.4;margin:0 0 16px;margin:0 0 var(--spacing-md) 0}h1{font-size:clamp(1.5rem,4vw,2.5rem)}h2{font-size:clamp(1.25rem,3vw,2rem)}h3{font-size:clamp(1.125rem,2.5vw,1.5rem)}p{color:#6b7280;color:var(--text-secondary);margin:0 0 16px;margin:0 0 var(--spacing-md) 0}.loading{color:#6b7280;padding:48px}.error{background-color:#e74c3c1a;border-radius:8px;border-radius:var(--radius-md);color:var(--accent-danger);margin:16px;margin:var(--spacing-md);padding:48px;padding:var(--spacing-2xl);text-align:center}.App{min-height:100vh;position:relative}.auth-container{border:1px solid #ccc;border-radius:5px;box-shadow:0 0 10px #0000001a;margin:100px auto;max-width:400px;padding:20px}.form-group{margin-bottom:15px;text-align:left}.form-group label{display:block}.form-group input{border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}.btn{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 15px}.btn:hover{background-color:#45a049}.stock-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:20px}.stock-card{border:1px solid #ddd;border-radius:5px;padding:15px;text-align:left}.portfolio-container,.transaction-history{margin-top:20px}.error{color:red}.error,.success{margin-bottom:10px}.success{color:green}.loading-spinner-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:40px;position:relative;z-index:1}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:50px;margin-bottom:16px;width:50px}.loading-message{color:#666;font-size:16px;font-weight:500;margin-top:0}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dark-mode .loading-spinner{border-color:#4299e1 #2d3748 #2d3748}.dark-mode .loading-message{color:#a0aec0}.theme-toggle{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .3s ease}.theme-toggle:hover{background-color:#ffffff1a}.theme-toggle-track{background-color:#fff3;border:2px solid #ffffff4d;border-radius:12px;height:24px;position:relative;transition:all .3s ease;width:44px}.theme-toggle-thumb{align-items:center;background-color:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;color:#333;display:flex;height:20px;justify-content:center;left:2px;position:absolute;top:2px;transition:all .3s ease;width:20px}[data-theme=dark] .theme-toggle-track{background-color:#ffffff1a;border-color:#fff3}[data-theme=dark] .theme-toggle-thumb{background-color:#2c3e50;color:#f39c12;transform:translateX(20px)}[data-theme=light] .theme-toggle-thumb{background-color:#fff;color:#f39c12;transform:translateX(0)}@media (max-width:768px){.theme-toggle-track{border-radius:10px;height:20px;width:38px}.theme-toggle-thumb{height:16px;left:2px;top:2px;width:16px}.theme-toggle-thumb svg{height:12px;width:12px}[data-theme=dark] .theme-toggle-thumb{transform:translateX(18px)}}.navigation{align-items:center;background-color:var(--nav-bg);box-shadow:var(--shadow);color:var(--nav-text);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);position:sticky;top:0;transition:all .3s ease;z-index:1000}.nav-logo a{color:var(--nav-text);font-size:clamp(1.25rem,4vw,1.5rem);font-weight:700;text-decoration:none;transition:opacity .2s ease}.nav-logo a:hover{opacity:.9}.nav-links{gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.nav-links,.nav-links li{align-items:center;display:flex}.nav-links a{border-radius:var(--radius-sm);color:var(--nav-text);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .2s ease;white-space:nowrap}.nav-links a:hover{background-color:#ffffff1a;transform:translateY(-1px)}.admin-link{background-color:var(--accent-danger)!important;color:#fff!important;font-weight:700}.admin-link:hover{background-color:#c0392b!important;transform:translateY(-1px)}.logout-button{background:none;border:2px solid #ffffff4d;border-radius:var(--radius-sm);color:var(--nav-text);cursor:pointer;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease;white-space:nowrap}.logout-button:hover{background-color:var(--accent-danger);border-color:var(--accent-danger);transform:translateY(-1px)}.changelog-button{align-items:center;background:none;border:2px solid #ffffff4d;border-radius:var(--radius-sm);color:var(--nav-text);cursor:pointer;display:flex;font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease;white-space:nowrap}.changelog-button:hover{background-color:var(--accent-primary);border-color:var(--accent-primary);transform:translateY(-1px)}@media (max-width:768px){.navigation{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);position:static}.nav-logo{text-align:center;width:100%}.nav-links{flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center;width:100%}.logout-button,.nav-links a{border-radius:var(--radius-md);font-size:.9rem;padding:var(--spacing-sm) var(--spacing-md)}.nav-links li:has(.theme-toggle){align-items:center;display:flex;justify-content:center}}@media (max-width:480px){.navigation{padding:var(--spacing-md) var(--spacing-md)}.nav-links{align-items:center;flex-direction:column;gap:var(--spacing-sm);width:100%}.logout-button,.nav-links a{min-width:140px;padding:var(--spacing-md) var(--spacing-lg);text-align:center;width:auto}.nav-links li:has(.theme-toggle){margin-bottom:var(--spacing-sm);order:-1}}.logout-button:focus,.nav-links a:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.nav-logo{align-items:center;display:flex;gap:var(--spacing-sm)}.env-badge{animation:pulse 2s ease-in-out infinite alternate;background-color:#ff6b35;border-radius:4px;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.5px;padding:2px 6px;text-transform:uppercase}.chat-container{background-color:#fff;border-radius:8px;bottom:20px;box-shadow:0 2px 10px #0003;display:flex;flex-direction:column;height:400px;overflow:hidden;position:fixed;right:20px;transition:transform .3s ease,opacity .3s ease;width:320px;z-index:100}.chat-container.minimized{transform:translateY(calc(100% - 40px))}.chat-header{align-items:center;background-color:#2c3e50;color:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:10px}.chat-header h3{font-size:16px;margin:0}.chat-toggle-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:18px}.chat-messages{display:flex;flex-direction:column;flex-grow:1;gap:8px;overflow-y:auto;padding:10px}.message{border-radius:16px;max-width:80%;padding:8px 12px;word-break:break-word}.message.own{align-self:flex-end;background-color:#3498db;color:#fff}.message.other{align-self:flex-start;background-color:#f1f1f1;color:#333}.message-user{display:block;font-size:12px;font-weight:700;margin-bottom:2px}.message-content{font-size:14px}.message-time{color:#ffffffb3;font-size:10px;margin-top:2px;text-align:right}.message.other .message-time{color:#00000080}.chat-form{border-top:1px solid #eee;display:flex;padding:10px}.chat-input{border:1px solid #ddd;border-radius:20px;flex-grow:1;font-size:14px;outline:none;padding:8px 12px}.chat-input:focus{border-color:#3498db}.chat-send-btn{align-items:center;background-color:#3498db;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;margin-left:8px;width:36px}.chat-send-btn:hover{background-color:#2980b9}.chat-send-btn:disabled{background-color:#95a5a6;cursor:not-allowed}.chat-status{color:#7f8c8d;font-size:12px;padding:4px;text-align:center}.empty-chat{align-items:center;color:#95a5a6;display:flex;flex-direction:column;font-style:italic;height:100%;justify-content:center;padding:20px;text-align:center}.empty-chat p{margin:10px 0}@media (max-width:768px){.chat-container{border-radius:0;bottom:0;height:100vh;max-width:100%;right:0;width:100%}.chat-container.minimized{transform:translateY(calc(100% - 50px))}.chat-header{padding:15px}.chat-header h3{font-size:18px}.chat-messages{padding:15px}.message{max-width:85%}.chat-form{padding:15px}.chat-input{font-size:16px}}@media (max-width:480px){.chat-container{height:100%;left:0;position:fixed;top:0;width:100%;z-index:999}.chat-container.minimized{transform:translateX(100%)}.chat-header{padding:12px}}.news-display{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-light);margin-bottom:1rem;padding:1rem}.news-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.news-header h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.toggle-button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:background-color .2s ease}.toggle-button:hover{background-color:var(--hover-bg)}.news-content{margin-top:.75rem}.news-item{border-bottom:1px solid var(--border-light);padding:.75rem 0}.news-item:last-child{border-bottom:none;padding-bottom:0}.news-title{color:var(--accent-primary);font-size:1rem;font-weight:600;margin:0 0 .5rem}.news-text{color:var(--text-primary);line-height:1.5;margin:0 0 .5rem}.news-meta{display:flex;justify-content:flex-end;margin-top:.5rem}.expiry-info{color:var(--text-muted);font-size:.8rem;font-style:italic}.news-display.empty,.news-display.error,.news-display.loading{padding:1.5rem;text-align:center}.news-display.empty .no-news,.news-display.loading p{color:var(--text-muted);font-style:italic;margin:.5rem 0 0}.error-message{color:var(--error-color);margin:.5rem 0 0}@media (max-width:768px){.news-display{margin-bottom:.75rem;padding:.75rem}.news-header h3{font-size:1rem}.toggle-button{font-size:1.1rem}.news-item{padding:.5rem 0}.news-title{font-size:.95rem}.news-text{font-size:.9rem}}.error-message-container{align-items:center;background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;display:flex;margin:20px 0;padding:16px 20px}.error-message-container.warning{background-color:#ffeaa7;border-color:#fdcb6e;color:#f39c12}.error-message-container.info{background-color:#e3f2fd;border-color:#90caf9;color:#1976d2}.error-icon{flex-shrink:0;font-size:24px;margin-right:12px}.error-content{flex:1 1}.error-text{font-size:14px;line-height:1.5;margin:0}.retry-button{background-color:#fff;border:1px solid;border-radius:4px;color:inherit;cursor:pointer;font-size:13px;margin-top:10px;padding:6px 16px;transition:all .2s}.retry-button:hover{background-color:currentColor;color:#fff}.dark-mode .error-message-container{background-color:#3e2723;border-color:#5d4037;color:#ff8a80}.dark-mode .error-message-container.warning{background-color:#3e2f23;border-color:#5d4f37;color:#ffb74d}.dark-mode .error-message-container.info{background-color:#1a237e;border-color:#283593;color:#64b5f6}.dark-mode .retry-button{background-color:#1a1a1a}.dashboard-page{background-color:var(--bg-secondary);min-height:100vh;position:relative;transition:background-color .3s ease;z-index:1}.dashboard-container{margin:0 auto;max-width:var(--container-xl);padding:var(--spacing-lg) var(--spacing-md)}.dashboard-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--spacing-lg);justify-content:space-between;margin-bottom:var(--spacing-xl)}.dashboard-header h1{color:var(--text-primary);font-size:clamp(1.5rem,4vw,2.5rem);margin:0}.portfolio-value{background:linear-gradient(135deg,var(--nav-bg),var(--accent-primary));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;flex-shrink:0;min-width:280px;padding:var(--spacing-lg)}.portfolio-value h2{font-size:1.2rem;margin-bottom:10px;margin-top:0;opacity:.9}.portfolio-value .value{font-size:2.5rem;font-weight:700;margin-bottom:15px}.portfolio-breakdown{border-top:1px solid #fff3;padding-top:15px}.breakdown-item{display:flex;justify-content:space-between;margin-bottom:5px}.dashboard-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr}.dashboard-section{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--spacing-lg);transition:all .3s ease}.dashboard-section:hover{box-shadow:var(--shadow-lg)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-lg)}.section-header h2{color:var(--text-primary);font-size:clamp(1.125rem,2.5vw,1.5rem);margin:0}.view-all{border-radius:var(--radius-sm);color:var(--accent-primary);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .2s ease}.view-all:hover{background-color:#3498db1a;text-decoration:none}.dashboard-table{border-collapse:collapse;font-size:.9rem;width:100%}.dashboard-table th{background-color:var(--bg-tertiary);border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:.875rem;font-weight:600;letter-spacing:.5px;text-align:left;text-transform:uppercase}.dashboard-table td,.dashboard-table th{padding:var(--spacing-md) var(--spacing-md)}.dashboard-table td{border-bottom:1px solid var(--border-color);color:var(--text-secondary)}.dashboard-table tr:last-child td{border-bottom:none}.dashboard-table tr:hover td{background-color:var(--bg-tertiary)}.trade-button{background-color:var(--accent-primary);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);transition:all .2s ease;white-space:nowrap}.trade-button:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.transaction-type{border-radius:var(--radius-sm);font-size:.8rem;padding:2px 8px}.transaction-type.buy{background-color:#2ecc711a;color:var(--accent-success)}.transaction-type.sell{background-color:#e74c3c1a;color:var(--accent-danger)}.empty-list{background-color:var(--bg-tertiary);border:2px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);padding:var(--spacing-2xl);text-align:center}.action-button{background-color:var(--accent-primary);border-radius:var(--radius-sm);display:inline-block;margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);text-decoration:none;transition:all .2s ease}.action-button:hover{background-color:#2980b9;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.price-up td,.value-up td{animation:valueUpPulse 2s}.price-down td,.value-down td{animation:valueDownPulse 2s}@keyframes valueUpPulse{0%,to{background-color:initial}50%{background-color:#2ecc711a}}@keyframes valueDownPulse{0%,to{background-color:initial}50%{background-color:#e74c3c1a}}@media (max-width:768px){.dashboard-container{padding:var(--spacing-md) var(--spacing-sm)}.dashboard-header{align-items:stretch;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.dashboard-header h1{margin-bottom:var(--spacing-sm);text-align:center}.portfolio-value{min-width:0;min-width:auto;text-align:center;width:100%}.dashboard-content{gap:var(--spacing-lg)}.dashboard-section{padding:var(--spacing-md)}.section-header{align-items:flex-start;flex-direction:column;gap:var(--spacing-sm)}.dashboard-table{font-size:.8rem}.dashboard-table td,.dashboard-table th{padding:var(--spacing-sm) var(--spacing-xs)}.trade-button{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}}@media (max-width:480px){.dashboard-container{padding:var(--spacing-sm) var(--spacing-xs)}.portfolio-value{padding:var(--spacing-md)}.portfolio-value .value{font-size:2rem}.dashboard-table{font-size:.75rem}.dashboard-table td,.dashboard-table th{padding:var(--spacing-xs)}.dashboard-table thead{display:none}.dashboard-table tr{background-color:var(--bg-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow);display:block;margin-bottom:var(--spacing-md);padding:var(--spacing-sm)}.dashboard-table td{border:none;display:block;padding:var(--spacing-xs) 0;text-align:left}.dashboard-table td:before{color:var(--text-primary);content:attr(data-label) ": ";font-weight:700}.empty-list{font-size:.9rem;padding:var(--spacing-lg)}}.stock-list-page{background-color:#f5f7fa;min-height:100vh}.stock-list-container{margin:0 auto;max-width:1200px;padding:20px}.stock-list-container h1{color:#2c3e50;margin-bottom:30px;text-align:center}.stock-list-controls{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.stock-search{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px 15px;width:300px}.stock-table{background-color:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%}.stock-table th{background-color:#34495e;color:#fff;cursor:pointer;padding:15px;text-align:left;transition:background-color .3s}.stock-table th:hover{background-color:#2c3e50}.stock-table td{border-bottom:1px solid #eee;padding:15px}.stock-table tbody tr:hover{background-color:#f9f9f9}.price-cell{font-weight:700}.trade-button{background-color:#3498db;display:inline-block;padding:8px 15px;text-decoration:none}.trade-button:hover{background-color:#2980b9}.error,.loading,.no-results{font-size:18px;padding:40px;text-align:center}.error{color:#e74c3c}.no-results{color:#7f8c8d}.price-up td.price-cell{animation:priceUp 2s}.price-down td.price-cell{animation:priceDown 2s}@keyframes priceUp{0%,to{background-color:initial}50%{background-color:#2ecc7133}}@keyframes priceDown{0%,to{background-color:initial}50%{background-color:#e74c3c33}}@media (max-width:768px){.stock-list-container{padding:10px}.stock-list-controls{flex-direction:column;gap:10px}.stock-search{max-width:none;width:100%}.stock-table{display:block}.stock-table thead{display:none}.stock-table tbody{display:block}.stock-table tr{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:block;margin-bottom:15px;padding:15px}.stock-table td{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.stock-table td:last-child{border-bottom:none}.stock-table td:before{color:#666;content:attr(data-label);font-weight:700}.trade-button{display:block;margin-top:10px;text-align:center;width:100%}}@media (max-width:480px){.stock-list-container h1{font-size:1.5rem;margin-bottom:20px}.stock-table tr{padding:10px}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1500}.modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px 24px 16px}.modal-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.close-button{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:1.5rem;font-weight:700;padding:4px 8px;transition:all .2s ease}.close-button:hover:not(:disabled){background-color:#f3f4f6;color:#374151}.close-button:disabled{cursor:not-allowed;opacity:.5}.modal-body{padding:24px}.trade-summary{background-color:#f9fafb;border-radius:8px;margin-bottom:20px;padding:20px}.summary-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.summary-row:last-child{margin-bottom:0}.summary-row .label{color:#6b7280;font-weight:500}.summary-row .value{color:#1f2937;font-weight:600}.buy-action{background-color:#d1fae5;color:#059669}.buy-action,.sell-action{border-radius:4px;font-size:.875rem;padding:2px 8px}.sell-action{background-color:#fee2e2;color:#dc2626}.total-row{border-top:1px solid #e5e7eb;margin-top:12px;padding-top:12px}.total-value{color:#1f2937;font-size:1.125rem;font-weight:700}.confirmation-message{background-color:#fffbeb;border:1px solid #f59e0b;border-radius:8px;color:#92400e;font-weight:500;padding:16px;text-align:center}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;padding:16px 24px 24px}.cancel-button,.confirm-button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.cancel-button{background-color:#f3f4f6;border:1px solid #d1d5db;color:#374151}.cancel-button:hover:not(:disabled){background-color:#e5e7eb;border-color:#9ca3af}.confirm-button{color:#fff;font-weight:600}.buy-confirm{background-color:#059669}.buy-confirm:hover:not(:disabled){background-color:#047857}.sell-confirm{background-color:#dc2626}.sell-confirm:hover:not(:disabled){background-color:#b91c1c}.cancel-button:disabled,.confirm-button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:640px){.modal-content{margin:10px;width:95%}.modal-header{padding:20px 20px 12px}.modal-body{padding:20px}.modal-footer{flex-direction:column;padding:12px 20px 20px}.cancel-button,.confirm-button{width:100%}}.stock-detail-page{background-color:var(--bg-secondary);min-height:100vh;transition:background-color .3s ease}.stock-detail-container{margin:0 auto;max-width:var(--container-lg);padding:var(--spacing-xl) var(--spacing-lg)}.stock-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--spacing-lg);justify-content:space-between;margin-bottom:var(--spacing-xl)}.stock-header h1{align-items:center;color:var(--text-primary);display:flex;flex-wrap:wrap;font-size:clamp(1.5rem,4vw,2.5rem);gap:var(--spacing-md);margin:0}.sector-tag{background-color:var(--accent-primary);border-radius:20px;color:#fff;font-size:.875rem;font-weight:500;padding:var(--spacing-xs) var(--spacing-md);white-space:nowrap}.stock-price{background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:clamp(1.75rem,5vw,2.5rem);font-weight:700;padding:var(--spacing-md) var(--spacing-lg);transition:all .5s ease}.price-up{animation:priceUpPulse 2s}.price-down{animation:priceDownPulse 2s}@keyframes priceUpPulse{0%,to{background-color:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}50%{background-color:#2ecc7133;border-color:var(--accent-success);color:var(--accent-success)}}@keyframes priceDownPulse{0%,to{background-color:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}50%{background-color:#e74c3c33;border-color:var(--accent-danger);color:var(--accent-danger)}}.trade-container{display:flex;gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.trade-form-container,.user-portfolio-summary{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex:1 1;padding:var(--spacing-lg);transition:all .3s ease}.trade-form-container:hover,.user-portfolio-summary:hover{box-shadow:var(--shadow-lg)}.trade-form-container h2,.user-portfolio-summary h2{border-bottom:1px solid #eee;color:#2c3e50;margin-bottom:20px;margin-top:0;padding-bottom:10px}.cash-balance{font-size:1.2rem;margin-bottom:15px}.owned-stock{background-color:#f8f9fa;border-radius:6px;margin-top:20px;padding:15px}.trade-form{gap:15px}.form-group,.trade-form{display:flex;flex-direction:column}.form-group label{font-weight:500;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px}.max-quantity{color:#7f8c8d;font-size:.9rem;margin-top:4px}.total-cost{background-color:#f8f9fa;border-radius:4px;font-size:1.5rem;font-weight:700;padding:10px}.trade-button{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px;transition:background-color .3s}.buy-button{background-color:#2ecc71}.buy-button:hover:not(:disabled){background-color:#27ae60}.sell-button{background-color:#e74c3c}.sell-button:hover:not(:disabled){background-color:#c0392b}.trade-button:disabled{background-color:#95a5a6;cursor:not-allowed}.error-message{background-color:#e74c3c1a;color:#e74c3c;margin-bottom:15px;padding:10px}.success-message{background-color:#2ecc711a;border-radius:4px;color:#2ecc71;margin-bottom:15px;padding:10px}.action-buttons{justify-content:center;margin-top:30px}.back-button,.portfolio-button{border:none;border-radius:4px;cursor:pointer;font-size:16px;padding:10px 20px;transition:background-color .3s}.back-button{background-color:#95a5a6;color:#fff}.back-button:hover{background-color:#7f8c8d}.portfolio-button{background-color:#3498db;color:#fff}.portfolio-button:hover{background-color:#2980b9}.loading{color:var(--text-secondary);font-size:1.125rem;padding:var(--spacing-2xl);text-align:center}@media (max-width:768px){.stock-detail-container{padding:var(--spacing-lg) var(--spacing-md)}.stock-header{gap:var(--spacing-md);text-align:center}.stock-header,.stock-header h1{align-items:center;flex-direction:column}.stock-header h1{gap:var(--spacing-sm)}.stock-price{text-align:center;width:100%}.trade-container{flex-direction:column;gap:var(--spacing-lg)}.trade-form-container,.user-portfolio-summary{padding:var(--spacing-md)}.action-buttons{flex-direction:column;gap:var(--spacing-sm)}.back-button,.portfolio-button{padding:var(--spacing-md) var(--spacing-lg);width:100%}}@media (max-width:480px){.stock-detail-container{padding:var(--spacing-md) var(--spacing-sm)}.stock-header{margin-bottom:var(--spacing-lg)}.sector-tag{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.stock-price{padding:var(--spacing-sm) var(--spacing-md)}.trade-form-container,.user-portfolio-summary{padding:var(--spacing-sm)}.form-group input,.form-group select{font-size:16px}.trade-button{font-size:1rem;padding:var(--spacing-md)}}.leaderboard-page{background-color:#f5f7fa;min-height:100vh}.leaderboard-container{margin:0 auto;max-width:1200px;padding:20px}.leaderboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.leaderboard-header h1{color:#333;font-size:2rem;margin:0}.leaderboard-table{background-color:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 4px 6px #0000001a;overflow:hidden;width:100%}.leaderboard-table th{background-color:#1a1a2e;color:#fff;font-weight:600;padding:15px;text-align:left}.leaderboard-table td{border-bottom:1px solid #eee;padding:15px}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-table tr:hover{background-color:#f5f5f5}.rank{font-size:1.2rem;font-weight:700;text-align:center;width:60px}.rank-1{color:gold}.rank-2{color:silver}.rank-3{color:#cd7f32}.username{font-weight:600}.current-user{background-color:#f0f7ff!important}.refresh-icon{height:16px;width:16px}@media (max-width:768px){.leaderboard-container{padding:10px}.leaderboard-header{flex-direction:column;gap:15px;margin-bottom:20px}.leaderboard-header h1{font-size:1.5rem;text-align:center}.refresh-button{justify-content:center;width:100%}.leaderboard-table{display:block}.leaderboard-table thead{display:none}.leaderboard-table tbody{display:block}.leaderboard-table tr{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:block;margin-bottom:15px;padding:15px}.leaderboard-table td{display:flex;justify-content:space-between;padding:8px 0;text-align:left}.leaderboard-table td:before{color:#666;content:attr(data-label);font-weight:700}.rank{width:auto}.rank,.value{text-align:left}}@media (max-width:480px){.leaderboard-header h1{font-size:1.2rem}.refresh-button{font-size:.9rem;padding:8px 16px}.leaderboard-table tr{padding:10px}}.transactions-page{background-color:#f5f7fa;min-height:100vh}.transactions-container{margin:0 auto;max-width:1200px;padding:20px}.transactions-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.transactions-header h1{color:#333;font-size:2rem;margin:0}.filter-controls{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;justify-content:space-between;margin-bottom:20px;padding:15px}.filter-controls,.filter-group{align-items:center;display:flex}.filter-group{gap:10px}.filter-group label{color:#555;font-weight:500}.filter-group select{background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:8px 12px}.refresh-button{align-items:center;background-color:#4a69bd;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:1rem;gap:8px;padding:10px 20px}.refresh-button:hover{background-color:#1e3799}.transactions-table{background-color:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 4px 6px #0000001a;overflow:hidden;width:100%}.transactions-table th{background-color:#1a1a2e;color:#fff;font-weight:600;padding:15px;text-align:left}.transactions-table td{border-bottom:1px solid #eee;padding:15px}.transactions-table tr:last-child td{border-bottom:none}.transactions-table tr:hover{background-color:#f5f5f5}.transaction-type{padding:5px 10px;text-transform:capitalize}.buy{background-color:#e6f7ff;color:#1890ff}.sell{background-color:#fff2e8;color:#fa541c}.value{font-family:Courier New,monospace;font-weight:600;text-align:right}.loading{height:300px}.error{background-color:#fff0f0;border-left:4px solid #d32f2f;color:#d32f2f;margin:20px 0}.no-data{align-items:center;color:#666;font-style:italic;height:200px}.no-data,.pagination{display:flex;justify-content:center}.pagination{gap:10px;margin-top:20px}.pagination button{background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 16px}.pagination button:disabled{cursor:not-allowed;opacity:.5}.pagination button.active{background-color:#4a69bd;border-color:#4a69bd;color:#fff}@media (max-width:768px){.transactions-container{padding:10px}.transactions-header{flex-direction:column;gap:15px;margin-bottom:20px}.transactions-header h1{font-size:1.5rem;text-align:center}.refresh-button{justify-content:center;width:100%}.filter-controls{flex-direction:column;gap:15px;padding:10px}.filter-group{align-items:stretch;flex-direction:column;width:100%}.filter-group select{width:100%}.transactions-table{display:block}.transactions-table thead{display:none}.transactions-table tbody{display:block}.transactions-table tr{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:block;margin-bottom:15px;padding:15px}.transactions-table td{display:flex;justify-content:space-between;padding:8px 0;text-align:left}.transactions-table td:before{color:#666;content:attr(data-label);font-weight:700}.value{text-align:left}.pagination{flex-wrap:wrap}.pagination button{font-size:.9rem;padding:6px 12px}}@media (max-width:480px){.transactions-header h1{font-size:1.2rem}.refresh-button{font-size:.9rem;padding:8px 16px}.transactions-table tr{padding:10px}}.game-config-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;padding:20px}.game-config-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.game-config-header h2{color:#2c3e50;margin:0}.config-actions{display:flex;gap:10px}.config-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.config-btn:disabled{cursor:not-allowed;opacity:.6}.config-btn.balanced{background-color:#3498db;color:#fff}.config-btn.balanced:hover:not(:disabled){background-color:#2980b9}.config-btn.reset{background-color:#e74c3c;color:#fff}.config-btn.reset:hover:not(:disabled){background-color:#c0392b}.config-btn.save{background-color:#27ae60;color:#fff}.config-btn.save:hover:not(:disabled){background-color:#219a52}.config-tabs{border-bottom:2px solid #e0e0e0;display:flex;margin-bottom:20px}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:14px;margin-bottom:-2px;padding:12px 20px;transition:all .2s ease}.tab:hover{color:#333}.tab.active,.tab:hover{background-color:#f8f9fa}.tab.active{border-bottom-color:#007bff;color:#007bff}.config-content{min-height:300px}.config-group h3{color:#34495e;font-size:18px;margin:0 0 20px}.config-field{margin-bottom:20px}.config-field label{color:#555;display:block;font-weight:600;margin-bottom:5px}.config-field input{border:2px solid #e0e0e0;border-radius:4px;font-size:14px;max-width:300px;padding:10px 12px;transition:border-color .2s ease;width:100%}.config-field input:focus{border-color:#007bff;outline:none}.field-description{color:#666;display:block;font-size:12px;font-style:italic;margin-top:5px}.config-changes-notice{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-size:14px;margin-top:20px;padding:10px 15px}.game-config-loading{align-items:center;color:#666;display:flex;font-size:16px;height:100px;justify-content:center}@media (max-width:768px){.game-config-header{align-items:stretch;flex-direction:column;gap:15px}.config-actions{justify-content:center}.config-tabs{flex-wrap:wrap}.tab{flex:1 1;font-size:13px;min-width:100px;padding:10px 12px;text-align:center}.config-field input{max-width:none}}@media (max-width:480px){.game-config-section{padding:15px}.config-actions{flex-direction:column}.tab{font-size:12px;padding:8px 10px}}.admin-panel-page{background-color:#f5f5f5;min-height:100vh}.admin-panel-container{margin:0 auto;max-width:1200px;padding:30px 20px}.admin-panel-header{border-bottom:2px solid #e0e0e0;margin-bottom:30px;padding-bottom:15px}.admin-panel-header h1{color:#333;font-size:2.4rem;font-weight:700}.error-message{background-color:#ffebee;border-left:5px solid #f44336;color:#c62828}.error-message,.status-message{border-radius:4px;font-weight:500;margin-bottom:20px;padding:15px}.status-message{background-color:#e8f5e9;border-left:5px solid #4caf50;color:#2e7d32}.admin-actions{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:20px}.admin-actions h2{color:#333;font-size:1.5rem;font-weight:600;margin-bottom:20px}.action-buttons{display:flex;flex-wrap:wrap;gap:15px}.action-button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 20px;transition:background-color .2s}.action-button:hover{background-color:#1976d2}.users-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.users-section h2{color:#333;font-size:1.5rem;font-weight:600;margin-bottom:20px}.users-table{border-collapse:collapse;width:100%}.users-table td,.users-table th{border-bottom:1px solid #eaeaea;padding:12px 15px;text-align:left}.users-table th{background-color:#f7f7f7;color:#333;font-weight:600}.users-table tbody tr:hover{background-color:#f5f5f5}.admin-badge{background-color:#2196f3}.admin-badge,.user-badge{border-radius:20px;color:#fff;display:inline-block;font-size:.8rem;font-weight:500;padding:4px 10px}.user-badge{background-color:#9e9e9e}.action-cell{display:flex;gap:8px}.admin-toggle-btn{background-color:#673ab7;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:8px 12px;transition:background-color .2s}.admin-toggle-btn:hover{background-color:#5e35b1}.delete-user-btn{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:8px 12px;transition:background-color .2s}.delete-user-btn:hover{background-color:#d32f2f}.no-users{color:#757575;font-style:italic;padding:30px;text-align:center}.loading{color:#666;font-size:1.2rem;height:100vh}.news-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:20px 0;padding:20px}.news-form{display:flex;flex-direction:column;gap:10px}.news-form input,.news-form textarea{border:1px solid #ccc;border-radius:4px;padding:8px}.portfolio-page{background-color:#ecf0f1;min-height:100vh}.portfolio-container{margin:0 auto;max-width:1200px;padding:20px}.portfolio-header{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;padding:30px}.portfolio-header h1{color:#2c3e50;font-size:2rem;margin:0 0 20px}.portfolio-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-card{background-color:#f8f9fa;border-radius:8px;padding:20px;text-align:center}.summary-card h3{color:#666;font-size:14px;margin:0 0 10px;text-transform:uppercase}.summary-card .value{color:#333;font-size:24px;font-weight:700}.summary-card .percentage{font-size:14px;margin-top:5px}.percentage.positive,.value.positive{color:#28a745}.percentage.negative,.value.negative{color:#dc3545}.portfolio-tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:20px;margin-bottom:20px}.tab-button{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:16px;margin-bottom:-2px;padding:10px 20px;transition:all .3s ease}.tab-button:hover{color:#333}.tab-button.active{border-bottom-color:#007bff;color:#007bff}.portfolio-content{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.stock-info{display:flex;flex-direction:column}.stock-symbol{color:#333;font-weight:600}.stock-name{color:#666;font-size:12px}.gain-loss{align-items:center;display:flex;gap:5px}.gain-loss.positive{color:#28a745}.gain-loss.negative{color:#dc3545}.gain-loss-icon{height:16px;width:16px}.transaction-type{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.transaction-type.buy{background-color:#d4edda;color:#155724}.transaction-type.sell{background-color:#f8d7da;color:#721c24}.empty-portfolio{color:#7f8c8d;padding:30px;text-align:center}.empty-portfolio p{font-size:16px;margin-bottom:15px}.loading{align-items:center;color:#7f8c8d;display:flex;font-size:18px;justify-content:center;min-height:400px}.error{background-color:#f8d7da;border-radius:4px;color:#721c24;margin:20px;padding:15px}@media (max-width:768px){.portfolio-container{padding:10px}.portfolio-header{padding:20px}.portfolio-header h1{font-size:1.5rem}.portfolio-summary{gap:10px;grid-template-columns:1fr 1fr}.summary-card{padding:15px}.summary-card .value{font-size:20px}.portfolio-tabs{gap:10px}.tab-button{font-size:14px;padding:8px 16px}.dashboard-table{display:block}.dashboard-table thead{display:none}.dashboard-table tbody{display:block}.dashboard-table tr{background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:block;margin-bottom:15px;padding:15px}.dashboard-table td{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.dashboard-table td:last-child{border-bottom:none}.dashboard-table td:before{color:#666;content:attr(data-label);flex-shrink:0;font-weight:700;margin-right:10px}}@media (max-width:480px){.portfolio-header{padding:15px}.portfolio-summary{grid-template-columns:1fr}.portfolio-tabs{border-bottom:none;flex-direction:column}.tab-button{border-bottom:1px solid #e0e0e0;text-align:center;width:100%}.tab-button.active{background-color:#f8f9fa}.portfolio-content{padding:10px}}.loading-screen{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-screen,.loading-screen-error{background:#f5f7fa}.loading-content{max-width:400px;padding:2rem;text-align:center}.loading-logo{margin-bottom:2rem}.loading-icon{animation:bounce 1.5s ease-in-out infinite;font-size:4rem;margin-bottom:1rem}.loading-icon-error{animation:shake .5s ease-in-out;color:var(--accent-warning);font-size:4rem;margin-bottom:1rem}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.loading-logo h1{color:#2c3e50;font-size:2rem;margin:0}.loading-message{color:#6b7280;font-size:1.1rem;margin:2rem 0 1.5rem}.loading-progress{background:var(--border-color);border-radius:2px;height:4px;margin-top:var(--spacing-lg);overflow:hidden;width:100%}.loading-progress-bar{background:var(--accent-primary);border-radius:2px;height:100%;transition:width .5s ease}.loading-actions{display:flex;gap:var(--spacing-md);justify-content:center;margin:var(--spacing-lg) 0}.loading-actions button{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);transition:all .2s ease}.btn-retry{background:var(--accent-primary);color:#fff}.btn-retry:hover{background:var(--accent-primary-hover);transform:translateY(-1px)}.btn-reset{background:#0000;border:2px solid var(--border-color);color:var(--text-secondary)}.btn-reset:hover{border-color:var(--accent-danger);color:var(--accent-danger)}.loading-help{color:var(--text-secondary);font-size:.9rem;margin-top:var(--spacing-md)}.loading-content h2{color:var(--text-primary);margin-bottom:1rem}.changelog-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.changelog-modal{animation:slideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:100%}.changelog-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px 28px 16px}.changelog-modal-header h2{align-items:center;color:#111827;display:flex;font-size:1.5rem;font-weight:700;gap:8px;margin:0}.changelog-modal-close{background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;font-size:2rem;line-height:1;padding:4px;transition:all .2s ease}.changelog-modal-close:hover{background-color:#f3f4f6;color:#374151}.changelog-modal-content{flex:1 1;overflow-y:auto;padding:0 28px}.changelog-entry{padding:20px 0}.changelog-entry:first-child{padding-top:16px}.changelog-entry-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.changelog-version-badge{align-items:center;display:flex;gap:8px}.changelog-type-icon{font-size:1.1rem}.changelog-version{color:#374151;font-size:1rem;font-weight:600}.changelog-major-badge{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:2px 8px;text-transform:uppercase}.changelog-date{color:#6b7280;font-size:.875rem}.changelog-title{color:#111827;font-size:1.25rem;font-weight:600;line-height:1.4;margin:0 0 8px}.changelog-description{color:#4b5563;line-height:1.6;margin:0 0 16px}.changelog-changes{list-style:none;margin:0 0 4px;padding-left:0}.changelog-change-item{color:#374151;line-height:1.5;padding:6px 0 6px 24px;position:relative}.changelog-change-item:before{color:#10b981;content:"•";font-size:1.2rem;font-weight:700;left:8px;position:absolute}.changelog-separator{background:linear-gradient(90deg,#0000,#e5e7eb,#0000);border:none;height:1px;margin:20px 0}.changelog-modal-footer{border-top:1px solid #e5e7eb;padding:20px 28px 24px;text-align:center}.changelog-footer-text{color:#6b7280;font-size:.875rem;margin:0 0 16px}.changelog-modal-button{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.changelog-modal-button:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:640px){.changelog-modal-overlay{padding:10px}.changelog-modal{border-radius:12px;max-height:90vh}.changelog-modal-header{padding:20px 20px 16px}.changelog-modal-header h2{font-size:1.25rem}.changelog-modal-content{padding:0 20px}.changelog-modal-footer{padding:16px 20px 20px}.changelog-entry-header{align-items:flex-start;flex-direction:column;gap:8px}.changelog-version-badge{flex-wrap:wrap}}.error-boundary-container{align-items:center;background-color:var(--background-color);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.error-boundary-content{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:600px;padding:var(--spacing-xl);text-align:center;width:100%}.error-icon{animation:pulse 2s ease-in-out infinite;font-size:4rem;margin-bottom:var(--spacing-lg)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.error-boundary-content h1{color:var(--text-primary);font-size:2rem;margin-bottom:var(--spacing-md)}.error-message{color:var(--text-secondary);font-size:1.1rem}.error-details,.error-message{margin-bottom:var(--spacing-lg)}.error-details{background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);text-align:left}.error-details summary{color:var(--text-secondary);cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.error-details summary:hover{color:var(--text-primary)}.error-stack{background:var(--background-darker);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;margin-top:var(--spacing-md);overflow-x:auto;padding:var(--spacing-md);white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center;margin-bottom:var(--spacing-lg)}.error-actions button{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-lg);transition:all .2s ease}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-primary-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-secondary{background:var(--background-color);border:2px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--background-darker);border-color:var(--accent-primary)}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.error-help{color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.error-help-list{color:var(--text-secondary);margin:0 auto;max-width:400px;padding-left:var(--spacing-lg);text-align:left}.error-help-list li{margin-bottom:var(--spacing-xs)}@media (max-width:768px){.error-boundary-content{padding:var(--spacing-lg)}.error-icon{font-size:3rem}.error-boundary-content h1{font-size:1.5rem}.error-actions{flex-direction:column}.error-actions button{width:100%}}
/*# sourceMappingURL=main.2197402f.css.map*/