:root{--bg:#050d17;--bg-panel:#081829;--bg-muted:#122236;--text:#d9e3f2;--text-dim:#9fb3cf;--accent:#2e7bc6;--ok:#094;--warn:#fd0;--danger:#8f2d35;--border:#1c3b5d;--bg-selected:#16345a;--bg-search:#223d66;--bg-search-current:#1a4575;--bg-modal:#0a1a2d;--bg-control:#0f2439;--bg-table-header:#0d1f33;--grid:#152a40;--pit-in:#4dd0e1;--pit-active:#fd0;--pit-out:#f48fb1}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Iosevka,JetBrains Mono,Fira Code,monospace}a{color:var(--accent)}button{cursor:pointer}#app{min-height:100dvh}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}main{flex-direction:column;max-width:100%;height:100dvh;min-height:100dvh;padding:.7rem;display:flex;overflow:hidden}p{color:var(--text-dim)}.header{border:1px solid var(--border);color:#e7eef7;--header-dim:#afc0d6;background:#10243a;border-radius:6px;margin-bottom:0;padding:.28rem .48rem;position:relative;overflow:hidden}.header[data-flag*=green]{color:#08170c;--header-dim:#112515;background:#11a13a;border-color:#0e8b32}.header[data-flag*=yellow],.header[data-flag*=code\ 60],.header[data-flag*=safety]{color:#131100;--header-dim:#2f2a00;background:#f5dd08;border-color:#d6bf00}.header[data-flag*=red]{color:#ffe6ea;--header-dim:#ffd0d7;background:#8e1e2b;border-color:#741522}.header[data-flag*=white]{color:#111821;--header-dim:#2f3f53;background:#f2f5f9;border-color:#cfd9e4}.header[data-flag*=checkered],.header[data-flag*=chequered]{color:#101722;--header-dim:#33465f;background:#dadfe8;border-color:#bcc7d6}.header .line{white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;line-height:1.25;overflow:hidden}.header .dim{color:var(--header-dim);margin-top:.08rem}.header .search-strip{border:1px solid var(--accent);background:#00000040;border-radius:4px;align-items:center;gap:.4rem;margin-top:.35rem;padding:.25rem .4rem;font-size:.85rem;display:flex}.header .search-label{color:var(--accent);font-weight:600}.header .search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:120px;padding:0;font-family:inherit;font-size:.85rem}.header .search-input::placeholder{color:var(--text-dim)}.header .search-count{color:var(--text-dim);white-space:nowrap;font-size:.8rem}.header .search-cursor{color:var(--accent);animation:1s infinite blink}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.header-row{align-items:stretch;gap:.45rem;margin-bottom:.35rem;display:flex}.header-row .header{flex:1}.logout-btn{white-space:nowrap;border:1px solid var(--border);height:auto;color:var(--text);cursor:pointer;background:#13263a;border-radius:6px;align-self:stretch;align-items:center;padding:.45rem .6rem;font-family:inherit;display:flex}.login-wrap{place-items:center;width:100%;min-height:100dvh;display:grid}.login-card{border:1px solid var(--border);background:#0d1b2c;border-radius:8px;width:min(28rem,92vw);padding:1rem}.login-card h1{margin:0 0 .45rem;font-size:1.1rem}.login-card p{color:var(--text-dim);margin:0 0 .75rem}.login-form{gap:.45rem;display:flex}.login-form input,.login-form button{border:1px solid var(--border);color:var(--text);background:#13263a;border-radius:6px;padding:.45rem .6rem;font-family:inherit}.login-form input{flex:1}.login-error{color:#ff8a8a;margin-top:.55rem}.backdrop{z-index:220;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);background:#0d1b2c;border-radius:8px;flex-direction:column;padding:.75rem;display:flex}.modal h2{color:#eaf3ff;margin:0 0 .55rem;font-size:1rem}.modal .list{gap:.45rem;display:grid;overflow:auto}.modal button{color:var(--text);cursor:pointer;text-align:left;background:#13263a;border:1px solid #334965;border-radius:6px;padding:.42rem .5rem;font-family:inherit}.modal button:focus,.modal button:focus-visible{box-shadow:none;outline:none}.modal button.selected{border-color:var(--accent);background:#1b3c62;font-weight:700}.modal .hint,.modal .empty{color:var(--text-dim);margin:.6rem 0 0;font-size:.84rem}.modal .footer{color:var(--text-dim);border-top:1px solid var(--border);margin-top:.5rem;padding-top:.5rem;font-size:.75rem}.group-modal{width:min(28rem,90vw);max-height:72vh}.group-modal .list{max-height:56vh;padding-right:.15rem}.series-modal{width:min(22rem,90vw);max-height:72vh}.series-modal .list{gap:.5rem;padding-bottom:.15rem}.series-modal button{border-radius:8px;padding:.5rem}.series-modal button:focus,.series-modal button:focus-visible{box-shadow:none;outline:none}.help-modal{width:min(34rem,90vw)}.help-modal pre{color:var(--text-dim);margin:0 0 .75rem;line-height:1.5}.help-modal .close-hint{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#13263a;border-radius:6px;align-self:flex-start;padding:.35rem .75rem;font-family:inherit;font-size:.85rem}.help-modal .close-hint:hover,.help-modal .close-hint:focus{border-color:var(--accent);background:#1b3c62}.messages-modal{width:min(50rem,90vw);max-height:80vh}.messages-modal .entries{flex:1;max-height:60vh;overflow-y:auto}.messages-modal .entries:focus,.messages-modal .entries:focus-visible{box-shadow:none;outline:none}.messages-modal .entry{gap:.5rem;padding:.25rem 0;font-family:monospace;display:flex}.messages-modal .entry.selected{color:#f5dd08;font-weight:700}.messages-modal .marker{flex-shrink:0;width:1rem}.messages-modal .time{width:8ch;color:var(--text-dim);flex-shrink:0}.messages-modal .text{white-space:pre-wrap;word-wrap:break-word;flex:1}.liveticker-modal{width:min(50rem,90vw);max-height:80vh}.liveticker-modal .meta{color:var(--text-dim);margin-bottom:.5rem;font-size:.8rem}.liveticker-modal .meta .error{color:#ff8a8a}.liveticker-modal .entries{flex:1;max-height:60vh;overflow-y:auto}.liveticker-modal .entries:focus,.liveticker-modal .entries:focus-visible{box-shadow:none;outline:none}.liveticker-modal .entry{border-bottom:1px solid var(--border);padding:.5rem 0}.liveticker-modal .entry:last-child{border-bottom:none}.liveticker-modal .time{color:#f5dd08;margin-bottom:.25rem;font-weight:700}.liveticker-modal .message{color:var(--text);white-space:pre-wrap;word-wrap:break-word}.liveticker-modal .empty-msg{color:var(--text-dim)}.table-wrap{border:1px solid var(--border);background:#071628;border-radius:6px;flex-direction:column;flex:1;min-height:0;display:flex}.table-title{border-bottom:1px solid var(--border);color:var(--text-dim);padding:.35rem .55rem;font-size:.9rem}.table-scroll{flex:1;min-height:0;overflow:auto}.group-stack{gap:.45rem;padding:.25rem;display:grid}.group-section{background:#0a1a2d;border:1px solid #355378;border-radius:5px;overflow:hidden}.group-title{color:var(--text-dim);background:#11263d;border-bottom:1px solid #355378;padding:.3rem .5rem;font-size:.84rem}.table-wrap .empty{color:var(--text-dim);padding:.65rem}.table-wrap table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.82rem}.table-wrap th,.table-wrap td{white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #24344a;max-width:0;padding:.25rem .38rem;overflow:hidden}.table-wrap thead th{z-index:1;text-align:left;background:#182436;position:sticky;top:0}.table-wrap th.tight-col,.table-wrap td.tight-col{padding-left:.2rem;padding-right:.2rem}.table-wrap tr.selected{background:#244f82;font-weight:700}.table-wrap tr.selected:focus,.table-wrap tr.selected:focus-visible{box-shadow:none;outline:none}.table-wrap tr.search-mark:not(.selected){background:#113158;box-shadow:inset 0 0 0 1px #2a79c7}.table-wrap tr.class-tint:not(.selected){color:var(--class-color)}.table-wrap tr.pit-row:not(.selected){color:#ffd166;background:#82611429;font-weight:700}.table-wrap tr.pit-row.selected{color:#ffe08a}.table-wrap tr.pit-in:not(.selected){color:#7fdfff;background:#257db847;font-weight:700}.table-wrap tr.pit-in.selected{color:#b9ecff;background:#3496d661}.table-wrap tr.pit-out:not(.selected){color:#f5b3ff;background:#8542aa2e;font-weight:700}.table-wrap tr.pit-out.selected{color:#ffd8ff}.table-wrap tr.pit-active:not(.selected){color:#ffd166;background:#ffdd0026;font-weight:700}.table-wrap tr.pit-active.selected{color:#ffe08a;background:#244f82}.table-wrap td.empty-message{text-align:center;color:var(--text-dim);padding:2rem 1rem;font-style:italic}.table-wrap td.stops-hot{color:#ff8a65;font-weight:700}.table-wrap tr.selected{color:#fff}.loading{color:var(--text-dim);justify-content:center}.error{color:#ff9ca6;min-height:1.2em;margin-top:.75rem}@media (width<=768px){.header-row{flex-direction:column}.logout-btn{align-self:flex-start}main{height:100dvh;padding:.4rem}}*{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}::-webkit-scrollbar-track{display:none!important}::-webkit-scrollbar-thumb{display:none!important}::-webkit-scrollbar-corner{display:none!important}
