:root{--bg:#0b0b10;--panel:#14141d;--panel-edge:#2a2438;--accent:#7b5cff;--accent-2:#8892a6;--bull:#22c55e;--bear:#ef4444;--watch:#f59e0b;--text:#e6e6f0;--text-dim:#9aa0b0}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:hidden}a{color:var(--accent)}button{font-family:inherit}.panel{background:var(--panel);border:1px solid var(--panel-edge);color:var(--text);padding:1rem}.bg-layer{z-index:-1;background-color:var(--bg);background-position:50%;background-size:cover;position:fixed;inset:0}.tier-badge{letter-spacing:.05em;border:1px solid var(--panel-edge);white-space:nowrap;padding:.15rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.tier-badge--ready{color:var(--bg);background:var(--bull);border-color:var(--bull);animation:1.1s ease-in-out infinite tier-badge-pulse}.tier-badge--watch{color:var(--watch);border-color:var(--watch)}.tier-badge--not-ready,.tier-badge--unknown{color:var(--text-dim)}@keyframes tier-badge-pulse{0%,to{opacity:1}50%{opacity:.5}}.tier-badge--capped{cursor:help;border-style:dashed}.awaiting-cell{color:var(--text-dim);cursor:help}.eval-cell__detail{color:var(--text-dim)}.eval-cell--unavailable{color:var(--watch);cursor:help}.eval-cell--insufficient,.eval-cell--unknown{color:var(--text-dim);cursor:help}.empty-state{color:var(--text-dim)}.app-shell{min-height:100%;display:flex}.sidebar{border-right:1px solid var(--panel-edge);flex-direction:column;flex-shrink:0;gap:.25rem;width:220px;padding:1rem .5rem;display:flex}.sidebar__brand{color:var(--accent);letter-spacing:.08em;padding:0 .5rem 1rem;font-weight:700}.nav-link{color:var(--text-dim);border-left:2px solid #0000;padding:.6rem .75rem;text-decoration:none;display:block}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--text);border-left-color:var(--accent);background:var(--panel)}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.app-header__status{align-items:center;gap:.6rem;display:flex}.reconnect-badge{color:var(--watch);letter-spacing:.04em;font-size:.75rem}.conn-dots{align-items:center;gap:.4rem;display:flex}.conn-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.conn-dot--ok{background:var(--bull)}.conn-dot--warn{background:var(--watch)}.conn-dot--error{background:var(--bear)}.conn-dot--grey{background:var(--accent-2)}.app-content{flex:1;padding:1rem;overflow-x:hidden}.bottom-tabs{border-top:1px solid var(--panel-edge);background:var(--panel);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.bottom-tabs .nav-link{text-align:center;white-space:nowrap;border-top:2px solid #0000;border-left:none;flex:1 0 auto;font-size:.75rem}.bottom-tabs .nav-link.active{border-top-color:var(--accent);background:0 0}@media (width<=768px){.app-content{padding-bottom:4.5rem}}.login-screen{justify-content:center;align-items:center;min-height:100%;padding:1rem;display:flex}.login-card{background:var(--panel);border:1px solid var(--panel-edge);flex-direction:column;gap:.9rem;width:min(360px,100%);padding:2rem 1.5rem;display:flex}.login-wordmark{color:var(--accent);letter-spacing:.12em;text-align:center;margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.login-field{color:var(--text-dim);font-size:.85rem}.login-input{background:var(--bg);border:1px solid var(--panel-edge);color:var(--text);padding:.6rem .75rem;font-family:inherit;font-size:1rem}.login-input:disabled{opacity:.5}.login-remember{color:var(--text-dim);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.login-message{margin:0;font-size:.85rem}.login-message--error{color:var(--bear)}.login-message--locked{color:var(--watch)}.login-submit{background:var(--accent);color:var(--bg);cursor:pointer;border:none;padding:.7rem;font-weight:700}.login-submit:disabled{opacity:.5;cursor:not-allowed}.feed-table-wrap,.counts-table-wrap{overflow-x:auto}.feed-table,.counts-table{border-collapse:collapse;width:100%;font-size:.85rem}.feed-table th,.feed-table td,.counts-table th,.counts-table td{text-align:left;border-bottom:1px solid var(--panel-edge);white-space:nowrap;padding:.5rem .6rem}.feed-table th,.counts-table th{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.sortable-header{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.sortable-header:hover{color:var(--text)}.feed-cards{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.feed-card{border:1px solid var(--panel-edge);flex-direction:column;gap:.35rem;padding:.6rem .75rem;display:flex}.feed-card__head{justify-content:space-between;align-items:center;display:flex}.feed-card__ticker{font-weight:700}.feed-card__row{color:var(--text-dim);justify-content:space-between;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.watchlist-table-wrap{overflow-x:auto}.watchlist-table{border-collapse:collapse;width:100%;font-size:.85rem}.watchlist-table th,.watchlist-table td{text-align:left;border-bottom:1px solid var(--panel-edge);white-space:nowrap;padding:.5rem .6rem}.watchlist-table th{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.watchlist-actions{flex-wrap:wrap;gap:.4rem;display:flex}.watchlist-action{border:1px solid var(--accent);color:var(--accent);letter-spacing:.04em;cursor:pointer;background:0 0;padding:.25rem .6rem;font-size:.72rem;font-weight:700}.watchlist-action:hover{background:var(--accent);color:var(--bg)}.watchlist-message{margin:0 0 .75rem;font-size:.85rem}.watchlist-message--error{color:var(--bear)}.watchlist-cards{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.watchlist-card{border:1px solid var(--panel-edge);flex-direction:column;gap:.35rem;padding:.6rem .75rem;display:flex}.watchlist-card__head{justify-content:space-between;align-items:center;display:flex}.watchlist-card__contract{font-weight:700}.watchlist-card__status{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.watchlist-card__row{color:var(--text-dim);justify-content:space-between;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.watchlist-card__actions{margin-top:.25rem}.notification-bell{position:relative}.notification-bell__button{border:1px solid var(--panel-edge);color:var(--text);cursor:pointer;background:0 0;padding:.35rem .55rem;font-size:.95rem;line-height:1;position:relative}.notification-bell__badge{background:var(--bear);color:var(--text);text-align:center;border-radius:999px;min-width:1.1rem;padding:0 .3rem;font-size:.65rem;font-weight:700;line-height:1.1rem;position:absolute;top:-6px;right:-6px}.notification-panel{background:var(--panel);border:1px solid var(--panel-edge);z-index:20;width:min(340px,90vw);max-height:60vh;padding:.75rem;position:absolute;top:calc(100% + .5rem);right:0;overflow-y:auto}.notification-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.notification-item{border:1px solid var(--panel-edge);border-left:3px solid var(--accent-2);padding:.5rem 1.75rem .5rem .6rem;font-size:.8rem;position:relative}.notification-item--error{border-left-color:var(--bear)}.notification-item--warn{border-left-color:var(--watch)}.notification-item--info{border-left-color:var(--accent)}.notification-item__meta{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;gap:.5rem;font-size:.68rem;display:flex}.notification-item__message{margin:.25rem 0 0}.notification-item__dismiss{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1;position:absolute;top:.35rem;right:.5rem}.notification-item__dismiss:hover{color:var(--text)}.notification-toast{background:var(--panel);border:1px solid var(--panel-edge);border-left:3px solid var(--accent);z-index:30;max-width:min(320px,90vw);padding:.65rem .9rem;font-size:.85rem;position:fixed;bottom:1rem;right:1rem}.notification-toast--error{border-left-color:var(--bear)}.notification-toast--warn{border-left-color:var(--watch)}.config-note{color:var(--text-dim);margin:0 0 .75rem;font-size:.85rem}.config-loading{color:var(--text-dim)}.config-error{color:var(--bear)}.config-list{flex-direction:column;gap:0;margin:0;display:flex}.config-row{border-bottom:1px solid var(--panel-edge);justify-content:space-between;gap:1rem;padding:.5rem 0;font-size:.85rem;display:flex}.config-row dt{color:var(--text-dim)}.config-row dd{font-variant-numeric:tabular-nums;text-align:right;margin:0}.connection-session{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.connection-session__label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.session-pill{border:1px solid var(--panel-edge);letter-spacing:.04em;align-items:center;gap:.4rem;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.session-pill--open .session-pill__state{color:var(--bull)}.session-pill--closed .session-pill__state{color:var(--text-dim)}.session-pill__note{color:var(--text-dim);font-size:.68rem;font-weight:400}.connection-cards{flex-direction:column;gap:.75rem;display:flex}.connection-card{border:1px solid var(--panel-edge);padding:.75rem}.connection-card__name{text-transform:uppercase;letter-spacing:.04em;margin:0 0 .35rem;font-size:.85rem}.connection-status{color:var(--watch);margin:0 0 .35rem;font-size:.8rem;font-weight:700;display:inline-block}.connection-detail{color:var(--text-dim);margin:0 0 .6rem;font-size:.8rem}.connection-credentials fieldset{border:1px dashed var(--panel-edge);flex-direction:column;gap:.5rem;padding:.6rem;display:flex}.connection-credentials legend{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.connection-field{color:var(--text-dim);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.connection-field input{background:var(--bg);border:1px solid var(--panel-edge);color:var(--text);padding:.4rem .5rem;font-family:inherit;font-size:.85rem}.connection-field input:disabled{opacity:.5}.connection-note{color:var(--text-dim);margin:.5rem 0 0;font-size:.72rem}.enable-sounds-prompt{background:var(--accent);color:var(--bg);cursor:pointer;z-index:30;border:none;padding:.6rem 1rem;font-weight:700;position:fixed;bottom:1rem;left:1rem}
