:root{--ink: #0f172a;--muted: #475569;--line: #cbd5e1;--bg: #f1f5f9;--card: #ffffff;--brand: #0e7490;--brand-ink: #ffffff;--ok: #166534;--ok-bg: #dcfce7;--warn: #92400e;--warn-bg: #fef3c7;--bad: #991b1b;--bad-bg: #fee2e2;--info: #1e40af;--info-bg: #dbeafe;--mut-bg: #e2e8f0}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}.shell{max-width:960px;margin:0 auto;padding:12px 12px 96px}.top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0 12px}.top b{font-size:18px}.nav{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);display:flex;overflow-x:auto;z-index:5;padding-bottom:env(safe-area-inset-bottom)}.nav button{flex:1 0 auto;min-width:72px;min-height:60px;border:0;background:none;padding:6px 10px;font-weight:600;color:var(--muted)}.nav button[aria-current=page]{color:var(--brand);box-shadow:inset 0 3px 0 var(--brand)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 0 12px}.card h2,.card h3{margin:0 0 8px;font-size:17px}.grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.stat .k{font-size:13px;color:var(--muted)}.stat .v{font-size:24px;font-weight:700;margin-top:2px;word-break:break-word}.stat .n{font-size:13px;color:var(--muted);margin-top:2px}.stat.warn{border-color:#f59e0b}.stat.bad{border-color:#ef4444}.btn{min-height:52px;padding:10px 16px;border-radius:12px;border:0;background:var(--brand);color:var(--brand-ink);font-weight:700;font-size:17px;width:100%}.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line)}.btn.danger{background:#b91c1c}.btn.small{min-height:44px;width:auto;font-size:15px;padding:8px 14px}.btn:disabled{opacity:.5}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row>*{flex:1 1 auto}label.f{display:block;margin:0 0 12px;font-weight:600}label.f small{display:block;font-weight:400;color:var(--muted)}.in{display:block;width:100%;min-height:52px;padding:10px 12px;font-size:17px;border:1px solid #94a3b8;border-radius:10px;background:#fff;margin-top:4px}textarea.in{min-height:84px}.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.info{background:var(--info-bg);color:var(--info)}.chip.muted{background:var(--mut-bg);color:var(--muted)}.list{list-style:none;margin:0;padding:0}.list li{border-top:1px solid var(--line);padding:10px 0}.list li:first-child{border-top:0}.list button.item{all:unset;display:block;width:100%;cursor:pointer}.between{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.muted{color:var(--muted)}.small{font-size:13px}.alert{padding:10px 12px;border-radius:10px;margin:0 0 12px;font-weight:600}.alert.bad{background:var(--bad-bg);color:var(--bad)}.alert.ok{background:var(--ok-bg);color:var(--ok)}.alert.warn{background:var(--warn-bg);color:var(--warn)}.alert.info{background:var(--info-bg);color:var(--info)}.tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 12px}.tabs button{min-height:44px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-weight:600;white-space:nowrap}.tabs button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.qty{display:flex;align-items:center;gap:6px}.qty button{width:48px;height:48px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:24px;font-weight:700}.qty span{min-width:34px;text-align:center;font-size:19px;font-weight:700}.steps{display:flex;gap:6px;margin:0 0 12px}.steps span{flex:1;height:6px;border-radius:3px;background:var(--line)}.steps span.on{background:var(--brand)}.sample{background:#fef3c7;color:#78350f;border:1px dashed #d97706;padding:6px 10px;border-radius:8px;font-size:13px;margin:0 0 12px}.sr{position:absolute;left:-9999px}@media(min-width:720px){.shell{padding-top:20px}}
