:root{--primary-dark:#1c2230;--secondary-dark:#2f3646;--light-dark:#363d4f;--accent:#4a5568;--background:#fff;--text-color:#1c2230;--text-secondary:#4a5568;--border-color:#e2e8f0;--card-bg:#fff;--section-bg:#f7fafc;--accent-bg:#edf2f7;--hover-bg:#2f3646;--hover-light:#4a5568;--color-error-bg:#fff5f5;--color-error-border:#feb2b2;--color-error-text:#c53030;--color-success-bg:#f0fff4;--color-success-border:#9ae6b4;--color-success-text:#276749;--color-warning-bg:#fff3cd;--color-warning-border:#ffc107;--color-code-bg:#f4f4f4}.alert-error,.alert-success,.alert-warning{border-radius:4px;font-size:.9rem;margin-bottom:.75rem;padding:.6rem .75rem}.alert-error{background:#fff5f5;background:var(--color-error-bg);border:1px solid #feb2b2;border:1px solid var(--color-error-border);color:#c53030;color:var(--color-error-text)}.alert-success{background:#f0fff4;background:var(--color-success-bg);border:1px solid #9ae6b4;border:1px solid var(--color-success-border);color:#276749;color:var(--color-success-text);line-height:1.5}.alert-warning{background:#fff3cd;background:var(--color-warning-bg);border:1px solid #ffc107;border:1px solid var(--color-warning-border)}.alert-warning,body{color:#1c2230;color:var(--text-color)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--background);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background-color:var(--background);min-height:100vh}*{box-sizing:border-box}.navigation{background-color:var(--primary-dark);box-shadow:0 2px 4px #0000001a;justify-content:space-between;padding:1rem 2rem;width:100%}.navigation,.navigation-left{align-items:center;display:flex;flex-direction:row}.navigation-left{gap:1rem}.logo{cursor:pointer;transition:opacity .2s}.logo:hover{opacity:.8}.navigation-right{align-items:center;display:flex;flex-direction:row;gap:.5rem}.nav-button{background-color:initial;border:1px solid var(--secondary-dark);border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.5rem 1rem;transition:all .2s}.nav-button:hover{background-color:var(--hover-bg);border-color:var(--light-dark)}.nav-button.active{background-color:var(--secondary-dark);border-color:var(--secondary-dark);color:#fff}.login,.signup{align-items:center;background-color:var(--section-bg);display:flex;flex-direction:column;min-height:calc(100vh - 70px);padding:3rem 1rem}.auth-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 8px #0000000f;max-width:420px;padding:2.5rem;width:100%}.auth-card h1{color:var(--primary-dark);font-size:1.75rem;font-weight:700;margin:0 0 1.5rem;text-align:center}.auth-form{gap:1rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.35rem}.form-group label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.form-group input{background:var(--background);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-size:1rem;outline:none;padding:.6rem .75rem;transition:border-color .2s}.form-group input:focus{border-color:var(--accent)}.auth-button{background-color:var(--primary-dark);border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.7rem 1.5rem;text-align:center;text-decoration:none;transition:background-color .2s}.auth-button:hover:not(:disabled){background-color:var(--secondary-dark)}.auth-button:disabled{cursor:not-allowed;opacity:.6}.auth-success{margin-bottom:1.25rem}.auth-link{color:var(--text-secondary);font-size:.9rem;margin-bottom:0;margin-top:1.25rem;text-align:center}.auth-link a{color:var(--primary-dark);font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.page-loading{align-items:center;color:var(--text-secondary);display:flex;justify-content:center;min-height:200px}.admin{margin:0 auto;max-width:1000px;padding:2rem}.admin h1{color:var(--primary-dark);font-size:1.75rem;font-weight:700;margin:0 0 1.5rem}.users-table-wrapper{border:1px solid var(--border-color);border-radius:6px;overflow-x:auto}.users-table{border-collapse:collapse;font-size:.9rem;width:100%}.users-table th{background:var(--section-bg);color:var(--text-secondary);font-weight:600;text-align:left;white-space:nowrap}.users-table td,.users-table th{border-bottom:1px solid var(--border-color);padding:.75rem 1rem}.users-table td{color:var(--text-color);vertical-align:middle}.users-table tr:last-child td{border-bottom:none}.users-table tr.pending{background:#fffaf0}.status-badge{border-radius:12px;display:inline-block;font-size:.8rem;font-weight:600;padding:.2rem .6rem}.status-badge.approved{background:#c6f6d5;color:#276749}.status-badge.pending{background:#feebc8;color:#7b341e}.status-badge.admin{background:#bee3f8;color:#2a4365}.status-badge.user{background:var(--accent-bg);color:var(--text-secondary)}.actions{display:flex;flex-wrap:wrap;gap:.4rem}.action-btn{border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600;padding:.3rem .7rem;transition:opacity .2s;white-space:nowrap}.action-btn:hover{opacity:.85}.action-btn.approve{background:#48bb78;color:#fff}.action-btn.deny{background:#fc8181;color:#fff}.action-btn.promote{background:#63b3ed;color:#fff}.action-btn.demote{background:#a0aec0;color:#fff}.no-users{color:var(--text-secondary);padding:2rem!important;text-align:center}.admin-stock-refresh{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;margin-bottom:2rem;padding:1.25rem 1.35rem}.admin-stock-refresh h2{color:var(--primary-dark);font-size:1.15rem;font-weight:700;margin:0 0 .65rem}.admin-stock-refresh-intro{color:var(--text-color);font-size:.9rem;line-height:1.5;margin:0 0 1rem}.admin-stock-refresh-intro code{background:var(--accent-bg);border-radius:3px;font-size:.85em;padding:.1rem .35rem}.admin-stock-refresh-modes{border:none;margin:0 0 1rem;padding:0}.admin-stock-refresh-legend{color:var(--text-secondary);font-size:.82rem;font-weight:700;margin-bottom:.5rem;padding:0}.admin-stock-refresh-radio{grid-column-gap:.5rem;grid-row-gap:.1rem;align-items:start;column-gap:.5rem;cursor:pointer;display:grid;font-size:.9rem;grid-template-columns:auto 1fr;grid-template-rows:auto auto;margin-bottom:.65rem;row-gap:.1rem}.admin-stock-refresh-radio input{grid-row:1/span 2;margin-top:.2rem}.admin-stock-refresh-radio-label{color:var(--text-color);font-weight:600}.admin-stock-refresh-radio-hint{color:var(--text-secondary);font-size:.78rem;grid-column:2;line-height:1.35}.admin-stock-refresh-range{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.admin-stock-refresh-date{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.8rem;font-weight:600;gap:.25rem}.admin-stock-refresh-date input{background:var(--background);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9rem;padding:.45rem .5rem;width:11rem}.admin-stock-refresh-date-hint{color:var(--text-secondary);font-size:.78rem;line-height:1.4;margin:0 0 1rem}.admin-stock-refresh-date-hint kbd{background:var(--accent-bg);border:1px solid var(--border-color);border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em;padding:.08rem .28rem}.admin-stock-refresh-btn{background-color:var(--primary-dark);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.55rem 1.15rem;transition:background-color .2s}.admin-stock-refresh-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.admin-stock-refresh-btn-secondary{background:#0000;border:1px solid var(--primary-dark);color:var(--primary-dark)}.admin-stock-refresh-btn-secondary:hover:not(:disabled){background:var(--accent-bg)}.admin-stock-refresh-btn:hover:not(:disabled){background-color:var(--secondary-dark)}.admin-stock-refresh-btn:disabled{cursor:not-allowed;opacity:.65}.admin-stock-refresh-msg{margin-top:.75rem}.admin-stock-refresh-result{background:var(--accent-bg);border:1px solid var(--border-color);border-radius:6px;font-size:.88rem;line-height:1.45;margin-top:1rem;padding:.85rem 1rem}.admin-stock-refresh-result p{margin:0 0 .4rem}.admin-stock-refresh-result p:last-child{margin-bottom:0}.admin-stock-refresh-meta{color:var(--text-secondary);font-weight:500}.admin-stock-refresh-errors{margin-top:.65rem}.admin-stock-refresh-errors ul{color:var(--text-color);font-size:.82rem;margin:.35rem 0 0;padding-left:1.2rem}.admin-stock-refresh-errors li{margin-bottom:.25rem}.stocks{margin:0 auto;max-width:1040px;padding:2rem}.stocks-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.stocks-header h1{color:var(--text-color);font-size:2rem;font-weight:700;margin:0}.add-stock-form{align-items:center;display:flex;gap:.5rem}.add-stock-input{background:var(--background);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-size:1rem;outline:none;padding:.55rem .85rem;text-transform:uppercase;transition:border-color .2s;width:140px}.add-stock-input::placeholder{color:var(--text-secondary);opacity:.7;text-transform:none}.add-stock-input:focus{border-color:var(--accent)}.add-stock-btn{background-color:var(--primary-dark);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.55rem 1.1rem;transition:background-color .2s;white-space:nowrap}.add-stock-btn:hover:not(:disabled){background-color:var(--secondary-dark)}.add-stock-btn:disabled{cursor:not-allowed;opacity:.6}.stock-detail-view-toolbar,.stocks-region-toolbar{margin-bottom:1rem}.stocks-dividends-error{margin-bottom:.75rem;margin-top:-.25rem}.stocks-grid{display:flex;flex-direction:column;gap:.75rem}.stock-card{align-items:center;background-color:var(--card-bg);border:2px solid var(--border-color);border-radius:8px;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.25rem;transition:box-shadow .2s,border-color .2s}.stock-card:hover{border-color:var(--secondary-dark);box-shadow:0 2px 8px #1c22301a}.stock-card-clickable{cursor:pointer}.stock-card-clickable:focus{outline:2px solid var(--accent);outline-offset:2px}.stock-card-main{align-items:baseline;display:flex;flex-shrink:0;gap:.75rem;min-width:130px}.stock-symbol{color:var(--primary-dark);font-family:monospace;font-size:1.1rem;font-weight:700}.stock-exchange{color:var(--text-secondary);font-size:.78rem;font-weight:500;text-transform:uppercase}.stock-card-meta{flex:1 1;min-width:0}.stock-name{color:var(--text-color);font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-card-latest{margin-top:.35rem;max-width:100%}.stock-card-latest-price{font-feature-settings:"tnum";color:var(--primary-dark);font-size:.95rem;font-variant-numeric:tabular-nums;font-weight:700}.stock-card-latest-line{color:var(--text-secondary);font-size:.78rem;line-height:1.35;margin-top:.2rem;white-space:normal}.stock-card-latest-label{font-weight:600;margin-right:.25rem}.stock-card-latest-label:not(:first-child){margin-left:.15rem}.stock-card-latest--empty,.stock-card-latest-sep{color:var(--text-secondary)}.stock-card-latest--empty{font-size:.78rem;font-style:italic;margin-top:.25rem}.stock-detail{color:var(--text-secondary);font-size:.8rem;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-card-right{align-items:center;display:flex;flex-shrink:0;gap:1rem}.stock-currency{background:var(--accent-bg);border-radius:4px;color:var(--text-secondary);font-size:.8rem;font-weight:600;padding:.2rem .5rem}.stock-remove-btn{background:#0000;border:1px solid #fc8181;border-radius:4px;color:#c53030;cursor:pointer;font-size:.8rem;font-weight:600;padding:.3rem .7rem;transition:all .2s}.stock-remove-btn:hover:not(:disabled){background:#fc8181;color:#fff}.stock-remove-btn:disabled{cursor:not-allowed;opacity:.4}.stocks-empty{border:2px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);padding:3rem 1rem;text-align:center}.stocks-empty p{font-size:1rem;margin:0}.stocks-empty .stocks-empty-hint{font-size:.875rem;margin-top:.5rem;opacity:.7}.stocks-empty-tight{padding:1.25rem 1rem}.stock-detail{margin:0 auto;max-width:960px}.stock-detail-back{background:none;border:none;color:var(--primary-dark);cursor:pointer;display:inline-block;font-size:.95rem;font-weight:600;margin-bottom:1rem;padding:.35rem 0;text-decoration:underline}.stock-detail-back:hover{color:var(--secondary-dark)}.stock-detail-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.25rem}.stock-detail-title{align-items:baseline;display:flex;font-size:1.35rem;gap:.65rem;margin:0 0 .35rem}.stock-detail-meta{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem}.stock-chart-block{margin-bottom:1.25rem}.stock-chart-range-label{color:var(--text-secondary);display:block;font-size:.78rem;font-weight:600;margin-bottom:.45rem}.stock-chart-range-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.65rem}.stock-chart-range-btn{background:var(--background);border:1px solid var(--border-color);border-radius:999px;color:var(--text-color);cursor:pointer;font-size:.8rem;font-weight:600;padding:.35rem .65rem;transition:border-color .15s,background .15s,color .15s}.stock-chart-range-btn:hover:not(:disabled){border-color:var(--secondary-dark)}.stock-chart-range-btn.is-active{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.stock-chart-range-btn:disabled{cursor:not-allowed;opacity:.5}.stock-price-chart-wrap{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;padding:.35rem .5rem .15rem;position:relative;width:100%}.stock-price-chart-svg{display:block;height:auto;max-height:300px;min-height:210px;width:100%}.stock-chart-axis-title{fill:var(--text-color);font-size:12px;font-weight:700}.stock-chart-grid-line{stroke:var(--border-color);stroke-width:1;stroke-dasharray:4 4;opacity:.85}.stock-chart-axis-label{fill:var(--text-secondary);font-size:11px;font-weight:600}.stock-chart-axis-tick{fill:var(--text-secondary);font-feature-settings:"tnum";font-family:monospace;font-size:11px;font-variant-numeric:tabular-nums}.stock-chart-axis-tick--value{font-size:10px}.stock-chart-axis-tick--date{fill:var(--text-color);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:500}.stock-chart-axis-legend-note{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.stock-chart-axis-footnote,.stock-chart-axis-legend-note{fill:var(--text-secondary);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.stock-chart-axis-footnote{font-size:10px;font-weight:500}.stock-chart-hover-line{stroke:var(--text-secondary);stroke-width:1;stroke-dasharray:4 3;opacity:.9}.stock-chart-hover{pointer-events:none}.stock-chart-hover-dot{fill:var(--card-bg);stroke:var(--primary-dark);stroke-width:2}.stock-chart-hover-aria{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.stock-chart-tooltip{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 14px #0000001f;line-height:1.25;min-width:7rem;padding:.35rem .55rem;pointer-events:none;position:absolute;text-align:center;transform:translate(-50%,calc(-100% - 8px));z-index:3}.stock-chart-tooltip-date{color:var(--text-secondary);font-size:.72rem;font-weight:600}.stock-chart-tooltip-value{font-feature-settings:"tnum";color:var(--text-color);font-size:.88rem;font-variant-numeric:tabular-nums;font-weight:700;margin-top:.12rem}.quote-toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:.5rem}.quote-toolbar,.stock-quote-range-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.stock-quote-range-card{margin-bottom:1rem}.stock-quote-range-card .quote-toolbar{background:#0000;border:none;margin-bottom:.35rem;padding:.75rem 0 0}.stock-quote-range-card .quote-toolbar-hint{margin-bottom:0}.stock-fetch-range-heading{color:var(--text-color);font-size:1rem;font-weight:700;margin:0 0 .35rem}.stock-fetch-range-symbol{font-family:monospace;font-weight:700;letter-spacing:.02em}.stock-fetch-range-lead{color:var(--text-secondary);font-size:.88rem;line-height:1.45;margin:0 0 .85rem}.stock-fetch-presets{margin-bottom:.65rem}.quote-date-label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.8rem;font-weight:600;gap:.25rem}.quote-date-label input{background:var(--background);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-size:.9rem;padding:.45rem .5rem}.quote-btn{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1rem}.quote-btn:disabled{cursor:not-allowed;opacity:.55}.quote-btn-secondary{background:var(--background);border:1px solid var(--border-color);color:var(--text-color)}.quote-btn-secondary:hover:not(:disabled){border-color:var(--secondary-dark)}.quote-btn-primary{background-color:var(--primary-dark);color:#fff}.quote-btn-primary:hover:not(:disabled){background-color:var(--secondary-dark)}.quote-toolbar-hint{color:var(--text-secondary);font-size:.8rem;line-height:1.45;margin:0 0 1rem}.stored-range-line{color:var(--text-color);font-size:.9rem;margin:0 0 .75rem}.stored-range-count{color:var(--text-secondary);font-weight:400}.quotes-table-summary{color:var(--text-secondary);font-size:.85rem;margin:0 0 .5rem}.quotes-table-footer{display:flex;justify-content:center;margin:.75rem 0 1rem}.quotes-truncated-note{background:#fffbeb;border:1px solid #f6e05e;border-radius:4px;color:#744210;font-size:.85rem;margin-bottom:.75rem;padding:.5rem .75rem}.quotes-table-wrap{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow-x:auto}.quotes-table{border-collapse:collapse;font-size:.85rem;width:100%}.quotes-table td,.quotes-table th{border-bottom:1px solid var(--border-color);padding:.45rem .65rem;text-align:right}.quotes-table th{background:var(--accent-bg);color:var(--text-color);font-weight:600;text-align:right;white-space:nowrap}.quotes-table td:first-child,.quotes-table th:first-child{text-align:left}.quotes-table tbody tr:hover{background:var(--accent-bg)}.quotes-td-date{font-family:monospace;white-space:nowrap}.quotes-td-vol{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.markets-page{margin:0 auto;max-width:1040px;padding:2rem}.markets-header h1{color:var(--text-color);font-size:2rem;font-weight:700;margin:0 0 .75rem}.markets-lede{color:var(--text-secondary);font-size:.95rem;line-height:1.55;margin:0 0 1.5rem;max-width:52rem}.markets-bulk-panel{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.25rem 1.15rem}.markets-bulk-title{color:var(--text-color);font-size:1.05rem;font-weight:700;margin:0 0 .35rem}.markets-bulk-lede{color:var(--text-secondary);font-size:.88rem;line-height:1.45;margin:0 0 .85rem;max-width:48rem}.markets-bulk-modes{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem}.markets-bulk-mode-btn{background:var(--accent-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);cursor:pointer;font-size:.85rem;font-weight:600;padding:.38rem .75rem;transition:border-color .15s,background-color .15s}.markets-bulk-mode-btn:hover{border-color:var(--secondary-dark)}.markets-bulk-mode-btn--active{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.markets-bulk-range{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.85rem}.markets-bulk-field{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.78rem;font-weight:600;gap:.25rem}.markets-bulk-field input[type=date]{background:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);font-family:monospace;font-size:.88rem;padding:.35rem .5rem}.markets-bulk-actions{align-items:center;display:flex;gap:.75rem}.markets-bulk-status{color:var(--text-secondary);font-size:.85rem;line-height:1.45;margin:.65rem 0 0}.markets-muted{color:var(--text-secondary);font-size:.95rem}.markets-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.markets-index-card{align-items:center;background-color:var(--card-bg);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.25rem;text-align:left;transition:box-shadow .2s,border-color .2s}.markets-index-card:hover{border-color:var(--secondary-dark);box-shadow:0 2px 8px #1c22301a}.markets-index-card:focus{outline:2px solid var(--accent);outline-offset:2px}.markets-index-card--selected{border-color:var(--primary-dark);box-shadow:0 0 0 1px var(--primary-dark)}.markets-index-card-main{align-items:baseline;display:flex;flex-shrink:0;gap:.75rem;min-width:140px}.markets-index-symbol{color:var(--primary-dark);font-family:monospace;font-size:1.1rem;font-weight:700}.markets-index-yahoo{color:var(--text-secondary);font-family:monospace;font-size:.78rem;font-weight:500}.markets-index-meta{flex:1 1;min-width:0}.markets-index-name{color:var(--text-color);font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.markets-index-latest{margin-top:.35rem;max-width:100%}.markets-index-latest-price{font-feature-settings:"tnum";color:var(--primary-dark);font-size:.95rem;font-variant-numeric:tabular-nums;font-weight:700}.markets-index-latest-line{color:var(--text-secondary);font-size:.78rem;line-height:1.35;margin-top:.2rem}.markets-index-latest-label{font-weight:600;margin-right:.25rem}.markets-index-latest--empty{font-style:italic}.markets-index-latest--empty,.markets-index-latest--muted{color:var(--text-secondary);font-size:.78rem;margin-top:.25rem}.markets-detail{border-top:1px solid var(--border-color);padding-top:1.25rem}.markets-detail-head{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.markets-detail-head h2{align-items:baseline;display:flex;flex-wrap:wrap;font-size:1.35rem;gap:.65rem;margin:0}.markets-yahoo-ref{color:var(--text-secondary);font-family:monospace;font-size:.85rem;font-weight:500}.markets-fetch-btn{background-color:var(--primary-dark);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:.55rem 1.1rem;transition:background-color .2s;white-space:nowrap}.markets-fetch-btn:hover:not(:disabled){background-color:var(--secondary-dark)}.markets-fetch-btn:disabled{cursor:not-allowed;opacity:.6}.markets-empty{border:2px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);padding:2rem 1rem;text-align:center}.markets-empty p{margin:0}.markets-empty-hint{font-size:.875rem;margin-top:.5rem;opacity:.85}.markets-row-count{color:var(--text-secondary);font-size:.85rem;margin:0 0 .5rem}.markets-table-wrap{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;overflow-x:auto}.markets-table{border-collapse:collapse;font-size:.85rem;width:100%}.markets-table td,.markets-table th{border-bottom:1px solid var(--border-color);padding:.45rem .65rem;text-align:right}.markets-table th{background:var(--accent-bg);color:var(--text-color);font-weight:600;white-space:nowrap}.markets-table td:first-child,.markets-table th:first-child{text-align:left}.markets-table tbody tr:hover{background:var(--accent-bg)}.markets-td-date{font-family:monospace;white-space:nowrap}.markets-td-vol{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.home{align-items:center;display:flex;flex-direction:column;gap:1.5rem;margin:0 auto;max-width:1100px;padding:3rem 1.5rem}.home h1{color:var(--text-color);font-size:2.5rem;font-weight:700}.home h1,.home-status{margin:0;text-align:center}.home-status{color:var(--text-secondary);font-size:1.2rem}.home-indices{width:100%}.home-indices-heading{color:var(--text-color);font-size:1.1rem;font-weight:700;margin:0 0 1rem;text-align:center}.home-indices-muted{font-size:.95rem;margin:0;text-align:center}.home-indices-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.home-index-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:1rem 1.1rem;text-align:center}.home-index-card--error{opacity:.85}.home-index-name{color:var(--text-color);font-size:1rem;font-weight:700;margin:0 0 .5rem}.home-index-price{font-feature-settings:"tnum";color:var(--text-color);font-size:1.65rem;font-variant-numeric:tabular-nums;font-weight:700;margin:0 0 .35rem}.home-index-change{font-feature-settings:"tnum";font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700;margin:0 0 .35rem}.home-index-change--up{color:#15803d}.home-index-change--down{color:#b91c1c}.home-index-change-pct{font-weight:600}.home-index-status{color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.04em;margin:0 0 .25rem;text-transform:uppercase}.home-index-status--open{color:var(--primary-dark)}.home-index-time{font-size:.8rem;line-height:1.35}.home-index-error,.home-index-time{color:var(--text-secondary);margin:0}.home-index-error{font-size:.9rem}.apps{display:flex;flex-direction:column;gap:2rem;padding:2rem}.apps-header{align-items:center;display:flex;justify-content:center;padding:1rem}.apps-header h1{color:var(--text-color);font-size:2.5rem;font-weight:700;margin:0}.apps-container{display:flex;flex-direction:column;gap:1rem;margin:0 auto;max-width:800px;padding:1rem}.app-item{margin-bottom:1rem}.app-card{background-color:var(--card-bg);border:2px solid var(--secondary-dark);border-radius:8px;color:var(--text-color);display:block;padding:1.5rem;transition:all .2s}.app-card:hover{border-color:var(--light-dark);box-shadow:0 4px 12px #1c223033;transform:translateY(-2px)}.app-card h2{color:var(--primary-dark);font-size:1.5rem;margin:0 0 .5rem}.app-platform{color:var(--text-secondary);font-size:.9rem;font-weight:500;margin:0 0 .5rem;text-transform:uppercase}.app-description{color:var(--text-secondary);font-size:1rem;margin:0 0 .75rem}.app-links{display:flex;gap:1rem;margin-top:.5rem}.app-link{color:var(--secondary-dark);display:inline-block;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.app-link:hover{color:var(--light-dark);text-decoration:underline}.links{margin:0 auto;max-width:1200px;padding:20px}.links-title{color:var(--text-color);font-size:2.5rem;font-weight:700;margin:0 0 10px;text-align:center}.links-subtitle{color:var(--text-secondary);font-size:1.1rem;margin:0 0 40px;text-align:center}.links-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:40px}.links-card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;padding:24px;transition:all .3s ease}.links-card--hover,.links-card:hover{border-color:var(--secondary-dark);box-shadow:0 4px 12px #1c223026;transform:translateY(-2px)}.links-card-header{align-items:center;display:flex;margin-bottom:12px}.links-card-icon{font-size:2rem;margin-right:12px}.links-card-title{color:var(--text-color);font-size:1.4rem;font-weight:700;margin:0}.links-card-description{color:var(--text-secondary);font-size:1rem;line-height:1.5;margin:0 0 16px}.links-card-footer{align-items:center;display:flex;justify-content:space-between}.links-card-category{background-color:var(--accent-bg);border-radius:4px;color:var(--secondary-dark);font-size:.9rem;font-weight:500;padding:4px 8px}.links-card-external{color:var(--text-secondary);font-size:1.2rem}.links-info{background-color:var(--section-bg);border:1px solid var(--border-color);border-radius:12px;margin-top:60px;padding:30px}.links-info-title{color:var(--text-color);font-size:1.8rem;font-weight:700;margin:0 0 20px;text-align:center}.links-info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.links-info-card{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:20px}.links-info-card-title{color:var(--text-color);font-size:1.2rem;font-weight:700;margin:0 0 8px}.links-info-card-text{color:var(--text-secondary);font-size:1rem;line-height:1.5;margin:0}.privacy{display:flex;flex-direction:column;gap:2rem;margin:0 auto;max-width:900px;padding:2rem}.privacy-header{border-bottom:2px solid var(--secondary-dark);margin-bottom:1rem;padding:1rem;text-align:center}.privacy-header h1{color:var(--text-color);font-size:2.5rem;font-weight:700;margin:0 0 .5rem}.last-updated{color:var(--text-secondary);font-size:.9rem;margin:0}.privacy-content{display:flex;flex-direction:column;gap:2rem}.privacy-content section{margin-bottom:2rem}.privacy-content h2{border-bottom:1px solid var(--border-color);color:var(--primary-dark);font-size:1.8rem;margin:0 0 1rem;padding-bottom:.5rem}.privacy-content h3{color:var(--secondary-dark);font-size:1.3rem;margin:1.5rem 0 .75rem}.privacy-content p{color:var(--text-color);line-height:1.6;margin:0 0 1rem}.privacy-content ul{color:var(--text-color);line-height:1.8;margin:.5rem 0 1.5rem 2rem;padding:0}.privacy-content li{margin-bottom:.5rem}.privacy-content a{color:var(--secondary-dark);text-decoration:none;transition:color .2s}.privacy-content a:hover{color:var(--light-dark);text-decoration:underline}.privacy-content strong{color:var(--text-color);font-weight:600}.summary{background-color:var(--section-bg);border:2px solid var(--secondary-dark);border-radius:8px;margin-top:1rem;padding:1.5rem}.summary h2{border-bottom:none;margin-top:0}.summary ul{list-style:none;margin-left:0}.summary li{padding:.25rem 0}@media (max-width:768px){.privacy{padding:1rem}.privacy-header h1{font-size:2rem}.privacy-content h2{font-size:1.5rem}.privacy-content h3{font-size:1.1rem}}.wiki{margin:0 auto;max-width:900px;padding:2rem}.wiki-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.wiki-header h1{color:var(--text-color);font-size:2rem;margin:0}.wiki-header-actions{display:flex;gap:1rem}.wiki-back-button{background-color:var(--primary-dark);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.wiki-back-button:hover{background-color:var(--secondary-dark)}.wiki-content{color:var(--text-color);line-height:1.6}.wiki-content h1,.wiki-content h2,.wiki-content h3{margin-bottom:1rem;margin-top:2rem}.wiki-content h2{border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.wiki-content code{border-radius:3px;font-family:Courier New,monospace;font-size:.9em;padding:.2rem .4rem}.wiki-content code,.wiki-content pre{background-color:var(--color-code-bg)}.wiki-content pre{border-radius:4px;overflow-x:auto;padding:1rem}.wiki-content pre code{background-color:initial;padding:0}.wiki-content ol,.wiki-content ul{margin-bottom:1rem;margin-left:2rem}.wiki-content a{color:var(--secondary-dark);text-decoration:none}.wiki-content a:hover{text-decoration:underline}.alert-warning code{background-color:var(--accent-bg);border-radius:3px;padding:.2rem .4rem}.trump{align-items:center;display:flex;flex-direction:column;gap:.5rem;padding:3rem}.trump h1{color:var(--text-color);font-size:2rem;font-weight:700;margin:0;text-align:center}.trump-block{align-items:center;border-bottom:1px solid var(--text-secondary);display:flex;flex-direction:column;gap:.5rem;padding:2rem 0}.trump-block:last-child{border-bottom:none}.trump-block-title{font-size:1.4rem;text-align:center}.trump-block-title,.trump-countdown{color:var(--text-color);font-weight:700;margin:0}.trump-countdown{font-feature-settings:"tnum";font-size:3rem;font-variant-numeric:tabular-nums}.trump-countdown-labels{font-size:.9rem}.trump-countdown-labels,.trump-note{color:var(--text-secondary);margin:0}.trump-note{font-size:.95rem}.timeline-index{margin:0 auto;max-width:720px;padding:2.5rem 1.5rem 4rem}.timeline-index h1{color:var(--text-color);font-size:2rem;font-weight:700;margin:0 0 .5rem;text-align:center}.timeline-index-subtitle{color:var(--text-secondary);margin:0 0 2.5rem;text-align:center}.timeline-index-list{display:flex;flex-direction:column;gap:1rem;list-style:none;margin:0;padding:0}.timeline-index-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;padding:1.5rem 1.75rem;position:relative;text-align:left;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;width:100%}.timeline-index-card:hover{border-color:var(--secondary-dark);box-shadow:0 4px 12px #1c22301f;transform:translateY(-2px)}.timeline-index-card-span{background:var(--accent-bg);border-radius:4px;color:var(--secondary-dark);display:inline-block;font-size:.85rem;font-weight:500;margin-bottom:.65rem;padding:.2rem .55rem}.timeline-index-card h2{color:var(--text-color);font-size:1.35rem;margin:0 0 .5rem}.timeline-index-card p{color:var(--text-secondary);line-height:1.5;margin:0;padding-right:2rem}.timeline-index-card-arrow{color:var(--text-secondary);font-size:1.25rem;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%)}.timeline-page{margin:0 auto;max-width:960px;padding:1.5rem 1.25rem 4rem}.timeline-page-header{margin-bottom:2rem}.timeline-page-back{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.95rem;margin-bottom:1rem;padding:0}.timeline-page h1,.timeline-page-back:hover{color:var(--text-color)}.timeline-page h1{font-size:1.75rem;margin:0 0 .5rem}.timeline-page-intro{color:var(--text-secondary);line-height:1.5;margin:0}.timeline-page-timeline-wrap{background:var(--section-bg);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.5rem;overflow-x:auto;padding:2.5rem 1rem 3.5rem}.timeline-page-axis{height:1.5rem;margin-bottom:.5rem;min-width:720px;position:relative}.timeline-page-axis-tick{font-feature-settings:"tnum";color:var(--text-secondary);font-size:.75rem;font-variant-numeric:tabular-nums;position:absolute;transform:translateX(-50%)}.timeline-page-track{height:4.5rem;min-width:720px;position:relative}.timeline-page-track-line{background:var(--border-color);border-radius:2px;height:3px;left:0;position:absolute;right:0;top:1.35rem}.timeline-page-event{background:#0000;border:none;cursor:pointer;height:4.5rem;padding:0;position:absolute;top:0;transform:translateX(-50%);z-index:1}.timeline-page-event:not(.timeline-page-event--point){height:2.75rem;top:.85rem;transform:none}.timeline-page-event-marker{background:var(--secondary-dark);border:2px solid var(--background);border-radius:50%;box-shadow:0 0 0 1px var(--border-color);display:block;height:14px;margin:.85rem auto 0;transition:transform .15s ease,background .15s ease;width:14px}.timeline-page-event:not(.timeline-page-event--point) .timeline-page-event-marker{display:none}.timeline-page-event:not(.timeline-page-event--point):before{background:#2f364659;border-radius:5px;content:"";display:block;height:10px;margin-top:.35rem;transition:background .15s ease}.timeline-page-event--selected:not(.timeline-page-event--point):before{background:var(--primary-dark)}.timeline-page-event--selected .timeline-page-event-marker{background:var(--primary-dark);transform:scale(1.25)}.timeline-page-event:hover .timeline-page-event-marker{transform:scale(1.15)}.timeline-page-event:hover:not(.timeline-page-event--point):before{background:#2f36468c}.timeline-page-event-label{font-feature-settings:"tnum";color:var(--text-secondary);display:block;font-size:.7rem;font-variant-numeric:tabular-nums;margin-top:.35rem;white-space:nowrap}.timeline-page-event--selected .timeline-page-event-label{color:var(--text-color);font-weight:600}.timeline-page-detail{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem 1.75rem}.timeline-page-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.timeline-page-detail-category,.timeline-page-detail-years{border-radius:4px;font-size:.85rem;font-weight:500;padding:.2rem .55rem}.timeline-page-detail-category{background:var(--accent-bg);color:var(--secondary-dark)}.timeline-page-detail-years{background:var(--section-bg);color:var(--text-secondary)}.timeline-page-detail h2{color:var(--text-color);font-size:1.35rem;margin:0 0 .75rem}.timeline-page-detail-summary{color:var(--text-color);font-size:1.05rem;line-height:1.55;margin:0 0 1rem}.timeline-page-detail-list{color:var(--text-secondary);line-height:1.55;margin:0 0 1rem;padding-left:1.25rem}.timeline-page-detail-list li{margin-bottom:.45rem}.timeline-page-detail-outcome{border-top:1px solid var(--border-color);color:var(--text-secondary);line-height:1.5;margin:0;padding-top:.75rem}.timeline-page-detail-outcome strong{color:var(--text-color)}.timeline-page-picker{display:flex;flex-wrap:wrap;gap:.5rem}.timeline-page-picker-btn{background:var(--card-bg);border:1px solid var(--border-color);border-radius:999px;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.4rem .65rem;transition:border-color .15s ease,color .15s ease,background .15s ease}.timeline-page-picker-btn:hover{border-color:var(--secondary-dark);color:var(--text-color)}.timeline-page-picker-btn--active{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}@media (max-width:640px){.timeline-page h1{font-size:1.45rem}.timeline-page-detail{padding:1.25rem}}.error{align-items:center;background-color:var(--section-bg);border:2px solid var(--secondary-dark);border-radius:8px;display:flex;justify-content:center;margin:2rem auto;min-height:200px;min-width:300px;padding:2rem}.error p{color:var(--text-color);font-size:1.2rem;margin:0;text-align:center}
/*# sourceMappingURL=main.e866090b.css.map*/