:root{color-scheme:light dark;--brand: #0a3a66;--brand-ink: #fff;--bg: #f6f7f9;--card: #fff;--ink: #111;--muted: #6b7280;--line: #e5e7eb;--ok: #047857;--err: #b91c1c}@media (prefers-color-scheme: dark){:root{--bg: #0b0f14;--card: #131922;--ink: #e5e7eb;--muted: #94a3b8;--line: #1f2937;--ok: #34d399;--err: #f87171}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:560px;margin:0 auto;padding:max(env(safe-area-inset-top),1rem) 1rem env(safe-area-inset-bottom)}.hero{padding:1rem .25rem 1.25rem}.hero-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.hero h1{margin:0;font-size:1.5rem;letter-spacing:.04em;color:var(--brand)}.hero .tagline{margin:.25rem 0 0;color:var(--muted)}.settings-link{color:var(--brand);text-decoration:none;font-size:.9rem;padding:.4rem .6rem;border-radius:8px;border:1px solid var(--line)}.settings-link:hover{background:var(--card)}.back-link{color:var(--muted);text-decoration:none;font-size:.9rem;display:inline-block;margin-bottom:.5rem}.small{font-size:.85rem}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:1rem}.card h2{margin:0 0 .75rem;font-size:1.1rem}form .field{display:block;margin-bottom:.85rem}form .field>span,form .field>legend{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem;padding:0}form input[type=text],form input[inputmode=numeric]{width:100%;font:inherit;padding:.75rem .85rem;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}form input:focus{outline:2px solid var(--brand);outline-offset:1px}.fleet-picker{border:0;padding:0;margin:0 0 .85rem}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{font:inherit;padding:.55rem .85rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;min-height:40px}.chip.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}button.primary{width:100%;font:inherit;font-weight:600;padding:.95rem 1rem;border-radius:12px;border:0;background:var(--brand);color:var(--brand-ink);cursor:pointer;min-height:48px}button.primary:disabled{opacity:.6}.ok{color:var(--ok);margin:.75rem 0 0}.err{color:var(--err);margin:.75rem 0 0}.muted{color:var(--muted)}.fleet-group+.fleet-group{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--line)}.fleet-group h3{margin:0 0 .4rem;font-size:.95rem;display:flex;align-items:center;gap:.5rem}.fleet-group h3 .count{font-size:.75rem;color:var(--muted);background:var(--bg);border:1px solid var(--line);padding:.05rem .45rem;border-radius:999px}.fleet-group ul{list-style:none;padding:0;margin:0}.fleet-group li{display:flex;align-items:baseline;gap:.5rem;padding:.5rem 0;border-top:1px solid var(--line)}.fleet-group li:first-child{border-top:0}.fleet-group .name{flex:1 1 auto;min-width:0}.fleet-group .rig{color:var(--muted);font-size:.85rem}.fleet-group .when{color:var(--muted);font-size:.8rem;white-space:nowrap}.qr-sheet{max-width:1100px;margin:0 auto;padding:1.5rem}.qr-toolbar{margin-bottom:1.5rem}.qr-toolbar h1{margin:0;color:var(--brand)}.qr-toolbar p{color:var(--muted);margin:.5rem 0 .75rem}.qr-toolbar button{font:inherit;font-weight:600;padding:.6rem 1rem;border-radius:10px;border:0;background:var(--brand);color:var(--brand-ink);cursor:pointer}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}.qr-card{background:#fff;color:#111;border:1px solid var(--line);border-radius:12px;padding:1rem;text-align:center;break-inside:avoid}.qr-card .qr-code{display:flex;justify-content:center;margin-bottom:.5rem}.qr-card h2{margin:.25rem 0 .15rem;font-size:1.05rem}.qr-card .qr-fleet{margin:0;color:var(--muted);font-size:.8rem;text-transform:capitalize}.qr-card .qr-url{margin:.4rem 0 0;font-size:.7rem;color:var(--muted);word-break:break-all}@media print{body{background:#fff;color:#000}.qr-toolbar{display:none}.qr-sheet{padding:0}.qr-grid{grid-template-columns:repeat(2,1fr);gap:8mm}.qr-card{border:1px dashed #888;page-break-inside:avoid}}
