*,:before,:after{box-sizing:border-box}body{margin:0}#root{height:100vh}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d0d0d;--surface:#161616;--border:#2a2a2a;--text:#ccc;--text-dim:#999;--label:#ccc;--green:#0f8;--yellow:#fc0;--red:#f33;--blue:#4fc3f7;--font-mono:"Courier New", Courier, monospace}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:14px}.app{flex-direction:column;height:100vh;display:flex}.header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:1.5rem;height:48px;padding:0 1.5rem;display:flex}.header-title{letter-spacing:4px;color:var(--green);font-size:14px;font-weight:700}.main{flex:1;padding:1.5rem;overflow-y:auto}.tab-nav{flex:1;gap:.25rem;display:flex}.tab-btn{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:1px;cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 14px;font-size:12px;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text);border-color:var(--border)}.tab-btn--active{color:var(--green);border-color:var(--green)}.status-dot-wrap{align-items:center;gap:6px;margin-left:auto;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-text{letter-spacing:1px;color:var(--label);font-size:12px}.no-data{color:var(--text-dim);text-align:center;letter-spacing:2px;padding:2rem}.timing-table-wrap{overflow-x:auto}.timing-table{border-collapse:collapse;white-space:nowrap;width:100%}.timing-table th{text-align:left;letter-spacing:1px;color:var(--label);border-bottom:1px solid var(--border);padding:7px 14px;font-size:12px}.timing-table td{border-bottom:1px solid #1a1a1a;padding:7px 14px;font-size:14px}.timing-table tbody tr:hover{background:#1a1a1a}.row-out{opacity:.4}.col-pos{color:var(--green);width:40px;font-size:16px;font-weight:700}.col-number{font-size:16px;font-weight:700}.col-driver{min-width:180px}.tla{margin-right:8px;font-weight:700}.full-name{color:var(--text-dim);font-size:12px}.col-class{letter-spacing:1px;color:var(--label);font-size:12px}.col-gap{color:var(--yellow)}.col-laptime{font-family:var(--font-mono)}.col-tyre{font-size:12px}.col-status{letter-spacing:1px;font-size:12px}.status-racing{color:var(--green)}.status-pit{color:var(--yellow)}.status-out{color:var(--red)}.car-panel{flex-direction:column;gap:1.5rem;display:flex}.car-top{flex-direction:column;gap:1rem;display:flex}.car-bottom-columns{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.car-column{flex-direction:column;gap:.75rem;display:flex}.car-section-title{letter-spacing:3px;color:var(--label);font-size:12px}.car-bottom-strip{flex-wrap:wrap;gap:2.5rem;display:flex}.driver-top-row{align-items:center;gap:2rem;display:flex}.big-stat{flex-shrink:0;align-items:baseline;gap:6px;display:flex}.big-value{letter-spacing:-2px;font-size:52px;font-weight:700;line-height:1}.big-unit{color:var(--text-dim);letter-spacing:2px;font-size:13px}.gear-box{border:2px solid var(--border);padding:.25rem 1.25rem}.gear-value{color:var(--green);font-size:60px}.rpm-bar-wrap{flex:1;align-items:center;gap:1rem;display:flex}.rpm-bar-bg{background:#1a1a1a;border-radius:2px;flex:1;height:10px;overflow:hidden}.rpm-bar-fill{border-radius:2px;height:100%;transition:width .1s linear,background .2s}.rpm-bar-label{color:var(--text-dim);white-space:nowrap;font-size:12px}.inputs-section{flex-direction:column;gap:8px;display:flex}.input-row{align-items:center;gap:1rem;display:flex}.input-label{letter-spacing:1px;width:80px;color:var(--label);flex-shrink:0;font-size:12px}.input-bar-bg{background:#1a1a1a;border-radius:2px;flex:1;height:16px;position:relative;overflow:hidden}.input-bar-fill{border-radius:2px;height:100%;transition:width 80ms linear}.input-bar-label{color:#000;mix-blend-mode:difference;font-size:11px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.steer-bar{background:#1a1a1a;border-radius:2px;flex:1;height:16px;position:relative}.steer-indicator{background:var(--yellow);border-radius:1px;width:4px;height:10px;transition:left 50ms linear;position:absolute;top:3px;transform:translate(-50%)}.info-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1px;display:grid}.info-card{background:var(--surface);flex-direction:column;gap:5px;padding:10px 12px;display:flex}.info-label{letter-spacing:1px;color:var(--label);font-size:12px}.info-value{font-size:18px;font-weight:700}.mono{font-family:var(--font-mono)}.gforce-row{flex-wrap:wrap;gap:2rem;display:flex}.gforce-item{flex-direction:column;gap:4px;display:flex}.gforce-label{letter-spacing:1px;color:var(--label);font-size:12px}.gforce-value{font-size:18px;font-weight:700}.four-corner-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.corner-block{background:var(--surface);padding:.875rem 1rem}.corner-block-label{letter-spacing:2px;color:var(--label);margin-bottom:.6rem;font-size:12px}.corner-block-rows{flex-direction:column;gap:4px;display:flex}.corner-row{justify-content:space-between;align-items:center;display:flex}.corner-key{color:var(--label);letter-spacing:1px;font-size:12px}.corner-val{font-size:14px;font-weight:700}.corner-divider{background:var(--border);height:1px;margin:3px 0}.info-unit{color:var(--text-dim);font-size:13px;font-weight:400}.info-sublabel{color:var(--text-dim);margin-top:-2px;font-size:12px}.stint-layout{align-items:flex-start;gap:2.5rem;display:flex}.stint-panel{flex-direction:column;flex:1;gap:1.5rem;min-width:0;display:flex}.stint-header-row{align-items:baseline;gap:3rem;display:flex}.stint-meta-item{align-items:baseline;gap:.75rem;display:flex}.stint-meta-label{letter-spacing:2px;color:var(--label);font-size:12px}.stint-meta-value{font-size:32px;font-weight:700}.stint-stats-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;display:grid}.stint-section-title{letter-spacing:3px;color:var(--label);font-size:12px}.pressure-table{border-collapse:collapse;width:100%}.pressure-table th{text-align:left;letter-spacing:1px;color:var(--label);border-bottom:1px solid var(--border);padding:6px 14px;font-size:12px}.pressure-table td{border-bottom:1px solid #1a1a1a;padding:7px 14px;font-size:14px}.pressure-corner{color:var(--label);letter-spacing:2px;width:50px;font-weight:700}.pressure-val{font-family:var(--font-mono);font-weight:700}.pressure-arrow{color:var(--text-dim);text-align:center;padding:7px 6px!important}.pressure-avg{color:var(--text-dim);font-family:var(--font-mono)}.wear-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.wear-block{background:var(--surface);flex-direction:column;gap:6px;padding:.875rem 1rem;display:flex}.wear-corner-label{letter-spacing:2px;color:var(--label);font-size:12px}.wear-values{align-items:baseline;gap:.75rem;display:flex}.wear-pct{font-size:20px;font-weight:700}.wear-rate{color:var(--text-dim);font-size:13px}.stint-history{flex-shrink:0;width:240px}.sh-title{letter-spacing:3px;color:var(--label);margin-bottom:8px;font-size:11px}.sh-divider{background:var(--border);height:1px;margin-bottom:10px}.sh-entry{color:var(--text-dim);border-bottom:1px solid #1a1a1a;gap:6px;padding:8px 0;display:flex}.sh-entry--active{color:var(--text)}.sh-marker{color:var(--green);flex-shrink:0;padding-top:3px;font-size:10px}.sh-entry-body{flex-direction:column;flex:1;gap:2px;display:flex}.sh-stint-top{justify-content:space-between;align-items:baseline;display:flex}.sh-stint-label{letter-spacing:1px;font-size:12px;font-weight:700}.sh-duration{font-size:12px;font-family:var(--font-mono)}.sh-laps,.sh-pit-time{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.sh-pit-time--active{color:var(--yellow)}
