:root{--ink:#152b2d;--muted:#617174;--teal:#0e4a4c;--teal-strong:#0a383a;--mint:#b9d8cf;--mint-soft:#deebe6;--sand:#f3f1ea;--paper:#fffef9;--line:#d8dcd5;--warning:#9a5b21;--danger:#9f3f36;--shadow:0 24px 70px #1f36351f;--radius:18px}*{box-sizing:border-box}html{background:var(--sand);color:var(--ink);scroll-behavior:smooth}body{background:var(--sand);min-width:320px;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:is(button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible){outline-offset:3px;outline:3px solid #73b6a5}.app-frame{min-height:100vh}.topbar{z-index:50;min-height:78px;padding:max(10px, env(safe-area-inset-top)) max(30px, env(safe-area-inset-right)) 10px max(30px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f3f1eaed;border-bottom:1px solid #152b2d1f;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.brand{align-items:center;gap:12px;width:fit-content;display:inline-flex}.brand-mark{background:var(--teal);color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;font-size:20px;font-weight:800;display:grid}.brand-copy{flex-direction:column;line-height:1.15;display:flex}.brand-copy strong{letter-spacing:.04em;font-size:18px}.brand-copy small{color:var(--muted);letter-spacing:.08em;margin-top:4px;font-size:11px}.primary-nav{border:1px solid var(--line);background:#ffffff8c;border-radius:999px;align-items:center;gap:8px;padding:5px;display:flex}.primary-nav a{color:#46595b;border-radius:999px;padding:9px 18px;font-size:14px;font-weight:650}.primary-nav a:hover{background:var(--paper);color:var(--teal)}.operator-chip{color:#45595a;justify-self:end;align-items:center;gap:8px;font-size:13px;display:inline-flex}.status-dot{background:#4c9f81;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #4c9f8121}main{min-height:calc(100vh - 160px)}.hero{grid-template-columns:minmax(0,1fr) minmax(480px,.95fr);align-items:center;gap:64px;max-width:1320px;min-height:650px;margin:0 auto;padding:72px 44px 56px;display:grid}.eyebrow{color:var(--teal);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:800;display:inline-flex}.eyebrow i{background:#5ba38e;border-radius:50%;width:7px;height:7px}.hero-copy h1{color:#102b2d;letter-spacing:-.052em;max-width:720px;margin:24px 0 22px;font-size:clamp(48px,5.2vw,76px);line-height:1.08}.hero-copy>p{color:#526568;max-width:610px;margin:0;font-size:18px;line-height:1.85}.hero-actions,.camera-actions,.confirmation-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-actions{margin-top:34px}.primary-button,.secondary-button{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:14px;min-height:46px;padding:0 22px;font-weight:760;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.primary-button{background:var(--teal);color:#fff;box-shadow:0 12px 28px #0e4a4c30}.primary-button:hover:not(:disabled){background:var(--teal-strong);transform:translateY(-1px);box-shadow:0 16px 34px #0e4a4c40}.secondary-button{color:var(--teal);background:0 0;border-color:#bcc7c3}.secondary-button:hover:not(:disabled){background:#fff}.primary-button.large,.secondary-button.large{border-radius:14px;min-height:56px;padding:0 28px}.primary-button:disabled,.secondary-button:disabled,.primary-button.disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.hero-assurances{color:#5d6f70;flex-wrap:wrap;gap:10px 22px;margin-top:28px;font-size:13px;display:flex}.hero-assurances span:before{content:"✓";color:#4a917d;margin-right:7px;font-weight:900}.hero-visual{min-height:460px;position:relative}.measure-card{box-shadow:var(--shadow);background:#163f42;border:1px solid #0e4a4c33;border-radius:28px;position:absolute;inset:30px 30px 22px 0;overflow:hidden;transform:rotate(1.2deg)}.measure-topline{color:#e8f2ed;border-bottom:1px solid #ffffff24;justify-content:space-between;align-items:center;height:62px;padding:0 24px;font-size:13px;display:flex}.measure-topline em{color:#9fc6bb;letter-spacing:.12em;font-style:normal}.measure-stage{background:#cba68a;border-radius:20px;height:304px;margin:18px;position:relative;overflow:hidden}.skin-field{background:radial-gradient(circle at 30% 40%,#ffefdc4d,#0000 32%),linear-gradient(145deg,#d4b092,#bc8f73);position:absolute;inset:0}.tattoo-shape{border:14px solid #2a3334d6;border-radius:58% 42% 55% 45%/44% 51% 49% 56%;width:190px;height:190px;position:absolute;top:22%;left:29%;transform:rotate(-15deg);box-shadow:inset 18px -6px #2a333473}.tattoo-shape:before,.tattoo-shape:after{content:"";border:10px solid #2a3334c2;border-radius:50%;position:absolute}.tattoo-shape:before{width:62px;height:86px;top:34px;left:48px}.tattoo-shape:after{width:35px;height:35px;top:112px;left:93px}.target-corners{border:1px dashed #ffffffd1;position:absolute;inset:14% 34% 14% 18%}.target-corners i,.calibration-card i{border:solid #fff;width:14px;height:14px;position:absolute}.target-corners i:first-child,.calibration-card i:first-of-type{border-width:2px 0 0 2px;top:-1px;left:-1px}.target-corners i:nth-child(2),.calibration-card i:nth-of-type(2){border-width:2px 2px 0 0;top:-1px;right:-1px}.target-corners i:nth-child(3),.calibration-card i:nth-of-type(3){border-width:0 0 2px 2px;bottom:-1px;left:-1px}.target-corners i:nth-child(4),.calibration-card i:nth-of-type(4){border-width:0 2px 2px 0;bottom:-1px;right:-1px}.calibration-card{color:#163f42;background:#eef1e7;border:5px solid #fff;place-content:center;width:90px;height:90px;display:grid;position:absolute;bottom:28px;right:32px;transform:rotate(-3deg);box-shadow:0 8px 20px #2f2e2a38}.calibration-card b{font-size:27px;line-height:1}.calibration-card span{text-align:center;letter-spacing:.1em;font-size:10px}.calibration-card i{border-color:#163f42}.measure-status{color:#bfd4cd;gap:18px;padding:0 24px;font-size:11px;display:flex}.measure-status span{align-items:center;gap:6px;display:inline-flex}.measure-status i{background:#7f9691;border-radius:50%;width:7px;height:7px}.measure-status i.ok{background:#81d2ad}.floating-metric{background:var(--paper);border:1px solid #0e4a4c26;border-radius:16px;min-width:184px;padding:18px 20px;display:grid;position:absolute;bottom:0;right:0;box-shadow:0 18px 40px #1a2f2d29}.floating-metric small{color:#7a8989;letter-spacing:.12em;font-size:10px}.floating-metric strong{margin-top:5px;font-size:16px}.floating-metric>span{color:#5c8f82;font-size:11px;position:absolute;bottom:18px;right:18px}.workflow-strip{border-block:1px solid var(--line);grid-template-columns:repeat(5,1fr);max-width:1232px;margin:0 auto;display:grid}.workflow-step{border-right:1px solid var(--line);align-items:center;gap:14px;padding:24px 20px;display:flex}.workflow-step:last-child{border-right:0}.workflow-step>span{color:#77a597;font-family:ui-monospace,monospace;font-size:12px}.workflow-step div{flex-direction:column;gap:4px;display:flex}.workflow-step strong{font-size:14px}.workflow-step small{color:var(--muted);font-size:11px}.dashboard-grid{grid-template-columns:1.55fr .75fr;gap:22px;max-width:1232px;margin:28px auto 70px;display:grid}.dashboard-card,.capture-stage,.capture-sidebar,.source-image-card,.next-phase-card,.notes-card,.trace-card,.history-table{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.dashboard-card{padding:30px}.section-heading-row,.page-heading,.detail-title-row,.capture-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.section-heading-row h2,.protocol-card h2,.capture-sidebar h2,.next-phase-card h2{margin:8px 0 0;font-size:22px}.text-link{color:var(--teal);font-size:13px;font-weight:700}.record-list{border-top:1px solid var(--line);margin-top:22px}.record-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,1fr) auto 100px 20px;align-items:center;gap:16px;min-height:58px;font-size:13px;display:grid}.record-row:hover{color:var(--teal)}.record-row time{color:var(--muted)}.record-id{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.row-arrow{color:#7b9690;font-size:18px}.status-badge{color:#5d6a69;white-space:nowrap;background:#edf0ed;border-radius:999px;align-items:center;width:fit-content;min-height:26px;padding:0 10px;font-size:11px;font-style:normal;font-weight:750;display:inline-flex}.status-badge.image_uploaded{color:#25624e;background:#deece5}.status-badge.analyzed,.status-badge.predicted{color:#145c45;background:#d7eee5}.status-badge.analysis_failed{color:#8c3d35;background:#f5dedb}.status-badge.large{min-height:34px;padding:0 14px;font-size:12px}.protocol-card{background:#dceae5}.protocol-line{color:#4d6462;border-bottom:1px solid #0e4a4c24;justify-content:space-between;gap:18px;padding:15px 0;font-size:13px;display:flex}.protocol-line:first-of-type{margin-top:16px}.protocol-line:last-child{border-bottom:0}.protocol-line strong{color:var(--ink);text-align:right}.empty-inline,.record-skeleton{min-height:104px;color:var(--muted);place-items:center;margin-top:20px;font-size:13px;display:grid}.record-skeleton{gap:8px}.record-skeleton span{background:#eceee9;border-radius:5px;width:100%;height:16px}.page-section,.capture-layout{max-width:1232px;margin:0 auto;padding:54px 28px 80px}.page-heading{align-items:flex-end;margin-bottom:30px}.page-heading h1,.capture-header h1,.detail-title-row h1{color:#112f31;letter-spacing:-.035em;margin:10px 0 6px;font-size:clamp(34px,4vw,48px)}.page-heading p,.detail-title-row p{color:var(--muted);margin:0}.capture-layout{grid-template-columns:minmax(0,1.62fr) minmax(300px,.72fr);align-items:start;gap:24px;display:grid}.capture-stage,.capture-sidebar{padding:30px}.step-label,.mode-badge{color:var(--teal);letter-spacing:.11em;text-transform:uppercase;font-size:11px;font-weight:800}.mode-badge{letter-spacing:0;background:#edf4f1;border:1px solid #bdd1ca;border-radius:999px;padding:8px 12px}.camera-shell{background:#183638;border-radius:20px;place-items:center;min-height:500px;margin-top:22px;display:grid;position:relative;overflow:hidden}.camera-shell video,.photo-preview{object-fit:contain;width:100%;height:100%;min-height:500px}.camera-empty{color:#fff;text-align:center;max-width:460px;padding:54px 28px}.camera-symbol{border:2px solid #9ec0b8;border-radius:10px;width:58px;height:44px;margin-bottom:18px;display:inline-block;position:relative}.camera-symbol:before{content:"";border:2px solid #9ec0b8;border-radius:50%;width:16px;height:16px;position:absolute;top:10px;left:19px}.camera-symbol:after{content:"";background:#9ec0b8;border-radius:5px 5px 0 0;width:20px;height:8px;position:absolute;top:-8px;left:9px}.camera-empty h2{margin:0;font-size:24px}.camera-empty p{color:#b8cbc7;margin:12px 0 26px;line-height:1.7}.camera-empty .primary-button{color:var(--teal);box-shadow:none;background:#e9f2ee}.camera-empty .secondary-button.inverse,.secondary-button.inverse{color:#fff;border-color:#ffffff6b}.calibration-guide{aspect-ratio:1.45;border:2px dashed #ffffffd6;width:min(66%,500px);position:absolute;top:50%;left:50%;transform:translate(-50%,-54%)}.calibration-guide:before,.calibration-guide:after{content:"";border:solid #8ae0bd;position:absolute;inset:-3px}.calibration-guide:before{clip-path:polygon(0 0,18% 0,18% 100%,0 100%,0 82%,100% 82%,100% 100%,82% 100%,82% 0,100% 0,100% 18%,0 18%);border-width:4px 0}.calibration-guide:after{clip-path:polygon(0 0,100% 0,100% 18%,0 18%,0 82%,100% 82%,100% 100%,0 100%);border-width:0 4px}.guide-caption{color:#fff;white-space:nowrap;background:#092426c7;border-radius:999px;padding:6px 12px;font-size:12px;position:absolute;bottom:-40px;left:50%;transform:translate(-50%)}.camera-toolbar{background:linear-gradient(#0000,#051617d1);grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:20px 28px;display:grid;position:absolute;bottom:0;left:0;right:0}.camera-toolbar .secondary-button:last-child{justify-self:end}.shutter-button{cursor:pointer;background:0 0;border:3px solid #fff;border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.shutter-button span{background:#fff;border-radius:50%;width:54px;height:54px}.capture-sidebar{position:sticky;top:102px}.check-steps{margin:24px 0 0;padding:0;list-style:none}.check-steps li{border-bottom:1px solid var(--line);grid-template-columns:34px 1fr;gap:14px;padding:17px 0;display:grid}.check-steps li>span{color:#6e9f92;font-family:ui-monospace,monospace;font-size:11px}.check-steps strong{font-size:14px;display:block}.check-steps p{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.6}.safety-note{background:#f5ede2;border-left:3px solid #b07a42;border-radius:4px 12px 12px 4px;margin-top:22px;padding:18px}.safety-note strong{color:#74461f;font-size:13px}.safety-note p{color:#7a604a;margin:7px 0 0;font-size:12px;line-height:1.65}.confirmation-panel{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:12px 22px;margin-top:22px;padding-top:22px;display:grid}.field-label{color:var(--ink);grid-column:1;font-size:13px;font-weight:750}.field-label span{color:var(--muted);font-size:11px;font-weight:500}.text-input,.notes-card textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #bcc7c3;border-radius:11px}.text-input{grid-column:1;min-height:48px;padding:0 14px}.confirmation-actions{grid-area:1/2/span 2}.inline-notice{color:#724e25;background:#f7efe2;border:1px solid #d3bc98;border-radius:10px;margin-top:18px;padding:13px 15px;font-size:13px;line-height:1.5}.inline-notice.error{color:var(--danger);background:#f9e9e7;border-color:#d9aaa5}.history-table{overflow:hidden}.history-head,.history-row{grid-template-columns:minmax(210px,1.35fr) minmax(170px,1fr) minmax(120px,.7fr) minmax(110px,.6fr) 24px;align-items:center;gap:18px;padding:0 22px;display:grid}.history-head{border-bottom:1px solid var(--line);color:#657373;letter-spacing:.06em;background:#edf0eb;min-height:46px;font-size:11px;font-weight:750}.history-row{border-bottom:1px solid var(--line);min-height:76px;font-size:13px;transition:background .12s}.history-row:last-child{border-bottom:0}.history-row:hover{background:#f7f7f2}.history-row>span:first-child{min-width:0}.history-row strong,.history-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.history-row small{color:#86908f;margin-top:4px;font-family:ui-monospace,monospace;font-size:9px}.history-row time,.history-row>span:nth-child(3){color:var(--muted)}.empty-state,.page-state{text-align:center;align-content:center;place-items:center;min-height:360px;display:grid}.empty-state h2{margin:8px 0}.empty-state p,.page-state{color:var(--muted)}.empty-state .primary-button{margin-top:18px}.empty-number{color:#a5c4ba;font-family:ui-monospace,monospace;font-size:42px}.detail-layout{grid-template-columns:minmax(0,1.52fr) minmax(310px,.7fr);align-items:start;gap:24px;display:grid}.detail-title-row{align-items:center;margin-bottom:24px}.source-image-card{overflow:hidden}.source-image-card>img{object-fit:contain;background:#162f31;width:100%;max-height:660px;display:block}.analysis-image-frame{background:#162f31;place-items:center;display:grid;position:relative;overflow:hidden}.analysis-source-image,.analysis-mask-overlay{object-fit:contain;width:100%;max-height:660px;display:block}.analysis-mask-overlay{pointer-events:none;height:100%;position:absolute;inset:0}.mask-toggle{color:#fff;cursor:pointer;background:#092426d1;border:1px solid #ffffff75;border-radius:999px;min-height:36px;padding:0 13px;font-size:11px;font-weight:750;position:absolute;top:16px;right:16px}.mask-review-button{min-height:38px;color:var(--teal);cursor:pointer;background:#f3f8f5;border:1px solid #ffffffb8;border-radius:999px;padding:0 14px;font-size:11px;font-weight:800;position:absolute;top:60px;right:16px;box-shadow:0 8px 22px #051f2038}.mask-editor{border-radius:var(--radius);background:#f4f7f3;border:1px solid #a9c8bd;margin-top:16px;padding:22px;box-shadow:0 18px 46px #12373714}.mask-editor-heading,.mask-editor-toolbar,.mask-editor-status,.mask-editor-actions{align-items:center;display:flex}.mask-editor-heading{justify-content:space-between;gap:16px}.mask-editor-heading span{color:var(--teal);letter-spacing:.1em;font-size:10px;font-weight:800}.mask-editor-heading h2{margin:5px 0 0;font-size:22px}.mask-editor-close{border:1px solid var(--line);width:40px;height:40px;color:var(--ink);cursor:pointer;background:#fff;border-radius:50%;font-size:25px;line-height:1}.mask-editor-help{color:var(--muted);margin:12px 0 16px;font-size:12px;line-height:1.65}.mask-editor-toolbar{flex-wrap:wrap;gap:9px;margin-bottom:12px}.mask-tool-switch{border:1px solid var(--line);background:#fff;border-radius:11px;display:flex;overflow:hidden}.mask-tool-switch button,.compact-button{min-height:38px;color:var(--muted);cursor:pointer;background:#fff;border:0;padding:0 14px;font-size:11px;font-weight:750}.mask-tool-switch button+button{border-left:1px solid var(--line)}.mask-tool-switch button.selected{background:var(--teal);color:#fff}.compact-button{border:1px solid var(--line);border-radius:10px}.mask-tool-switch button:disabled,.compact-button:disabled,.mask-editor-close:disabled{cursor:wait;opacity:.5}.brush-size-control{border:1px solid var(--line);min-height:38px;color:var(--muted);background:#fff;border-radius:10px;align-items:center;gap:9px;padding:0 12px;font-size:10px;font-weight:750;display:flex}.brush-size-control input{width:90px;accent-color:var(--teal)}.mask-editor-stage{background:#142f31;border-radius:14px;place-items:center;min-height:280px;display:grid;position:relative;overflow:hidden}.mask-editor-stage canvas{object-fit:contain;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-height:680px;display:block}.mask-editor-loading{color:#fff;font-size:12px;position:absolute}.mask-editor-status{color:var(--muted);justify-content:space-between;gap:12px;padding:11px 2px 0;font-size:10px}.mask-editor-status strong{color:var(--teal);text-align:right}.training-sample-option{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:11px;margin-top:15px;padding:13px;display:grid}.training-sample-option input{width:18px;height:18px;accent-color:var(--teal);margin-top:2px}.training-sample-option span,.training-sample-option small{display:block}.training-sample-option label{cursor:pointer;font-size:12px;font-weight:750}.training-sample-option small{color:var(--muted);margin-top:4px;font-size:10px;line-height:1.5}.mask-editor-actions{justify-content:flex-end;gap:10px;margin-top:16px}.mask-editor-actions button{min-width:150px}.segmentation-preview-badge{color:#fff;letter-spacing:.04em;background:#092426d1;border:1px solid #fff6;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:800;position:absolute;bottom:16px;left:16px}.missing-image{min-height:450px;color:var(--muted);background:#e8ebe6;align-content:center;place-items:center;gap:20px;display:grid}.image-meta{color:#647372;justify-content:space-between;gap:18px;padding:14px 18px;font-size:11px;display:flex}.detail-sidebar{gap:16px;display:grid;position:sticky;top:102px}.next-phase-card,.notes-card,.trace-card,.review-summary-card{padding:24px}.review-summary-card{border-radius:var(--radius);background:#e6f2ed;border:1px solid #9fc6b8}.review-summary-card span,.review-summary-card strong,.review-summary-card small{display:block}.review-summary-card span{color:var(--teal);letter-spacing:.08em;font-size:10px;font-weight:800}.review-summary-card strong{margin:8px 0 6px;font-size:14px}.review-summary-card small{color:var(--muted);font-size:10px;line-height:1.5}.next-phase-card p{color:var(--muted);font-size:13px;line-height:1.75}.next-phase-card .primary-button{width:100%;margin-top:8px}.analysis-mode-switch{grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 14px;display:grid}.analysis-mode-switch button{border:1px solid var(--line);min-width:0;min-height:72px;color:var(--ink);cursor:pointer;text-align:left;background:#f7f7f3;border-radius:14px;flex-direction:column;justify-content:center;gap:5px;padding:12px;display:flex}.analysis-mode-switch button.selected{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:#dceae5}.analysis-mode-switch button:disabled{cursor:wait;opacity:.68}.analysis-mode-switch strong{font-size:13px}.analysis-mode-switch small{color:var(--muted);font-size:10px}.consumer-reference-field{background:#f2f7f4;border:1px solid #bfd2cb;border-radius:14px;margin:14px 0 16px;padding:14px;display:block}.consumer-reference-field>span{margin-bottom:9px;font-size:12px;font-weight:750;display:block}.reference-input-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.reference-input-grid label>small{color:var(--muted);margin-bottom:6px;font-size:10px;display:block}.reference-number-input{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;overflow:hidden}.consumer-reference-field input{background:0 0;border:0;outline:0;min-width:0;height:42px;padding:0 12px;font-size:15px}.reference-number-input strong{color:var(--muted);padding-right:12px;font-size:12px}.measurement-source{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.measurement-source button{border:1px solid var(--line);min-height:48px;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:8px;font-size:11px;font-weight:750}.measurement-source button.selected{border-color:var(--teal);color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:#dceae5}.measurement-source button small{color:var(--muted);margin-top:3px;font-size:9px;font-weight:500;display:block}.measurement-source button:disabled{cursor:wait;opacity:.68}.consumer-reference-field>.reference-help{color:var(--muted);margin-top:8px;font-size:10px;line-height:1.5;display:block}.next-phase-card .analysis-button{width:100%;margin-top:10px}.notes-card label{margin-bottom:10px;font-size:13px;font-weight:750;display:block}.notes-card textarea{resize:vertical;min-height:132px;padding:12px;line-height:1.55}.notes-card .secondary-button{width:100%;margin-top:12px}.form-message{color:var(--teal);margin:10px 0 0;font-size:11px}.trace-card span,.trace-card code{display:block}.trace-card span{color:var(--muted);margin-bottom:8px;font-size:11px}.trace-card code{overflow-wrap:anywhere;color:#52615f;font-size:10px}.site-footer{max-width:1232px;padding:24px 0 max(24px, env(safe-area-inset-bottom));border-top:1px solid var(--line);color:#6f7d7b;justify-content:space-between;gap:20px;margin:0 auto;font-size:11px;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.operator-chip{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 10px}.operator-chip:hover{color:var(--teal);background:#ffffffbf}.auth-main{min-height:100vh}.auth-loading-screen{min-height:100vh;color:var(--muted);align-content:center;place-items:center;gap:18px;display:grid}.auth-page{background:var(--paper);grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr);min-height:100vh;display:grid}.auth-brand-panel{color:#fff;background:radial-gradient(circle at 78% 18%,#9acfbe4d,#0000 32%),linear-gradient(145deg,#0c3f42 0%,#123638 100%);flex-direction:column;justify-content:space-between;min-height:100%;padding:clamp(34px,5vw,76px);display:flex}.auth-brand{color:#fff}.auth-brand .brand-mark{background:#ffffff1c;border:1px solid #ffffff47}.auth-brand .brand-copy small,.auth-brand-panel .eyebrow,.auth-brand-panel>small{color:#bcd4cf}.auth-brand-panel h1{letter-spacing:-.05em;max-width:620px;margin:22px 0 18px;font-size:clamp(42px,5.2vw,72px);line-height:1.08}.auth-brand-panel p{color:#d3e1dd;max-width:550px;margin:0;font-size:17px;line-height:1.8}.auth-form-panel{background:linear-gradient(#0e4a4c06 1px, transparent 1px), linear-gradient(90deg, #0e4a4c06 1px, transparent 1px), var(--paper);background-size:32px 32px;place-items:center;min-height:100%;padding:42px;display:grid}.auth-card,.settings-card,.admin-panel{border:1px solid var(--line);border-radius:var(--radius);background:#fffef9f5;box-shadow:0 24px 70px #1f363514}.auth-card{flex-direction:column;width:min(100%,470px);padding:clamp(28px,4vw,50px);display:flex}.auth-card h2{letter-spacing:-.03em;margin:12px 0 8px;font-size:34px}.auth-card>p{color:var(--muted);margin:0 0 26px;line-height:1.65}.auth-card label,.stacked-form label,.settings-card label{color:#354c4d;margin:14px 0 8px;font-size:12px;font-weight:750}.auth-card input,.stacked-form input,.stacked-form select,.settings-card input,.account-controls input,.account-controls select{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #bac7c3;border-radius:10px;padding:0 13px}.auth-card input:focus,.stacked-form input:focus,.stacked-form select:focus,.settings-card input:focus,.account-controls input:focus,.account-controls select:focus{border-color:#4a9180;outline:0;box-shadow:0 0 0 3px #4a918021}.auth-card .primary-button,.stacked-form .primary-button,.settings-card .primary-button{width:100%;margin-top:24px}.form-message{background:#e8f3ee;border-radius:9px;padding:10px 12px;line-height:1.5}.form-message.error-text{color:var(--danger);background:#f9e9e7}.narrow-page{max-width:780px}.settings-card{flex-direction:column;padding:30px;display:flex}.settings-card>small{color:var(--muted);margin-top:10px;line-height:1.55}.admin-page{max-width:1380px}.admin-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.admin-heading h1{letter-spacing:-.04em;margin:10px 0 6px;font-size:clamp(34px,4vw,50px)}.admin-heading p,.admin-panel>p{color:var(--muted);margin:0;line-height:1.65}.admin-nav{border:1px solid var(--line);background:#ffffffa6;border-radius:13px;flex-wrap:wrap;gap:7px;padding:5px;display:flex}.admin-nav a{color:#536566;border-radius:9px;padding:9px 13px;font-size:12px;font-weight:750}.admin-nav a:hover{color:var(--teal);background:#fff}.admin-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.admin-metric-card{border:1px solid var(--line);background:var(--paper);border-radius:15px;flex-direction:column;justify-content:space-between;min-height:150px;padding:21px;display:flex}.admin-metric-card>span,.admin-metric-card>small{color:var(--muted);font-size:11px}.admin-metric-card>strong{color:var(--teal);font-size:34px}.admin-metric-card>strong small{font-size:12px}.admin-metric-card.featured{background:var(--teal);color:#fff}.admin-metric-card.featured>span,.admin-metric-card.featured>small,.admin-metric-card.featured>strong{color:#fff}.admin-content-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,.7fr);gap:18px;margin-top:18px;display:grid}.admin-panel{padding:26px}.admin-table-list,.audit-list{border-top:1px solid var(--line);margin-top:18px}.admin-table-list>a{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,1fr) auto 100px;align-items:center;gap:16px;min-height:68px;display:grid}.admin-table-list>a:hover{color:var(--teal)}.admin-table-list strong,.admin-table-list small{display:block}.admin-table-list small{color:var(--muted);margin-top:4px;font-size:10px}.admin-table-list em{color:#526565;text-align:right;font-size:12px;font-style:normal}.audit-list>div{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 0;display:flex}.audit-list i{background:#72a995;border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px;box-shadow:0 0 0 4px #e2eee9}.audit-list span,.audit-list strong,.audit-list small{display:block}.audit-list strong{font-size:12px}.audit-list small{color:var(--muted);margin-top:4px;font-size:10px}.user-admin-layout,.permissions-layout{grid-template-columns:minmax(280px,.62fr) minmax(0,1.5fr);align-items:start;gap:18px;display:grid}.create-user-panel,.role-selector{position:sticky;top:104px}.admin-panel h2{margin:8px 0;font-size:22px}.stacked-form{flex-direction:column;margin-top:12px;display:flex}.account-list{margin-top:14px}.account-row{border-top:1px solid var(--line);grid-template-columns:minmax(180px,.8fr) minmax(0,1.55fr);gap:20px;padding:22px 0;display:grid}.account-identity{align-items:flex-start;gap:12px;display:flex}.account-avatar{width:42px;height:42px;color:var(--teal);background:#dceae5;border-radius:12px;flex:none;place-items:center;font-weight:800;display:grid}.account-avatar.role-super_admin,.account-avatar.role-admin{background:var(--teal);color:#fff}.account-identity strong,.account-identity code,.account-identity small{display:block}.account-identity code{color:var(--teal);margin-top:4px;font-size:11px}.account-identity small{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.5}.account-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.account-controls label span{color:var(--muted);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.account-controls input,.account-controls select{min-height:42px;font-size:12px}.account-controls button{align-self:end}.account-badges{flex-wrap:wrap;grid-column:1/-1;gap:6px;margin-top:-10px;display:flex}.account-badges span,.locked-badge{color:#526463;background:#edf0ed;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:750}.account-badges .active{color:#27664f;background:#dceee6}.account-badges .disabled,.account-badges .warning{color:#865221;background:#f5e7d7}.role-list{gap:8px;margin-top:18px;display:grid}.role-list button{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:11px;padding:14px}.role-list button.selected{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:#e2eee9}.role-list strong,.role-list small{display:block}.role-list small{color:var(--muted);margin-top:4px;font-size:10px}.permission-group{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.permission-group h3{margin:0 0 10px;font-size:13px}.permission-group>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.permission-group label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:10px;padding:13px;display:flex}.permission-group label.checked{background:#edf5f1;border-color:#91b9ad}.permission-group input{accent-color:var(--teal);margin-top:3px}.permission-group strong,.permission-group code{display:block}.permission-group strong{font-size:12px}.permission-group code{color:var(--muted);margin-top:5px;font-size:9px}.permission-save{margin-top:24px}.calibration-link{color:var(--teal);text-align:center;margin-top:14px;font-size:12px;font-weight:750;display:block}.error-text{color:var(--danger)!important}.privacy-disclosure{color:#6f7d7b;margin:-4px 0 15px;font-size:10px;line-height:1.55;display:block}.analysis-results{grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);gap:16px;margin-top:16px;display:grid}.area-result-card,.quality-card,.color-card,.prediction-explainer,.warning-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.area-result-card{color:#fff;background:#153f42;flex-direction:column;justify-content:center;min-height:210px;padding:26px;display:flex}.consumer-result-card{background:#285c59}.prediction-explainer{flex-direction:column;justify-content:center;min-height:210px;padding:24px;display:flex}.prediction-explainer span{color:var(--muted);font-size:11px}.prediction-explainer strong{margin:10px 0 8px;font-size:19px}.prediction-explainer p{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.area-result-card>span,.result-heading span{letter-spacing:.06em;font-size:11px}.area-result-card>span{color:#b5d0ca}.area-result-card strong{letter-spacing:-.04em;margin:12px 0 18px;font-size:clamp(38px,5vw,58px)}.area-result-card strong small{font-size:16px;font-weight:600}.confidence-grade{color:#dbece7;background:#ffffff1f;border-radius:999px;width:fit-content;max-width:100%;padding:7px 10px;font-size:11px;font-style:normal;line-height:1.45}.quality-card{padding:24px}.color-card{grid-column:1/-1;padding:24px}.color-ratio-bar{background:#e5e9e7;border-radius:999px;height:10px;margin-top:22px;display:flex;overflow:hidden}.color-ratio-bar i,.color-ratio-bar b{height:100%;display:block}.color-ratio-bar i{background:#4a4f52}.color-ratio-bar b{background:linear-gradient(90deg,#c94747,#df7a32,#d7b62f,#4f9668,#436eb5,#7856a8)}.color-analysis-meta{color:var(--muted);justify-content:space-between;gap:14px;margin-top:10px;font-size:10px;display:flex}.color-analysis-meta strong{color:var(--teal);font-size:10px}.dominant-colors{flex-wrap:wrap;gap:9px;margin-top:18px;display:flex}.dominant-colors span{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:11px;display:inline-flex}.dominant-colors i{border-radius:50%;width:9px;height:9px}.result-heading{justify-content:space-between;align-items:flex-start;display:flex}.result-heading div span,.result-heading div strong{display:block}.result-heading div strong{margin-top:5px;font-size:24px}.result-heading>span{color:var(--muted)}.quality-grid{grid-template-columns:1fr 1fr;gap:18px 24px;margin-top:24px;display:grid}.quality-item{color:var(--muted);grid-template-columns:1fr auto;align-items:center;gap:7px 12px;font-size:11px;display:grid}.quality-item strong{color:var(--ink);font-size:12px}.quality-item i{background:#e0e7e3;border-radius:99px;grid-column:1/-1;height:5px;overflow:hidden}.quality-item b{border-radius:inherit;background:#5aa78f;height:100%;display:block}.warning-card{background:#f8f1e7;border-color:#dcc7aa;padding:22px}.warning-card>span{color:#8a5a2c;font-size:12px;font-weight:800}.warning-card ul{color:#795f47;margin:12px 0 0;padding-left:18px;font-size:12px;line-height:1.65}.trace-card code+code{margin-top:7px}.calibration-print-page{max-width:1120px;margin:0 auto;padding:54px 28px 80px}.calibration-instructions{text-align:center;max-width:720px;margin:0 auto 34px}.calibration-instructions h1{margin:10px 0;font-size:clamp(34px,4vw,48px)}.calibration-instructions p{color:var(--muted);line-height:1.7}.print-card-button{margin-top:10px}.printable-calibration-sheet{box-sizing:border-box;border:1px solid var(--line);background:#fff;align-content:center;place-items:center;gap:18mm;min-height:297mm;padding:22mm;display:grid}.printable-calibration-card{text-align:center;border:.5mm solid #123638;padding:10mm}.printable-calibration-card img{width:50mm;height:50mm;display:block}.calibration-card-caption{gap:1.5mm;margin-top:5mm;display:grid}.calibration-card-caption strong{font-size:11pt}.calibration-card-caption span,.print-scale-check span,.printable-calibration-sheet>p{font-size:8pt}.print-scale-check{justify-items:center;gap:3mm;display:grid}.print-scale-check i{border-top:.5mm solid #111;width:50mm;display:block;position:relative}.print-scale-check i:before,.print-scale-check i:after{content:"";border-left:.5mm solid #111;height:4mm;position:absolute;top:-2mm}.print-scale-check i:before{left:0}.print-scale-check i:after{right:0}.printable-calibration-sheet>p{text-align:center;max-width:105mm;margin:0;line-height:1.6}@media print{@page{size:A4 portrait;margin:0}body{background:#fff}.topbar,.site-footer,.no-print{display:none!important}.calibration-print-page{margin:0;padding:0}.printable-calibration-sheet{border:0}}@media (max-width:1020px){.auth-page{grid-template-columns:minmax(300px,.72fr) minmax(420px,1fr)}.auth-brand-panel,.auth-form-panel{padding:34px}.admin-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-content-grid,.user-admin-layout,.permissions-layout{grid-template-columns:1fr}.create-user-panel,.role-selector{position:static}.topbar{grid-template-columns:1fr auto}.primary-nav{display:none}.hero{grid-template-columns:1fr;gap:26px;padding-top:54px}.hero-visual{min-height:450px}.workflow-strip{grid-template-columns:repeat(3,1fr);margin-inline:28px}.workflow-step:nth-child(3){border-right:0}.workflow-step:nth-child(n+4){border-top:1px solid var(--line)}.dashboard-grid{grid-template-columns:1fr;margin-inline:28px}.capture-layout,.detail-layout,.analysis-results{grid-template-columns:1fr}.capture-sidebar,.detail-sidebar{position:static}}@media (max-width:700px){.auth-page{background:var(--sand);display:block}.auth-brand-panel{min-height:280px;padding:24px 20px 32px}.auth-brand-panel h1{margin:30px 0 12px;font-size:36px}.auth-brand-panel p{font-size:14px}.auth-brand-panel>small{display:none}.auth-form-panel{min-height:auto;padding:20px 16px 38px}.auth-card{padding:26px 20px}.auth-card h2{font-size:28px}.admin-heading{flex-direction:column;align-items:flex-start}.admin-nav{width:100%}.admin-nav a{text-align:center;flex:auto}.admin-metric-grid{grid-template-columns:1fr 1fr;gap:10px}.admin-metric-card{min-height:128px;padding:16px}.admin-metric-card>strong{font-size:28px}.admin-panel{padding:20px}.admin-table-list>a{grid-template-columns:minmax(0,1fr) auto}.admin-table-list em{display:none}.account-row,.account-controls,.permission-group>div{grid-template-columns:1fr}.account-badges{margin-top:0}.settings-card{padding:22px 18px}.topbar{min-height:68px;padding-inline:max(16px, env(safe-area-inset-left))}.brand-copy small,.operator-chip{display:none}.hero{min-height:0;padding:46px 20px 38px}.hero-copy h1{margin-top:18px;font-size:42px}.hero-copy>p{font-size:16px}.hero-actions>*,.camera-actions>*,.confirmation-actions>*{width:100%}.hero-assurances{display:grid}.hero-visual{min-height:335px}.measure-card{inset:10px 6px 22px 0}.measure-stage{height:205px}.tattoo-shape{border-width:9px;width:125px;height:125px}.tattoo-shape:before,.tattoo-shape:after{display:none}.calibration-card{width:62px;height:62px;bottom:18px;right:18px}.measure-status{gap:8px;padding-inline:14px}.measure-status span:nth-child(2){display:none}.floating-metric{min-width:158px;padding:14px}.workflow-strip{grid-template-columns:1fr;margin-inline:20px}.workflow-step,.workflow-step:nth-child(3){border-right:0;border-top:1px solid var(--line)}.workflow-step:first-child{border-top:0}.dashboard-grid{margin:20px 20px 54px}.dashboard-card{padding:22px}.record-row{grid-template-columns:1fr auto 18px}.record-row time{display:none}.page-section,.capture-layout{padding:34px 16px 60px}.page-heading,.capture-header,.detail-title-row{flex-direction:column;align-items:flex-start}.capture-stage,.capture-sidebar{padding:20px}.mask-editor{padding:16px}.mask-editor-toolbar,.mask-editor-status,.mask-editor-actions{flex-direction:column;align-items:stretch}.mask-tool-switch button,.compact-button,.brush-size-control,.mask-editor-actions button{width:100%}.brush-size-control{justify-content:space-between}.brush-size-control input{width:min(190px,60vw)}.mask-editor-status strong{text-align:left}.camera-shell,.camera-shell video,.photo-preview{min-height:420px}.camera-toolbar{grid-template-columns:1fr auto 1fr;padding-inline:12px}.camera-toolbar .secondary-button{min-width:0;padding:0 10px;font-size:11px}.confirmation-panel{grid-template-columns:1fr}.confirmation-actions{grid-area:auto/1}.history-head{display:none}.history-row{grid-template-columns:1fr auto;gap:12px;padding:18px}.history-row>span,.history-row time{display:block}.history-row>span:before,.history-row time:before{content:attr(data-label);color:#879391;margin-bottom:4px;font-size:9px;display:block}.history-row .row-arrow{position:absolute;right:18px}.history-row{position:relative}.image-meta,.site-footer{flex-direction:column}.quality-grid{grid-template-columns:1fr}.calibration-print-page{padding:34px 16px 60px}.site-footer{margin-inline:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
