:root{--color-primary:#24313d;--color-primary-dark:#17212b;--color-primary-light:#4a5f70;--color-bg:#f7f9fb;--color-surface:#fff;--color-border:#d7dee5;--color-text:#17212b;--color-text-muted:#5b6b76;--color-accent:#c46a1a;--color-accent-dark:#a85813;--color-pass:#3f7d52;--color-fail:var(--color-accent);--color-na:#78909c;--color-danger-bg:#fbefe3;--radius:8px;--tap-min:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain;margin:0;padding:0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei UI,Microsoft JhengHei,sans-serif;font-size:15px;font-weight:400;line-height:1.5}input[type=number],input[type=date],input[type=tel],.measure-row input,.measure-standard,.tabular-nums{font-variant-numeric:tabular-nums}#root{flex-direction:column;min-height:100dvh;display:flex}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:16px}button{cursor:pointer}h1,h2{color:var(--color-primary);margin:0 0 8px;font-size:19px;font-weight:600}h3{margin:0 0 8px;font-size:16px;font-weight:600}.page{flex:1;width:100%;max-width:640px;margin:0 auto;padding:12px 16px 96px}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--color-text-muted);font-size:13px;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:var(--tap-min);width:100%;padding:12px 14px}.field textarea{resize:vertical;min-height:88px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-primary-light);outline-offset:1px}.btn{min-height:var(--tap-min);border-radius:var(--radius);border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-size:16px;font-weight:600;display:inline-flex}.btn-primary,.btn-accent{background:var(--color-primary);color:#fff}.btn-outline{border:1.5px solid var(--color-primary);color:var(--color-primary);background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:12px;padding:14px 16px}.card-link{color:inherit;text-decoration:none;display:block}.badge{border-radius:var(--radius);padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-pass{color:var(--color-pass);background:#e3f3e4}.badge-fail{background:var(--color-danger-bg);color:var(--color-fail)}.badge-pending{color:var(--color-na);background:#eceff1}.error-text{color:var(--color-fail);margin-top:4px;font-size:13px}.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 16px}.section-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:20px 0 8px;font-size:13px;font-weight:600}.stack{flex-direction:column;gap:10px;display:flex}.fab-add{right:16px;bottom:calc(64px + env(safe-area-inset-bottom,0px) + 16px);border-radius:var(--radius);background:var(--color-primary);color:#fff;z-index:20;border:1px solid #0000001a;justify-content:center;align-items:center;width:56px;height:56px;font-size:26px;font-weight:500;line-height:1;text-decoration:none;display:flex;position:fixed;box-shadow:0 2px 6px #0000002e}.autosave-hint{color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);background:#eef1f4;margin-bottom:14px;padding:5px 12px;font-size:12px;font-weight:500;display:inline-block}.item-card{border-left:4px solid var(--color-border)}.item-card-fail{border-left-color:var(--color-fail)}.item-photo-label{color:var(--color-text-muted);margin-top:10px;font-size:13px;font-weight:500}.measure-row{align-items:stretch;gap:8px;display:flex}.measure-row input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:var(--tap-min);flex:1;width:100%;padding:12px 14px}.measure-standard{color:#7a5c00;border-radius:var(--radius);white-space:nowrap;background:#f2ead2;align-items:center;padding:0 12px;font-size:13px;font-weight:600;display:flex}.fail-block-empty textarea{border-color:var(--color-fail);background:var(--color-danger-bg)}.auth-page{padding-top:15vh}.auth-hint{color:var(--color-text-muted);margin:-4px 0 16px;font-size:13px}.auth-switch{text-align:center;color:var(--color-text-muted);margin-top:16px;font-size:14px}.auth-switch a{color:var(--color-primary);font-weight:600;text-decoration:underline}.sync-bar{z-index:40;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--color-primary-dark);color:#fff;align-items:center;gap:8px;font-size:13px;display:flex;position:sticky;top:0}.sync-bar-offline{background:var(--color-primary-light)}.sync-status-main{flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.sync-status-icon{opacity:.9;flex-shrink:0}.sync-status-text{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sync-pending-chip{white-space:nowrap;border-radius:var(--radius);background:#ffffff29;border:1px solid #ffffff4d;flex-shrink:0;padding:2px 10px;font-size:12px}.sync-btn{border-radius:var(--radius);color:#fff;white-space:nowrap;background:0 0;border:1px solid #fff9;flex-shrink:0;min-height:32px;padding:4px 12px;font-size:12px;font-weight:600}.sync-btn:disabled{opacity:.5}.sync-error{color:#ffcdd2;font-size:11px}.layout{flex-direction:column;width:100%;min-height:100dvh;display:flex}.layout-main{padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;flex:1;display:flex}.tab-bar{background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:30;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{min-height:64px;color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tab-item.active{color:var(--color-primary)}.tab-icon{display:block}.user-bar{background:var(--color-primary-dark);color:#fff;align-items:center;gap:8px;padding:6px 16px;font-size:12px;display:flex}.user-bar-icon{opacity:.85;flex-shrink:0}.user-email{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.user-admin-link{color:#fff;white-space:nowrap;text-decoration:underline}.user-logout-btn{color:#fff;border-radius:var(--radius);white-space:nowrap;background:0 0;border:1px solid #fff9;align-items:center;gap:4px;min-height:auto;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.result-toggle{gap:8px;margin:8px 0 4px;display:flex}.result-btn{border-radius:var(--radius);border:1.5px solid var(--color-border);background:var(--color-surface);min-height:56px;color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-weight:600;display:flex}.result-icon{flex-shrink:0}.result-label{font-size:13px}.result-btn.result-pass{border-color:#d3e6da}.result-btn.result-fail{border-color:#eee0cd}.result-btn.result-pass.selected{background:var(--color-pass);border-color:var(--color-pass);color:#fff}.result-btn.result-fail.selected{background:var(--color-fail);border-color:var(--color-fail);color:#fff}.result-btn.result-na.selected{background:var(--color-na);border-color:var(--color-na);color:#fff}.photo-capture{margin:8px 0}.photo-thumbs{flex-wrap:wrap;gap:8px;display:flex}.photo-thumb{border:1px solid var(--color-border);border-radius:8px;width:72px;height:72px;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-pending-dot{background:var(--color-na);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;left:4px;box-shadow:0 0 0 1.5px #fff}.photo-remove{color:#fff;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;line-height:1;display:flex;position:absolute;top:2px;right:2px}.photo-add-btn{border-radius:var(--radius);border:1.5px dashed var(--color-border);text-align:center;width:72px;height:72px;color:var(--color-text-muted);background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex}.photo-add-camera{border-color:var(--color-primary-light);color:var(--color-primary)}.photo-count{color:var(--color-text-muted);margin-top:6px;font-size:12px}.signature-block{margin:16px 0}.signature-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.signature-actions{gap:8px;display:flex}.signature-mini-btn{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-text-muted);border-radius:8px;padding:4px 14px;font-size:13px;font-weight:600}.signature-canvas-wrap{border:1.5px dashed var(--color-border);border-radius:var(--radius);background:#fff;overflow:hidden}.signature-canvas{touch-action:none;width:100%;height:160px;display:block}.signature-saved{color:var(--color-pass);margin-top:6px;font-size:13px;font-weight:700}.signature-hint{color:var(--color-text-muted);margin-top:6px;font-size:13px}.signature-fullscreen{z-index:100;padding:calc(10px + env(safe-area-inset-top,0px)) 12px calc(10px + env(safe-area-inset-bottom,0px));background:#eceff1;flex-direction:column;gap:10px;display:flex;position:fixed;inset:0}.signature-fullscreen-bar{justify-content:space-between;align-items:center;display:flex}.signature-fullscreen-title{color:var(--color-text);font-weight:700}.signature-fullscreen-canvas-wrap{border:1.5px dashed var(--color-border);border-radius:var(--radius);background:#fff;flex:1;overflow:hidden}.signature-fullscreen-canvas{touch-action:none;width:100%;height:100%;display:block}.signature-fullscreen-done{flex-shrink:0}
