/* Product layer. Scoped to the shared shell so legacy standalone tools are isolated. */
.pwp-app {
    color-scheme: dark;
    --brand: #6cdae0; --brand-dark: #97e6ea; --brand-gradient: none;
    --pwp-bg: #111820; --pwp-panel: #1a242e; --pwp-raised: #202e3a;
    --pwp-ink: #edf3f7; --pwp-muted: #afbfcc; --pwp-border: #364957;
    --surface-0: #111820; --surface-1: #1a242e; --surface-2: #1a242e;
    --surface-3: #202e3a; --border-dark: #364957; --text-dark-muted: #afbfcc;
    --surface-light: #202e3a; --border-light: #364957;
    --text-light-primary: #edf3f7; --text-light-muted: #afbfcc;
    --good: #82dda9; --warn: #f2c477;
    --bs-body-bg: #111820; --bs-body-color: #edf3f7;
    --bs-border-color: #364957; --bs-secondary-color: #afbfcc;
    background: var(--pwp-bg); color: var(--pwp-ink); padding: 0;
    font: 14px/1.55 Inter, 'Segoe UI', sans-serif;
}
.pwp-app .container { max-width: 1440px; padding-inline: 28px; }
.pwp-app #main-content { padding-top: 12px; }
.pwp-app h1,.pwp-app .display-4,.pwp-app .display-5 { font-size: clamp(25px, 3vw, 34px); font-weight: 650; letter-spacing: -.035em; }
.pwp-app h2 { font-size: 23px; } .pwp-app h3 { font-size: 18px; }
.pwp-app h4,.pwp-app h5 { font-size: 15px; }
.pwp-app .text-muted { color: var(--pwp-muted) !important; }
.pwp-app hr { border-color: var(--pwp-border); opacity: 1; }
.pwp-app a { color: var(--brand); }
.pwp-app :is(button,a,input,select,summary):focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
.pwp-app .pwp-navbar { background: var(--pwp-panel); border-bottom: 1px solid var(--pwp-border); padding-block: 14px; }
.pwp-app .pwp-wordmark { color: var(--pwp-ink); font-size: 20px; font-weight: 800; letter-spacing: -.8px; }
.pwp-app .pwp-wordmark span { color: var(--brand); }
.pwp-app .pwp-navbar .nav-link { color: var(--pwp-muted); font-size: 13px; padding: 10px; }
.pwp-app .pwp-navbar .nav-link.active { color: var(--brand); }
.pwp-app .pwp-navbar .nav-link.active::after { background: var(--brand); }
.pwp-app .pwp-navbar button.nav-link { background: transparent; border: 0; }
.pwp-app .dropdown-menu { background: var(--pwp-panel); border-color: var(--pwp-border); }
.pwp-app .dropdown-item { color: var(--pwp-ink); font-size: 13px; }
.pwp-app .dropdown-item:hover,.pwp-app .dropdown-item[aria-current=page] { background: var(--pwp-raised); color: var(--brand); }
.pwp-app .navbar-toggler { background: #243744; padding: 8px; }
.pwp-skip-link { position: absolute; left: 20px; top: -100px; z-index: 20; background: var(--pwp-panel); padding: 12px; }
.pwp-skip-link:focus { top: 10px; }
.pwp-app :is(header,.card,.driver-panel,.strategy-panel,.track-selector,.category,.panel,.drivers-compare,.drivers-racing-bar) { background: var(--pwp-panel); color: var(--pwp-ink); border: 1px solid var(--pwp-border); border-radius: 8px; box-shadow: none; }
.pwp-app :is(.driver-header,.category-header,.card-header,.detail-header) { background: var(--pwp-raised); color: var(--pwp-ink); border-bottom: 1px solid var(--pwp-border); box-shadow: none; padding: 16px 20px; }
.pwp-app :is(button,.btn,.profile-btn) { transition: background-color .15s, border-color .15s; }
.pwp-app :is(button,.btn):hover { transform: none; box-shadow: none; }
.pwp-app :is(.btn-primary,.btn-save,.track-selector-group button,.lap-tracker button,.pit-recorder-form button,.event-log-form-row button) { background: var(--brand); color: var(--pwp-panel); border: 1px solid var(--brand); flex: initial; }
.pwp-app :is(.lap-tracker button,.pit-recorder-form button,.event-log-form-row button,.btn-primary) { color: #102329; }
.pwp-app :is(.btn-secondary,.btn-reset,.btn-back,.profile-btn) { background: var(--pwp-panel); color: var(--pwp-ink); border: 1px solid var(--pwp-border); padding: 10px 16px; border-radius: 6px; }
.pwp-app .profile-btn.active { background: var(--brand); color: #102329; }
.pwp-app .profile-selector { flex-wrap: wrap; }
.pwp-app .info-box,.pwp-app .alert-info { background: var(--pwp-panel); color: var(--pwp-muted); border-color: var(--pwp-border); }
.pwp-app :is(input:not([type=radio]):not([type=checkbox]):not([type=hidden]),select,.form-control,.form-select) { background-color: var(--pwp-panel); color: var(--pwp-ink); border: 1px solid var(--pwp-border); border-radius: 5px; font-size: 14px; padding: 9px 11px; max-width: 100%; }
.pwp-app input[type=radio] { accent-color: var(--brand); width: 17px; height: 17px; }
.pwp-app :is(.form-group label,.param-label,.detail-label,.pit-label,.expected-lap-sublabel) { color: var(--pwp-muted); font-size: 12px; }
.pwp-app .section { background: transparent; padding: 12px 0; border-bottom: 1px solid var(--pwp-border); }
.pwp-app .section h4 { color: var(--pwp-ink); text-transform: none; }
.pwp-app .button-group { justify-content: flex-end; flex-wrap: wrap; margin-top: 20px; }
.pwp-app .step-indicator { justify-content: flex-start; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.pwp-app .step { background: transparent; color: var(--pwp-muted); border-radius: 4px; border-bottom: 2px solid var(--pwp-border); text-transform: none; font-size: 13px; padding: 10px 16px; }
.pwp-app .step.active { color: var(--brand); background: var(--pwp-panel); border-bottom-color: var(--brand); }
.pwp-app .step.complete { color: var(--brand); }
.pwp-app .pwp-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--pwp-muted); margin-bottom: 5px; }
.pwp-app .pwp-session-header { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; align-items: center; margin-bottom: 22px; }
.pwp-app .pwp-session-header p { color: var(--pwp-muted); margin: 5px 0 0; }
.pwp-app .pwp-lap-counter { text-align: right; font-size: 26px; font-variant-numeric: tabular-nums; }
.pwp-app .pwp-lap-counter small { display: block; font-size: 12px; color: var(--pwp-muted); }
.pwp-app .pwp-driver-tabs { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.pwp-app .pwp-driver-tab { flex: 1; min-width: 220px; text-align: left; background: var(--pwp-panel); border: 1px solid var(--pwp-border); color: var(--pwp-ink); padding: 14px 18px; }
.pwp-app .pwp-driver-tab small { display: block; color: var(--pwp-muted); font-size: 12px; margin-top: 5px; }
.pwp-app .pwp-driver-tab[aria-pressed=true] { border-color: var(--brand); box-shadow: inset 0 -2px var(--brand); }
.pwp-app .strategies-grid { display: block; }
.pwp-app .strategy-panel { margin-bottom: 16px; }
.pwp-app .strategies-list { max-height: none; overflow: visible; gap: 0; }
.pwp-app .strategy-item { display: grid; grid-template-columns: minmax(160px,1fr) minmax(220px,2fr) 135px; align-items: center; gap: 20px; padding: 18px 14px; border: 0; border-top: 1px solid var(--pwp-border); border-radius: 0; }
.pwp-app .strategy-item:has(input:checked) { background: var(--pwp-raised); box-shadow: inset 3px 0 var(--brand); }
.pwp-app .strategy-item:hover { background: var(--pwp-raised); }
.pwp-app .strategy-name { color: var(--pwp-ink); }
.pwp-app .strategy-time { color: var(--pwp-muted); font-size: 12px; }
.pwp-app .pwp-strategy-price { text-align: right; font-variant-numeric: tabular-nums; }
.pwp-app .pwp-strategy-price strong { display: block; font-size: 16px; }
.pwp-app .pwp-stint-track { display: flex; gap: 3px; margin: 7px 0; min-height: 34px; }
.pwp-app .pwp-stint { display: flex; justify-content: center; align-items: center; font-size: 12px; padding: 6px 2px; color: #1d2933; background: #c4d3de; min-width: 38px; font-variant-numeric: tabular-nums; }
.pwp-app .pwp-stint-soft { background: #efa0a5; } .pwp-app .pwp-stint-medium { background: #e6cc79; } .pwp-app .pwp-stint-hard { background: #c4d3de; }
.pwp-app .pwp-window-label { color: var(--pwp-muted); font-size: 12px; }
.pwp-app .plan-legend { color: var(--pwp-muted); background: transparent; padding: 0; }
.pwp-app .plan-badge { background: var(--pwp-raised); color: var(--pwp-ink); border: 1px solid var(--pwp-border); border-radius: 3px; width: 22px; height: 22px; font-size: 12px; }
.pwp-app .plan-recommendation { background: var(--pwp-raised); color: var(--pwp-ink); border-left-color: var(--brand); font-size: 14px; padding: 13px 16px; }
.pwp-app .fastest-badge { color: var(--pwp-ink); background: var(--pwp-raised); font-size: 12px; }
.pwp-app .pwp-selection-footer { background: var(--pwp-panel); border: 1px solid var(--pwp-border); border-radius: 8px; padding: 18px; }
.pwp-app .pwp-selection-footer p { color: var(--pwp-muted); margin: 0; }
.pwp-app details > summary { color: var(--brand); cursor: pointer; padding: 10px 0; font-weight: 500; }
.pwp-app [hidden] { display: none !important; }
.pwp-app .pwp-race-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,1fr); gap: 18px; align-items: start; }
.pwp-app .panel { padding: 22px; min-width: 0; }
.pwp-app .panel h3,.pwp-app .strategy-headline h4 { color: var(--pwp-ink); }
.pwp-app .pwp-next-stop { border-left: 3px solid var(--brand); background: var(--pwp-raised); padding: 16px 20px; margin-bottom: 20px; }
.pwp-app .pwp-next-stop strong { display: block; font-size: 24px; }
.pwp-app .pwp-next-stop p { margin: 5px 0; color: var(--pwp-muted); }
.pwp-app .live-call-watch { border-left-color: var(--warn); }
.pwp-app .live-call-urgent { border-left-color: var(--danger, #ef4444); background: color-mix(in srgb, #ef4444 9%, var(--pwp-raised)); }
.pwp-app .dynamic-plan { border: 1px solid var(--good); background: color-mix(in srgb, var(--good) 12%, var(--pwp-raised)); padding: 16px 20px; margin-bottom: 20px; }
.pwp-app .dynamic-plan > strong { display: block; font-size: 22px; }
.pwp-app .game-comparison-entry { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--pwp-border); }
.pwp-app .game-comparison-entry summary { cursor: pointer; font-weight: 700; }
.pwp-app .game-comparison-card { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 14px 0 20px; border: 1px solid var(--pwp-border); background: var(--pwp-border); }
.pwp-app .game-comparison-card > div { padding: 14px; background: var(--pwp-raised); }
.pwp-app .game-comparison-card strong { display: block; font-size: 18px; }
.pwp-app .game-comparison-card p { margin: 5px 0 0; color: var(--pwp-muted); }
.pwp-app .race-exit-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.pwp-app .race-exit-bar form { margin: 0; }
.pwp-app .race-exit-bar span { color: var(--pwp-muted); margin-right: auto; }
.pwp-app .battle-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pwp-app .nearby-car-form { display: grid; grid-template-columns: 1.4fr 1fr .8fr 1fr .8fr auto; gap: 10px; align-items: end; margin: 14px 0 18px; }
.pwp-app .nearby-car-form label { margin: 0; }
.pwp-app .battle-card { border-left: 3px solid var(--pwp-border); background: var(--pwp-raised); padding: 14px; }
.pwp-app .battle-card.battle-good { border-left-color: var(--good); }
.pwp-app .battle-card.battle-warn { border-left-color: var(--warn); }
.pwp-app .battle-head, .pwp-app .battle-facts { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.pwp-app .battle-head span, .pwp-app .battle-facts { color: var(--pwp-muted); font-size: 12px; }
.pwp-app .battle-card p { margin: 10px 0 0; }
@media (max-width: 700px) { .pwp-app .game-comparison-card { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .pwp-app .battle-board { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .pwp-app .nearby-car-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pwp-app .lap-breakdown-table .lap-past { opacity: .45; }
.pwp-app .lap-breakdown-table .lap-current { background: color-mix(in srgb, var(--brand) 22%, var(--pwp-raised)); outline: 2px solid var(--brand); outline-offset: -2px; }
.pwp-app .lap-breakdown-table .lap-next { background: color-mix(in srgb, var(--brand) 9%, var(--pwp-raised)); }
.pwp-app .lap-breakdown-table .lap-new-stint { border-top: 2px solid var(--brand); }
.pwp-app .lap-now { display: inline-block; margin-left: 6px; padding: 2px 5px; background: var(--brand); color: #041312; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.pwp-app .lap-next-label { display: inline-block; margin-left: 6px; color: var(--brand); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.pwp-app .strategy-headline { padding: 0; background: transparent; }
.pwp-app .detail-item { border: 0; border-bottom: 1px solid var(--pwp-border); padding: 10px 0; background: transparent; }
.pwp-app .detail-value { color: var(--pwp-ink); font-variant-numeric: tabular-nums; }
.pwp-app .stint-box { box-shadow: none; background: var(--pwp-raised); border: 1px solid var(--pwp-border); }
.pwp-app .stint-box.active { border-color: var(--brand); background: var(--pwp-raised); }
.pwp-app .stint-compound { color: var(--pwp-muted); }
.pwp-app .drivers-compare { padding: 12px; }
.pwp-app .driver-compare-card { background: transparent; border-width: 1px; }
.pwp-app .driver-compare-current { border-color: var(--brand); }
.pwp-app .driver-compare-card { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 12px 14px; }
.pwp-app .driver-compare-head { flex-basis: 100%; margin-bottom: 2px; }
.pwp-app .driver-compare-row,.pwp-app .driver-compare-link { margin: 0; }
.pwp-app .lap-tracker { padding: 0; margin-top: 12px; }
.pwp-app .lap-tracker form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pwp-app .lap-tracker form button { grid-column: 1/-1; }
.pwp-app .lap-tracker label { margin: 0; }
.pwp-app .lap-tracker label span { font-size: 12px; color: var(--pwp-muted); }
.pwp-app .lap-tracker input { margin-bottom: 0; }
.pwp-app .driver-compare-you { color: #102329; }
.pwp-app :is(.alt-total,.alt-from-now,.alt-rank,.event-log-hint,.expected-lap-label,.pit-label) { color: var(--pwp-muted); font-size: 13px; }
.pwp-app .alt-strategy-btn { font-size: 14px; border-width: 1px; box-shadow: none; }
.pwp-app .alt-delta-badge { background: transparent; color: var(--pwp-ink); font-size: 14px; font-variant-numeric: tabular-nums; }
.pwp-app .pwp-alternative { border-bottom: 1px solid var(--pwp-border); padding: 12px 0; }
.pwp-app .pwp-alternative summary { color: var(--pwp-ink); }
.pwp-app .pwp-alternative button { margin-top: 12px; }
.pwp-app .wide-panel { margin-top: 20px; }
.pwp-app .lap-breakdown-table { min-width: 540px; }
.pwp-app .pwp-table-scroll { overflow-x: auto; }
.pwp-app .table { --bs-table-bg: var(--pwp-panel); --bs-table-color: var(--pwp-ink); --bs-table-striped-bg: var(--pwp-raised); --bs-table-striped-color: var(--pwp-ink); --bs-table-border-color: var(--pwp-border); font-size: 13px; }
.pwp-app .table thead,.pwp-app .table thead th { background: var(--pwp-raised); color: var(--pwp-muted); border-bottom: 1px solid var(--pwp-border); font-weight: 500; }
.pwp-app .table :is(td,th) { padding: 13px 16px; vertical-align: middle; }
.pwp-app .stat-cell { color: var(--pwp-ink); background: transparent; font-variant-numeric: tabular-nums; }
.pwp-app :is(.stat-badge,.deg-badge,.life-range) { font-family: inherit; background: transparent; color: var(--pwp-ink); font-variant-numeric: tabular-nums; }
.pwp-app .pwp-attributes { display: grid; grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); gap: 10px; padding: 12px 0; }
.pwp-app .pwp-attributes div { color: var(--pwp-muted); } .pwp-app .pwp-attributes strong { color: var(--pwp-ink); display: block; }
.pwp-app .param-key { display: none; } .pwp-app .param-field { background: var(--pwp-panel); border-color: var(--pwp-border); }
.pwp-app .param-label { font-weight: 600; color: var(--pwp-ink); }
.pwp-app .param-description { font-size: 13px; color: var(--pwp-muted); }
.pwp-app .pwp-home-hero { padding: 36px 0 28px; max-width: 740px; }
.pwp-app .pwp-home-hero p { font-size: 17px; color: var(--pwp-muted); }
.pwp-app .hover-card:hover { transform: none; box-shadow: none !important; border-color: var(--brand) !important; }
.pwp-app .hover-card { border: 1px solid var(--pwp-border) !important; box-shadow: none !important; }
.pwp-app .card-title { color: var(--pwp-ink) !important; }
.pwp-app .compound-badge { border: 1px solid transparent; font-weight: 750; letter-spacing: .02em; vertical-align: baseline; }
.pwp-app .compound-soft { color: #fff; background: #d92d3f; border-color: #f15b69; }
.pwp-app .compound-medium { color: #282000; background: #f2cf32; border-color: #ffe36b; }
.pwp-app .compound-hard { color: #17212b; background: #f4f7fa; border-color: #aab8c4; }
.pwp-app :is(.stat-card,.info-item,.compound-row,.error-card,.phase1-form-wrapper,.fastest-section,.fastest-item,.strategies-section,.no-results,.header-item) { background: var(--pwp-panel); color: var(--pwp-ink); border-color: var(--pwp-border); box-shadow: none; }
.pwp-app :is(.stat-label,.section-title,.info-label,.param-value-display,.fastest-label,.form-text) { color: var(--pwp-muted); }
.pwp-app :is(.info-value,.fastest-value,.time-value,.error-card h1,header h1,.strategies-section h2) { color: var(--pwp-ink); }
.pwp-app .param-value-display { background: var(--pwp-raised); }
.pwp-app :is(.bg-light,.bg-white) { background-color: var(--pwp-raised) !important; color: var(--pwp-ink); }
.pwp-app :is(.text-dark,.text-body) { color: var(--pwp-ink) !important; }
.pwp-app .badge.text-dark { color: #17232c !important; }
.pwp-app .text-success { color: var(--good) !important; }
.pwp-app .text-warning { color: var(--warn) !important; }
.pwp-app .text-danger { color: #ffa0aa !important; }
.pwp-app .text-info { color: var(--brand) !important; }
.pwp-app .btn-outline-danger { color: #ffa0aa; border-color: #b75462; }
.pwp-app :is(.message-success,.alert-success) { background: #19382f; color: #a4e9c0; border-color: #37634f; }
.pwp-app :is(.message-error,.alert-error,.alert-danger,.error) { background: #402730; color: #ffc0c7; border-color: #79505a; }
.pwp-app .alert-warning { background: #3b3323; color: #f3d79c; border-color: #6a5937; }
.pwp-app .btn-close { filter: invert(1) grayscale(1) brightness(2); }
.pwp-app .form-control::placeholder { color: var(--pwp-muted); opacity: .8; }
.pwp-app :is(.form-control:disabled,.form-control[readonly]) { background: var(--pwp-raised); color: var(--pwp-muted); }
.pwp-app :is(.btn-submit,.btn-start-race) { background: var(--brand) !important; color: #102329 !important; }
.pwp-app .error-page { background: var(--pwp-bg); }
.pwp-app .pwp-empty-state { padding: 32px; text-align: center; color: var(--pwp-muted); background: var(--pwp-panel); border: 1px solid var(--pwp-border); border-radius: 8px; }
.pwp-app .strategies-section { overflow-x: auto; }
.pwp-app .strategies-table th { background: var(--pwp-raised); color: var(--pwp-muted); border-color: var(--pwp-border); }
.pwp-app .strategies-table td { border-color: var(--pwp-border); }
.pwp-app .strategies-table tbody tr:is(:hover,.fastest,.illegal) { background: var(--pwp-raised); }
.pwp-app .track-table tbody tr:hover { background: var(--pwp-raised); }
.pwp-app .pwp-view-content { margin-bottom: 24px; }
.pwp-app .stat-group { background: var(--pwp-panel); border-color: var(--pwp-border); }
.pwp-app .form-section h5 { border-color: var(--pwp-border); }
.pwp-app .stat-value.time,.pwp-app .stat-value.number { color: var(--pwp-ink); font-family: inherit; font-variant-numeric: tabular-nums; }
.pwp-app .pwp-inventory-row,.pwp-app .pwp-inventory-head { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 12px; align-items: center; padding: 7px 0; }
.pwp-app .pwp-inventory-head { color: var(--pwp-muted); font-size: 12px; }
.pwp-app .pwp-inventory-row input { width: 100%; min-width: 0; }
.pwp-app .pwp-inventory-row .compound-badge { width: fit-content; }
.pwp-app .progress-fill { background: var(--brand); color: #102329; }
.pwp-app .pwp-alternative { margin: 0; }
.pwp-app .pwp-alternative summary { display: list-item; }
.pwp-app .pwp-alternative summary span { float: right; font-variant-numeric: tabular-nums; }
@media(max-width: 900px) { .pwp-app .pwp-race-grid { grid-template-columns: 1fr; } .pwp-app .strategy-item { grid-template-columns: minmax(150px,1fr) minmax(150px,1.4fr) 110px; gap: 12px; } }
@media(max-width: 600px) { .pwp-app .container { padding-inline: 16px; } .pwp-app .panel,.pwp-app .strategy-panel { padding: 16px; } .pwp-app .strategy-item { grid-template-columns: 1fr 110px; } .pwp-app .pwp-strategy-stints { grid-row: 2; grid-column: 1/-1; } .pwp-app .pwp-strategy-price { grid-column: 2; grid-row: 1; } .pwp-app .pwp-driver-tab { min-width: 0; flex-basis: 100%; } .pwp-app .lap-tracker form { flex-wrap: wrap; } .pwp-app .lap-tracker input { width: 100%; } .pwp-app .category-body { grid-template-columns: 1fr; } .pwp-app .step { padding: 8px; } .pwp-app .alt-name { flex-wrap: wrap; } }
@media(pointer: coarse) { .pwp-app :is(button,.btn,summary) { min-height: 44px; } .pwp-app :is(input,select) { font-size: 16px !important; } }
@media(prefers-reduced-motion: reduce) { .pwp-app * { transition: none !important; } }
