:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:#e8ece8;background-color:#111513;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{overflow-x:hidden;-webkit-text-size-adjust:100%}body{margin:0;min-width:0;min-height:100vh;background:#111513;overflow-x:hidden}#app{width:100%;max-width:100%;overflow-x:hidden}.page{max-width:1120px;width:100%;margin:0 auto;padding:28px 20px 56px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(56px,env(safe-area-inset-bottom));display:grid;gap:16px;overflow-x:hidden}.hero{position:relative;background-image:url(/branding/photo_2026-01-13_17-40-41.jpg);background-size:cover;background-position:center;padding:28px 24px 32px;margin:0 -20px;border-radius:0 0 18px 18px;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#111513b8,#111513e0,#111513f5);z-index:0;border-radius:0 0 18px 18px}.hero .hero-top,.hero .hero-prefix,.hero h1,.hero .lead{position:relative;z-index:1}.hero-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 28px;margin-bottom:10px}.brand{display:flex;align-items:center;justify-content:flex-start}.brand-logo-link{display:block;line-height:0;transition:opacity .2s}.brand-logo-link:hover{opacity:.9}.brand-logo{width:clamp(260px,44vw,520px);height:auto;object-fit:contain;display:block}.hero-tg{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;background:#1a211e;border:1px solid #3d5631;color:#8fd955;font-size:18px;font-weight:700;text-decoration:none;letter-spacing:.02em;transition:background .2s,border-color .2s,color .2s}.hero-tg:hover{background:#243026;border-color:#8fd955;color:#b9e890}.hero-tg-icon{width:26px;height:26px;flex-shrink:0}.hero-tg-text{white-space:nowrap}.lang-switcher{display:flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.25);border-radius:8px;overflow:hidden;background:#0003}.lang-switcher button{padding:6px 12px;font-size:13px;font-weight:600;color:#ffffffb3;background:transparent;border:none;cursor:pointer;transition:color .15s,background .15s}.lang-switcher button:hover{color:#fff;background:#ffffff1a}.lang-switcher button.active{color:#8fd955;background:#8fd95526}.hero-share-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #3d5631;border-radius:10px;background:#1a211ee6;color:#b9e890;font-size:13px;font-weight:700;line-height:1}.hero-share-btn:hover:not(:disabled){background:#243026;border-color:#8fd955;color:#d7f7bb}.hero-share-icon{width:16px;height:16px;flex-shrink:0}.toast{position:fixed;right:18px;bottom:18px;z-index:40;min-width:240px;max-width:min(92vw,460px);padding:12px 14px;border-radius:12px;border:1px solid #2f4a2e;background:#121c12f5;color:#dff2d7;box-shadow:0 14px 30px #00000057;font-size:13px;font-weight:600}.toast--success{border-color:#5b8f43;background:#182b16f5;color:#c8f29f}.toast--error{border-color:#8f4343;background:#2d1818f5;color:#ffc7c7}.modal-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:#050806b8}.modal-panel{width:min(520px,100%);border:1px solid #2f3a34;border-radius:14px;background:#141a17;padding:16px;box-shadow:0 18px 38px #0000006b}.modal-panel h3{margin:0 0 8px;font-size:18px}.modal-panel .hint{margin:0}.modal-actions{justify-content:flex-end;margin-top:14px}.modal-actions .ghost:hover:not(:disabled){background:#263129;border-color:#425246;color:#e3efe4}.hero h1{margin:0 0 10px;font-size:30px;line-height:1.2}.hero-prefix{margin:0 0 4px;color:#8fd955;font-size:14px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.eyebrow{margin:0 0 6px;color:#8fd955;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.lead{margin:0;color:#b9c6bb}.card{border:1px solid #2a322e;border-radius:14px;background:#171d1a;padding:18px}.card h2{margin:0 0 12px;font-size:18px}.card h3{margin:18px 0 10px;font-size:15px;color:#dce8dd}.card h4{margin:12px 0 8px;font-size:14px;color:#cde3cf}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subcard{border:1px solid #2a322e;border-radius:12px;background:#121815;padding:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.compound-sets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.compound-set-block{border:1px solid #2a322e;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.compound-set-block--h{background:#ffffff0f;border-color:#ffffff26}.compound-set-block--m{background:#dcc85014;border-color:#dcc85040}.compound-set-block--s{background:#c8505014;border-color:#c8505040}.field-group{display:grid;gap:8px}.field{display:grid;gap:6px;font-size:13px;align-content:start}.field.checkbox-row{display:flex;align-items:center;gap:8px}.field.checkbox-row input[type=checkbox]{width:auto}.field>span{color:#cfdbd0}.field input,.field select,td input,td select{width:100%;min-width:0;height:36px;border:1px solid #2d3731;background:#101613;color:#e7eee8;border-radius:8px;padding:0 10px;outline:none}.field select,td select{display:block;appearance:none;line-height:1.2;padding-top:0;padding-bottom:0;cursor:pointer}td select{height:auto;min-height:32px;font-size:inherit}select option{background:#171d1a;color:#e8ece8}.field input:focus,.field select:focus,td input:focus,td select:focus{border-color:#84cf48;box-shadow:0 0 0 2px #84cf4833}.field input:focus:disabled,.field select:focus:disabled,td input:focus:disabled,td select:focus:disabled{border-color:#252f2a;box-shadow:none}.field input:disabled,.field select:disabled,td input:disabled,td select:disabled{opacity:.65;cursor:not-allowed;background:#1a211e;border-color:#252f2a;color:#7a8a7e}.file-input{padding:0;height:auto;min-height:38px}.file-input::file-selector-button{margin-right:10px;border:1px solid #3d5631;background:#253526;color:#d5e6d5;border-radius:8px;padding:8px 12px;cursor:pointer}.file-input::file-selector-button:hover{background:#2f4331}.settings-import-file-wrap{display:inline-flex;flex-direction:row;align-items:center;gap:10px;margin:0}.settings-import-file-wrap .field-label{margin:0;white-space:nowrap}.settings-import-file-wrap .file-input{min-width:200px}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:18px;height:18px;appearance:none;border:1px solid #4a5e4a;border-radius:4px;background:#0f1612;position:relative;margin:0;cursor:pointer}.checkbox input:checked{border-color:#8fd955;background:#8fd955}.checkbox input:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #122013;border-width:0 2px 2px 0;transform:rotate(45deg)}.calibration-instruction{margin:0 0 18px;padding-left:20px}.calibration-instruction li{margin-bottom:6px}.calibration-instruction li:last-child{margin-bottom:0}.calibration-mode-row{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:18px;margin-bottom:14px}.calibration-mode-row .radio{display:flex;align-items:center;gap:8px;cursor:pointer;color:#b9c6bb;font-size:14px}.calibration-mode-row .radio input{width:18px;height:18px;margin:0;appearance:none;border:1px solid #3d4a40;border-radius:50%;background:#1a211e;cursor:pointer;position:relative}.calibration-mode-row .radio input:checked{border-color:#8fd955;background:#1a211e;box-shadow:inset 0 0 0 4px #8fd955}.calibration-mode-row .radio input:hover:not(:disabled){border-color:#5a6b4f}.hint{margin:0;color:#9bb09d;font-size:13px}.hint-link{color:#8fd955;text-decoration:none;font-weight:600;transition:color .2s}.hint-link:hover{color:#b9e890;text-decoration:underline}.info-plaque{margin:0 0 12px;padding:10px 14px;background:#9bb09d0f;border:1px solid rgba(155,176,157,.18);border-radius:8px}.info-plaque .hint{margin:0}.custom-strategy-message{white-space:pre-wrap}.custom-strategy-message .feasibility-table{margin-top:8px;border-collapse:collapse;border:1px solid #2a322e;border-radius:8px;overflow:hidden;font-size:13px}.custom-strategy-message .feasibility-table th,.custom-strategy-message .feasibility-table td{border:1px solid #2a322e;padding:6px 10px;text-align:left}.custom-strategy-message .feasibility-table th{background:#1d2420;color:#d7e7d9;font-weight:600}.custom-strategy-message .feasibility-table td{background:#171d1a;color:#e8ece8}.status{margin:10px 0 0;color:#dbbc7f;font-size:14px}.status.ok{color:#9ae56a}.error{min-height:16px;color:#ff9f95}.error-detail{margin-top:4px;font-size:12px;color:#c99a94}.error-raw{margin-top:6px;padding:8px;max-height:200px;overflow:auto;font-size:11px;white-space:pre-wrap;word-break:break-all;background:#00000040;border-radius:4px}details summary{cursor:pointer;color:#cddacd;font-weight:600}summary.step-summary{font-size:18px}details[open] summary{margin-bottom:12px}details.nested-details{margin-top:18px}details.nested-details.card{background:#1a211e}.table{width:100%;border-collapse:collapse;border:1px solid #2a322e;border-radius:10px;overflow:hidden}.table th,.table td{border-bottom:1px solid #2a322e;border-right:1px solid #2a322e;padding:8px;text-align:left;font-size:13px}.table th:last-child,.table td:last-child{border-right:0}.table tbody tr:last-child td{border-bottom:0}.table th{background:#1d2420;color:#d7e7d9;font-weight:600}.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.custom-stints-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.custom-stints-table{min-width:min-content}.custom-stints-table .col-stint{min-width:2.5rem;width:2.5rem}.custom-stints-table .col-compound{min-width:4.5rem}.custom-stints-table .col-laps{min-width:4rem}.custom-stints-table .col-laps input{width:3.5rem;min-width:3rem;box-sizing:border-box}.custom-stints-table .col-eco{min-width:5.5rem}.custom-stints-table .col-eco select{min-width:4.5rem}.custom-stints-table .col-action{min-width:5rem}.variant-cell{max-width:380px;color:#a9bbb0;font-size:12px}.compact td{padding:6px}.band-block+.band-block{margin-top:14px}.actions{display:grid;gap:12px}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button-row-spaced{justify-content:space-between;align-items:center}.ocr-actions{align-items:center;gap:12px}.ocr-status{display:inline-flex;align-items:center;gap:8px;color:#8fa88f;font-size:13px}.ocr-spinner{width:18px;height:18px;border:2px solid #2d3731;border-top-color:#84cf48;border-radius:50%;animation:ocr-spin .7s linear infinite}.optimizer-loader-overlay{position:fixed;inset:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px}.optimizer-loader-card{background:#1d2420;border:1px solid #2a322e;border-radius:12px;padding:24px 32px;min-width:260px;max-width:90vw;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 8px 24px #0006}.optimizer-loader-spinner{width:32px;height:32px;border-width:3px}.optimizer-loader-text{margin:0;font-size:15px;color:#d7e7d9;font-weight:500}.optimizer-loader-bar-wrap{width:100%;height:8px;background:#2a322e;border-radius:4px;overflow:hidden}.optimizer-loader-bar{height:100%;background:#84cf48;border-radius:4px;transition:width .15s ease-out}.optimizer-loader-pct{margin:0;font-size:13px;color:#8fa88f}@keyframes ocr-spin{to{transform:rotate(360deg)}}button.danger{background:#3d2525;border-color:#6b3838;color:#f0a0a0}button.danger:hover:not(:disabled){background:#4d2d2d;border-color:#8b4848;color:#ffb8b8}button{border:1px solid #3d5631;background:#8fd955;color:#10200f;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:#9ce865}button:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:#1b231f;color:#dce8dd;border-color:#334036}button.ghost.danger{background:#3d2525;border-color:#6b3838;color:#f0a0a0}button.ghost.danger:hover:not(:disabled){background:#4d2d2d;border-color:#8b4848;color:#ffb8b8}button.small{padding:6px 10px;font-size:12px}.issues{margin:0;padding-left:18px;color:#ffb7b0;font-size:13px;display:grid;gap:4px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.kpi-grid>div{border:1px solid #2d3731;background:#121815;border-radius:10px;padding:10px;display:grid;gap:4px}.label{color:#9bb09d;font-size:12px}.value{color:#e5ede6;font-weight:700;font-size:15px}.top-gap{margin-top:10px}.diagnostic-tables{font-size:12px;overflow-x:auto}.diagnostic-tables .hint{margin:0 0 8px;color:#9bb09d}.diagnostic-tables .diagnostic-caption{margin-top:-4px;margin-bottom:12px;font-size:11px;line-height:1.4}.diag-table{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:11px}.diag-table caption{text-align:left;font-weight:600;padding:4px 0;color:#c5d4c7}.diag-table th,.diag-table td{border:1px solid #2d3731;padding:4px 8px;vertical-align:top}.diag-table th{background:#1a211d;color:#9bb09d;white-space:nowrap}.diag-table td{background:#121815;color:#e5ede6}.diag-cell{display:inline-block;margin:1px 6px 1px 0;white-space:nowrap}.diag-inner{border:none;margin:0;font-size:11px}.diag-inner td{border:none;padding:1px 8px 1px 0;background:transparent}.diag-reason{color:#9bb09d;font-style:italic}.preview-grid,.debug-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.preview-card{border:1px solid #2b342f;border-radius:10px;background:#121815;padding:10px}.preview-card h4{margin:0 0 8px}.ocr-upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.ocr-include-checkbox{width:18px;height:18px;margin:0;padding:0;appearance:none;border:1px solid #4a5e4a;border-radius:4px;background:#0f1612;cursor:pointer;position:relative;flex-shrink:0}.field .ocr-include-checkbox{width:18px;height:18px;min-height:18px;padding:0}.ocr-include-checkbox:checked{border-color:#8fd955;background:#8fd955}.ocr-include-checkbox:checked:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #122013;border-width:0 2px 2px 0;transform:rotate(45deg)}.ocr-upload-field--excluded .file-input,.ocr-upload-field--excluded small{opacity:.5}.ocr-upload-field--excluded .file-input{filter:saturate(.75)}.preview-wrap{position:relative;width:100%;aspect-ratio:16 / 9;border:1px solid #2a322e;border-radius:8px;overflow:hidden}.preview-wrap.clickable{cursor:zoom-in}.preview-wrap img{width:100%;height:100%;object-fit:cover;display:block}.roi{position:absolute;border:1px solid;font-size:11px;font-weight:600;display:flex;align-items:flex-start;justify-content:flex-start;padding:2px 4px;background:#00000040;color:#fff}.roi-laps{border-color:#7fcaff}.roi-fuel{border-color:#ffc56c}.roi-tyre{border-color:#ff7b7b}.roi-tyre-wheel{border-color:#8fd955;background:#8fd9551f}.ocr-text{margin:8px 0 0;background:#0d1210;border:1px solid #232c27;border-radius:8px;padding:8px;color:#cde3cf;white-space:pre-wrap;max-height:180px;overflow:auto}.zoom-overlay{position:fixed;inset:0;background:#060a08d1;z-index:1200;display:grid;place-items:center;padding:20px}.zoom-panel{width:min(1200px,96vw);max-height:92vh;overflow:auto;border:1px solid #354038;border-radius:12px;background:#111714;padding:12px}.zoom-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.zoom-header h3{margin:0;font-size:16px}.zoom-preview-wrap{margin-top:10px;position:relative;width:100%;aspect-ratio:16 / 9;border:1px solid #2a322e;border-radius:10px;overflow:hidden}.zoom-preview-wrap img{width:100%;height:100%;object-fit:contain;background:#000;display:block}.strategy-cards{display:grid;gap:10px;margin-top:14px}.strategy-card{border:1px solid #2b342f;border-radius:10px;background:#131916;padding:10px 12px;min-width:0}.strategy-card.custom{border-color:#6f8f42;box-shadow:0 0 0 1px #8fd9552e inset}.strategy-card>summary{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.strategy-title-wrap{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.strategy-rank{color:#7f8f84;font-weight:600}.strategy-title{color:#dbebdc;font-weight:700}.custom-badge{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:999px;border:1px solid #6f8f42;color:#b9e790;font-size:11px;font-weight:600}.strategy-tags{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;justify-content:flex-start}.strategy-tag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;border:1px solid transparent;font-size:10px;font-weight:700;letter-spacing:.01em;text-transform:lowercase;white-space:nowrap}.strategy-tag--fuel{color:#dff0ff;border-color:#4c7da3;background:#4c7da333}.strategy-tag--tyre{color:#ffe8cf;border-color:#9f7342;background:#9f734238}.strategy-tag--refuel{color:#ddf6c6;border-color:#648f44;background:#648f443d}.strategy-meta{color:#9db19f;font-size:13px}.strategy-remove-inline{width:auto;flex-shrink:0}.strategy-body{margin-top:10px;display:grid;gap:12px;min-width:0}.strategy-block h3{margin:0 0 8px;font-size:14px}.strategy-block{min-width:0}.lap-forecast-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.lap-forecast-table{min-width:700px}.lap-forecast-table th:last-child,.lap-forecast-table td:last-child{min-width:220px}.lap-bar-cell{min-width:140px}.lap-bar-wrap{width:100%;max-width:120px;height:12px;background:#1d2420;border-radius:4px;overflow:hidden;display:flex}.lap-bar-wrap--wear{background:#453030}.lap-bar{display:flex;flex:0 0 auto;min-width:0;height:100%;border-radius:4px;overflow:hidden}.lap-bar-segment{height:100%;min-width:0;flex-shrink:0}.lap-bar--fuel .lap-bar-segment--fuel-end{background:#2d7a32}.lap-bar--fuel .lap-bar-segment--fuel-refuel{background:#f9a825}.lap-bar--fuel .lap-bar-segment--fuel-used{background:#c62828}.lap-bar--wear .lap-bar-segment--wear-remaining{background:#e0e0e0}.lap-bar--wear .lap-bar-segment--wear-used{background:#c62828}.lap-bar-label{display:block;font-size:11px;color:#8fa88f;margin-top:2px}.bullet-list{margin:0;padding-left:18px;color:#cbd9cd;display:grid;gap:4px}@media(max-width:920px){.settings-grid{grid-template-columns:1fr}.strategy-card>summary{align-items:flex-start;flex-direction:column}}@media(max-width:640px){.page{padding:14px 12px 34px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:12px}.hero{text-align:center;margin-left:-12px;margin-right:-12px;padding:20px 16px 24px}.hero h1{font-size:22px;line-height:1.25;word-wrap:break-word}.hero-prefix{font-size:12px}.lead{font-size:14px}.hero-top{gap:12px 20px;margin-bottom:8px}.brand{margin-bottom:0}.brand-logo{width:min(320px,85vw)}.hero-tg{font-size:16px;padding:8px 14px}.hero-tg-icon{width:22px;height:22px}.card{padding:12px;border-radius:12px}.card h2,summary.step-summary{font-size:16px;word-wrap:break-word}.form-grid,.compound-sets-grid{grid-template-columns:1fr;min-width:0}.button-row{display:grid;grid-template-columns:1fr}button{width:100%;min-width:0}.table th,.table td{font-size:12px;padding:6px}.table-wrap{max-width:100%}.strategy-title-wrap{row-gap:4px}.strategy-tags{gap:6px}.strategy-tag{font-size:11px}.strategy-meta{font-size:12px}.strategy-remove-inline{width:auto}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-grid,.debug-grid{grid-template-columns:1fr}.lap-forecast-table{min-width:620px}.ocr-upload-row{gap:10px}.field .ocr-include-checkbox{width:20px;height:20px;min-height:20px}}@media(max-width:768px){.calibration-table-desktop{display:none}.calibration-cards{display:block}}@media(min-width:769px){.calibration-cards{display:none}}.calibration-card{border:1px solid #2a322e;border-radius:12px;background:#121815;padding:12px;margin-bottom:12px}.calibration-card:last-child{margin-bottom:0}.calibration-card h4{margin:0 0 10px;font-size:14px;color:#dce8dd}.calibration-card .field-row{display:grid;gap:8px;margin-top:8px}.calibration-card .field-row label{display:grid;gap:4px;font-size:13px}.calibration-card .field-row label span{color:#cfdbd0}.calibration-card .field-row input{width:100%;min-width:0;height:36px;border:1px solid #2d3731;background:#101613;color:#e7eee8;border-radius:8px;padding:0 10px}.calibration-card .field-row input:disabled{background:#1a211e;border-color:#252f2a;color:#7a8a7e;opacity:.65;cursor:not-allowed}@media(max-width:480px){.modal-overlay{padding:10px;align-items:end}.modal-panel{width:100%;border-radius:12px;padding:14px}.modal-panel h3{font-size:16px}.modal-actions{justify-content:stretch}.modal-actions button{flex:1 1 0}.toast{right:10px;left:10px;bottom:10px;max-width:none;min-width:0;padding:11px 12px}.page{padding:10px 10px 28px;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:10px}.hero{margin-left:-10px;margin-right:-10px;padding:16px 12px 20px}.hero h1{font-size:20px}.card{padding:10px}.card h2,summary.step-summary{font-size:15px}.subcard{padding:10px}}
