:root{--bg: #0b1120;--panel: #111827;--panel-alt: #1f2937;--border: #273449;--text: #e5e7eb;--text-muted: #94a3b8;--accent: #38bdf8;--accent-hover: #0ea5e9;--green: #4ade80;--red: #f87171;--amber: #fbbf24;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font-family:inherit;font-size:14px;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--panel-alt);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:var(--border)}button.primary{background:var(--accent);color:#061225;border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}input,select{font-family:inherit;font-size:14px;padding:8px 12px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);width:100%}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.app{display:grid;grid-template-columns:200px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:8px}.sidebar h1{margin:0 0 24px;font-size:20px;letter-spacing:-.01em}.sidebar nav a{display:block;padding:8px 12px;border-radius:6px;color:var(--text-muted)}.sidebar nav a.active{background:var(--panel-alt);color:var(--text)}.sidebar .user-block{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.content{padding:32px 40px;max-width:1100px}.page-title{margin:0 0 24px;font-size:26px;letter-spacing:-.02em}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}.card h2{margin-top:0;font-size:16px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.grid-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-tile{background:var(--panel-alt);border-radius:8px;padding:16px}.stat-tile .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.stat-tile .value{font-size:22px;font-weight:600}.stat-tile .value.positive{color:var(--green)}.stat-tile .value.negative{color:var(--red)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge.bull{background:#4ade8026;color:var(--green)}.badge.bear{background:#f8717126;color:var(--red)}.badge.neutral{background:#94a3b826;color:var(--text-muted)}.badge.active{background:#4ade8026;color:var(--green)}.badge.pending{background:#fbbf2426;color:var(--amber)}.badge.error{background:#f8717126;color:var(--red)}.form-row{margin-bottom:14px}.form-row label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.filters{display:flex;gap:12px;margin-bottom:16px;align-items:end;flex-wrap:wrap}.filters .form-row{margin:0;min-width:140px}.empty{color:var(--text-muted);font-style:italic;padding:24px;text-align:center}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:32px}.login-card{max-width:440px;width:100%;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px}.login-card h1{margin-top:0;font-size:24px}.login-card p.muted{color:var(--text-muted);font-size:13px;line-height:1.5}.alert{padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:14px}.alert.error{background:#f871711f;border:1px solid rgba(248,113,113,.3);color:#fca5a5}.alert.success{background:#4ade801f;border:1px solid rgba(74,222,128,.3);color:#86efac}.scored-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.scored-card{background:var(--panel-alt);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:8px}.scored-head{display:flex;justify-content:space-between;align-items:center;font-size:13px}.hint-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.phat-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}.phat-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.phat-meta{display:flex;justify-content:space-between;font-size:12px;font-variant-numeric:tabular-nums}.factors{display:flex;flex-wrap:wrap;gap:4px}.factor-chip{font-size:10px;padding:2px 6px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text-muted)}.scored-footer{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);margin-top:4px}.toggle{display:inline-flex;align-items:center;gap:10px;padding:4px 12px 4px 4px;border-radius:999px;border:1px solid var(--border);background:var(--panel-alt);color:var(--text-muted);font-size:13px;width:auto;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.toggle .toggle-thumb{width:18px;height:18px;border-radius:50%;background:var(--text-muted);display:inline-block;transition:background .15s,transform .15s}.toggle.on{background:#38bdf826;border-color:var(--accent);color:var(--accent)}.toggle.on .toggle-thumb{background:var(--accent);transform:translate(2px)}.toggle:hover:not(:disabled){border-color:var(--accent)}.toggle .toggle-text{text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-size:11px}.range-row{display:flex;align-items:center;gap:12px}.range-row input[type=range]{flex:1;width:auto;padding:0;background:transparent;border:none;accent-color:var(--accent)}.range-row input[type=range]:focus{outline:none}.range-value{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text);min-width:48px;text-align:right}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:var(--panel-alt);color:var(--text-muted);cursor:pointer;font-weight:600;letter-spacing:.04em;transition:background .15s,border-color .15s,color .15s}.chip:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.chip.active{background:#38bdf826;border-color:var(--accent);color:var(--accent)}.checks{display:flex;flex-wrap:wrap;gap:12px}.check-item{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;color:var(--text)}.check-item input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent)}.quiet-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quiet-sep{color:var(--text-muted);font-size:13px}.quiet-num{width:70px;text-align:center;font-variant-numeric:tabular-nums}.tg-link{display:inline-block;padding:8px 14px;border-radius:6px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-weight:600;font-size:14px}.tg-link:hover{background:#38bdf81a;color:var(--accent)}@media (max-width: 720px){.app:not(.tg-app){grid-template-columns:1fr}.app:not(.tg-app) .sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;padding:12px 16px;overflow-x:auto}.app:not(.tg-app) .sidebar h1{margin:0 16px 0 0}.app:not(.tg-app) .sidebar nav{display:flex;gap:4px}.app:not(.tg-app) .sidebar .user-block{display:none}.app:not(.tg-app) .content{padding:20px}.grid-stats{grid-template-columns:repeat(2,1fr)}}.tg-app{display:block;min-height:100vh;background:var(--bg)}.tg-content{padding:12px 14px 80px;max-width:100%;width:100%;margin:0}.tg-tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:var(--panel);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px)) 4px;z-index:50}.tg-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;color:var(--text-muted);font-size:11px;line-height:1.1;text-decoration:none;border-radius:8px;transition:color .15s,background .15s}.tg-tab:hover{color:var(--text)}.tg-tab.active{color:var(--accent)}.tg-tab svg{display:block;width:22px;height:22px}.tg-tab-label{display:block;letter-spacing:.01em;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}body[data-tg="1"] .page-title{font-size:20px;margin:4px 0 14px;letter-spacing:-.01em}body[data-tg="1"] .card{border-radius:12px;padding:16px;margin-bottom:14px;width:100%;max-width:none}body[data-tg="1"] .grid-stats{grid-template-columns:repeat(2,1fr);gap:10px}body[data-tg="1"] .stat-tile{padding:12px}body[data-tg="1"] .stat-tile .value{font-size:18px}body[data-tg="1"] .scored-grid{grid-template-columns:1fr;gap:10px}body[data-tg="1"] table{font-size:12px}body[data-tg="1"] .table-wrap,body[data-tg="1"] .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}body[data-tg="1"] .card>table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}body[data-tg="1"] .filters{gap:8px}body[data-tg="1"] .filters .form-row{min-width:120px;flex:1 1 140px}
