:root{--bg:#14171c;--panel:#1c2027;--line:#2b313b;--fg:#d8dee7;--muted:#8b95a3;--accent:#4da3ff;--ok:#3fbf6f;--bad:#e05555;--warn:#d9a03f}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--fg);margin:0;font:14px/1.5 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.topnav{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:1.25rem;padding:.6rem 1.25rem;display:flex}.topnav .brand{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-right:.75rem;font-weight:700}.topnav a{color:var(--muted);border-bottom:2px solid transparent;padding:.2rem 0;text-decoration:none}.topnav a:hover{color:var(--fg)}.topnav a[aria-current]{color:var(--fg);border-bottom-color:var(--accent)}.topnav .navgroup{position:relative}.topnav .navgroup>a:after{content:"▾";opacity:.7;margin-left:.3rem;font-size:.7em;display:inline-block}.topnav .navmenu{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:6px;flex-direction:column;min-width:11rem;padding:.35rem 0;display:none;position:absolute;top:100%;left:-.75rem;box-shadow:0 6px 18px rgba(0,0,0,.35)}.topnav .navgroup:hover .navmenu{display:flex}.topnav .navgroup:focus-within .navmenu{display:flex}.topnav .navmenu a{white-space:nowrap;border-bottom:0;padding:.35rem .75rem}.topnav .navmenu a:hover{background:var(--bg)}.topnav .navmenu a[aria-current]{color:var(--accent)}main{max-width:1200px;margin:0 auto;padding:1.25rem}.pagehead{align-items:baseline;gap:1rem;display:flex}.pagehead h1{margin:.25rem 0 .75rem;font-size:1.25rem}.tabhead{border-bottom:1px solid var(--line);align-items:flex-end;gap:1rem;margin:0 0 1rem;display:flex}.pagetabs{gap:.25rem;display:flex}.pagetabs a{color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;padding:.5rem 1rem;font-size:1.05rem;text-decoration:none}.pagetabs a:hover{color:var(--fg)}.pagetabs a[aria-current]{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.tabactions{align-items:center;gap:.5rem;margin-left:auto;padding-bottom:.4rem;display:flex}.meta{color:var(--muted);flex-wrap:wrap;gap:1.5rem;margin:.25rem 0 .75rem;display:flex}.rolloutid{color:var(--muted);margin:0;font-size:.8rem}.rollouttitle h1+.rolloutid{margin:-.6rem 0 .75rem}.rolloutfilters{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 .5rem;display:flex}.rolloutfilters input.filter{flex:0 18rem;margin-bottom:0}.rolloutfilters input.versionsearch{flex-basis:24rem}.rolloutmatch{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 .5rem;display:flex}.rolloutmatch>.muted{font-size:.85rem}.rolloutmatch .matchhint{font-style:italic}.segmented{align-items:center;gap:.25rem;display:inline-flex}.segmented .muted{margin-right:.2rem;font-size:.85rem}.segmented button.selected{border-color:var(--accent);color:var(--accent)}.targetfilter{flex-wrap:wrap;gap:.5rem 1.2rem;margin:0 0 .6rem;display:flex}.targetpick{align-items:center;gap:.4rem;display:inline-flex}.targetpick select{max-width:16rem}.targetpick.active code{color:var(--accent)}.targetpick.active select{border-color:var(--accent)}.targets{flex-wrap:wrap;gap:.2rem .9rem;display:flex}.targets .target{white-space:nowrap;align-items:baseline;gap:.35rem;display:inline-flex}.targets .target .muted{font-size:.85rem}.slottree{margin:0 0 .75rem}.slottree summary{cursor:pointer}.slottree>summary{color:var(--muted);font-size:.9rem}.slottree ul{border-left:1px solid var(--line);margin:.2rem 0 0;padding-left:1.1rem;list-style:none}.slottree>ul{margin-left:.3rem}.slottree li{margin:.15rem 0}.slottree .slotleaf{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.slottree .slotimage{color:var(--muted);font-size:.85rem}.chips{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem;display:flex}.rolloutstatus{flex-wrap:wrap;align-items:center;gap:1.25rem;margin:.5rem 0 1rem;display:flex}.rolloutstatus .chips{grid-auto-columns:minmax(12rem,max-content);grid-auto-flow:column;gap:.4rem .75rem;margin:0;display:grid}.rolloutstatus .chips .chipbtn{text-align:left;align-items:center;gap:.4rem;display:flex}.rolloutstatus .chips .name{flex:1}.rolloutstatus .chips .count{font-variant-numeric:tabular-nums}.rolloutstatus .chips .pct{text-align:right;font-variant-numeric:tabular-nums;min-width:3.2rem;margin-left:0}.rolloutstatus .chips .dot{margin-right:0}.rolloutpie{flex:none;width:13rem;height:13rem}.rolloutpie .pie-track{stroke:var(--line)}.rolloutpie text{text-anchor:middle;pointer-events:none}.rolloutpie .pie-total{fill:var(--fg);font-size:6.5px;font-weight:600}.rolloutpie .pie-label{fill:var(--muted);font-size:2.8px}.rolloutpie .pie-pct{fill:var(--bg);dominant-baseline:central;font-size:2.5px;font-weight:700}.chips .dot{border-radius:50%;width:.55rem;height:.55rem;margin-right:.35rem;display:inline-block}.chips .pct{color:var(--muted);margin-left:.35rem}.chips button.chipbtn{font-family:inherit;line-height:inherit;cursor:pointer;background:0 0}.chips button.chipbtn:hover{background:color-mix(in srgb, currentColor 10%, transparent)}.chips button.chipbtn.selected{background:color-mix(in srgb, currentColor 18%, transparent)}.chips button.chipbtn.dimmed,.rolloutpie .pie-slice.dimmed{opacity:.35}.rolloutpie .pie-slice{cursor:pointer;transition:opacity .15s,stroke-width .15s}.rolloutpie .pie-slice:hover{stroke-width:9px}.filterbar:has(.exportcsv){max-width:none}.filterbar .exportcsv{white-space:nowrap;margin-left:auto}.filterbar .exportfiltered{white-space:nowrap}.filterbar:has(.exportcsv) input.filter{flex:0 20rem}.actions{gap:.5rem;margin:.5rem 0 1rem;display:flex}button{background:var(--panel);color:var(--fg);border:1px solid var(--line);cursor:pointer;border-radius:4px;padding:.35rem .9rem}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad)}button.ghost{background:0 0}table{border-collapse:collapse;width:100%;margin-top:.5rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.45rem .75rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}tbody tr:hover{background:var(--panel)}a{color:var(--accent)}code{font-family:Consolas,Cascadia Mono,monospace;font-size:.9em}pre{background:var(--panel);border:1px solid var(--line);border-radius:4px;max-width:480px;max-height:320px;padding:.6rem;font-size:.8rem;overflow:auto}details summary{cursor:pointer;color:var(--muted)}.badge{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.8rem;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.bad{color:var(--bad);border-color:var(--bad)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.active{color:var(--accent);border-color:var(--accent)}.badge.mixed{color:var(--warn);border-color:var(--ok)}.badge.idle,.muted{color:var(--muted)}.error{color:var(--bad)}.ok-text{color:var(--ok)}.topnav .spacer{flex:1}.topnav select.tzpicker{color:var(--muted);padding:.2rem .4rem;font-size:.85rem}details.upload{border:1px solid var(--line);background:var(--panel);border-radius:4px;margin:.5rem 0 1rem;padding:.5rem .9rem}.uploadform{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:.75rem;padding:.75rem 0 .25rem;display:grid}.uploadform label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.uploadform label.inline{flex-direction:row;align-items:center;gap:.5rem}.uploadform label.wide{grid-column:1/-1}.uploadform textarea{background:var(--bg);color:var(--fg);border:1px solid var(--line);resize:vertical;border-radius:4px;padding:.35rem .5rem;font-family:inherit}.uploadform textarea.required{border-color:var(--warn)}.releasenotes{max-width:24rem}.releasenotes summary{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.releasenotes-body{margin-top:.3rem;font-size:.85rem}.notetext{white-space:pre-wrap;display:block}.notelist{margin:.15rem 0;padding-left:1.2rem}.notelist li{margin:.1rem 0}.notetext+.notetext,.notelist+.notetext,.notetext+.notelist{margin-top:.4rem}.notescell{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.notescell textarea{background:var(--bg);color:var(--fg);border:1px solid var(--line);resize:vertical;border-radius:4px;width:22rem;max-width:100%;padding:.35rem .5rem;font-family:inherit}.notescell-actions{gap:.4rem;display:flex}.notescell-edit{padding:.1rem .5rem;font-size:.8rem}.hasnotes{text-underline-offset:.2em;cursor:help;outline:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;position:relative}.hasnotes:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.notestip{z-index:40;background:var(--panel);width:max-content;max-width:26rem;color:var(--fg);border:1px solid var(--line);white-space:normal;cursor:auto;border-radius:6px;margin-top:.4rem;padding:.5rem .7rem;font-family:inherit;font-size:.85rem;line-height:1.45;display:none;position:absolute;top:100%;left:0;box-shadow:0 6px 20px rgba(0,0,0,.35)}.notestip:before{content:"";height:.45rem;position:absolute;top:-.45rem;left:0;right:0}.hasnotes:hover .notestip,.hasnotes:focus .notestip{display:block}.notestip-head{color:var(--muted);margin-bottom:.3rem;font-size:.78rem;display:block}.demobanner{border:1px dashed var(--warn);color:var(--muted);border-radius:6px;margin:0 0 .75rem;padding:.4rem .7rem;font-size:.85rem}.demotools{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:-.25rem 0 .75rem;display:flex}.demotools .muted{font-size:.82rem}.uploadform input[type=text]{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:.35rem .5rem}.compose{max-width:40rem;margin:.5rem 0 1rem}.compose summary{cursor:pointer;color:var(--accent)}.compose-body{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.5rem;display:flex}.compose-body>button{align-self:flex-start}.compose-row{align-self:stretch;align-items:center;gap:.5rem;margin:0;display:flex}.compose-row .filter-field{flex:none}.compose-row input.filter{flex:1;max-width:none;margin-bottom:0}.compose-vins{color:var(--muted);flex-direction:column;align-self:stretch;gap:.25rem;max-width:28rem;font-size:.85rem;display:flex}.compose-vins textarea{background:var(--bg);color:var(--fg);border:1px solid var(--line);box-sizing:border-box;resize:vertical;border-radius:4px;width:100%;padding:.35rem .5rem;font-family:inherit}.compose-vins input[type=text]{background:var(--bg);color:var(--fg);border:1px solid var(--line);box-sizing:border-box;resize:vertical;border-radius:4px;width:100%;padding:.35rem .5rem;font-family:inherit}.compose-immediate{color:var(--muted);flex-direction:row;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.compose-immediate input{margin:0}.filter-toggle{color:var(--muted);align-items:center;gap:.4rem;margin:.25rem 0 .5rem;font-size:.85rem;display:flex}.filter-toggle input{margin:0}.pager{align-items:center;gap:.75rem;margin:.5rem 0;font-size:.85rem;display:flex}.pager button:disabled{opacity:.4;cursor:default}.imageactions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.imageactions .error{font-size:.8rem}button.danger{color:var(--bad);border-color:var(--bad)}.quickdeploy{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.quickdeploy input.filter{width:auto;max-width:11rem;margin-bottom:0}.quickdeploy .ok-text,.quickdeploy .error{font-size:.8rem}.phase{font-family:ui-monospace,monospace;font-size:.85rem}.phase-json{margin-top:.25rem}.phase-json summary{cursor:pointer;color:var(--muted);font-size:.8rem}.payload summary{cursor:pointer}.payload summary code{white-space:nowrap}.payload pre{white-space:pre-wrap;word-break:break-all;max-width:40rem;margin-top:.35rem}.uploadprogress{margin:.5rem 0 .25rem}.uploadprogress .muted{margin:.35rem 0 0;font-size:.85rem}.uploadprogress-track{background:var(--bg);border:1px solid var(--line);border-radius:999px;height:8px;overflow:hidden}.uploadprogress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .2s}h3.charttitle{color:var(--fg);margin:1rem 0 .25rem}.lanes .lane{position:relative}.lanes .lane+.lane{margin-top:0}.chartpanel .cursor-time{z-index:3;pointer-events:none;white-space:nowrap;color:var(--fg);background:color-mix(in srgb, var(--bg) 85%, transparent);border:1px solid var(--line);border-radius:3px;padding:0 4px;font-size:.7rem;position:absolute}.lanes .lanelabel{z-index:3;cursor:help;width:60px;position:absolute;top:0;bottom:0;left:0}.lanes .lanelabel:hover:after{content:attr(data-label);white-space:nowrap;color:var(--fg);background:color-mix(in srgb, var(--bg) 90%, transparent);border:1px solid var(--line);pointer-events:none;border-radius:3px;padding:.1rem .45rem;font-size:.75rem;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.chartwrap{--panelw:var(--panelw-set,min(calc(var(--tablew) + 1.2rem + 2px), 34%));grid-template-columns:var(--panelw,fit-content(34%)) .75rem minmax(0, 1fr);align-items:start;row-gap:.75rem;margin:.25rem 0 1.25rem;display:grid}@media (width<=1100px){.chartwrap{grid-template-columns:1fr}.panelgrip{display:none}}.panelgrip{align-self:stretch}.panelgrip.grabbable{cursor:col-resize;touch-action:none;position:relative}.panelgrip.grabbable:after{content:"";background:var(--line);opacity:.5;border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:calc(50% - 1px)}.panelgrip.grabbable:hover:after,.panelgrip.grabbable:active:after{background:var(--accent);opacity:1}.chartpanel.nearbar .u-over{cursor:ew-resize}.chartpanel .u-select{border-left:1px solid var(--accent);border-right:1px solid var(--accent);background:rgba(77,163,255,.15)}.charthint{color:var(--muted);margin:0 0 .5rem;font-size:.85rem}.dashbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;display:flex}.dashbar .filter-field{min-width:12rem}.filebutton{border:1px solid var(--line);color:var(--fg);cursor:pointer;background:0 0;border-radius:4px;padding:.35rem .9rem;font-size:.85rem}.filebutton:hover{border-color:var(--accent)}.filebutton input{display:none}.dashbar-error{text-align:right;margin:-.25rem 0 .75rem;font-size:.85rem}.dashnotes{flex-wrap:wrap;align-items:center;gap:.5rem;margin-right:auto;display:flex}.dashbar button.danger:not(:disabled):hover{border-color:var(--bad);color:var(--bad)}.unsaved{border:1px solid var(--warn);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .75rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.unsaved strong{color:var(--fg)}.unsaved button{margin-left:0}.unsaved button.danger:not(:disabled):hover{border-color:var(--bad);color:var(--bad)}dialog.confirm{background:var(--panel);width:min(26rem,100vw - 2rem);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:0;box-shadow:0 12px 32px rgba(0,0,0,.5)}dialog.confirm::backdrop{background:rgba(0,0,0,.55)}.confirm-body{padding:1rem 1.25rem 1.1rem}.confirm-body h2{overflow-wrap:anywhere;margin:0 0 .5rem;font-size:1.05rem}.confirm-body p{color:var(--muted);margin:0 0 1.1rem;font-size:.9rem;line-height:1.45}.confirm-actions{justify-content:flex-end;gap:.5rem;display:flex}.plotcard{border:1px solid var(--line);border-left:3px solid transparent;border-radius:6px;margin:0 0 .75rem;padding:.5rem .75rem}.plotcard.active{border-left-color:var(--accent)}.plotcard.hidden{display:none}.plotcard.solo{border:none;border-radius:0;margin:0;padding:0}.plotcard-head{align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.plotcard-head .plotremove{margin-left:auto}.plotfold{color:var(--fg);background:0 0;border:none;padding:.15rem .35rem;font-size:1rem;line-height:1}.plotfold:hover:not(:disabled){color:var(--accent)}.plotsummary{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;margin:0 0 .15rem;padding-left:1.4rem;font-size:.8rem;overflow:hidden}.plotsummary:hover{color:var(--fg)}.plotsbar{margin:0 0 .5rem}.libtarget{color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.libtarget strong{color:var(--accent);font-weight:600}.plottitle{min-width:0;color:var(--fg);background:0 0;border:1px solid transparent;border-radius:4px;flex:auto;padding:.15rem .3rem;font-family:inherit;font-size:.95rem;font-weight:600}.plottitle::placeholder{color:var(--muted);font-weight:400}.plottitle:hover{border-color:var(--line)}.plottitle:focus{border-color:var(--accent);outline:none}.tiles{flex-wrap:wrap;gap:.75rem;margin:0 0 .75rem;display:flex}.tiles:empty{display:none}.stattile{border:1px solid var(--line);border-radius:6px;flex:14rem;max-width:24rem;padding:.5rem .75rem}.stattile .plottitle{font-size:.85rem}.statvalue{margin:.25rem 0 0;font-size:1.6rem;font-weight:600}.statunit{color:var(--muted);font-size:.9rem;font-weight:400}.statwhen{margin:0;font-size:.8rem}.panelcard{border:1px solid var(--line);border-radius:6px;margin:0 0 .75rem;padding:.5rem .75rem}.panelcard-head{align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.panelcard-head .plotremove{margin-left:auto}.paneledit{flex-wrap:wrap;gap:.5rem;margin:0 0 .5rem;display:flex}.chips{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 .5rem;display:flex}.chip{border:1px solid var(--line);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.8rem;display:inline-flex}.chipx{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 .1rem;font-size:.8rem}.chipx:hover{color:var(--bad)}.summarywrap{overflow-x:auto}.historywrap{max-height:28rem;overflow-y:auto}.summarytable td,.summarytable th{white-space:nowrap}.timeline-rows{flex-direction:column;gap:.3rem;display:flex}.timeline-row{align-items:center;gap:.5rem;display:flex}.timeline-port{min-width:2rem;font-size:.8rem}.timeline{background:var(--line);border-radius:3px;flex:auto;height:1.4rem;position:relative;overflow:hidden}.timeline .band{position:absolute;top:0;bottom:0}.timelegend{flex-wrap:wrap;gap:.25rem 1rem;margin:.4rem 0 0;font-size:.8rem;display:flex}.legenditem{align-items:center;gap:.3rem;display:inline-flex}.swatch{border-radius:2px;width:.8rem;height:.8rem;display:inline-block}.notearea{box-sizing:border-box;width:100%;font:inherit;color:var(--fg);border:1px solid var(--line);background:0 0;border-radius:4px;padding:.4rem .5rem}.notetext{white-space:pre-wrap;margin:0}.chartmeta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 .4rem;font-size:.78rem;display:flex}.chartmeta button{padding:.1rem .4rem;font-size:.78rem}.chartmeta .filter-toggle{margin:0;font-size:.78rem}.seriespanel{border:1px solid var(--line);border-radius:6px;min-width:0;padding:.4rem .6rem;font-size:.8rem;overflow-x:auto}.measurehead{color:var(--muted);contain:inline-size;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 .35rem;font-size:.85rem;display:flex}.measurehead strong{color:var(--fg)}.panelactions{contain:inline-size;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .35rem;font-size:.8rem;display:flex}.panelactions button{padding:.1rem .5rem;font-size:.75rem}.measurehead button{margin-left:auto}.measurehead .stamps{gap:.1rem;display:grid}.measurehead .stamps span{white-space:nowrap}.seriestable{width:auto;margin-top:0;font-size:.8rem}.seriestable th,.seriestable td{text-transform:none;letter-spacing:normal;text-align:left;vertical-align:baseline;white-space:nowrap;border-bottom:none;padding:.15rem .45rem}.seriestable th:first-child,.seriestable td:first-child{padding-left:0}.seriestable tbody tr:hover{background:0 0}.seriestable th.num,.seriestable td.num{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5rem}.seriestable th.num{min-width:max(3.5rem, calc(var(--reserve,0ch) + .9rem))}.seriestable .m.first{border-left:1px solid var(--line)}.seriestable td.m.delta{color:var(--fg)}.seriestable th.live,.seriestable td.live,.cursorwhen.live{color:var(--accent)}.seriestable td.num.held{opacity:.75}.seriestable .heldmark{opacity:.8;margin-left:.25rem;font-size:.65rem;font-style:italic}.cursorwhen{color:var(--muted);contain:inline-size;min-height:1.1em;margin:0 0 .2rem;font-size:.7rem}.seriestable td.name .seriesdrop{margin-left:.1rem}.seriestable .aggtag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;cursor:help;border-radius:3px;margin-left:.3rem;padding:0 .3rem;font-size:.68rem;line-height:1.35;text-decoration:none;display:inline-block}.seriestable .aggtag.agg-mean{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 55%, transparent)}.aggkey{color:var(--muted);contain:inline-size;margin:0 0 .25rem;font-size:.7rem}.seriestable tr.off{opacity:.45}.seriestable tr.off code{text-decoration:line-through}.seriestoggle{color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;display:inline-flex;position:relative}.seriestoggle:hover code{color:var(--accent)}.seriestoggle code{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;overflow:hidden}.seriestoggle:hover:after{content:attr(data-name) "\a click to show or hide";white-space:pre;z-index:4;text-align:left;color:var(--fg);background:color-mix(in srgb, var(--bg) 94%, transparent);border:1px solid var(--line);pointer-events:none;border-radius:3px;padding:.15rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.3;position:absolute;bottom:calc(100% + .2rem);left:0}.seriesdrop{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 .3rem}.seriesdrop:hover{color:var(--bad)}.plotdot{border-radius:2px;flex:none;width:.55rem;height:.55rem;margin-right:.35rem;display:inline-block}.plotdot.quiet{border:1px solid var(--muted)}td.ts{white-space:nowrap}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--fg)}tr.clickable{cursor:pointer}tr.clickable:hover td{color:var(--fg)}.ecusummary{margin:0 0 1.5rem}.sectionhead{align-items:baseline;gap:1rem;display:flex}.sectionhead h2{margin:.5rem 0}.sectionhead .linkish{margin-left:auto}button.linkish{color:var(--accent);background:0 0;border:none;padding:0;font-size:.85rem}button.linkish:hover:not(:disabled){text-decoration:underline}table.ecutable th.disclosure,table.ecutable td.disclosure{width:2.5rem;padding-right:0}table.ecutable th.count{width:10rem}table.ecutable td.count{white-space:nowrap;font-variant-numeric:tabular-nums}table.ecutable tr.ecugroup td{border-top:1px solid var(--line)}table.ecutable tr.ecugroup td.count{font-weight:600}table.ecutable button.chevron{width:1.4rem;height:1.4rem;color:var(--muted);padding:0;font-size:.75rem;line-height:1;transition:transform .12s}table.ecutable tr.ecugroup:not(.open) button.chevron{transform:rotate(-90deg)}table.ecutable tr.ecusubhead td,table.ecutable tr.ecuversion td{background:var(--panel);border-bottom:none}table.ecutable tr.ecusubhead td{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:.5rem;padding-bottom:.1rem;font-size:.7rem;font-weight:600}table.ecutable tr.ecuversion td{padding-top:.3rem;padding-bottom:.3rem}table.ecutable tr.ecuversion:hover td{background:var(--line)}table.ecutable td.versioncell:before{content:"";vertical-align:middle;border-top:1px solid var(--muted);width:.6rem;margin-right:.5rem;display:inline-block}table.ecutable tr.ecusubhead td:nth-child(2),table.ecutable td.versioncell{padding-left:1.5rem}table.ecutable td.versioncell{white-space:nowrap}table.ecutable th.notes{width:32%}table.ecutable td.notes .notestip{left:auto;right:0}.ecusummary .hint{margin:.5rem 0 0;font-size:.85rem}.sectionhead .vincount{margin-left:auto;font-size:.9rem}.vinfilters{background:var(--panel);border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .6rem;display:flex}.vinfilters input.vinsearch{min-width:0;color:var(--fg);background:0 0;border:none;outline:none;flex:14rem;padding:.3rem .2rem}.filterchip{background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:.15rem .2rem .15rem .65rem;font-size:.85rem;display:inline-flex}.filterchip button{color:var(--muted);background:0 0;border:none;border-radius:999px;padding:0 .35rem;line-height:1.4}.filterchip button:hover:not(:disabled){color:var(--fg)}button.addfilter{border:1px dashed var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:.2rem .75rem;font-size:.85rem}button.addfilter:hover:not(:disabled){color:var(--fg);border-color:var(--muted)}.filteradder{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}table.vintable th.check,table.vintable td.check{width:2.5rem}table.vintable tr.vinrow{cursor:pointer}table.vintable tr.vinrow.selected td{background:color-mix(in srgb, var(--accent) 7%, transparent)}table.vintable td.reported{white-space:nowrap}table.vintable .targets code{color:var(--muted)}.ecuver{font-family:Consolas,Cascadia Mono,monospace;font-size:.9em}.ecuver .notestip{font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.ecuver.matched{color:var(--accent)}.vinlegend{color:var(--muted);flex-wrap:wrap;gap:1rem;margin-top:.5rem;font-size:.8rem;display:flex}.vinlegend>span{align-items:center;gap:.4rem;display:inline-flex}.vinlegend .swatch{border-radius:2px;width:.5rem;height:.5rem}.vinlegend .swatch.matched{background:var(--accent)}.rolloutcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:0 0 .75rem}.rolloutcard .cardhead{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;padding:.75rem 1rem;display:flex}.rolloutcard .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:600}.rolloutcard .cardcount{font-size:1.05rem;font-weight:600}.rolloutcard .cardnote{font-size:.8rem}.rolloutcard .cardfields{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));align-items:end;gap:.9rem 1rem;padding:.9rem 1rem;display:grid}.rolloutcard .field{flex-direction:column;gap:.35rem;min-width:0;display:flex}.rolloutcard .fieldhead{justify-content:space-between;align-items:baseline;display:flex}.rolloutcard .fieldlabel{color:var(--muted);font-size:.85rem;font-weight:500}.rolloutcard .fieldlabel .muted{opacity:.8;font-weight:400}.rolloutcard .cardinput{background:var(--bg);width:100%;height:2.3rem;color:var(--fg);border:1px solid var(--line);font:inherit;border-radius:6px;padding:0 .6rem}.rolloutcard .cardinput:focus{border-color:var(--accent);outline:none}.rolloutcard .cardinput.mono{font-family:Consolas,Cascadia Mono,monospace;font-size:.85rem}.rolloutcard .slotvalue{border:1px solid var(--line);background:color-mix(in srgb, var(--fg) 3%, transparent);border-radius:6px;align-items:center;gap:.5rem;height:2.3rem;padding:0 .6rem;display:flex;overflow:hidden}.rolloutcard .slotvalue code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rolloutcard .slotvalue .muted{white-space:nowrap;margin-left:auto;font-size:.78rem}.rolloutcard button.approvetoggle{text-align:left;border:1px solid var(--line);background:0 0;border-radius:6px;align-items:center;gap:.7rem;min-height:2.3rem;padding:.35rem .7rem;display:flex}.rolloutcard .switch{background:var(--line);border-radius:999px;flex:none;width:2.1rem;height:1.2rem;transition:background .15s;position:relative}.rolloutcard .switch .knob{background:var(--fg);border-radius:999px;width:.9rem;height:.9rem;transition:left .15s;position:absolute;top:.15rem;left:.15rem}.rolloutcard .approvetoggle.on .switch{background:var(--accent)}.rolloutcard .approvetoggle.on .switch .knob{left:1.05rem}.rolloutcard .approvetext{flex-direction:column;gap:.1rem;display:flex}.rolloutcard .approvetext .muted{font-size:.75rem;line-height:1.4}.rolloutcard .notescard{border:1px solid var(--line);background:var(--bg);border-radius:6px;margin:0 1rem .9rem}.rolloutcard .notescard-head{border-bottom:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:baseline;gap:.75rem;padding:.5rem .75rem;font-size:.72rem;font-weight:600;display:flex}.rolloutcard .notescard-head code{letter-spacing:0;text-transform:none;color:var(--fg);font-weight:400}.rolloutcard .notescard-body{padding:.6rem .75rem;font-size:.88rem;line-height:1.5}.rolloutcard .notescard-body p{margin:0}.rolloutcard .notescard-foot{border-top:1px solid var(--line);color:var(--warn);padding:.5rem .75rem;font-size:.82rem}.rolloutcard .cardfoot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.75rem 1rem;display:flex}.rolloutcard .cardsummary{overflow-wrap:anywhere;flex:16rem;font-size:.85rem}.rolloutcard .cardsummary p{margin:0 0 .25rem}.rolloutcard .cardactions{gap:.5rem;display:flex}.rolloutcard .cardactions button{border-radius:999px;padding:.45rem 1rem}.rolloutcard button.primary{background:var(--accent);border-color:var(--accent);color:#0b1320;font-weight:600}.rolloutcard button.primary:hover:not(:disabled){filter:brightness(1.1)}.rolloutcard .imagepicker{flex-direction:column;gap:.5rem;display:flex}.rolloutcard .imageresults{border:1px solid var(--line);background:var(--bg);border-radius:6px}.rolloutcard .imageresults>p{margin:0;padding:.6rem .7rem}.rolloutcard .imagechips{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem .6rem;display:flex}.rolloutcard button.imagechip{color:var(--muted);background:0 0;border-radius:999px;padding:.1rem .6rem;font-size:.8rem}.rolloutcard button.imagechip code{color:var(--fg)}.rolloutcard button.imagechip.relevant{border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.rolloutcard button.imagechip.active{background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:var(--accent);color:var(--fg)}.rolloutcard .closeresults{margin-left:auto}.rolloutcard .imagelist{max-height:20rem;overflow-y:auto}.rolloutcard button.imageoption{text-align:left;border:none;border-bottom:1px solid var(--line);background:0 0;border-radius:0;flex-direction:column;gap:.15rem;width:100%;padding:.45rem .7rem;display:flex}.rolloutcard button.imageoption:last-child{border-bottom:none}.rolloutcard button.imageoption:hover{background:var(--panel);outline:none}.rolloutcard button.imageoption:focus-visible{background:var(--panel);outline:none}.rolloutcard .imageline{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.rolloutcard .imagecomp{color:var(--muted)}.rolloutcard .imagedate{margin-left:auto;font-size:.8rem}.rolloutcard .imagenotes{font-size:.8rem}.rolloutcard button.imageoption:disabled{opacity:.55;cursor:default}.rolloutcard .cardimages{flex-direction:column;gap:.6rem;padding:.9rem 1rem 0;display:flex}.rolloutcard .pickrow{border:1px solid var(--line);background:var(--bg);border-radius:6px;grid-template-columns:minmax(12rem,1fr) minmax(14rem,1.4fr) auto;align-items:center;gap:.4rem .9rem;padding:.55rem .7rem;display:grid}.rolloutcard .pickimage{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.rolloutcard .pickslot{align-items:center;gap:.6rem;min-width:0;display:flex}.rolloutcard .pickslot .slotvalue,.rolloutcard .pickslot .cardinput{flex:1;min-width:0}.rolloutcard .pickslot .linkish{white-space:nowrap}.rolloutcard .picknotes{flex-wrap:wrap;grid-column:1/-1;gap:.3rem 1rem;font-size:.82rem;display:flex}.rolloutcard .pickwarn{color:var(--warn)}@media (width<=800px){.rolloutcard .pickrow{grid-template-columns:1fr auto}.rolloutcard .pickslot{grid-area:2/1/auto/-1}}.rolloutcard .proposednotice{border:1px solid color-mix(in srgb, var(--ok) 55%, transparent);background:color-mix(in srgb, var(--ok) 10%, transparent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:.9rem 1rem 0;padding:.6rem .8rem;font-size:.88rem;display:flex}.rolloutcard .proposednotice.failed{border-color:color-mix(in srgb, var(--warn) 55%, transparent);background:color-mix(in srgb, var(--warn) 10%, transparent)}.rolloutcard .noticeactions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.rolloutcard a.openrollout{background:var(--accent);color:#0b1320;border-radius:999px;padding:.35rem .9rem;font-weight:600;text-decoration:none}.rolloutcard a.openrollout:hover{filter:brightness(1.1)}.rolloutcard .noticeactions button{border-radius:999px}details.section{margin:0 0 1rem}details.section>summary{color:var(--fg);-webkit-user-select:none;user-select:none}details.section>summary h2{margin:.5rem 0;display:inline-block}details.section.hidden{display:none}.unitbar-wrap{margin:0 0 1rem;container-type:inline-size}.unitbar{border:1px solid var(--line);background:var(--panel);border-radius:6px;grid-template-columns:auto auto minmax(min-content,1fr) auto;display:grid}.unitbar-wrap:has(.unitdrawer) .unitbar{border-radius:6px 6px 0 0}.unitled{color:var(--muted);background:color-mix(in srgb, var(--muted) 10%, transparent);letter-spacing:.1em;border-radius:5px 0 0 5px;align-items:center;gap:.5rem;padding:0 .9rem;font-size:.72rem;font-weight:700;display:flex}.unitled.live{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent)}.unitdot{border:1.5px solid;border-radius:50%;width:.5rem;height:.5rem}.unitled.live .unitdot{background:currentColor}.unitcell{border-left:1px solid var(--line);white-space:nowrap;align-items:baseline;gap:.5rem;padding:.65rem .9rem;font-size:.8rem;display:flex}.unitid{align-items:center;gap:.6rem}.unitreadings{border-left:1px solid var(--line);flex-wrap:wrap;display:flex;overflow:hidden}.unitreadings .unitcell{box-shadow:-1px 0 0 var(--line), 0 -1px 0 var(--line);border-left:0}@container (width<=85rem){.unitbar{grid-template-columns:auto 1fr auto}.unitreadings{border-left:0;border-top:1px solid var(--line);grid-area:2/1/auto/-1}.unitled{border-radius:5px 0 0}button.unitsw{border-radius:0 5px 0 0}}.unitvin{letter-spacing:.02em;font-size:1rem;font-weight:600}.unitval{font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600}.unitcell.idle .unitval{color:var(--muted)}.unitcell.seen.ok .unitval{color:var(--ok)}.unitcell .unitval.alarm{color:var(--warn)}.unitcode{color:var(--muted);font-family:Consolas,Cascadia Mono,monospace;font-size:.78rem}.unitcell .stamp{color:var(--muted);font-size:.75rem}button.unitsw{border:0;border-left:1px solid var(--line);color:var(--muted);font:inherit;background:0 0;border-radius:0 5px 5px 0;align-items:center;padding:.65rem .9rem;font-size:.8rem}button.unitsw:hover:not(:disabled){border-color:var(--line);color:var(--fg)}button.unitsw:focus{outline:none}button.unitsw:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.unitsw .caret{font-size:.7rem}.unitdrawer{border:1px solid var(--line);background:var(--bg);border-top:0;border-radius:0 0 6px 6px;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.25rem;padding:.6rem .9rem;font-size:.8rem;display:flex}.unitecu{white-space:nowrap;align-items:baseline;gap:.4rem;display:inline-flex}.approvalform{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.75rem 0 1rem;padding:.6rem .75rem;display:flex}.approvalform label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.approvalform input.filter-field{min-width:16rem}.approvalform>p,.approvalform>details{flex-basis:100%;margin:0}.approvalform>.targetmode,.approvalform>.batchfield,.approvalform>.batchcheck,.approvalform>.batchchecked{flex-basis:100%}.approvalform>.batchfield textarea.batchtargets{resize:vertical;background:var(--bg);width:100%;max-width:44rem;min-height:5rem;color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:.4rem .5rem;font-family:Consolas,Cascadia Mono,monospace;font-size:.85rem}.batchcheck{align-items:center;gap:.75rem;display:flex}.batchchecked>p{margin:0 0 .35rem}table.batchtable{max-width:44rem;margin-top:0}table.batchtable td{padding-top:.3rem;padding-bottom:.3rem}.batchconfirm{border:1px solid var(--warn);background:color-mix(in srgb, var(--warn) 8%, transparent);border-radius:6px;max-width:44rem;margin:.75rem 0;padding:.7rem .85rem}.batchconfirm p{margin:0 0 .6rem}.batchactions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.batchactions .muted{font-size:.8rem}.batchprogress{margin:.75rem 0}.batchprogress>p{margin:0 0 .35rem}.batchnote{margin:.5rem 0 .75rem}.batchnote p{margin:0 0 .25rem}.batchnote ul{margin:.2rem 0 0;padding-left:1.2rem;font-size:.85rem}.batchnote .notevins{max-height:5rem;color:var(--muted);margin:.15rem 0 .4rem;font-family:Consolas,Cascadia Mono,monospace;font-size:.8rem;overflow-y:auto}table.requesttable th.check,table.requesttable td.check{width:2rem;padding-right:0}tbody.batch tr.batchhead td{background:color-mix(in srgb, var(--accent) 6%, transparent);border-top:2px solid var(--line)}tbody.batch .batchline{flex-wrap:wrap;align-items:baseline;gap:.3rem .75rem;margin-bottom:.35rem;display:flex}table.requesttable tbody.batch tr.batchmember td:nth-child(2),table.jobtable tbody.batch tr.batchmember td:first-child{padding-left:1.2rem}.batchtoggle{border:1px solid color-mix(in srgb, var(--accent) 60%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.15rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.batchtoggle:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, transparent)}.batchtoggle .arrow{transition:transform .12s;display:inline-block}tbody.batch:not(.open) .batchtoggle .arrow{transform:rotate(-90deg)}tbody.batch .batchline.clickable{cursor:pointer}.batchspans{font-style:italic}.jobscontrols{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin:0 0 .5rem;display:flex}.jobscontrols .filter-toggle{margin:0}.jobscontrols .jobsnote{margin-left:auto;font-size:.8rem}.batchreview{border:1px solid var(--warn);background:color-mix(in srgb, var(--warn) 8%, transparent);border-radius:6px;max-width:52rem;margin-top:.6rem;padding:.7rem .85rem}.batchreview p{margin:0 0 .5rem}.batchreview .reviewcount{color:var(--fg);font-size:1.05rem;font-weight:600}.batchreview .reviewpart{margin:0 0 .6rem}.batchreview .reviewpart>.muted{margin-bottom:.2rem;font-size:.8rem;display:block}.batchreview .reviewpart pre{max-width:none;margin:0}.batchreview .reviewvins{max-height:8rem;margin:0;font-family:Consolas,Cascadia Mono,monospace;font-size:.85rem;line-height:1.6;overflow-y:auto}.outcome{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex-direction:column;gap:.45rem;margin:.75rem 0 1rem;padding:.6rem .75rem;display:flex}.outcome p{margin:0}.outcome .statusdetails{flex-wrap:wrap;gap:.4rem;display:flex}.outcome pre{max-width:100%;margin:0;overflow-x:auto}.unitcell.pulse{outline-offset:-2px;outline:2px solid transparent;animation:1.6s ease-out reading-pulse}@keyframes reading-pulse{0%{background:color-mix(in srgb, var(--ok) 22%, transparent);outline-color:color-mix(in srgb, var(--ok) 40%, transparent)}to{background:0 0;outline-color:transparent}}@media (prefers-reduced-motion:reduce){.unitcell.pulse{animation:none}}.statusbadge{border:1px solid var(--line);color:var(--muted);white-space:nowrap;vertical-align:middle;border-radius:999px;margin-left:.6rem;padding:.1rem .55rem;font-size:.8rem;display:inline-block}.rangebar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 0;display:flex;position:sticky;top:0}.rangebar h1{margin:0;font-size:1.25rem}.rangebar .filter-toggle{margin:0}.periodstep{display:inline-flex}.periodstep button{border-radius:0;margin-left:-1px;padding:.35rem .7rem}.periodstep button:first-child{border-radius:4px 0 0 4px;margin-left:0}.periodstep button:last-child{border-radius:0 4px 4px 0}.periodstep button.active{background:var(--accent);border-color:var(--accent);color:#fff}.stepnote{font-size:.85rem}main:has(.telematics){max-width:none}.telematics{grid-template-columns:18rem minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.vehiclepane{max-height:calc(100vh - 5.5rem);position:sticky;top:4.25rem;overflow:auto}.vehiclepane input.filter{width:100%;max-width:none}.vehiclepane select.platformselect{width:100%;margin-bottom:.4rem}.telematics.rail-closed{grid-template-columns:max-content minmax(0,1fr);gap:1rem}.vehiclepane.closed .panehead{writing-mode:vertical-rl;margin:0;padding:.25rem 0}.vehiclelist{margin:0;padding:0;list-style:none}.vehiclelist li{cursor:pointer;border-radius:4px;flex-direction:column;gap:.1rem;padding:.4rem .5rem;display:flex}.vehiclelist li:hover{background:var(--panel)}.vehiclelist li.selected{background:var(--panel);color:var(--fg)}.vehiclelist li.selected code{color:var(--accent)}.vehiclelist li span{font-size:.8rem}@media (width<=900px){.telematics{grid-template-columns:1fr}.vehiclepane{max-height:none;position:static}}.nofaults{color:var(--ok);margin:.75rem 0 1.25rem}.customplot{grid-template-columns:22rem minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.customplot.library-closed{grid-template-columns:max-content minmax(0,1fr);gap:1rem}.signalpane.closed .panehead{writing-mode:vertical-rl;margin:0;padding:.25rem 0}.panetoggle{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;padding:0}.panetoggle:hover{color:var(--fg)}main:has(.customplot){max-width:none}main:has(.widepage){max-width:none}.tablewrap{margin-top:.5rem;overflow-x:auto}.tablewrap table{margin-top:0}.tablewrap td code{white-space:nowrap}.vinpicker{position:relative}.vinpicker input{width:17rem}.vinpicker-list{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:4px;width:max-content;min-width:100%;max-height:20rem;margin:2px 0 0;padding:.25rem;list-style:none;position:absolute;top:100%;left:0;overflow:auto;box-shadow:0 6px 16px rgba(0,0,0,.4)}.vinpicker-list li{cursor:pointer;white-space:nowrap;border-radius:4px;align-items:baseline;gap:.75rem;padding:.3rem .5rem;display:flex}.vinpicker-list li:hover{background:var(--bg)}.limitwarn{color:var(--warn);margin:0 0 .5rem;font-size:.85rem}.vinpicker-list li.selected code{color:var(--accent)}.vinpicker-list li.muted{cursor:default}.vinpicker-list li span{font-size:.8rem}.signalpane{max-height:calc(100vh - 5.5rem);position:sticky;top:4.25rem;overflow:auto}.signalpane input.filter{width:100%;max-width:none}.signalpane .panehead,.vehiclepane .panehead{text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:baseline;gap:.5rem;margin:0 0 .5rem;font-size:.8rem;font-weight:600;display:flex}.signalpane .panehead .muted{text-transform:none;letter-spacing:0;font-weight:400}details.siggroup{margin:.25rem 0}details.siggroup>summary{color:var(--fg);-webkit-user-select:none;user-select:none;padding:.2rem 0;font-weight:600}.siglist{margin:.25rem 0 .5rem;padding:0;list-style:none}.sigrow{cursor:pointer;border-radius:4px;align-items:center;gap:.5rem;padding:.2rem .4rem;display:flex}.sigrow:hover,.sigrow.checked{background:var(--panel)}.sigrow.checked code{color:var(--accent)}.sigrow input{pointer-events:none;margin:0}.sigrow code{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sigrow .sigval{color:var(--muted);white-space:nowrap;font-size:.85rem}.sigrow.unreported code{color:var(--muted)}.sigrow .badge{color:var(--muted);padding:0 .4rem;font-size:.7rem}@media (width<=900px){.customplot{grid-template-columns:1fr}.signalpane{max-height:none;position:static}}input::placeholder{color:var(--muted);opacity:.5;font-style:italic}.filterbar{gap:.5rem;max-width:28rem;margin-bottom:.5rem;display:flex}.filterbar input.filter{flex:1;max-width:none;margin-bottom:0}select.filter-field{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:.35rem .5rem}input.filter{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:4px;width:100%;max-width:28rem;margin-bottom:.5rem;padding:.35rem .5rem}.devicelogs .btn-primary,.devicelogs a.btn-primary{background:var(--accent);color:#0e1116;border:1px solid var(--accent);cursor:pointer;border-radius:6px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.devicelogs .btn-primary:hover:not(:disabled){color:#0e1116;background:#6fb5ff;border-color:#6fb5ff}.devicelogs .btn-primary.big{padding:.7rem 1.4rem;font-size:1rem}.devicelogs .btn-secondary{background:var(--panel);color:var(--fg);border:1px solid #3a4250;border-radius:6px;align-items:center;gap:.5rem;padding:.45rem .9rem;display:inline-flex}.devicelogs .btn-secondary:hover:not(:disabled){border-color:var(--accent)}.devicelogs .btn-plain{color:var(--muted);background:0 0;border:1px solid transparent;border-radius:6px;padding:.45rem .6rem}.devicelogs .btn-plain:hover:not(:disabled){color:var(--fg);border-color:var(--line)}.dlhead{flex-wrap:wrap;align-items:flex-start;gap:1.5rem;margin-bottom:1rem;display:flex}.dlintro{flex:32rem;min-width:0}.dlintro h1{margin:0 0 .3rem}.dlintro p{max-width:48rem;margin:0}.dlsteps{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.3rem;display:flex}.dlsteps .step{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:.6rem;padding:.45rem .9rem;font-size:.85rem;display:flex}.dlsteps .step .n{border:1px solid var(--line);border-radius:999px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.75rem;display:inline-flex}.dlsteps .step.done{color:var(--ok)}.dlsteps .step.done .n{background:var(--ok);color:#0e1116;border-color:var(--ok)}.dlsteps .step.now{color:var(--fg);border-color:var(--accent);background:#1a2432}.dlsteps .step.now .n{background:var(--accent);color:#0e1116;border-color:var(--accent)}.dlhow{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:.75rem 0 1rem;display:grid}@media (width<=60rem){.dlhow{grid-template-columns:1fr}}.dlhow .how{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:.3rem;padding:.85rem 1rem;display:flex}.dlhow .how strong{font-size:.95rem}.dlhow .how span{color:var(--muted);font-size:.85rem}.dlpanel{border:1px solid var(--line);background:#171b21;border-radius:10px;margin:0 0 1rem;padding:1rem 1.25rem}.dlform{flex-direction:column;gap:.75rem;display:flex}.dlform label.batchfield{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.dlform textarea.batchtargets{resize:vertical;background:var(--bg);width:100%;max-width:44rem;min-height:6rem;color:var(--fg);font:inherit;border:1px solid #3a4250;border-radius:6px;padding:.6rem .75rem;font-family:Consolas,Cascadia Mono,monospace}.dlactions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.dlactions .muted{font-size:.85rem}.dlbar{flex-wrap:wrap;align-items:center;gap:1.25rem;padding:.75rem 1rem;display:flex}.dlfield{flex-direction:column;gap:.1rem;display:flex}.dlfield.dlgrow{flex:16rem;min-width:12rem}.dlkey{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.dlbaracts{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.dlfollow{align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.dldot{background:var(--accent);border-radius:999px;width:.5rem;height:.5rem}.dltrackrow{align-items:center;gap:.6rem;display:flex}.dltrack{background:var(--line);border-radius:999px;flex:auto;height:.6rem;overflow:hidden}.dlfill{background:var(--accent);border-radius:999px;height:100%;transition:width .4s}.tabular{font-variant-numeric:tabular-nums}.dltools{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 1rem;display:flex}.dlpattern{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.dlpattern input.filter-field{min-width:16rem;margin:0}.dlsep{background:var(--line);width:1px;height:1.5rem}.dlusual{margin-left:auto;font-size:.8rem}.dlcard{border:1px solid var(--line);background:#171b21;border-radius:10px;flex-direction:column;gap:.85rem;margin:0 0 1rem;padding:1rem 1.25rem;display:flex}.dlcard.done{border-color:#2f5f3f}.dlcardhead{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.dlcardhead h2{margin:0;font-size:1.15rem}.dlcardhead .muted{font-size:.85rem}.dltally{margin-left:auto;font-size:.85rem}.dlcard>p.error,.dlcard>p.muted{margin:0}details.dlsrc{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.7rem .9rem}details.dlsrc>summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.75rem;list-style:none;display:flex}details.dlsrc>summary::-webkit-details-marker{display:none}details.dlsrc>summary h3{margin:0;font-size:.95rem}.dlsrcmeta{font-size:.8rem}.dlsrcacts{gap:.25rem;margin-left:auto;display:flex}.chev{border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);flex:none;width:.5rem;height:.5rem;margin:0 .25rem 0 .1rem;transition:transform .15s;transform:rotate(-45deg)}details[open]>summary>.chev{transform:rotate(45deg)}.dlcols{grid-template-columns:repeat(2,minmax(0,1fr));gap:.1rem 1.5rem;margin-top:.4rem;display:grid}@media (width<=56rem){.dlcols{grid-template-columns:1fr}}.devicelogs label.row{cursor:pointer;border-radius:6px;align-items:center;gap:.6rem;min-width:0;min-height:2.1rem;padding:0 .6rem;font-size:.85rem;display:flex}.devicelogs label.row:hover{background:#22272f}.devicelogs label.row.on{background:#1a2432}.devicelogs label.row code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.devicelogs label.row.preset code{color:var(--accent)}.devicelogs label.row.unsafe{opacity:.55;cursor:not-allowed}.devicelogs label.row .size{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:.75rem}.devicelogs input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.devicelogs input[type=checkbox]:disabled{cursor:default}.logtree label.folder{border:1px solid var(--line);cursor:pointer;background:#161a20;border-radius:6px;align-items:center;gap:.6rem;min-height:2.2rem;margin-top:.4rem;padding:0 .6rem;font-size:.85rem;display:flex}.logtree label.folder.on,.logtree .folderrow.on>details>summary{background:#1a2432}.logtree .meta{color:var(--muted);margin-left:auto;font-size:.75rem}.dlfolders{flex-direction:column;gap:.3rem;margin-top:.4rem;display:flex}.folderrow{align-items:flex-start;gap:.6rem;display:flex}.folderrow>input[type=checkbox]{margin-top:.6rem}.folderrow>details.logdir{flex:auto;min-width:0;margin:0}details.logdir>summary{border:1px solid var(--line);cursor:pointer;background:#161a20;border-radius:6px;align-items:center;gap:.6rem;min-height:2.2rem;padding:0 .6rem;font-size:.85rem;list-style:none;display:flex}details.logdir>summary::-webkit-details-marker{display:none}details.logdir>.dlcols,details.logdir>.dlfolders{margin-left:1.5rem}.dlprogress{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}@media (width<=56rem){.dlprogress{grid-template-columns:1fr}}.dlpcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem .9rem;display:flex}.dlpcard.later{opacity:.7}.dlpcardhead{align-items:center;gap:.6rem;display:flex}.dlpcardhead .muted{margin-left:auto;font-size:.85rem}.dlpcard>.muted{font-size:.85rem}details.dlentries>summary{cursor:pointer;font-size:.85rem}.dlarchive{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.dlarchiveicon{color:var(--accent);display:inline-flex}.dlarchivetext{flex-direction:column;flex:20rem;gap:.15rem;min-width:0;display:flex}.dlarchivetext code{font-size:.95rem}.dlarchivetext .muted{font-size:.85rem}.dlarchiveacts{align-items:center;gap:.5rem;display:flex}.dlcontents{grid-template-columns:repeat(3,minmax(0,1fr));gap:.1rem 1.5rem;margin-top:.5rem;font-size:.85rem;display:grid}@media (width<=60rem){.dlcontents{grid-template-columns:1fr}}.dlcontents div{align-items:center;gap:.5rem;min-width:0;min-height:1.6rem;display:flex}.dlcontents div code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dlcontents .sz{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.dlcontents .dlsource{color:var(--muted);grid-column:1/-1;margin-top:.4rem;font-weight:600}table.logfiles{max-width:60rem}table.logfiles td.logprogress{min-width:12rem}table.logfiles td.logprogress .error{margin:.2rem 0 0;font-size:.8rem}table.logfiles tr.now{background:#1a2432}table.logfiles .right,table.logrecent .right{text-align:right}.badge.archived{color:#8cc4ff;border-color:#2f5f91}.minibar{background:var(--line);vertical-align:middle;border-radius:999px;width:7rem;height:.4rem;margin-left:.5rem;display:inline-block;overflow:hidden}.minibar i{background:var(--accent);height:100%;display:block}.dlrecent h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:1.25rem 0 .25rem;font-size:.85rem}table.logrecent{max-width:70rem}table.logrecent tr.now{background:#1a2432}.dlsticky{background:var(--panel);border-top:1px solid var(--line);z-index:5;border-radius:10px 10px 0 0;margin:1rem 0 0;position:sticky;bottom:0;box-shadow:0 -8px 24px rgba(0,0,0,.35)}.dlstickyin{flex-wrap:wrap;align-items:center;gap:1.2rem;padding:.85rem 1.25rem;display:flex}.dlstickytext{flex-direction:column;gap:.1rem;display:flex}.dlstickymain{font-size:1rem}.dlstickytext .muted{font-size:.85rem}.dlstickyacts{align-items:center;gap:.6rem;margin-left:auto;display:flex}.dlolder{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.5rem 0 0;display:flex}.dlolder .muted{font-size:.85rem}