:root{--ok:#1fc35f;--duplicate:#f7931e;--reject:#c81e32;--ink:#000;--paper:#fff;--label:#f5f5f7;--label-2:#ebebf59e;--surface:#1c1c1e;--separator:#5454588c;--fill:#78788052;--material:#1c1c1ee0;--radius-control:999px;--radius-group:14px;--gutter:16px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans CJK JP,Noto Sans JP,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body{background:var(--ink);height:100dvh;color:var(--label);grid-template-rows:minmax(0,1fr) auto;display:grid;overflow:hidden}button{font:inherit;border-radius:var(--radius-control);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;font-weight:600;transition:transform .12s ease-out,opacity .12s ease-out}button:active:not(:disabled){opacity:.8;transform:scale(.97)}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:3px solid var(--label);outline-offset:3px}.group{border-radius:var(--radius-group);background:var(--surface);overflow:hidden}#home{padding:calc(var(--safe-top) + 52px) var(--gutter) var(--gutter);flex-direction:column;gap:20px;display:flex;overflow-y:auto}#home h1{letter-spacing:.01em;padding:0 4px;font-size:2.125rem;font-weight:700;line-height:1.2}#home a{min-height:56px;color:var(--label);-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;gap:12px;padding:0 16px 0 20px;font-size:1.0625rem;text-decoration:none;display:flex}#home a:after{content:"";border-top:2px solid var(--label-2);border-right:2px solid var(--label-2);flex:none;width:9px;height:9px;transform:rotate(45deg)}#home a:active{background:var(--fill)}#home a:focus-visible{outline-offset:-3px;border-radius:var(--radius-group)}#stage{position:relative;overflow:hidden}#camera{object-fit:cover;width:100%;height:100%;display:block}.scan-region-highlight-svg{stroke:#ffffffe6!important;stroke-width:3px!important}#notices{z-index:5;padding:calc(var(--safe-top) + 8px) 12px 0;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute;inset:0 0 auto}#notices p{border-radius:var(--radius-group);background:var(--reject);color:var(--paper);padding:12px 16px;font-size:.9375rem;font-weight:600;line-height:1.4;box-shadow:0 6px 24px #00000059}#notices p.send-done,#stop-button{background:var(--material);color:var(--label)}#stop-button{right:var(--gutter);bottom:var(--gutter);z-index:2;min-height:44px;padding:0 18px;font-size:.9375rem;position:absolute}#start{z-index:3;padding:calc(var(--safe-top) + var(--gutter)) var(--gutter) var(--gutter);background:var(--ink);flex-direction:column;justify-content:flex-end;gap:24px;display:flex;position:absolute;inset:0;overflow-y:auto}#start:before{content:"";aspect-ratio:1;background:linear-gradient(var(--separator) 0 0) top left / 40px 3px, linear-gradient(var(--separator) 0 0) top left / 3px 40px, linear-gradient(var(--separator) 0 0) top right / 40px 3px, linear-gradient(var(--separator) 0 0) top right / 3px 40px, linear-gradient(var(--separator) 0 0) bottom left / 40px 3px, linear-gradient(var(--separator) 0 0) bottom left / 3px 40px, linear-gradient(var(--separator) 0 0) bottom right / 40px 3px, linear-gradient(var(--separator) 0 0) bottom right / 3px 40px;pointer-events:none;background-repeat:no-repeat;border-radius:18px;width:min(62vw,34vh);position:absolute;top:42%;left:50%;translate:-50% -50%}#start:has(#camera-error:not([hidden])):before{display:none}#start-button{background:var(--paper);width:100%;min-height:60px;color:var(--ink);font-size:1.1875rem;position:relative}#camera-error{color:var(--label-2);flex-direction:column;gap:12px;margin-top:auto;font-size:.9375rem;display:flex}#camera-error h1{color:var(--label);font-size:1.5rem;font-weight:700;line-height:1.25}#camera-error .group>div{padding:12px 16px}#camera-error .group>div+div{border-top:.5px solid var(--separator)}#camera-error dt{color:var(--label);font-weight:600}#result{z-index:10;padding:var(--gutter) var(--gutter) 8vh;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;line-height:1.25;display:flex;position:absolute;inset:0}#result[data-kind=ok]{background:var(--ok);color:var(--ink)}#result[data-kind=duplicate]{background:var(--duplicate);color:var(--ink)}#result[data-kind=invalid],#result[data-kind=wrongDay]{background:var(--reject);color:var(--paper)}#result[data-kind=saveFailed]{background:var(--paper);color:var(--reject)}#result svg{flex:none;width:min(42vw,24vh);height:min(42vw,24vh);margin-bottom:2vh;animation:.22s ease-out mark-in}@keyframes mark-in{0%{opacity:0;transform:scale(.9)}}@media (prefers-reduced-motion:reduce){#result svg{animation:none}button{transition:none}}#result-mark{fill:none;stroke:currentColor;stroke-width:10px;stroke-linecap:round;stroke-linejoin:round}#result-text{letter-spacing:.02em;max-width:12em;word-break:auto-phrase;overflow-wrap:anywhere;text-wrap:balance;font-size:min(9vw,5.5vh);font-weight:700}#result[data-kind=ok] #result-text,#result[data-kind=duplicate] #result-text{font-size:min(13vw,8vh)}#result-note{font-variant-numeric:tabular-nums;text-wrap:pretty;opacity:.8;max-width:24em;font-size:1.0625rem;font-weight:600;line-height:1.5}#result[data-kind=saveFailed] #result-note{color:var(--ink);opacity:1;font-weight:500}#result-debug{background:var(--surface);width:100%;max-height:30vh;color:var(--label);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;border-radius:8px;margin:12px 0 0;padding:10px 12px;font:.75rem/1.4 ui-monospace,monospace;overflow:auto}#result-reload{background:var(--ink);width:100%;min-height:56px;color:var(--paper);margin-top:16px;font-size:1.0625rem}#bar{padding:10px var(--gutter) calc(10px + var(--safe-bottom));border-top:.5px solid var(--separator);background:var(--surface);color:var(--label);justify-content:space-between;align-items:center;gap:12px;display:flex}.pending{flex-direction:column;line-height:1.15;display:flex}.pending-label{color:var(--label-2);font-size:.8125rem;font-weight:600}.pending-value{font-size:1.0625rem;font-weight:600}#pending{font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700}#send-button{background:var(--fill);min-height:44px;color:var(--label);white-space:nowrap;padding:0 18px;font-size:.9375rem}
