:root{color:#14213d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface:#ffffffeb;--surface-strong:#fff;--border:#14213d1f;--shadow:0 18px 36px #14213d14;--primary:#d97706;--primary-strong:#b45309;--accent:#0f766e;--danger:#b91c1c;--warning:#b45309;--muted:#516079;background:radial-gradient(circle at top,#ffd69980,#0000 40%),linear-gradient(#fff7ed 0%,#f5f7fb 45%,#eef3f8 100%);font-family:Segoe UI,Hiragino Sans,Yu Gothic UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{overflow-x:hidden}body{min-width:320px;margin:0;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:14px;min-height:48px;padding:.85rem 1rem}label.file-action{cursor:pointer;text-align:center;border-radius:14px;min-height:48px;padding:.85rem 1rem}button:disabled{cursor:not-allowed;opacity:.55}input{border:1px solid var(--border);background:#fff;border-radius:14px;width:100%;min-height:48px;padding:.8rem .95rem}#root{width:100%}.app-shell{width:min(100%,820px);margin:0 auto;padding:1rem .9rem 2rem}.app-header{padding:1rem .25rem .5rem}.eyebrow{color:var(--primary-strong);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.78rem;font-weight:700}.app-header h1{margin:0;font-size:clamp(1.85rem,5vw,2.45rem);line-height:1.1}.lead{color:var(--muted);margin:.75rem 0 0}.app-main{gap:1rem;display:grid}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;padding:1rem;overflow:hidden}.panel h2{margin:0;font-size:1.1rem}.panel p{margin:0}.panel-header{gap:.4rem;margin-bottom:.9rem;display:grid}.panel-subtitle{color:var(--muted);font-size:.95rem}.button-row{gap:.7rem;margin-top:.95rem;display:grid}.image-action-grid{gap:.7rem;display:grid}.button-primary{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);font-weight:700}.button-secondary{color:#1f2937;border:1px solid var(--border);background:#fff}.button-compact{min-height:42px;padding:.65rem .8rem}.button-accent{color:#fff;background:linear-gradient(135deg,#0f766e,#115e59);font-weight:700}.button-image-source{color:#1d4ed8;background:#eff6ff;border:1px solid #2563eb3d;font-weight:700}.button-danger{color:var(--danger);background:#fff1f2;border:1px solid #b91c1c2e}.hint{color:var(--muted);font-size:.92rem}.axis-hint{margin-top:.9rem}.canvas-shell{gap:.9rem;display:grid}.canvas-frame{overscroll-behavior:contain;border:1px solid var(--border);background-color:#0000;background-image:linear-gradient(45deg,#14213d14 25%,#0000 25%),linear-gradient(-45deg,#14213d14 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#14213d14 75%),linear-gradient(-45deg,#0000 75%,#14213d14 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:18px;width:100%;height:clamp(280px,62vh,640px);position:relative;overflow:auto}.canvas-frame canvas{touch-action:none;max-width:none;height:auto;display:block}.zoom-control{gap:.45rem;display:grid}.zoom-label{color:var(--muted);justify-content:space-between;gap:.75rem;font-size:.92rem;font-weight:700;display:flex}.zoom-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid}.zoom-row input[type=range]{accent-color:#2563eb;min-height:42px;padding:0}.empty-state{text-align:center;min-height:100%;color:var(--muted);place-items:center;padding:1rem;display:grid}.point-list{gap:.55rem;display:grid}.point-chip{border:1px solid var(--border);background:#ffffffbf;border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .8rem;font-size:.92rem;display:flex}.field-grid{gap:.85rem;display:grid}.field-label{gap:.4rem;font-weight:600;display:grid}.ocr-box,.result-box,.message-list{gap:.7rem;display:grid}.ocr-chip{color:#134e4a;background:#0f766e14;border:1px solid #0f766e26;border-radius:14px;padding:.7rem .85rem}.result-card{border:1px solid var(--border);background:linear-gradient(#fffffffa,#f5f7fbeb);border-radius:18px;padding:.9rem}.result-label{color:var(--muted);font-size:.9rem}.result-value{margin-top:.3rem;font-size:1.4rem;font-weight:800}.difference-positive{color:#047857}.difference-negative{color:var(--danger)}.message-item{border:1px solid #0000;border-radius:16px;padding:.8rem .9rem;font-size:.95rem}.message-info{color:#115e59;background:#0f766e14;border-color:#0f766e29}.message-warning{color:#92400e;background:#f59e0b1f;border-color:#b453092e}.message-error{color:#991b1b;background:#ef44441a;border-color:#b91c1c26}.file-name{color:var(--muted);word-break:break-all;font-size:.9rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.privacy-note{color:#115e59;background:#0f766e14;border:1px solid #0f766e29;border-radius:14px;margin-top:.75rem;padding:.7rem .8rem;font-size:.92rem}@media (width>=720px){.app-shell{padding:1.4rem 1.2rem 2.4rem}.button-row,.image-action-grid,.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
