:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}*{box-sizing:border-box}button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body{margin:0;background:#f6f7f9;color:#1c1d22}@media (prefers-color-scheme: dark){body{background:#14151a;color:#e8eaee}}.page{max-width:560px;margin:0 auto;padding:16px}.page__header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.page__logo{display:block;max-width:180px;width:60%;height:auto;margin-top:8px}.page__title{margin:0;font-size:22px}.page__greeting{margin:0;opacity:.7;font-size:14px}.form{margin-top:24px;display:flex;flex-direction:column;gap:8px}.form__label{font-size:14px;font-weight:600}.form__input{padding:12px 14px;font-size:18px;letter-spacing:.04em;border-radius:10px;border:1px solid #c9ccd3;background:#fff;color:inherit;text-transform:uppercase;text-align:center}.form__vin-row{display:flex;gap:8px}.form__prefix{flex:0 0 auto;padding:12px 10px;font-size:18px;font-weight:600;border-radius:10px;border:1px solid #c9ccd3;background:#fff;color:inherit;cursor:pointer}.form__prefix:focus{outline:2px solid #3870ff;outline-offset:1px}.form__tail{flex:1 1 auto;min-width:0}@media (prefers-color-scheme: dark){.form__prefix{background:#1f2128;border-color:#2c2f38}}.form__input:focus{outline:2px solid #3870ff;outline-offset:1px}@media (prefers-color-scheme: dark){.form__input{background:#1f2128;border-color:#2c2f38}}.form__hint{margin:0;font-size:13px;color:#c0392b}.form__submit{margin-top:8px;padding:14px;font-size:16px;font-weight:600;border-radius:10px;border:0;background:#3870ff;color:#fff;cursor:pointer}.form__submit:disabled{opacity:.5;cursor:not-allowed}.result{margin-top:24px;padding:16px;border-radius:12px;background:#fff;border:1px solid #e0e2e8}@media (prefers-color-scheme: dark){.result{background:#1f2128;border-color:#2c2f38}}.result--error{border-color:#f1c0bf;background:#fff5f5}.result--warn{border-color:#f0d9a8;background:#fff9ec}.result__warn-text{margin:0 0 4px;font-size:15px;line-height:1.45}@media (prefers-color-scheme: dark){.result--warn{background:#2a2410;border-color:#5a4a1f}}.phone-denied{margin-top:24px;padding:16px;border-radius:12px;background:#fff5f5;border:1px solid #f1c0bf;font-size:15px;line-height:1.5;text-align:center;color:#c0392b}@media (prefers-color-scheme: dark){.phone-denied{background:#2a1515;border-color:#7a2020;color:#f08080}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:0 0 env(safe-area-inset-bottom,0)}@media (min-height: 500px){.modal-overlay{align-items:center}}.modal{background:#fff;border-radius:16px 16px 0 0;padding:20px 16px 24px;width:100%;max-width:560px;display:flex;flex-direction:column;gap:12px}@media (min-height: 500px){.modal{border-radius:16px;margin:16px;width:calc(100% - 32px)}}@media (prefers-color-scheme: dark){.modal{background:#1f2128}}.modal__title{margin:0;font-size:18px;font-weight:700}.modal__textarea{padding:12px 14px;font-size:15px;line-height:1.5;border-radius:10px;border:1px solid #c9ccd3;background:#f6f7f9;color:inherit;resize:none;font-family:inherit}.modal__textarea:focus{outline:2px solid #3870ff;outline-offset:1px}@media (prefers-color-scheme: dark){.modal__textarea{background:#14151a;border-color:#2c2f38}}.modal__actions{display:flex;gap:8px}.modal__cancel{flex:1;padding:13px;font-size:15px;font-weight:600;border-radius:10px;border:1px solid #c9ccd3;background:transparent;color:inherit;cursor:pointer}.modal__cancel:hover{background:#f0f2f6}@media (prefers-color-scheme: dark){.modal__cancel{border-color:#2c2f38}.modal__cancel:hover{background:#14151a}}.modal__submit{flex:2;padding:13px;font-size:15px;font-weight:600;border-radius:10px;border:0;background:#3870ff;color:#fff;cursor:pointer}.modal__submit:hover{background:#2a5ce8}.modal__danger{flex:2;padding:13px;font-size:15px;font-weight:600;border-radius:10px;border:0;background:#e5484d;color:#fff;cursor:pointer}.modal__danger:hover{background:#cf3b40}.result__confirm{margin-top:12px;padding:12px 14px;width:100%;font-size:15px;font-weight:600;border-radius:10px;border:2px solid #3870ff;background:transparent;color:#3870ff;cursor:pointer}.result__confirm:disabled{opacity:.5;cursor:not-allowed}.result__reset{margin-top:12px;padding:12px 14px;width:100%;font-size:15px;font-weight:600;border-radius:10px;border:1px solid #c9ccd3;background:transparent;color:inherit;cursor:pointer}.result__reset:hover{background:#f0f2f6}@media (prefers-color-scheme: dark){.result__reset{border-color:#2c2f38}.result__reset:hover{background:#14151a}}.result--error .result__code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;opacity:.7;margin:4px 0 8px}.result h2{margin:0 0 12px;font-size:18px}.result__data-string{margin:0 0 12px;padding:12px;background:#f0f2f6;border-radius:8px;font-size:15px;white-space:pre-wrap;word-break:break-word}@media (prefers-color-scheme: dark){.result__data-string{background:#14151a}}.result__notice{margin:0 0 12px;font-size:14px;opacity:.8}.result__notice--ok{font-size:16px;font-weight:600;opacity:1;color:#1f9d55}@media (prefers-color-scheme: dark){.result__notice--ok{color:#4ade80}}.result__details summary{cursor:pointer;font-size:14px;opacity:.8}.result__details pre{margin-top:8px;padding:12px;background:#f0f2f6;border-radius:8px;font-size:12px;overflow-x:auto}@media (prefers-color-scheme: dark){.result__details pre{background:#14151a}}.history{margin-top:28px}.history__title{margin:0 0 10px;font-size:15px;font-weight:600;opacity:.7}.history__hint{display:block;font-size:12px;font-weight:400;opacity:.8;margin-top:2px}.history__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history__item{position:relative;overflow:hidden;border-radius:10px}.history__card{position:relative;padding:10px 14px;background:#fff;border:1px solid #e0e2e8;border-radius:10px;touch-action:pan-y;will-change:transform}.history__delete{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:10px;background:#f1a9ab;color:#fff;font-size:14px;font-weight:600;transition:background .12s ease}.history__delete--armed{background:#e5484d}@media (prefers-color-scheme: dark){.history__card{background:#1f2128;border-color:#2c2f38}}.history__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.history__vin{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15px;font-weight:600;word-break:break-all}.history__date{font-size:13px;opacity:.6;white-space:nowrap}.history__status{display:inline-block;margin-top:8px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#e9ebef;color:#6b7280}.history__status--work{background:#d7e6ff;color:#1f5bb5}.history__status--done{background:#d7f5e3;color:#1f7a44}.history__status--warn{background:#fde2e1;color:#c0392b}.history__feedback{margin-top:10px;padding:10px 12px;background:#f6f7f9;border-radius:8px}.history__feedback-q{margin:0 0 8px;font-size:13px;font-weight:600}.history__feedback-row{display:flex;gap:8px}.history__feedback-btn{flex:1;padding:8px 12px;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;border:1px solid #c9ccd3;background:#fff}.history__feedback-btn--yes{border-color:#4ade80;color:#1f7a44}.history__feedback-btn--no{border-color:#f1c0bf;color:#c0392b}.history__feedback-btn:disabled{opacity:.5;cursor:not-allowed}@media (prefers-color-scheme: dark){.history__feedback{background:#14151a}.history__feedback-btn{background:#1f2128;border-color:#2c2f38;color:inherit}}@media (prefers-color-scheme: dark){.history__status{background:#2c2f38;color:#aeb4bf}.history__status--work{background:#1f3a5f;color:#9cc4ff}.history__status--done{background:#15331f;color:#6ee7a0}}.history__comment{margin:8px 0 0;font-size:13px;opacity:.75;white-space:pre-wrap;word-break:break-word}.history__repeat{margin-top:10px;padding:8px 12px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid #3870ff;background:transparent;color:#3870ff;cursor:pointer}.history__repeat:disabled{opacity:.5;cursor:not-allowed}
