/* BytePerformance • shared interface tokens */
:root{--bp-bg:#0c1117;--bp-panel:#121a23;--bp-raised:#18232e;--bp-line:#2b3b48;--bp-text:#edf4f8;--bp-muted:#a8b8c5;--bp-accent:#69ddd1;--bp-ink:#071b1a;--bp-danger:#ffb0b8;--bp-radius:14px;--bp-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body.light{--bp-bg:#f2f5f7;--bp-panel:#fff;--bp-raised:#eaf0f3;--bp-line:#c9d5dd;--bp-text:#162c3b;--bp-muted:#536777;--bp-accent:#08796f;--bp-ink:#fff;--bp-danger:#b02442}
body.logger-workspace,body.pro-page{background:var(--bp-bg);color:var(--bp-text);font:16px/1.5 var(--bp-font);letter-spacing:0; -webkit-font-smoothing:antialiased}
*,*:before,*:after{box-sizing:border-box}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font-family:inherit}
button,a{touch-action:manipulation}
button:not(:disabled),a{cursor:pointer}
button:disabled{opacity:.5;cursor:wait}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--bp-accent)!important;outline-offset:3px}
.bp-skip{position:fixed;top:-100px;left:18px;z-index:99999;background:var(--bp-accent);color:var(--bp-ink);padding:12px 20px;border-radius:8px}.bp-skip:focus{top:12px}
.bp-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}
.logger-workspace{height:100dvh!important;min-height:0}
.logger-workspace .hdr{height:auto;min-height:76px;padding:14px 24px;gap:10px;background:var(--bp-panel)!important;border-color:var(--bp-line)!important;flex-wrap:wrap}
.logger-workspace .hdr-left{margin-right:16px}.logger-workspace .hdr-left img{max-width:180px;object-fit:contain}
.logger-workspace .hdr-btn,.logger-workspace .lang-drop,.logger-workspace .chart-ov-btn,.logger-workspace .sb-actions button,.logger-workspace .sbf-btn{min-height:40px;border:1px solid var(--bp-line);background:var(--bp-panel);color:var(--bp-text);font-size:13px;border-radius:8px;transition:background .16s,border-color .16s}
.logger-workspace .hdr-btn:hover,.logger-workspace .sb-actions button:hover{background:var(--bp-raised);border-color:var(--bp-accent)}
.logger-workspace .hdr-btn.accent{color:var(--bp-accent);background:var(--bp-raised);border-color:var(--bp-accent)}
.bp-navigation{display:flex;align-items:center;gap:4px;margin-right:auto}.bp-navigation a{padding:10px 14px;border-radius:8px;color:var(--bp-muted);text-decoration:none;font-weight:600;font-size:14px}.bp-navigation a:hover{color:var(--bp-text);background:var(--bp-raised)}.bp-navigation a[aria-current=page]{background:var(--bp-raised);color:var(--bp-accent)}
.logger-workspace .app{min-height:0}.logger-workspace .sidebar{width:288px;min-width:288px;background:var(--bp-panel)!important;border-color:var(--bp-line)!important;padding:12px 8px}
.logger-workspace .sb-head{padding:16px 12px}.logger-workspace .sb-title{font-size:12px;letter-spacing:1.6px;color:var(--bp-muted)}
.logger-workspace .sb-badge{background:var(--bp-raised);color:var(--bp-accent);font-variant-numeric:tabular-nums}
.logger-workspace .sb-search input{background:var(--bp-bg)!important;border:1px solid var(--bp-line)!important;color:var(--bp-text)!important;min-height:42px;font-size:14px;padding:10px 12px;border-radius:8px}
.logger-workspace .sb-actions{gap:8px;padding:10px}.logger-workspace #btn-garage,.logger-workspace #btn-settings{min-height:44px;border-color:var(--bp-line)!important;color:var(--bp-text)!important;text-align:left!important;padding-left:16px!important;font-size:14px!important}
.logger-workspace .main{min-width:0;background:var(--bp-bg);overflow:auto}.logger-workspace .panels{padding:0 24px 24px;gap:20px;min-height:0}
.bp-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 24px 22px;flex-shrink:0}.bp-eyebrow{font-size:11px;font-weight:700;letter-spacing:2.2px;color:var(--bp-accent);text-transform:uppercase;margin-bottom:6px}.bp-workspace-head h1{font-size:28px;line-height:1.2;letter-spacing:-.8px;font-weight:650}.bp-workspace-head p{font-size:14px;color:var(--bp-muted);margin-top:8px}.bp-state{border:1px solid var(--bp-line);padding:7px 12px;border-radius:30px;color:var(--bp-muted);font-size:12px;white-space:nowrap;display:flex;align-items:center;gap:8px}.bp-state:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bp-accent)}
.logger-workspace #drop-zone{position:relative;inset:auto;flex:1;min-height:340px;max-width:none;padding:40px 24px;background:var(--bp-panel)!important;background-image:none!important;border:1px dashed var(--bp-line);border-radius:var(--bp-radius);box-shadow:none;display:flex;justify-content:center;align-items:center;transition:border-color .15s,background .15s}
.logger-workspace #drop-zone.drag-over{border:2px solid var(--bp-accent);background:var(--bp-raised)!important}
.logger-workspace .dz-logo{display:none}.logger-workspace .dz-title{font:650 25px/1.3 var(--bp-font);letter-spacing:-.6px;color:var(--bp-text)!important;margin:20px 0 12px}.logger-workspace .dz-sub{font:15px/1.8 var(--bp-font);color:var(--bp-muted)!important;margin:0 0 24px}.logger-workspace .dz-sub span{font-size:13px!important;color:var(--bp-muted)!important}
.logger-workspace .dz-btn,.bp-primary{min-height:48px;border:0!important;border-radius:9px;padding:12px 24px;color:var(--bp-ink)!important;background:var(--bp-accent)!important;box-shadow:none!important;font:650 14px var(--bp-font);display:inline-flex;align-items:center;justify-content:center;gap:10px}.logger-workspace .dz-btn:hover,.bp-primary:hover{filter:brightness(1.1)}
.bp-import-icon{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--bp-raised);color:var(--bp-accent);border:1px solid var(--bp-line)}.bp-import-icon .bp-icon{width:28px;height:28px}
.bp-import-hint{font-size:12px;color:var(--bp-muted);margin-top:14px}.bp-empty-channel{margin:12px;padding:20px 12px;color:var(--bp-muted);font-size:14px;line-height:1.7;border-top:1px solid var(--bp-line)}
.bp-session{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(80px,1fr));gap:1px;background:var(--bp-line);border:1px solid var(--bp-line);border-radius:12px;overflow:hidden;margin:0 24px 20px;flex-shrink:0}.bp-session>div{background:var(--bp-panel);padding:14px 18px;min-width:0}.bp-session small{display:block;color:var(--bp-muted);font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-bottom:5px}.bp-session strong{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-session>div:first-child strong{font-size:14px;padding-top:3px}
.bp-chart-tools{display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 18px;flex-shrink:0}.bp-chart-tools button{min-height:40px!important}.logger-workspace .bp-chart-tools #btn-warnings{position:static!important;transform:none!important}.logger-workspace #drop-zone:before,.logger-workspace #drop-zone:after{display:none!important}.logger-workspace .ch-block{font:650 11px/1.5 var(--bp-font);letter-spacing:1px;color:var(--bp-muted);padding:16px 10px 8px}.logger-workspace .ch-item.active{background:var(--bp-raised)!important}.logger-workspace .panel-hdr-label:before{display:none!important}
.logger-workspace.bp-has-data .panels{flex:0 0 auto;overflow:visible}.logger-workspace.bp-has-data #main-panel{flex:none;min-height:540px}.logger-workspace.bp-has-data .panel-body{flex:none;height:clamp(300px,36vh,500px)}.logger-workspace.bp-has-data .stat-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));max-height:none;overflow:visible}.logger-workspace.bp-has-data .bp-workspace-head{padding-top:18px;padding-bottom:16px}.logger-workspace.bp-has-data .bp-workspace-head p{display:none}.logger-workspace.bp-has-data .bp-workspace-head h1{font-size:26px}.logger-workspace .ecu-info b{color:var(--bp-text)!important}.logger-workspace #log-notes-input::placeholder{color:var(--bp-muted)!important}.logger-workspace #btn-warnings{opacity:1!important;color:var(--bp-muted)!important;border-color:var(--bp-line)!important}
.logger-workspace #main-panel{border:1px solid var(--bp-line);border-radius:var(--bp-radius);overflow:hidden;background:var(--bp-panel)!important}.logger-workspace .panel-hdr{background:var(--bp-panel)!important;border-color:var(--bp-line)!important;padding:16px;min-height:55px}.logger-workspace .panel-hdr-label{font:600 14px var(--bp-font);letter-spacing:0;color:var(--bp-text)}.logger-workspace .panel-hdr-info{color:var(--bp-muted);font-size:12px}.logger-workspace .panel-body{background:var(--bp-panel)!important;min-height:280px}.logger-workspace #main-wrap{min-height:280px}.logger-workspace #channel-chips{background:var(--bp-panel)!important;border-color:var(--bp-line)!important;padding:14px;gap:8px}.logger-workspace .ch-chip{min-height:36px;font-size:12px!important;border-radius:7px!important;opacity:1!important}.logger-workspace .stat-wrap{background:var(--bp-bg)!important;gap:12px;padding:16px}.logger-workspace .stat-card{background:var(--bp-panel)!important;border:1px solid var(--bp-line);border-radius:10px;min-width:160px;padding:16px;cursor:pointer}.logger-workspace .stat-name{font:500 12px/1.5 var(--bp-font);color:var(--bp-muted)!important}.logger-workspace .stat-peak{font:600 27px/1.5 var(--bp-font);letter-spacing:-1px}.logger-workspace .stat-sub{font:12px/1.5 var(--bp-font);color:var(--bp-muted)!important}
.logger-workspace .ch-name,.logger-workspace .group-name{font-family:var(--bp-font);font-size:13px;color:var(--bp-text)}.logger-workspace .ch-unit{color:var(--bp-muted)}.logger-workspace .ch-item{min-height:44px;border-radius:7px}.logger-workspace .ch-item:hover{background:var(--bp-raised)}
.logger-workspace .ecu-info,.logger-workspace #notes-bar{background:var(--bp-panel)!important;border-color:var(--bp-line)!important;color:var(--bp-muted);font-size:12px}.logger-workspace #log-notes-input{color:var(--bp-text)!important;font-size:14px!important;min-height:36px}.logger-workspace #warn{color:var(--bp-danger);background:var(--bp-panel);border-bottom:1px solid var(--bp-danger);font-size:14px;padding:14px 24px;flex-shrink:0}
.logger-workspace #intro-overlay{display:none!important}.logger-workspace #welcome-toast{display:none!important}.logger-workspace #status-dot{display:none}
.logger-workspace [class$="modal-box"],.logger-workspace .gm-box,.logger-workspace .warn-popup-box{background:var(--bp-panel)!important;color:var(--bp-text)!important;border:1px solid var(--bp-line)!important;max-height:90dvh;overflow:auto;border-radius:16px!important}.logger-workspace [class$="modal"] input,.logger-workspace [class$="modal"] select{color:var(--bp-text);background:var(--bp-bg);font-size:16px;min-height:44px}.logger-workspace [class$="modal"] button{min-height:42px}
.logger-workspace .sb-log-tabs{background:var(--bp-bg)}.logger-workspace .log-tab{padding:10px;border-radius:7px;color:var(--bp-muted);font-size:13px;cursor:pointer}.logger-workspace .log-tab.active{background:var(--bp-raised);color:var(--bp-accent)}
.pro-page{min-height:100dvh!important}.pro-page .wrap{max-width:1180px;padding:36px 28px 64px}.pro-page .top{border-bottom:1px solid var(--bp-line);padding-bottom:24px;margin-bottom:28px}.pro-page h1{font-size:30px;line-height:1.2;letter-spacing:-1px;color:var(--bp-text)}.pro-page h2{color:var(--bp-text);font-size:19px}.pro-page .sub,.pro-page .hint,.pro-page .note,.pro-page .meta,.pro-page .link,.pro-page .empty,.pro-page .eng{color:var(--bp-muted)!important;line-height:1.6;font-size:14px}.pro-page .meta{font-size:12px}.pro-page .card{background:var(--bp-panel);border:1px solid var(--bp-line);border-radius:16px;padding:24px;box-shadow:none}.pro-page .card:hover{border-color:var(--bp-line)}.pro-page .grid{gap:18px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.pro-page .veh-h{font-size:18px;color:var(--bp-text);margin-bottom:16px}.pro-page .bdg{color:var(--bp-text);background:var(--bp-raised);border:1px solid var(--bp-line);border-radius:6px;padding:4px 8px;font-size:12px}.pro-page .bdg.stage{color:var(--bp-accent);background:var(--bp-raised);border-color:var(--bp-line)}
.pro-page input:not([type=hidden]):not([type=checkbox]),.pro-page select{min-height:46px;font:16px var(--bp-font);border:1px solid var(--bp-line)!important;background:var(--bp-bg)!important;color:var(--bp-text)!important;border-radius:8px;padding:12px!important}.pro-page input::placeholder{color:var(--bp-muted)}.pro-page label{color:var(--bp-muted);font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none;margin-bottom:7px}.pro-page .btn,.pro-page a.back{min-height:44px;padding:11px 16px;color:var(--bp-text);border:1px solid var(--bp-line);border-radius:8px;background:var(--bp-raised);font-size:14px;text-decoration:none}.pro-page a{color:var(--bp-accent)}.pro-page .btn.del,.pro-page .danger .btn{color:var(--bp-danger);background:transparent;border-color:var(--bp-line)}.pro-page .danger{border-color:var(--bp-danger)}
.pro-auth{display:flex;align-items:center;justify-content:center;padding:40px 20px!important;background:var(--bp-bg)!important}.pro-auth>.card{width:min(100%,460px);padding:34px 36px;border:1px solid var(--bp-line)!important;border-top:3px solid var(--bp-accent)!important}.pro-auth .logo{margin-bottom:28px}.pro-auth .logo img{width:210px;max-width:100%;height:auto}.pro-auth h1{font-size:28px;margin:24px 0;color:var(--bp-text);text-align:left}.pro-auth .sub{font-size:11px;letter-spacing:2px;color:var(--bp-muted)}.pro-auth form>button,.pro-auth button[type=submit]{min-height:48px;background:var(--bp-accent)!important;color:var(--bp-ink)!important;border:none;font-size:15px;font-weight:650;border-radius:8px}.pro-auth .langsw button{min-width:38px;min-height:34px;font-size:12px;background:var(--bp-panel);border:1px solid var(--bp-line);color:var(--bp-muted);border-radius:7px}.pro-auth .langsw button.active{color:var(--bp-accent);border-color:var(--bp-accent)}.pro-auth .remember{font-size:13px;display:flex;gap:8px;align-items:center;min-height:36px;text-transform:none}.pro-auth .link{font-size:13px;margin-top:18px}.pro-auth .error,.pro-auth .success{border-radius:8px;font-size:14px;line-height:1.6;padding:14px}.pro-auth .error{color:var(--bp-danger);background:var(--bp-raised)}
.pro-settings .wrap{max-width:860px}.pro-settings .card{margin-bottom:24px}.pro-settings .card form{margin-top:20px}.pro-settings .hint{margin:10px 0 20px}.pro-settings input{width:100%}
@media(min-width:1100px){.logger-workspace:not(.bp-has-data) .sidebar{width:248px;min-width:248px}.logger-workspace:not(.bp-has-data) .panels{padding-bottom:40px}.logger-workspace:not(.bp-has-data) .bp-workspace-head{padding-top:44px;padding-bottom:28px}.logger-workspace:not(.bp-has-data) .bp-workspace-head h1{font-size:34px}}
@media(max-width:1000px){.logger-workspace .hdr{padding:12px 16px;gap:8px}.bp-navigation a{padding:9px 10px}.logger-workspace .sidebar{width:250px;min-width:250px}.logger-workspace .hdr-left{margin-right:4px}.logger-workspace .hdr-left img{max-width:145px}.bp-workspace-head{padding:24px 18px 18px}.logger-workspace .panels{padding:0 18px 18px}.bp-session{margin:0 18px 18px}}
@media(max-width:700px){.logger-workspace .hdr{min-height:68px;padding:10px 12px}.logger-workspace .hdr-left img{max-width:128px}.logger-workspace .hdr-btn{min-height:40px;padding:8px 10px}.bp-navigation{order:20;width:100%;margin:4px 0 -4px;justify-content:center;border-top:1px solid var(--bp-line);padding-top:6px}.bp-navigation a{flex:1;text-align:center;font-size:13px}.logger-workspace .main{overflow:auto}.bp-workspace-head{padding:24px 16px 20px;gap:12px}.bp-workspace-head h1{font-size:25px}.bp-workspace-head p{font-size:13px}.bp-state{display:none}.logger-workspace .panels{padding:0 12px 16px;overflow:visible;flex:1}.logger-workspace #drop-zone{min-height:330px;padding:30px 16px}.logger-workspace .dz-title{font-size:22px}.logger-workspace .dz-sub{font-size:14px}.bp-session{grid-template-columns:repeat(3,1fr);margin:0 12px 16px}.bp-session>div:first-child{grid-column:1/-1}.bp-session>div{padding:12px}.bp-session strong{font-size:17px}.logger-workspace .sidebar{top:0;height:100dvh;z-index:1300;width:min(86vw,310px);min-width:0;max-width:none;padding-top:56px}.logger-workspace .sidebar .sb-footer{display:flex}.logger-workspace #sb-toggle-btn{min-width:44px;min-height:44px;color:var(--bp-text);background:var(--bp-raised);border:1px solid var(--bp-line);border-radius:8px}.logger-workspace .stat-wrap{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none!important}.logger-workspace .stat-card{min-width:0;max-width:none!important}.logger-workspace #main-panel{overflow:visible}.logger-workspace #main-wrap{height:340px;min-height:280px}.logger-workspace #channel-chips{max-height:150px;overflow:auto}.logger-workspace .ecu-info{flex-wrap:wrap}.logger-workspace [class$="modal"]{padding:12px}.pro-page .wrap{padding:28px 16px 44px}.pro-page h1{font-size:26px}.pro-auth{padding:24px 14px!important}.pro-auth>.card{padding:28px 22px}.pro-page .row{gap:10px}.pro-page .top{align-items:flex-start}.logger-workspace .bp-has-data .panel-body{min-height:320px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep analysis controls accessible at every breakpoint. */
.logger-workspace .bp-chart-tools :is(#btn-comp,#btn-export,#btn-csv-export,#btn-refline,#normalize-btn,#range-sel-btn,#rpm-axis-btn,#wot-toggle-btn,#delta-btn,#zoom-reset):not([style*="display: none"]):not([style*="display:none"]){display:inline-flex!important}
@media(max-width:768px){.logger-workspace .hdr{height:auto;flex-wrap:wrap!important}.logger-workspace .hdr-left{flex:1}.logger-workspace .bp-navigation{flex-basis:100%;width:100%;order:20;margin:0;padding:8px 0 0;justify-content:stretch}.logger-workspace .bp-chart-tools{padding:0 12px 16px;gap:7px}.logger-workspace .bp-chart-tools button{font-size:12px;padding:8px 10px}.logger-workspace .sidebar{z-index:1300}.logger-workspace #mob-overlay{z-index:1290}}
.logger-workspace .gm-l{color:var(--bp-muted);font-size:12px}.logger-workspace .gm-i{background:var(--bp-bg)!important;color:var(--bp-text)!important;border-color:var(--bp-line)!important;font:16px var(--bp-font);min-height:44px}.logger-workspace .gm-btn{background:var(--bp-accent);color:var(--bp-ink);border:1px solid var(--bp-accent);min-height:44px}.logger-workspace .gm-btn.ghost{background:transparent;color:var(--bp-text);border-color:var(--bp-line)}.logger-workspace #gm-sub{color:var(--bp-muted)!important}

.bp-scale-note{font:12px/1.5 var(--bp-font);color:var(--bp-muted);padding:10px 16px;margin:0;background:var(--bp-panel)}
