:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;color:#1a1a2e;background:#f0f2f5}*{box-sizing:border-box}body{margin:0;-webkit-text-size-adjust:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app{max-width:1400px;margin:0 auto;padding:1.5rem}header h1{margin:0;font-size:1.75rem}.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.user-label{color:#64748b;font-size:.9rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:min(360px,100%);background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 24px #00000014;display:flex;flex-direction:column;gap:1rem}.login-card h1{margin:0;text-align:center}.login-subtitle{margin:-.5rem 0 0;text-align:center;color:#64748b;font-size:.95rem}.sync-btn{white-space:nowrap}.sync-btn:disabled{opacity:.6;cursor:wait}.sync-result{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem}.sync-result ul{margin:.5rem 0 0;padding-left:1.25rem}.sync-meta{display:block;color:#64748b;font-size:.8rem;margin-top:.25rem}.sync-settings-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.sync-settings-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem}.checkbox-row{flex-direction:row!important;align-items:center;gap:.5rem!important;padding-bottom:.35rem}.sync-history-detail{max-width:360px;font-size:.8rem;color:#475569}.sync-status{font-weight:600;font-size:.8rem}.sync-status--success{color:#059669}.sync-status--error{color:#dc2626}.sync-status--running{color:#2563eb}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{padding:.5rem 1.25rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer;font:inherit;flex-shrink:0;min-height:2.75rem}.tabs button.active{background:#2563eb;color:#fff;border-color:#2563eb}.card{background:#fff;border-radius:10px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000f}.card h2{margin:0 0 1rem;font-size:1.1rem}.card-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card-header-row h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}.form-grid .span-2{grid-column:span 2}label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:600;color:#475569}input,textarea,select{padding:.5rem .625rem;border:1px solid #cbd5e1;border-radius:6px;font:inherit;font-weight:400;max-width:100%}button{touch-action:manipulation}input:read-only{background:#f1f5f9;color:#475569}button.secondary{padding:.5rem 1.25rem;background:#fff;color:#2563eb;border:1px solid #2563eb;border-radius:6px;cursor:pointer;font:inherit;font-weight:600}.photo-row{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap}.photo-preview{display:flex;flex-direction:column;gap:.25rem}.photo-preview img,.photo-preview video{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid #cbd5e1}.rec-badge{color:#dc2626;font-size:.9rem;font-weight:600}button.danger-rec{background:#dc2626!important;border-color:#dc2626!important}.photo-preview span{font-size:.75rem;color:#64748b}.s3-link{font-size:.8rem;color:#2563eb;word-break:break-all}.camera-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.camera-modal{background:#fff;border-radius:12px;padding:1.25rem;width:min(480px,100%)}.camera-modal h3{margin:0 0 1rem}.camera-preview{position:relative;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:4 / 3}.camera-preview video{width:100%;height:100%;object-fit:cover;display:block}.camera-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;margin:0}.camera-actions{display:flex;gap:.75rem;margin-top:1rem}.camera-actions button{padding:.5rem 1.25rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;cursor:pointer;font:inherit}.camera-actions button.primary{background:#2563eb;color:#fff;border-color:#2563eb}.camera-actions button:disabled{opacity:.5;cursor:not-allowed}button.primary{padding:.5rem 1.25rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;font:inherit;font-weight:600}button.primary:disabled{opacity:.5;cursor:not-allowed}button.danger{padding:.25rem .5rem;background:#fee2e2;color:#991b1b;border:none;border-radius:4px;cursor:pointer;font:inherit}button.danger:disabled{opacity:.4;cursor:not-allowed}button.edit-btn{padding:.25rem .5rem;background:#e0e7ff;color:#3730a3;border:none;border-radius:4px;cursor:pointer;font:inherit}button.edit-btn:disabled{opacity:.4;cursor:not-allowed}button.btn-cancel{padding:.25rem .5rem;background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer;font:inherit}.filters{display:flex;gap:1rem;margin-bottom:1rem}.filters label{flex-direction:row;align-items:center;gap:.5rem}.filters input{width:80px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid #e2e8f0}th{background:#f8fafc;font-weight:600;white-space:nowrap}.tz-cell{max-width:220px;font-size:.78rem;color:#64748b}.photo-link{margin-right:.35rem;color:#2563eb}.photo-hover-preview{position:fixed;z-index:5000;pointer-events:none;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000026}.photo-hover-preview--video{pointer-events:auto;padding:6px}.defect-media-links{white-space:nowrap}.preview-fallback{margin:0;padding:.5rem;max-width:220px;font-size:.8rem;color:#64748b}.photo-hover-preview img{display:block;max-width:220px;max-height:220px;object-fit:contain}.photo-hover-preview video{display:block;width:300px;max-width:min(300px,calc(100vw - 24px));max-height:220px;object-fit:contain;background:#000}.muted-cell{color:#94a3b8}.barcode-select{position:relative}.barcode-select-row{display:flex;gap:.35rem}.barcode-select-row input{flex:1}.clear-btn{padding:.35rem .6rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;color:#64748b}.barcode-suggestions{position:absolute;z-index:100;left:0;right:0;top:100%;margin:.25rem 0 0;padding:0;list-style:none;background:#fff;border:1px solid #cbd5e1;border-radius:8px;max-height:240px;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.barcode-suggestions li button{width:100%;text-align:left;padding:.5rem .75rem;border:none;background:none;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:.15rem}.barcode-suggestions li button:hover{background:#f1f5f9}.barcode-suggestions span{font-size:.75rem;color:#64748b}.th-sort{border:none;background:none;font:inherit;font-weight:600;cursor:pointer;padding:0;color:inherit}.col-filter{display:block;width:100%;margin-top:.35rem;padding:.25rem .4rem;font-size:.75rem}.col-filter-combo{margin-top:.35rem}.col-filter-combo .barcode-select-row input{width:100%;padding:.25rem .4rem;font-size:.75rem}.col-filter-combo .clear-btn{padding:.2rem .45rem;font-size:.7rem}.form-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.form-actions .form-hint{margin:0;flex-basis:100%}.table-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.table-toolbar .primary{padding:.4rem 1rem;font-size:.85rem}.search-input{flex:1;min-width:200px;max-width:400px}.page-info{color:#64748b;font-size:.85rem}.loading-hint{color:#64748b;font-size:.85rem;margin:0}.form-hint{color:#64748b;font-size:.85rem;margin:.35rem 0 0}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.pagination button{padding:.4rem .9rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;font:inherit}.pagination button:disabled{opacity:.4;cursor:not-allowed}.actions-cell{white-space:nowrap}.actions-cell button{margin-right:.25rem}.actions-cell button.primary,.actions-cell button.btn-cancel,.actions-cell button.danger,.actions-cell button.edit-btn{padding:.25rem .5rem}td input,.edit-row input{width:100%;font-size:.8rem;padding:.35rem .5rem}.edit-row{background:#f8fafc}.error{background:#fee2e2;color:#991b1b;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.empty{text-align:center;color:#94a3b8;padding:2rem}@media(max-width:900px){.app{padding:1rem}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.header-row{align-items:stretch}.header-actions{width:100%;justify-content:flex-start}.search-input{max-width:none;width:100%}.table-toolbar{align-items:stretch}}@media(max-width:640px){.app{padding:.75rem}header h1{font-size:1.25rem;line-height:1.3}.header-row{flex-direction:column;gap:.75rem}.header-actions{flex-direction:column;align-items:stretch;gap:.5rem}.header-actions .primary,.header-actions .secondary{width:100%;min-height:2.75rem}.user-label{text-align:center;padding:.25rem 0}.tabs{margin-bottom:1rem}.tabs button{flex:1;padding:.65rem .75rem;font-size:.9rem}.card{padding:1rem;margin-bottom:1rem;border-radius:8px}.filters{flex-direction:column;gap:.75rem}.filters label{width:100%;justify-content:space-between}.filters input{width:5rem;flex:1;max-width:8rem}input,textarea,select{font-size:16px;min-height:2.75rem}.photo-row{flex-direction:column;align-items:stretch;gap:.5rem}.photo-row button{width:100%;min-height:2.75rem}.photo-preview img,.photo-preview video{width:100%;max-width:200px;height:auto;aspect-ratio:1}.camera-overlay{padding:0;align-items:flex-end}.camera-modal{width:100%;max-width:none;border-radius:12px 12px 0 0;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.camera-actions{flex-direction:column}.camera-actions button{width:100%;min-height:2.75rem}.barcode-select-row input{min-height:2.75rem}.clear-btn{min-width:2.75rem;min-height:2.75rem}.table-wrap{border-radius:8px}table{font-size:.8rem}th,td{padding:.5rem}.col-filter{min-height:2.25rem;font-size:16px}.actions-cell button{min-width:2.5rem;min-height:2.5rem;padding:.35rem .6rem}.pagination{gap:.75rem}.pagination button{min-width:2.75rem;min-height:2.75rem;padding:.5rem 1rem}.sync-result{font-size:.8rem}.sync-result ul{padding-left:1rem}.login-card{padding:1.5rem}.login-card button.primary{width:100%;min-height:2.75rem}}@media(max-width:380px){.tabs button{font-size:.82rem;padding:.6rem .5rem}th .th-sort{font-size:.75rem}}
