:root{--brand: #0b4f8a;--good: #1a8a3a;--bad: #c62828;--muted: #5f6b76;--border: #dde3e9;--surface: #ffffff;--bg: #f3f5f7;--text: #1c2228}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}.drv{--drv-text: #111111;--drv-brand: #0b4f8a;--drv-brand-dark: #08396a;--drv-ok: #0f6b2f;--drv-ok-bg: #e2f4e8;--drv-bad: #a8071a;--drv-bad-bg: #fde8ea;--drv-line: #6b7785;min-height:100dvh;max-width:34rem;margin:0 auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px;background:#fff;color:var(--drv-text);font-size:18px;line-height:1.35}.drv h1{margin:4px 0 0;font-size:28px;line-height:1.2}.drv p{margin:0}.drv-lead{font-size:20px}.drv-field{display:flex;flex-direction:column;gap:6px}.drv-field label{font-size:20px;font-weight:700}.drv-input{width:100%;min-height:64px;padding:0 16px;font:inherit;font-size:28px;font-weight:700;letter-spacing:.06em;color:var(--drv-text);background:#fff;border:2px solid var(--drv-text);border-radius:10px}.drv-input:focus{outline:4px solid var(--drv-brand);outline-offset:2px}.drv-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:64px;padding:12px 16px;font:inherit;font-size:20px;font-weight:800;text-align:center;text-decoration:none;color:#fff;background:var(--drv-brand);border:2px solid var(--drv-brand);border-radius:12px;cursor:pointer;touch-action:manipulation}.drv-btn:active{background:var(--drv-brand-dark)}.drv-btn:disabled{color:#fff;background:#5b6b7c;border-color:#5b6b7c;cursor:default}.drv-btn:focus-visible{outline:4px solid #f2b705;outline-offset:2px}.drv-btn-secondary{min-height:56px;color:var(--drv-text);background:#fff;border-color:var(--drv-text)}.drv-btn-secondary:active{background:#e9edf1}.drv-btn-danger{background:var(--drv-bad);border-color:var(--drv-bad)}.drv-error{padding:14px 16px;font-weight:700;color:var(--drv-bad);background:var(--drv-bad-bg);border:2px solid var(--drv-bad);border-radius:10px}.drv-spacer{flex:1}.drv-overlay{position:fixed;inset:0;z-index:10;overflow-y:auto;background:#fff}.drv-stack{display:flex;flex-direction:column;gap:16px}.drv-choice{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;padding:10px 16px;font:inherit;text-align:left;color:var(--drv-text);background:#fff;border:2px solid var(--drv-line);border-radius:12px;cursor:pointer;touch-action:manipulation}.drv-choice .drv-choice-main{font-size:26px;font-weight:800;letter-spacing:.04em}.drv-choice .drv-choice-note{font-size:18px;font-weight:600}.drv-choice .drv-mark{flex:none;width:32px;height:32px;border:3px solid var(--drv-text);border-radius:50%}.drv-choice.selected{background:#e3eefa;border:4px solid var(--drv-brand);padding:8px 14px}.drv-choice.selected .drv-mark{border-color:var(--drv-brand);background:radial-gradient(circle,var(--drv-brand) 0 45%,transparent 50%)}.drv-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.drv-header{padding:14px 16px;border:2px solid var(--drv-text);border-radius:12px}.drv-header .drv-name{font-size:24px;font-weight:800}.drv-header dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:8px 0 0;font-size:20px}.drv-header dt{font-weight:600}.drv-header dd{margin:0;font-weight:800;letter-spacing:.03em}.drv-header .drv-btn{margin-top:12px}.drv-trip-btn{min-height:88px;flex-direction:column;gap:4px;font-size:21px;line-height:1.2}.drv-trip-btn .drv-next{display:inline-block;padding:2px 10px;font-size:18px;font-weight:800;letter-spacing:.05em;color:var(--drv-brand);background:#fff;border-radius:999px}.drv-section-title{margin:8px 0 0;font-size:22px}.drv-trips{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;border-top:2px solid var(--drv-text)}.drv-trips li{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:center;min-height:56px;padding:8px 0;border-bottom:2px solid #c9d1d9}.drv-trips .drv-trip-time{font-size:20px;font-weight:800}.drv-trips .drv-trip-container{font-weight:700;letter-spacing:.03em;overflow-wrap:anywhere}.drv-status{padding:2px 10px;font-size:18px;font-weight:800;border:2px solid currentColor;border-radius:999px;white-space:nowrap}.drv-status.ok{color:var(--drv-ok);background:var(--drv-ok-bg)}.drv-status.bad{color:var(--drv-bad);background:var(--drv-bad-bg)}.drv-status.wait{color:var(--drv-brand);background:#e3eefa}.drv-btn-link{min-height:56px;font-weight:700;color:var(--drv-text);background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}.drv-btn-link:active{background:#e9edf1}.drv-label{font-size:20px;font-weight:700}.drv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.drv-choice-small{min-height:64px}.drv-choice-small .drv-choice-main{font-size:21px}.drv-upper{text-transform:uppercase}.drv-field-error .drv-input{border-color:var(--drv-bad);border-width:3px}.drv-field-error .drv-choice:not(.selected){border-color:var(--drv-bad)}.drv-field-msg{font-weight:800;color:var(--drv-bad)}.drv-note{font-weight:600}.drv-info{padding:12px 14px;font-size:20px;background:#e3eefa;border-left:6px solid var(--drv-brand);border-radius:6px}.drv-summary{display:flex;flex-direction:column;margin:0;border-top:2px solid var(--drv-text)}.drv-summary>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:10px 0;border-bottom:2px solid #c9d1d9}.drv-summary dt{font-weight:600}.drv-summary dd{margin:0;font-size:22px;font-weight:800;letter-spacing:.02em;text-align:right;overflow-wrap:anywhere}.drv-state h1{font-size:30px}.drv-state-ok{background:var(--drv-ok-bg)}.drv-state-ok h1{color:var(--drv-ok)}.drv-state-bad{background:var(--drv-bad-bg)}.drv-state-bad h1{color:var(--drv-bad)}.drv-state-wait{justify-content:center;text-align:center;background:#e3eefa}.drv-qr{display:block;width:100%;max-width:360px;margin:0 auto;background:#fff;border:2px solid var(--drv-text);border-radius:8px;image-rendering:pixelated}.drv-spinner{width:72px;height:72px;margin:0 auto;border:8px solid #b9cfe6;border-top-color:var(--drv-brand);border-radius:50%;animation:drv-spin 1s linear infinite}@keyframes drv-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.drv-spinner{animation-duration:3s}}.drv-floating{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));left:16px;z-index:20}.drv-trip-row{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:center;width:100%;min-height:56px;padding:8px 0;font:inherit;text-align:left;color:inherit;text-decoration:none}.test-banner{position:sticky;top:0;z-index:30;padding:8px 16px;font-size:18px;font-weight:900;letter-spacing:.08em;text-align:center;color:#111;background:#ff9800;border-bottom:3px solid #111111}.has-test-banner .drv-overlay{top:46px}.drv-trips li{display:block;min-height:0;padding:0}.drv-grid .drv-choice{gap:10px;padding:8px 10px}.drv-grid .drv-choice.selected{padding:6px 8px}.drv-grid .drv-mark{width:26px;height:26px}.drv-choice-small .drv-choice-main{font-size:20px;overflow-wrap:anywhere}.has-test-banner .drv{min-height:calc(100dvh - 46px)}.drv-grid .drv-choice-main,.drv-choice-small .drv-choice-main{font-size:19px;letter-spacing:0;overflow-wrap:normal;word-break:keep-all}.drv-status.late{color:#6b3a00;background:#ffe8c2}.drv-late{padding:12px 14px;font-size:19px;color:#3d2200;background:#ffe8c2;border:3px solid #b26a00;border-radius:10px}.drv-container-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:10px}.drv-container-row .drv-input{letter-spacing:.08em;font-weight:700}.drv-summary-when{display:block;font-size:20px;font-weight:700}.drv-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.drv-install-steps{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;counter-reset:step}.drv-install-steps li{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:center;font-size:20px}.drv-install-icon{width:56px;height:56px;padding:6px;color:var(--drv-brand);border:2px solid var(--drv-brand);border-radius:12px}.drv-install-banner{display:flex;align-items:stretch;gap:8px;border:2px solid var(--drv-brand);border-radius:12px;background:#e3eefa}.drv-install-banner a{flex:1;display:flex;align-items:center;min-height:56px;padding:8px 14px;font-weight:700;color:var(--drv-text)}.drv-install-banner button{min-width:56px;min-height:56px;font-size:24px;color:var(--drv-text);background:transparent;border:0}
