:root{--surface:#f4f4f4;--surface-raised:#fff;--surface-sunken:#e9e9e9;--border:#c7c7c7;--border-strong:#9a9a9a;--ink:#333;--ink-secondary:#606060;--ink-disabled:#c7c7c7;--ink-inverse:#fff;--accent:#0033da;--accent-hover:#002285;--accent-subtle:#f1f4ff;--verdict-conforme:#11763d;--verdict-conforme-surface:#e7faf0;--verdict-non-conforme:#c62828;--verdict-non-conforme-surface:#ffece6;--warning:#8a5200;--warning-surface:#fff7ea;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--touch:56px;--touch-xl:72px;--screen-margin:24px;--font:"Roboto", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);color:var(--ink);background:var(--surface);margin:0;font-size:18px;line-height:1.5}:root{--font-verdict:900 44px/1 var(--font);--font-display:900 36px/1.05 var(--font);--font-heading:700 24px/1.25 var(--font);--font-measure:700 28px/1.1 var(--font)}.app{flex-direction:column;min-height:100vh;display:flex}.nav{background:var(--surface-raised);border-top:1px solid var(--border);z-index:10;order:2;gap:4px;padding:8px;display:flex;position:sticky;bottom:0}.nav a{min-height:var(--touch);color:var(--ink-secondary);font:600 14px/1.2 var(--font);border-radius:var(--radius-md);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px;text-decoration:none;display:flex}.nav a.active{color:var(--accent);background:var(--accent-subtle)}.nav-icon{font-size:22px}.main{padding:var(--screen-margin);flex:1;order:1;width:100%;max-width:900px;margin:0 auto}.main.fullscreen{max-width:none;padding:0}@media (width>=900px){.app{flex-direction:row}.nav{border-top:none;border-right:1px solid var(--border);flex-direction:column;order:0;width:200px;height:100vh;position:sticky;top:0;bottom:auto}.nav a{flex-direction:row;flex:0;justify-content:flex-start;gap:12px}}h1{font:var(--font-display);margin:0 0 8px}h2{font:var(--font-heading);margin:24px 0 12px}.subtitle{color:var(--ink-secondary);margin:0 0 24px}.btn{font:700 18px/1.2 var(--font);min-height:var(--touch);cursor:pointer;border:1.5px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 32px;display:inline-flex}.btn-xl{font:700 20px/28px var(--font);min-height:var(--touch-xl);background:var(--accent);width:100%;color:var(--ink-inverse);border:none;border-radius:20px;padding:0 40px}.btn-xl:active{background:var(--accent-hover)}.btn-primary{background:var(--accent);color:var(--ink-inverse)}.btn-ghost{background:var(--surface-raised);color:var(--accent);border:1.5px solid var(--accent)}.btn-danger{background:var(--surface-raised);color:var(--verdict-non-conforme);border:1px solid var(--verdict-non-conforme)}.btn-soon{background:var(--surface-sunken);color:var(--ink-disabled);border:1px solid var(--border);cursor:not-allowed}.btn:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:16px;margin-bottom:16px;padding:20px}.row{flex-wrap:wrap;gap:16px;display:flex}.field{font:700 14px/1.4 var(--font);color:var(--ink-secondary);flex-direction:column;flex:1;gap:8px;min-width:120px;display:flex}.field input,.field select{min-height:var(--touch);font:400 18px/1.2 var(--font);color:var(--ink);background:var(--surface-raised);border:1.5px solid var(--border);border-radius:12px;padding:0 16px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle);outline:none}.field input.num{font:var(--font-measure);font-variant-numeric:tabular-nums}.hint{color:var(--ink-secondary);margin:8px 0 0;font-size:14px}.empty{text-align:center;color:var(--ink-secondary);padding:48px 16px}.verdict-banner{min-height:var(--touch-xl);border-radius:var(--radius-lg);color:var(--ink-inverse);font:var(--font-verdict);letter-spacing:.04em;align-items:center;gap:16px;margin-bottom:16px;padding:16px 24px;display:flex}.verdict-banner.ok{background:var(--verdict-conforme)}.verdict-banner.ko{background:var(--verdict-non-conforme)}.verdict-banner .glyph{font-size:40px}.measure-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:8px;padding:12px 16px;display:flex}.measure-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.measure-card .name{font:600 14px/1.3 var(--font);color:var(--ink-secondary)}.measure-card .value{font:var(--font-measure);font-variant-numeric:tabular-nums}.measure-card .delta{font:600 18px/1.2 var(--font);font-variant-numeric:tabular-nums}.delta.ok{color:var(--verdict-conforme)}.delta.ko{color:var(--verdict-non-conforme)}.status-badge{border-radius:var(--radius-full);font:600 14px/1.4 var(--font);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;padding:4px 12px;display:inline-flex}.status-badge.ok{background:var(--verdict-conforme-surface);color:var(--verdict-conforme)}.status-badge.ko{background:var(--verdict-non-conforme-surface);color:var(--verdict-non-conforme)}.warning-banner{background:var(--warning-surface);color:var(--warning);border-radius:var(--radius-md);align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px 16px;font-size:18px;display:flex}.banner{border-radius:var(--radius-md);margin-bottom:12px;padding:12px 16px}.banner.info{background:var(--accent-subtle);color:var(--accent-hover)}.banner.err{background:var(--verdict-non-conforme-surface);color:var(--verdict-non-conforme)}.tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.tile{min-height:var(--touch);border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer;text-align:left;font:600 18px/1.2 var(--font);padding:14px 16px}.tile.selected{background:var(--accent);color:var(--ink-inverse);border-color:var(--accent)}.tile:disabled{background:var(--surface-sunken);color:var(--ink-disabled);cursor:not-allowed}.tile small{font:600 13px/1.4 var(--font);opacity:.85;margin-top:4px;display:block}.stage{border-radius:var(--radius-md);background:#000;width:100%;position:relative;overflow:hidden}.stage img,.stage video{width:100%;height:auto;display:block}.stage .overlay{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.photo-canvas{border-radius:var(--radius-md);touch-action:none;background:#000;width:100%;display:block}.zoom-controls{z-index:5;flex-direction:column;gap:6px;display:flex;position:absolute;top:8px;right:8px}.zoom-controls button{border-radius:var(--radius-md);border:1px solid var(--border-strong);width:48px;height:48px;color:var(--ink);font:700 22px/1 var(--font);cursor:pointer;background:#ffffffeb}.list-row{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:14px 16px;text-decoration:none;display:flex}.saved-indicator{color:var(--ink-secondary);font-size:14px}.proto{max-width:1100px;padding:var(--screen-margin);margin:0 auto}.proto h1{margin:0 0 4px;font-size:24px;font-weight:700}.proto .subtitle{color:var(--ink-secondary);margin:0 0 20px;font-size:15px}.proto .card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;padding:16px}.proto .row{flex-wrap:wrap;gap:12px;display:flex}.proto label.field{letter-spacing:.04em;color:var(--ink-secondary);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.proto input[type=number]{min-height:var(--touch);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;width:110px;font-size:20px;font-family:var(--font);padding:0 12px}.proto input[type=number]:focus{outline:3px solid var(--accent-subtle);border-color:var(--accent)}.proto .seg{border:1px solid var(--border-strong);border-radius:var(--radius-md);margin-bottom:16px;display:inline-flex;overflow:hidden}.proto .seg button{min-height:var(--touch);background:var(--surface-raised);color:var(--ink);cursor:pointer;border:none;padding:0 18px;font-size:16px;font-weight:600}.proto .seg button[aria-pressed=true]{background:var(--accent);color:var(--ink-inverse)}.proto button.primary{min-height:var(--touch-xl);border-radius:var(--radius-md);background:var(--accent);color:var(--ink-inverse);cursor:pointer;border:none;padding:0 28px;font-size:20px;font-weight:700}.proto button.primary:disabled{background:var(--surface-sunken);color:var(--ink-secondary);cursor:not-allowed}.proto button.ghost{min-height:var(--touch);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);cursor:pointer;padding:0 18px;font-size:16px;font-weight:600}.proto .stage{border-radius:var(--radius-md);background:#000;width:100%;line-height:0;position:relative;overflow:hidden}.proto .stage video,.proto .stage img{width:100%;display:block}.proto .overlay{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.proto .verdict{border-radius:var(--radius-lg);min-height:var(--touch-xl);color:var(--ink-inverse);letter-spacing:.04em;align-items:center;gap:12px;padding:12px 20px;font-size:28px;font-weight:800;display:flex}.proto .verdict.ok{background:var(--verdict-conforme)}.proto .verdict.ko{background:var(--verdict-non-conforme)}.proto .measure-value{font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.proto .measure-unit{color:var(--ink-secondary);font-size:20px}.proto .banner{border-radius:var(--radius-md);padding:12px 16px;font-size:15px;font-weight:600}.proto .banner.warn{background:var(--warning-surface);color:var(--warning)}.proto .banner.err{background:var(--verdict-non-conforme-surface);color:var(--verdict-non-conforme)}.proto .banner.info{background:var(--accent-subtle);color:var(--accent-hover)}.proto .hint{color:var(--ink-secondary);font-size:14px}@media print{.no-print{display:none!important}body{background:#fff}}
