:root{--teal: #3FB6A6;--teal-dark: #2c8678;--bg: #f6f8f7;--card: #ffffff;--border: #e1e6e3;--text: #1a2421;--muted: #6b7670;--error: #d04a3b;--warn: #d59000;--ok: #2e8a4f;--radius: 10px;--shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 4px 12px rgba(0, 0, 0, .04);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);color:var(--text);min-height:100vh}a{color:var(--teal-dark);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);padding:.6rem 1rem;transition:background .1s,border-color .1s}button:hover:not(:disabled){border-color:var(--teal)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--teal);color:#fff;border-color:var(--teal)}button.primary:hover:not(:disabled){background:var(--teal-dark);border-color:var(--teal-dark)}button.danger{color:var(--error)}input,select,textarea{font:inherit;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:1px}label{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem;color:var(--muted);margin-bottom:.75rem}label>span:first-child{font-weight:500;color:var(--text)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-bar{background:#fff;border-bottom:1px solid var(--border);padding:.75rem 1rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:10}.app-bar h1{font-size:1rem;margin:0;flex:1}.app-bar .nav{display:flex;gap:.5rem;flex-wrap:wrap}.app-bar .nav a{padding:.4rem .75rem;border-radius:var(--radius);color:var(--muted)}.app-bar .nav a.active{background:var(--teal);color:#fff}.container{max-width:960px;margin:0 auto;padding:1.25rem 1rem 4rem;flex:1;width:100%}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.25rem;box-shadow:var(--shadow);margin-bottom:1rem}.card h2,.card h3{margin-top:0}.row{display:flex;gap:.75rem;flex-wrap:wrap}.row>*{flex:1;min-width:8rem}.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem 1rem}.muted{color:var(--muted);font-size:.875rem}.error{color:var(--error);font-size:.875rem}.size-table{width:100%;border-collapse:collapse;font-size:.875rem}.size-table th,.size-table td{border:1px solid var(--border);padding:.45rem .5rem;text-align:center}.size-table th{background:var(--teal);color:#fff;font-weight:600}.size-table td:first-child,.size-table th:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}.size-table th:first-child{background:var(--teal)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:240px}.pin-pad button{padding:1rem;font-size:1.25rem;font-weight:500}.pin-pad button.wide{grid-column:span 2}.pin-display{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.5rem;letter-spacing:.5rem;text-align:center;padding:1rem;background:var(--card);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:1rem}.confidence-badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.confidence-badge.confident{background:#d2f0dc;color:var(--ok)}.confidence-badge.borderline{background:#fff1cf;color:var(--warn)}.confidence-badge.uncertain{background:#ffd7d3;color:var(--error)}.size-pill{display:inline-block;padding:.3rem .85rem;border-radius:999px;background:var(--teal);color:#fff;font-weight:600;font-size:1.1rem}.list-row{display:flex;align-items:center;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.lang-toggle{display:flex;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.lang-toggle button{border-radius:0;border:0;border-right:1px solid var(--border);padding:.4rem .7rem;background:#fff}.lang-toggle button:last-child{border-right:0}.lang-toggle button.active{background:var(--teal);color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:#fff;border-radius:var(--radius);padding:1.5rem;max-width:24rem;width:100%;box-shadow:var(--shadow)}.modal.wide{max-width:40rem;max-height:90vh;overflow:auto}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.toolbar input[type=search],.toolbar input[type=text]{flex:1 1 12rem;min-width:8rem}.chip{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:.85rem;cursor:pointer;transition:all .1s;white-space:nowrap;-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--teal)}.chip.active{background:var(--teal);color:#fff;border-color:var(--teal)}.chip select{background:transparent;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;width:auto}.chip select:focus{outline:none}.tabular-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.tabular{width:100%;border-collapse:collapse;font-size:.875rem}.tabular thead th{background:#f3f6f5;text-align:left;font-weight:600;padding:.6rem .75rem;border-bottom:1px solid var(--border);position:sticky;top:0;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.tabular thead th .sort-arrow{margin-left:.25rem;opacity:.5;font-size:.75rem}.tabular thead th.active .sort-arrow{opacity:1;color:var(--teal-dark)}.tabular thead th.right{text-align:right}.tabular tbody td{padding:.55rem .75rem;border-bottom:1px solid var(--border);white-space:nowrap}.tabular tbody tr{cursor:pointer;transition:background .05s}.tabular tbody tr:hover{background:#fafaf8}.tabular tbody tr:nth-child(2n){background:#fbfcfb}.tabular tbody tr:nth-child(2n):hover{background:#f3f5f4}.tabular .num{text-align:right;font-variant-numeric:tabular-nums}.tabular .actions{text-align:right;white-space:nowrap}.tabular .actions button{padding:.25rem .55rem;font-size:.85rem}.tabular .empty-cell{color:var(--muted)}.tabular .name-cell{font-weight:500;max-width:14rem;overflow:hidden;text-overflow:ellipsis}.tabular .flag{margin-left:.25rem;color:var(--warn);font-size:.85rem}.empty{padding:2rem;text-align:center;color:var(--muted)}.history-list{list-style:none;padding:0;margin:0}.history-list li{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.history-list li:last-child{border-bottom:0}.history-list .meta{flex:1}.history-list .meta .product{font-weight:500}.history-list .meta .when{font-size:.8rem;color:var(--muted)}@media(max-width:720px){.tabular thead{display:none}.tabular tbody tr{display:grid;grid-template-columns:1fr auto;gap:.25rem .75rem;padding:.75rem .85rem;border-bottom:1px solid var(--border)}.tabular tbody td{padding:0;border:0;white-space:normal}.tabular tbody td:before{content:attr(data-label);color:var(--muted);font-size:.75rem;margin-right:.4rem}.tabular tbody td.name-cell:before{display:none}.tabular tbody td.actions:before{display:none}.tabular tbody td.name-cell{grid-column:1;font-size:1rem}.tabular tbody td.actions{grid-column:2;grid-row:1}}
