:root{color:#f3f5fa;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 20% 8%,#f32e8538 0%,#0000 42%),radial-gradient(circle at 82% 0,#f95d3e29 0%,#0000 34%),linear-gradient(#06070b 0%,#090b10 100%);font-family:Manrope,Onest,Segoe UI,sans-serif;font-weight:400;line-height:1.5}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}@supports (overflow:clip){html,body,#root{overflow-x:clip}}*{box-sizing:border-box}body{color:#f3f5fa;min-height:100vh;margin:0}#root{min-height:100vh}.app{--text-main:#f3f5fa;--text-soft:#9ba4b6;--line:#252c3a;--line-strong:#313a4b;--good:#37cc72;--bad:#ff5a5a;--warn:#ffd966;width:min(1280px,100dvw - 24px);max-width:calc(100dvw - 24px);color:var(--text-main);background:radial-gradient(120% 65% at 80% -12%,#f95b3d1a,#0000 58%),linear-gradient(#0e1118 0%,#090b11 100%);border:1px solid #202532;border-radius:18px;margin:12px auto;padding:22px 20px 16px;box-shadow:0 22px 60px #00000061}.header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#ff9dc8;margin:0;font-size:11px}.header h1{letter-spacing:-.03em;margin:4px 0 0;font-size:clamp(34px,5vw,48px);line-height:.9}.header-title-link{color:inherit;-webkit-text-decoration:underline #ffffff59;text-decoration:underline #ffffff59}.header-title-link:hover{text-decoration-color:#fffc}.subtitle{color:var(--text-soft);max-width:700px;margin:12px 0 0}.timer-box{text-align:right;background:#10141d;border:1px solid #2a3040;border-radius:12px;flex-direction:column;gap:4px;min-width:278px;margin-left:auto;padding:10px 12px;display:flex}.timer-box span{text-transform:uppercase;letter-spacing:.06em;color:#93a0b7;font-size:11px}.timer-box strong{color:#f6f8ff;font:700 30px/1 JetBrains Mono,Consolas,monospace}.timer-box small{color:#8f9bb0;font-size:12px}.toolbar{background:#11151d;border:1px solid #242b38;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding:10px;display:flex}.snapshot-label{color:#f3f5fa;font-size:14px;font-weight:700}select{color:#eaf0ff;background:#0c1017;border:1px solid #313a4b;border-radius:10px;outline:none;min-width:268px;padding:9px 12px;font-size:14px}select:focus{border-color:#637498;box-shadow:0 0 0 3px #6d86b633}button{font:inherit}.accent-button{cursor:pointer;color:#240910;background:linear-gradient(130deg,#ff5fac,#ff7a47);border:1px solid #ff75b5;border-radius:10px;padding:9px 13px;font-weight:700;transition:transform .15s,opacity .15s;box-shadow:0 10px 20px #ff559033}.accent-button:hover:enabled{transform:translateY(-1px)}.accent-button:disabled{opacity:.55;cursor:default}.selected-meta{color:var(--text-soft);font-size:13px}.parse-status{border:1px solid #0000;border-radius:10px;margin-top:14px;padding:10px 12px}.parse-status--info{color:#e8f0ff;background:#304e7b52;border-color:#6ea0ff66}.parse-status--success{color:#d7ffea;background:#195f3b59;border-color:#37cc7273}.parse-status--error{color:#ffd5d5;background:#7a273359;border-color:#ff6b8466}.error{color:#ffd5d5;background:#7a273359;border:1px solid #ff6b8466;border-radius:10px;margin-top:14px;padding:10px 12px}.tab-bar{background:#11151d;border:1px solid #242b38;border-radius:12px;gap:8px;margin-top:14px;padding:6px;display:inline-flex}.tab-button{color:#a9b4ca;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;padding:8px 14px;font-weight:700;text-decoration:none;display:inline-flex}.tab-button:hover{color:#f3f5fa;background:#171d29}.tab-button.is-active{color:#fef4ff;background:linear-gradient(130deg,#722548,#85321c);border-color:#ff84b773}.monitoring-controls{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;margin-bottom:12px;display:grid}.monitoring-form{background:#11151d;border:1px solid #242b38;border-radius:12px;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;padding:10px;display:grid}.monitoring-field{flex-direction:column;gap:6px;display:flex}.monitoring-field span{color:#9aa8c2;font-size:12px}.monitoring-input{color:#eaf0ff;background:#0c1017;border:1px solid #313a4b;border-radius:10px;outline:none;width:100%;padding:9px 12px;font-size:14px}.monitoring-input:focus{border-color:#637498;box-shadow:0 0 0 3px #6d86b633}.monitoring-add-button{white-space:nowrap}.monitoring-filter-panel{background:#11151d;border:1px solid #242b38;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.monitoring-filter-panel>span{color:#9aa8c2;font-size:12px;font-weight:700}.monitoring-empty{color:#8f9bb0;text-align:center;background:#0d1118;border:1px solid #272f3d;border-radius:8px;padding:22px 14px}.monitoring-card-list{gap:10px;display:grid}.monitoring-card{background:#0d1118;border:1px solid #2b3445;border-radius:8px;grid-template-columns:172px minmax(190px,260px) minmax(0,1fr);grid-template-areas:"photo metrics chart";min-height:224px;display:grid;overflow:hidden}.monitoring-card:hover{background:#101620;border-color:#3a465c}.monitoring-artist-photo{aspect-ratio:1;object-fit:cover;color:#0000;background:#111824;border-radius:8px;grid-area:photo;place-self:center;width:min(132px,100% - 24px);height:auto;min-height:0;font-size:0;line-height:0;display:block}.monitoring-artist-photo-placeholder{background:radial-gradient(80% 80% at 25% 20%,#ff996259,#0000 65%),linear-gradient(145deg,#1a2334,#111824)}.monitoring-metrics{flex-direction:column;grid-area:metrics;justify-content:center;gap:8px;min-width:0;padding:18px;display:flex}.monitoring-artist-value,.monitoring-artist-value .artist-link{color:#f7f9ff;overflow-wrap:anywhere;font-size:24px;font-weight:800;line-height:1.08}.monitoring-listeners-value{color:#dce8ff;font-variant-numeric:tabular-nums;margin-top:2px;font-size:14px;font-weight:700;line-height:1.1}.monitoring-change-value{margin-top:2px}.monitoring-change-value .change-up,.monitoring-change-value .change-down,.monitoring-change-value .change-new,.monitoring-change-value .change-same{border-radius:999px;align-items:center;width:fit-content;padding:5px 8px;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.monitoring-change-value .change-up{background:#37cc721f;border:1px solid #37cc7247}.monitoring-change-value .change-down{background:#ff5a5a1f;border:1px solid #ff5a5a47}.monitoring-change-value .change-new{background:#ffd9661f;border:1px solid #ffd96647}.monitoring-change-value .change-same{background:#8a93a41a;border:1px solid #8a93a438}.monitoring-card-chart{grid-area:chart;min-width:0;height:244px;min-height:0;padding:10px 10px 10px 0}.monitoring-chart-inner{height:224px;min-height:0;position:relative}.monitoring-listeners-chart{touch-action:pan-y;width:100%;height:224px;min-height:0;display:block}.monitoring-chart-state{color:#8f9bb0;background:#0c1017;border:1px solid #2b3445;border-radius:10px;place-items:center;height:224px;min-height:0;margin:0;font-size:13px;display:grid}.table-card{margin-top:14px}.table-card h2{letter-spacing:-.01em;margin:0 0 10px;font-size:22px}.table-wrap{background:#0d1118;border:1px solid #272f3d;border-radius:14px;height:68vh;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%}thead th{color:#d9e1f2;z-index:1;letter-spacing:.05em;text-transform:uppercase;background:#151a23f7;font-size:12px;position:sticky;top:0}.th-with-filter{justify-content:space-between;align-items:center;gap:8px;display:flex}.column-filter{flex:none;position:relative}.filter-toggle{color:#93a0b9;cursor:pointer;background:#101622;border:1px solid #2e3748;border-radius:7px;justify-content:center;align-items:center;width:24px;height:24px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.filter-toggle:hover{color:#ecf0ff;background:#131c2b;border-color:#51607a}.filter-toggle.is-open{color:#ffe1d5;background:#47241f;border-color:#ff8e62}.filter-icon{fill:currentColor;width:13px;height:13px}.filter-dropdown{z-index:60;text-transform:none;background:#0d121c;border:1px solid #2f394c;border-radius:12px;width:min(292px,78vw);padding:10px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 30px #00000073}.filter-search{color:#e8eeff;background:#0a0f18;border:1px solid #2f3a4d;border-radius:8px;outline:none;width:100%;padding:8px 10px;font-size:13px}.filter-search:focus{border-color:#60739b;box-shadow:0 0 0 3px #6d86b638}.filter-actions{align-items:center;gap:7px;margin-top:8px;display:flex}.mini-btn{color:#dce5fb;cursor:pointer;background:#101622;border:1px solid #303b50;border-radius:7px;padding:5px 8px;font-size:12px}.mini-btn:hover{background:#141d2d;border-color:#596987}.filter-meta{color:#95a4bf;margin:8px 0 0;font-size:11px}.filter-options{background:#0b1019;border:1px solid #222c3d;border-radius:8px;max-height:220px;margin-top:8px;overflow:auto}.filter-option{color:#dbe4f7;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.filter-option:hover{background:#141c2a}.filter-option+.filter-option{border-top:1px solid #1b2433}.filter-option input{accent-color:#f57747;width:14px;height:14px}.filter-empty{color:#93a1ba;margin:0;padding:12px 8px;font-size:12px}th,td{vertical-align:middle;border-bottom:1px solid #1e2532;padding:12px}tbody tr:not(.history-row):hover{background:#151b25}tbody tr:nth-child(2n):not(.history-row){background:#151a2373}.position-cell{text-align:center;width:100px}.change-cell{text-align:center;width:130px}.listeners-cell{text-align:right;color:#d9e5ff;min-width:150px;font-weight:600}.listeners-change-cell{text-align:center;width:190px}.position-button{color:#eff3ff;cursor:pointer;background:#121722;border:1px solid #2c3444;border-radius:999px;min-width:58px;padding:6px 12px;font-weight:700}.position-button:hover{background:#192131;border-color:#47536b}.position-button.is-expanded{background:linear-gradient(135deg,#4c2f2b,#58311f);border-color:#f1743f}.position-out{color:#eff3ff;background:#121722;border:1px solid #2c3444;border-radius:999px;min-width:58px;padding:6px 12px;font-weight:700;display:inline-block}.change-up,.change-down{font-weight:700}.change-up{color:var(--good)}.change-down{color:var(--bad)}.change-new{color:var(--warn);text-transform:lowercase;background:#ffd9662e;border:1px solid #ffd96673;border-radius:8px;padding:2px 8px;font-weight:700;display:inline-block}.change-same{color:#8a93a4;font-weight:700}.history-row{background:#0e131d}.history-chart-wrap{padding:8px 2px}.history-subtitle{letter-spacing:.06em;text-transform:uppercase;color:#94a0b5;margin:10px 0 8px;font-size:12px;font-weight:700}.history-chart{background:#0c1017;border:1px solid #2b3445;border-radius:10px;width:100%;min-height:220px}.history-grid{stroke:#232c3c;stroke-width:1px}.history-active-guide{stroke:#37cc7257;stroke-width:1px;stroke-dasharray:4 7}.history-line{fill:none;stroke:#ff8f4b;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.listeners-line{stroke:#54a6ff}.history-dot{fill:#ffb55c;stroke:#382210;stroke-width:1px;transition:r .1s,stroke-width .1s,filter .1s}.history-dot.is-active{stroke-width:1.7px;filter:drop-shadow(0 0 6px #ffb75ab3)}.listeners-dot{fill:#84beff;stroke:#193b61}.listeners-dot.is-active{fill:#37cc72;stroke:#0f4d2b;filter:drop-shadow(0 0 6px #37cc72bf)}.history-axis-label{fill:#8c99af;font-size:11px}.history-hint{color:#8f9bb0;margin:8px 0 0;font-size:12px}.history-tooltip{z-index:1200;pointer-events:none;color:#f4f6fc;white-space:pre-line;background:#090a0ef5;border:1px solid #ffffff24;border-radius:9px;padding:8px 10px;font-size:12px;line-height:1.35;position:fixed;box-shadow:0 12px 24px #00000073}.history-error{color:#ffb7b7;margin:8px 0}.snapshot-list-card{background:#0d1118;border:1px solid #262e3c;border-radius:14px;margin-top:14px;padding:14px}.snapshot-list-card h3{margin:0;font-size:18px}.snapshot-list-card>p{color:#91a0b8;margin:6px 0 0;font-size:13px}.snapshot-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.snapshot-item{background:#121722;border:1px solid #283141;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.snapshot-item.is-current{border-color:#fa7847b3;box-shadow:inset 0 0 0 1px #f95f3e4d}.snapshot-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.snapshot-item-main strong{font-size:14px}.snapshot-item-main span{color:#98a5bc;font-size:12px}.snapshot-list-empty{color:#9ca8bc;margin:12px 0 0}.snapshot-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.snapshot-pagination-info{color:#95a2b8;font-size:12px}.snapshot-pagination-controls{align-items:center;gap:8px;display:flex}.snapshot-page-counter{color:#dbe3f4;text-align:center;min-width:54px;font-size:12px}.pagination-button{color:#e2e9fb;cursor:pointer;background:#111723;border:1px solid #2f394d;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}.pagination-button:hover:enabled{background:#171f2f;border-color:#5e6e8c}.pagination-button:disabled{opacity:.45;cursor:default}.empty-cell{text-align:center;color:#8f9bb0;padding:20px 12px}.danger-button{color:#ffe8e8;cursor:pointer;background:linear-gradient(130deg,#5f1e29,#7b2b2f);border:1px solid #ff828273;border-radius:9px;padding:8px 12px;font-size:13px;font-weight:700}.danger-button:hover:enabled{filter:brightness(1.08)}.danger-button:disabled{opacity:.6;cursor:default}.artist-link,.track-link{color:#f5f7ff;font-weight:600;text-decoration:none}.track-cell{align-items:center;gap:10px;min-width:0;display:flex}.track-cover{object-fit:cover;background:#111824;border:1px solid #2f3a4d;border-radius:50%;flex:none;width:34px;height:34px}.track-cover-placeholder{background:radial-gradient(80% 80% at 25% 20%,#ff996259,#0000 65%),linear-gradient(145deg,#1a2334,#111824)}.track-link{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline-block;overflow:hidden}.artist-link{color:#b8c6e2;font-weight:500}.artist-link:hover,.track-link:hover{color:#fff;-webkit-text-decoration:underline #fff6;text-decoration:underline #fff6}button:focus-visible,a:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #8fb1ffcc}@media (width<=940px){.app{width:calc(100dvw - 16px);max-width:calc(100dvw - 16px);margin:8px auto;padding:16px 14px}.header{flex-direction:column}.timer-box{text-align:left;width:100%;min-width:0;margin-left:0}th,td{padding:10px;font-size:13px}.position-cell{width:82px}.change-cell{width:94px}.listeners-cell{min-width:122px}.listeners-change-cell{width:136px}.history-chart{min-height:206px}.table-wrap{height:62vh}.tab-bar{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.monitoring-form{grid-template-columns:1fr}.monitoring-add-button{width:100%}.monitoring-controls{grid-template-columns:1fr}.monitoring-filter-panel{justify-content:space-between}.monitoring-card{grid-template-columns:minmax(108px,32%) minmax(0,1fr);grid-template-areas:"photo metrics""chart chart";min-height:0}.monitoring-artist-photo{width:min(104px,100% - 16px);min-height:0}.monitoring-metrics{gap:6px;padding:12px}.monitoring-artist-value,.monitoring-artist-value .artist-link{font-size:21px;line-height:1.12}.monitoring-listeners-value,.monitoring-change-value .change-up,.monitoring-change-value .change-down,.monitoring-change-value .change-new,.monitoring-change-value .change-same{font-size:13px}.monitoring-card-chart{height:234px;min-height:0;padding:0 10px 10px}.monitoring-chart-inner,.monitoring-listeners-chart,.monitoring-chart-state{height:224px;min-height:0}.snapshot-item{flex-direction:column;align-items:flex-start}}
