:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#162b29;background:#f6f8fa;--accent: #15564a;--ink: #162b29;--muted: #516665;--line: #dbe5e4;--tint: #e9f3ef;font-synthesis:none;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,.file-control:focus-within{outline:3px solid #478b7e;outline-offset:3px}button svg,.file-control svg{width:18px;height:18px;flex:none}.header{background:#fff;border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}.header-inner,main{width:min(100%,672px);margin-inline:auto;padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right))}.header-inner{min-height:67px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:1.025rem;font-weight:800}.brand-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent);color:#fff}.brand-icon svg{width:20px;height:20px}.badge{border-radius:99px;background:var(--tint);color:var(--accent);padding:6px 10px;font-size:.8rem;font-weight:800}main{padding-block:clamp(28px,6vw,53px) max(28px,env(safe-area-inset-bottom))}h1,h2,p{margin:0}h1{font-size:clamp(1.65rem,6vw,2.28rem);font-weight:800;letter-spacing:-.06em}h2{font-size:1.13rem;font-weight:800;letter-spacing:-.03em}p{line-height:1.55;overflow-wrap:anywhere}.intro{margin-bottom:24px}.intro p,.capture p{color:var(--muted);font-size:.92rem;margin-top:7px}.card{border:1px solid var(--line);border-radius:18px;padding:clamp(16px,4vw,24px);background:#fff;margin-bottom:15px}.capture{text-align:center;background:#f9fdfb;border-color:#cddfda}.capture-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 13px;border-radius:15px;background:var(--tint);color:var(--accent)}.capture-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-width:340px;margin:17px auto 0}.primary,.secondary,.quiet{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 13px;border:1px solid transparent;border-radius:10px;font-size:.9rem;font-weight:800;line-height:1.35}.primary{background:var(--accent);color:#fff}.secondary{color:var(--accent);border-color:#bcd2cb;background:#fff}.quiet{background:transparent;color:var(--accent)}.file-control{position:relative;cursor:pointer}.file-control:has(input:disabled){opacity:.55;cursor:default}.file-control input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:inherit}.stack{display:grid;gap:12px}.lookup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:6px}label:not(.file-control){display:grid;gap:6px;font-size:.88rem;font-weight:800}input:not([type=file]){min-width:0;width:100%;min-height:46px;border:1px solid #bdcfcd;border-radius:10px;padding:8px 10px;color:var(--ink);background:#fff;font-size:16px}input::placeholder{color:#647877;font-size:.86rem}.serial-input{font-family:ui-monospace,monospace}.candidates{display:flex;gap:7px;flex-wrap:wrap}.chip,.sample{min-height:44px;border:1px solid var(--line);background:#fff;color:var(--accent);border-radius:10px;padding:6px 10px;max-width:100%;overflow-wrap:anywhere}.chip[aria-pressed=true]{background:var(--tint);border-color:#93b7ab}.sample{justify-self:start;font-size:.82rem}.sample span{font-family:ui-monospace,monospace}.notice,.update{border-radius:10px;padding:10px 12px;background:var(--tint);color:var(--accent);font-size:.88rem}.notice{display:flex;align-items:center;gap:8px}.notice svg{flex:none;width:18px;height:18px}.notice.error,.notice.missing{color:#8f362a;background:#fbeeea}.notice.duplicate{color:#704b16;background:#fff3db}.name-form{padding-top:12px;border-top:1px solid var(--line)}.update{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-block:2px}.progress{display:grid;gap:5px;margin-top:12px;color:var(--muted);font-size:.85rem}progress{width:100%;accent-color:var(--accent)}@media(max-width:360px){.capture-buttons{grid-template-columns:1fr}.lookup-row button svg{display:none}}
