:root{--bg:#f5f5f5;--ink:#1c1c1c;--surface:#e9e9e9;--muted:#666666;--stage:#191919;--stage-muted:#b2b2b2;--white:#fff;--error:#3b3b3b;--error-bg:#e7e7e7;--font:Arial,Helvetica,sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,summary{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid currentColor;outline-offset:5px}a{color:inherit}button{color:inherit}button svg,.privacy svg{width:19px;height:19px;flex-shrink:0}[hidden]{display:none!important}.header{height:112px;max-width:1536px;margin:auto;padding:0 5%;display:flex;align-items:center;gap:65px}.brand{display:block;width:130px;flex-shrink:0}.brand img{display:block;width:100%;height:auto;filter:invert(1);mix-blend-mode:multiply}.header nav{display:flex;align-items:center;gap:32px;font-size:16px}.header nav a{text-decoration:none}.privacy{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:14px;color:var(--muted)}.text-button{background:none;border:0;padding:10px 0;text-align:left;font-size:15px;display:inline-flex;align-items:center;gap:10px;text-decoration:none}.text-button:hover,a:hover{text-decoration:underline;text-underline-offset:5px}.text-button:disabled{color:var(--muted);text-decoration:none}.icon-button{width:42px;height:42px;padding:10px;display:inline-grid;place-items:center;border:0;background:none;border-radius:50%;font-size:28px;line-height:1}.icon-button:hover{background:var(--surface)}main{max-width:1536px;padding:38px 5% 0;margin:auto}.intro{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:45px;gap:32px}.intro h1{font-size:clamp(45px,5.6vw,80px);font-weight:400;line-height:.98;letter-spacing:-.065em;margin:0}.intro p{margin:0 4% 2px 0;font-size:18px;line-height:1.45;letter-spacing:-.025em}.workspace{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);gap:64px;align-items:start}.view-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.view-heading h2{font-size:16px;font-weight:400;margin:0}.camera-status{color:var(--muted);font-size:14px;display:flex;align-items:center;gap:7px}.camera-status::before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%}.camera-status.is-live{color:var(--ink)}.camera-status.is-live::before{animation:breathe 2.5s infinite}.viewfinder{width:100%;aspect-ratio:4/3;min-height:290px;position:relative;background:var(--stage);color:var(--white);overflow:hidden;border-radius:4px;display:flex;align-items:center;justify-content:center}.empty-state{text-align:center;display:flex;align-items:center;flex-direction:column;padding:32px 16px;position:relative}.nail-mark{height:64px;width:60px;color:var(--stage-muted);margin-bottom:22px}.empty-state h3{font-size:30px;line-height:1.12;font-weight:400;letter-spacing:-.045em;margin:0 0 15px}.empty-state p{font-size:15px;line-height:1.5;margin:0 0 25px;color:var(--stage-muted)}.button{min-height:50px;padding:14px 23px;border:0;border-radius:50px;display:inline-flex;justify-content:center;align-items:center;gap:12px;font-size:15px;line-height:1.2;transition:transform .18s ease,opacity .18s ease;background:var(--ink);color:var(--bg);white-space:normal}.button:hover:not(:disabled){transform:translateY(-2px)}.button:active:not(:disabled){transform:scale(.97)}.light-button{color:var(--ink);background:var(--bg)}.dark-button{background:var(--ink);color:var(--bg)}.button:disabled{background:var(--surface);color:var(--muted)}.camera-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:15px}.camera-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.camera-tools .text-button{font-size:14px}.shutter-icon{width:17px;height:17px;border:1.5px solid currentColor;border-radius:50%;display:inline-block;position:relative;flex-shrink:0}.shutter-icon::after{position:absolute;inset:3px;content:'';background:currentColor;border-radius:50%}.notice{font-size:13px;color:var(--muted);line-height:1.5;margin:16px 0 0}.error{background:var(--error-bg);color:var(--error);padding:16px 20px;margin-top:18px;font-size:15px;line-height:1.5;border-radius:4px}.scan-details{padding-top:37px;min-width:0}.scan-details h2{font-size:31px;line-height:1.12;letter-spacing:-.045em;font-weight:400;margin:0 0 26px}.guidance{display:flex;flex-direction:column;gap:22px}.guidance p{font-size:16px;line-height:1.5;margin:0;color:var(--ink)}.guidance strong{font-weight:400;color:var(--ink)}.next-note{display:flex;gap:16px;align-items:flex-start;margin-top:34px}.next-note p{font-size:14px;line-height:1.5;margin:0;max-width:28ch}.tiny-nail{width:20px;height:26px;display:block;background:var(--ink);border-radius:50% 50% 7% 7%;flex-shrink:0;clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);margin-top:3px}.model-note{margin:30px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.footer{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding:48px 0 28px}.footer p{font-size:13px;color:var(--muted);line-height:1.5;margin:0}.footer .text-button{padding-top:0;font-size:13px}.viewfinder video{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.viewfinder canvas{max-width:100%;max-height:100%;display:block;width:100%;height:100%;object-fit:contain;touch-action:none;cursor:crosshair;position:absolute;inset:0}.frame-note,.drawing-prompt{position:absolute;bottom:20px;left:16px;right:16px;text-align:center;font-size:13px;color:var(--white);padding:9px 12px;background:var(--stage);width:fit-content;margin:auto;pointer-events:none;border-radius:50px}#box-layer{position:absolute;inset:0;pointer-events:none}.selection-box{position:absolute;border:3px solid var(--white);outline:2px solid var(--stage);pointer-events:none}.selection-box.is-active{border-style:dashed}.selection-box span{position:absolute;top:-26px;left:-3px;background:var(--stage);color:var(--white);font-size:13px;line-height:20px;padding:1px 7px;white-space:nowrap}.panel-copy{font-size:16px;line-height:1.5;margin:-10px 0 20px;color:var(--muted)}.region-buttons{display:flex;flex-direction:column;gap:7px}.region-button{display:flex;align-items:center;gap:12px;padding:16px 14px;background:none;border:0;border-radius:4px;text-align:left;width:100%;min-height:74px}.region-button[aria-pressed=true]{background:var(--surface)}.region-button:hover{background:var(--surface)}.region-button strong{font-weight:400;display:block;font-size:16px}.region-button small{display:block;color:var(--muted);font-size:13px;line-height:1.4;margin-top:5px}.region-check{height:18px;width:18px;border:1.5px solid var(--muted);border-radius:50%;flex-shrink:0}.region-button.is-marked .region-check{background:var(--ink);border-color:var(--ink);position:relative}.region-button.is-marked .region-check::after{content:'';position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid var(--bg);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.region-edit{margin-left:auto;font-size:20px}.coordinate-details{margin-top:20px;font-size:14px}.coordinate-details summary{cursor:pointer;padding:10px 0}.coordinate-details p{color:var(--muted);font-size:13px;line-height:1.5}.coordinate-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.coordinate-inputs label{font-size:13px}.coordinate-inputs input{width:100%;background:var(--surface);padding:9px;border:0;border-radius:2px;display:block;margin-top:5px}.predict-button{width:100%;margin-top:20px}.small-note{font-size:13px;color:var(--muted);line-height:1.5;margin-top:12px}.prediction{display:flex;align-items:baseline;gap:12px;margin:25px 0 0}.prediction #prediction-value{font-size:clamp(70px,7.5vw,108px);line-height:1;font-weight:400;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.prediction-unit{font-size:24px;letter-spacing:-.04em}.result-caption{margin:12px 0 25px;font-size:16px;color:var(--muted)}.result-context,.result-limitation{font-size:16px;line-height:1.5}.result-limitation{margin-bottom:27px;color:var(--muted)}.quality-warnings{background:var(--surface);padding:16px;font-size:14px;line-height:1.5;margin:20px 0}.quality-warnings strong{display:block;font-weight:500;margin-bottom:8px}.quality-warnings ul{padding-left:18px;margin:0}.edit-regions{display:block;margin-top:10px}dialog{border:0;padding:40px;background:var(--bg);color:var(--ink);max-width:590px;width:calc(100% - 32px);max-height:85svh;overflow:auto;border-radius:4px}dialog::backdrop{background:rgb(0 0 0 / .5)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.dialog-header h2{font-size:32px;font-weight:400;letter-spacing:-.045em;line-height:1.05;margin:7px 0 20px}dialog p{font-size:16px;line-height:1.55;margin:0 0 22px}.model-stat{background:var(--surface);padding:22px;margin:26px 0;display:flex;flex-direction:column;gap:12px}.model-stat strong{font-size:35px;letter-spacing:-.045em;font-weight:400}.model-stat span{font-size:14px;line-height:1.5}.noscript{padding:30px;background:var(--error-bg);color:var(--error)}
@keyframes breathe{50%{opacity:.3}}@keyframes settle{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.intro,.view-heading,.viewfinder,.camera-toolbar,.scan-details{animation:settle .55s both}.view-heading{animation-delay:.05s}.viewfinder{animation-delay:.1s}.camera-toolbar{animation-delay:.15s}.scan-details{animation-delay:.2s}#annotate-panel:not([hidden]),#result-panel:not([hidden]){animation:settle .3s both}
@media(min-width:1500px){.viewfinder{aspect-ratio:1.45}.scan-details{padding-top:40px}.workspace{gap:76px}.intro{margin-bottom:50px}}
@media(max-width:1050px){.workspace{gap:35px;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr)}.header{gap:40px}.header nav{gap:22px}.privacy{font-size:13px}.intro{margin-bottom:34px}.intro p{font-size:16px;margin-right:0}.scan-details h2{font-size:27px}.guidance{gap:17px}.guidance p{font-size:15px}.next-note{margin-top:23px}.viewfinder{aspect-ratio:1.15}.footer{gap:20px}.footer p{font-size:13px}.footer .text-button{font-size:13px}.region-button{padding:12px 8px}.camera-tools{gap:7px}.camera-toolbar .button{padding-inline:18px}}
@media(max-width:740px){.header{height:85px;padding:0 6%;gap:20px}.brand{width:105px}.header nav{margin-left:auto;gap:20px;font-size:14px}.header nav .text-button{font-size:14px}.header nav>a{display:none}.privacy{display:none}main{padding:25px 6% 0}.intro{display:block;margin-bottom:32px}.intro h1{font-size:56px;letter-spacing:-.065em}.intro p{font-size:16px;margin-top:19px;max-width:29ch;line-height:1.5}.desktop-break{display:none}.workspace{display:flex;flex-direction:column;gap:34px}.camera-panel,.scan-details{width:100%}.viewfinder{aspect-ratio:4/4.3;min-height:340px;max-height:70svh}.view-heading{margin-bottom:13px}.scan-details{padding-top:0}.scan-details h2{font-size:31px;margin-bottom:22px}.guidance{gap:20px}.guidance p{font-size:16px;max-width:38ch}.next-note{margin-top:28px}.next-note p{max-width:33ch}.model-note{margin-top:24px}.footer{padding:39px 0 25px;display:flex;flex-wrap:wrap;gap:20px}.footer p{font-size:13px}.footer p:nth-child(2){width:100%;order:3}.footer .text-button{font-size:13px;margin-left:auto}.empty-state h3{font-size:30px}.empty-state{padding:25px 15px}.nail-mark{height:54px;margin-bottom:20px}.camera-toolbar{gap:12px;align-items:center}.camera-toolbar .button{min-height:48px;font-size:14px;padding:12px 19px}.camera-tools .text-button{font-size:13px}.camera-tools{gap:8px}.notice{font-size:13px}.prediction #prediction-value{font-size:100px}.result-context,.result-limitation{max-width:40ch}dialog{padding:25px}.dialog-header h2{font-size:28px}.frame-note,.drawing-prompt{font-size:13px;bottom:14px}.region-buttons{gap:8px}.region-button{padding:16px}.camera-tools #stop-camera{font-size:13px}.camera-tools .icon-button{width:34px;height:34px;padding:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Application workspace: keep the shutter visible on a small laptop. */
@media(min-width:741px){.viewfinder{height:clamp(350px,48vh,540px);aspect-ratio:auto;min-height:0}.guidance p{font-size:16px;color:var(--ink)}}

/* The result is an announcement target, not an interactive control. */
#result-panel:focus{outline:none}

/* Optional visual observations share Kera's quiet, flat reading layout. */
.visual-section{margin-top:48px;padding:35px 0 10px;max-width:1136px}.visual-intro{display:flex;align-items:center;justify-content:space-between;gap:24px}.visual-section h2{font-size:36px;font-weight:400;line-height:1.1;letter-spacing:-.045em;margin:0 0 12px}.visual-intro p,.visual-description{font-size:16px;line-height:1.5;margin:0;max-width:67ch}.visual-description{margin-top:24px}.vision-results{margin-top:32px}.vision-results:focus{outline:none}.vision-results h3{font-size:30px;line-height:1.12;letter-spacing:-.04em;font-weight:400;margin:0 0 20px}.vision-quality{font-size:16px;line-height:1.5;max-width:70ch;margin-bottom:28px}.visual-finding{display:grid;grid-template-columns:240px 200px minmax(0,1fr);align-items:baseline;gap:22px;padding:20px 0}.visual-finding h4{font-size:17px;font-weight:400;margin:0}.visual-state{font-size:14px;color:var(--muted)}.visual-finding p{font-size:16px;line-height:1.5;margin:0}.vision-limitation{font-size:15px;line-height:1.5;max-width:72ch;margin:26px 0 0;color:var(--muted)}.vision-busy{display:flex;align-items:center;gap:14px;margin-top:26px;font-size:16px;flex-wrap:wrap}.vision-loader{width:17px;height:17px;border:2px solid var(--surface);border-top-color:var(--ink);border-radius:50%;animation:vision-turn 1s linear infinite}.vision-previews{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.vision-previews figure{margin:0;min-width:0}.vision-previews img{width:100%;height:170px;object-fit:contain;background:var(--surface)}.vision-previews figcaption{font-size:13px;line-height:1.5;margin-top:10px}.vision-consent{display:flex;gap:14px;align-items:flex-start;cursor:pointer;font-size:16px;line-height:1.5;margin-top:22px}.vision-consent input{width:19px;height:19px;accent-color:var(--ink);flex-shrink:0;margin:3px 0}.side-upload{position:relative;overflow:hidden;cursor:pointer}.side-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.side-upload:focus-within{outline:3px solid currentColor;outline-offset:3px}#vision-dialog{max-width:650px}#vision-dialog .dialog-header h2{max-width:16ch}#vision-form>.small-note{margin:16px 0 24px}#vision-connection{background:var(--surface);padding:14px}#vision-dialog .small-note{font-size:13px}.vision-previews .text-button{font-size:13px}.vision-previews #remove-side{margin-left:12px}.visual-section .small-note{max-width:74ch}
@keyframes vision-turn{to{transform:rotate(360deg)}}
@media(max-width:1050px){.visual-finding{grid-template-columns:190px 165px minmax(0,1fr);gap:18px}}
@media(max-width:740px){.visual-section{margin-top:36px;padding-top:20px}.visual-intro{display:block}.visual-intro .button{margin-top:22px}.visual-section h2{font-size:31px}.visual-finding{grid-template-columns:1fr;gap:9px;padding:20px 0}.visual-state{font-size:13px}.vision-previews{gap:16px}.vision-previews img{height:130px}.vision-previews #remove-side{margin-left:0}.vision-consent{font-size:15px}.visual-description{font-size:15px}}
@media(prefers-reduced-motion:reduce){.vision-loader{animation:none}}
/* Keep capture guidance and privacy copy readable at every viewport. */
.notice,.model-note,.small-note,.footer p,.footer .text-button,.empty-state p,.next-note p{font-size:16px;line-height:1.5;color:var(--ink)}
.empty-state p{color:var(--stage-muted)}
.notice{max-width:65ch}.footer p{max-width:44ch}

/* Short photo and region instructions, with large reading and touch targets. */
.region-heading{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.scan-details .region-heading h2{flex:1;min-width:0;margin:0}
.region-help-button{flex-shrink:0;width:48px;height:48px;padding:0;border:2px solid var(--ink);border-radius:50%;background:transparent;font-size:24px;font-weight:700;line-height:1}
.region-help-button:hover{background:var(--surface)}
#region-help-dialog{padding:0;max-width:760px;max-height:90svh;overflow:hidden}
.region-help-shell{display:flex;flex-direction:column;max-height:90svh}
.region-help-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px 18px;flex-shrink:0}
.region-help-header h2{margin:0;font-size:28px;line-height:1.2;font-weight:400;letter-spacing:-.025em}
#region-help-title:focus{outline:none}
/* taste-skill-ignore: Preserve the existing accessible guide close control contributed upstream. */ .region-help-close{flex-shrink:0;width:48px;height:48px;border:1px solid var(--ink);border-radius:50%;background:transparent;font-size:30px;line-height:1}
.region-help-close:hover{background:var(--surface)}
.region-help-body{overflow:auto;min-height:0;padding:0 28px;font-size:18px;line-height:1.55;overscroll-behavior:contain}
.region-help-body p{font-size:inherit;line-height:inherit;margin:0 0 16px}
.region-help-body h3{font-size:21px;line-height:1.3;margin:24px 0 14px;font-weight:700}
.region-help-body ol{margin:0 0 20px;padding-left:28px}
.region-help-body li{padding-left:5px;margin-bottom:14px}
.region-help-options{border:0;margin:22px 0 0;padding:0;min-width:0}
.region-help-options legend{padding:0;margin-bottom:12px;font-size:18px;font-weight:700}
.region-help-choices{display:flex;gap:12px;flex-wrap:wrap}
.region-help-choices label{display:flex;align-items:center;gap:10px;padding:12px 14px;min-height:52px;border:2px solid var(--muted);border-radius:4px;cursor:pointer;flex:1;min-width:210px}
.region-help-choices label:has(input:checked){border-color:var(--ink);background:var(--surface)}
.region-help-choices input{width:20px;height:20px;margin:0;accent-color:var(--ink);flex-shrink:0}
.region-help-footer{padding:18px 28px 24px;flex-shrink:0}
.region-help-footer .button{width:100%;min-height:52px;font-size:18px}
@media(max-width:480px){.region-help-header{padding:18px 20px 14px}.region-help-header h2{font-size:25px}.region-help-body{padding:0 20px}.region-help-footer{padding:16px 20px 20px}.region-help-choices label{min-width:0;flex-basis:100%}}

/* Keep the session decisions readable while photos are processed in the background. */
.scan-session{margin:0 0 26px}
.scan-session p{font-size:17px;line-height:1.5;margin:0 0 9px}
.scan-session .session-count{font-size:21px;font-weight:700}
#session-failures{margin:14px 0 0;padding-left:22px;color:var(--error);font-size:16px;line-height:1.5}
#session-failures li{margin-bottom:10px}
.session-actions{margin-top:24px}
.other-hand-tip,.averaging-note,.session-action-note,.average-caption{font-size:16px;line-height:1.5;margin:0 0 14px}
.averaging-note{color:var(--muted)}
.session-action-note{margin-top:20px}
.session-buttons{display:flex;flex-direction:column;gap:12px}
.session-buttons .button{width:100%;min-height:54px;font-size:18px}
.secondary-button{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.secondary-button:hover:not(:disabled){background:var(--surface)}
.secondary-button:disabled{border-color:var(--surface)}
.average-caption{font-weight:700;margin-bottom:22px}
.visual-finding .finding-guidance{margin-top:12px;font-size:15px;line-height:1.5;color:var(--ink)}

/* Camera-first workspace, shared across desktop and mobile. */
:root{--bg:#f5f5f5;--surface:#e9e9e9;--ink:#191919}
.skip-link{position:fixed;top:8px;left:8px;z-index:5;padding:12px;background:var(--ink);color:var(--bg);transform:translateY(-150%)}.skip-link:focus{transform:none}
/* taste-skill-ignore: Structural mode navigation follows the approved mockup; the rule separates navigation from capture. */ .header{height:94px;max-width:1440px;padding:0 40px;display:grid;grid-template-columns:1fr auto 1fr;gap:32px;border-bottom:1px solid #d9d9d9}.brand{width:136px}.mode-tabs{align-self:stretch;display:flex;gap:30px}.mode-tabs button{border:0;border-bottom:3px solid transparent;background:none;padding:0 12px;font-size:17px;color:var(--muted);min-height:48px}.mode-tabs button[aria-selected=true]{border-bottom-color:var(--ink);color:var(--ink);font-weight:600}.mode-tabs button:hover{color:var(--ink)}.guide-button{justify-self:end;display:flex;align-items:center;gap:14px;min-height:48px;background:none;border:0;font-size:16px}.guide-mark{display:grid;place-items:center;width:32px;height:32px;border:1.5px solid currentColor;border-radius:50%;font-size:22px}
main{max-width:1440px;padding:26px 40px 0}.workspace-context{display:flex;gap:12px;color:var(--muted);font-size:12px;letter-spacing:.13em;text-transform:uppercase;margin:0 0 28px}.workspace-context span+span::before{content:'/';margin-right:12px}.workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:52px;align-items:start}.scan-details{padding:34px 0 0}.view-heading{margin-bottom:14px}.viewfinder{height:clamp(340px,54vh,620px);min-height:0;aspect-ratio:auto;border-radius:8px}.empty-state p{max-width:28ch}.viewfinder canvas{touch-action:auto}body[data-analysis=hb] .viewfinder canvas{touch-action:none}
.camera-toolbar{justify-content:flex-start;gap:24px;margin-top:12px;min-height:48px}.camera-tools{margin-right:auto}.camera-toolbar .text-button{min-height:48px;font-size:16px}.camera-toolbar .button{min-height:48px}.notice{font-size:14px;max-width:64ch;margin-top:14px;color:#505050}.additional-photo{display:flex;align-items:center;gap:14px;margin-top:12px;font-size:14px}.additional-photo img{width:64px;height:64px;object-fit:cover;border-radius:4px}.additional-photo button{margin-left:auto}.additional-photo span{color:var(--muted)}body[data-analysis=hb] .additional-photo{display:none}
/* taste-skill-ignore: Review categories use the approved mockup's flat list dividers, not decorative cards. */ .visual-section{margin:0;padding:0;max-width:none}.visual-intro{display:block}.visual-intro h1{font-size:36px;font-weight:600;letter-spacing:-.045em;line-height:1.1;margin:0 0 14px;text-wrap:balance}.visual-intro p{font-size:17px;line-height:1.5;max-width:40ch}.review-categories{list-style:none;padding:0;margin:30px 0}.review-categories li{font-size:17px;line-height:1.4;padding:17px 0;border-bottom:1px solid #d9d9d9}.review-categories li:last-child{border-bottom:0}.review-action{margin-top:26px}.review-limitation,.permission-note{font-size:14px;line-height:1.5;color:#505050;margin:0 0 14px}.review-action .button{width:100%;font-size:17px;min-height:54px;border-radius:18px}.permission-note{text-align:center;margin:12px 0 0}.visual-finding{display:block;padding:22px 0}.visual-finding h4{font-size:18px;margin-bottom:8px}.visual-state{display:block;margin-bottom:12px}.vision-quality{margin-bottom:12px}.vision-results h3{font-size:28px}.vision-limitation{font-size:15px}.vision-busy{margin-top:22px}.visual-section .small-note{font-size:14px;line-height:1.5}.footer{padding:32px 0 22px;margin-top:28px;align-items:center;gap:24px}.footer p,.footer .text-button{font-size:13px;color:#505050}.footer>div{display:flex;gap:24px}.footer .text-button{min-height:44px}.model-note{font-size:14px}.region-button small{font-size:14px}.region-button{min-height:78px}.panel-copy{color:var(--ink)}
@media(min-width:1100px){.camera-panel{position:sticky;top:24px}.scan-details{min-height:62vh}}
@media(max-width:1050px){.header{padding-inline:28px;gap:20px}.workspace{grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:32px}main{padding-inline:28px}.mode-tabs{gap:10px}.viewfinder{height:clamp(320px,49vh,520px)}.visual-intro h1{font-size:32px}}
@media(max-width:740px){.header{height:auto;min-height:138px;padding:22px 22px 0;grid-template-columns:1fr auto;column-gap:16px;row-gap:14px}.brand{width:126px}.guide-button{grid-column:2;grid-row:1;padding:0;min-width:44px;justify-content:flex-end}.guide-button>span:first-child{display:none}.guide-mark{width:34px;height:34px}.header .mode-tabs{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;width:100%;gap:0;margin:0;align-self:end}.mode-tabs button{padding:14px 4px 17px;font-size:17px;min-height:55px}.workspace-context{display:none}main{padding:22px 22px 0}.workspace{display:flex;flex-direction:column;gap:26px}.view-heading{margin-bottom:12px}.view-heading h2{font-size:16px}.camera-status{font-size:13px}.viewfinder{width:100%;height:auto;aspect-ratio:4/3;min-height:0;max-height:none;border-radius:7px}.empty-state{padding:20px 16px}.empty-state .nail-mark{width:34px;height:40px;margin-bottom:12px}.empty-state h3{font-size:24px;margin-bottom:10px}.empty-state p{font-size:14px;line-height:1.4;margin-bottom:16px}.empty-state .button{min-height:44px;padding:12px 18px;font-size:15px}.camera-toolbar{gap:14px;flex-wrap:wrap;margin-top:8px}.camera-tools{gap:8px}.camera-toolbar .text-button{font-size:15px}.camera-toolbar #retake-button{padding:10px 0}.camera-toolbar #add-angle{margin-left:auto}.camera-toolbar .button{font-size:15px;padding:12px 16px}.notice{font-size:13px;line-height:1.5;margin-top:7px}.scan-details{padding:0;width:100%;min-width:0}.visual-intro h1{font-size:28px;line-height:1.14;margin-bottom:10px}.visual-intro p{font-size:16px}.review-categories{margin:24px 0}.review-categories li{padding:15px 0;font-size:16px}.review-action{position:static;background:var(--bg);padding:0;margin-top:24px}.review-limitation{font-size:13px;margin-bottom:12px}.review-action .button{min-height:54px;border-radius:16px;font-size:18px}.permission-note{font-size:13px;margin:10px 0 0}.visual-finding{padding:20px 0}.visual-finding h4{font-size:18px}.visual-state{font-size:14px}.footer{margin-top:14px;padding:16px 0 20px;gap:8px;display:block}.footer>div{justify-content:space-between;gap:20px}.footer .text-button{font-size:13px;margin:0;padding-top:10px}.footer p{font-size:13px;max-width:none}.footer .text-button:last-child{display:none}#vision-dialog{max-height:92svh;padding:24px}#vision-dialog .dialog-header h2{font-size:28px}.vision-previews img{height:120px}.vision-consent{font-size:16px}#vision-form .button{width:100%;min-height:52px}body[data-analysis=skin] #photo{cursor:default}body[data-analysis=skin] .notice{display:none}}
@media(max-width:374px){.header{padding-inline:16px}main{padding-inline:16px}.camera-tools .text-button,.camera-toolbar .text-button{font-size:14px}.camera-toolbar{gap:10px}.visual-intro h1{font-size:26px}}
/* Keep mobile actions in document flow so they cannot cover categories or results. */
@media(max-width:740px){html{scroll-padding-bottom:20px}body[data-analysis=skin] main{padding-bottom:max(20px,env(safe-area-inset-bottom))}.review-action{position:static;inset:auto;margin:24px 0 0;padding:0;border:0;z-index:auto}.review-limitation{text-wrap:pretty}.footer{margin-top:24px}}
@media(max-width:740px){.camera-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 16px}.camera-tools{grid-column:1;grid-row:1;margin:0}.camera-toolbar #retake-button,.camera-toolbar #capture-button{grid-column:2;grid-row:1;justify-self:end}.camera-toolbar #add-angle{grid-column:1/-1;grid-row:2;justify-self:start;margin-left:0}.camera-toolbar #add-angle:not([hidden]){padding-top:0;padding-bottom:0}}
.skip-link:not(:focus){width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Touch marking uses display zoom; saved boxes remain in original photo pixels. */
#touch-editor-button{width:100%;margin:0 0 18px;min-height:48px}
#touch-editor{width:calc(100% - 32px);max-width:760px;max-height:94dvh;padding:24px;overflow:hidden}
#touch-editor[open]{display:flex;flex-direction:column}
.touch-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.touch-editor-header h2{font-size:27px;font-weight:500;letter-spacing:-.035em;margin:0}.touch-editor-body{overflow:auto;min-height:0;padding:12px 0}.touch-regions,.touch-tools{display:flex;gap:8px;margin-bottom:10px}.touch-regions button,.touch-tools button,.touch-zoom button,.touch-adjust button{min-height:44px;padding:10px 14px;border:0;border-radius:6px;background:var(--surface);color:var(--ink);font-size:15px}.touch-regions button{flex:1}.touch-regions button[aria-pressed=true],.touch-tools button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.touch-tools button{flex:1}.touch-zoom{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px}.touch-zoom label{white-space:nowrap}.touch-zoom input{min-width:30px;width:100%;accent-color:var(--ink)}.touch-zoom button{padding:8px 12px;flex-shrink:0}.touch-zoom #touch-zoom-value{font-variant-numeric:tabular-nums}#touch-canvas{display:block;width:100%;height:clamp(180px,34dvh,360px);background:#292929;border-radius:4px;touch-action:none;user-select:none}#touch-message{font-size:15px;line-height:1.4;margin:12px 0 8px;min-height:42px}#touch-readout{font-size:13px;margin:0 0 10px;font-variant-numeric:tabular-nums}.touch-adjust summary{min-height:44px;padding:10px 0;cursor:pointer;font-size:15px}.touch-adjust>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}.touch-adjust button{font-size:14px;padding:8px 4px}.touch-editor-footer{flex-shrink:0;padding-top:12px}.touch-editor-footer .button{width:100%;min-height:52px}.touch-editor-footer p{font-size:12px;line-height:1.4;text-align:center;margin:9px 0 0}.mobile-scan-dock{display:none}
@media(max-width:740px){#touch-editor{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:16px max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.touch-editor-header h2{font-size:25px}.touch-zoom{gap:6px}.touch-zoom button{padding-inline:10px}.touch-editor-body{overscroll-behavior:contain}.mobile-scan-dock:not([hidden]){display:block;position:fixed;bottom:0;left:0;right:0;z-index:3;background:var(--bg);padding:10px max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));box-shadow:0 -1px 0 #d9d9d9}.mobile-scan-dock>p{font-size:14px;line-height:1.4;margin:0 0 8px}.mobile-scan-dock .session-buttons{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px}.mobile-scan-dock .session-buttons .button{font-size:16px;padding:12px 10px;min-height:52px;border-radius:14px}.has-scan-dock main{padding-bottom:calc(var(--scan-dock-height,130px) + 24px)}html:has(.has-scan-dock){scroll-padding-bottom:calc(var(--scan-dock-height,130px) + 20px)}}
#torch-button{min-height:44px;padding:10px 14px;background:var(--surface);border-radius:6px}#torch-button[aria-pressed=true]{background:var(--ink);color:var(--bg)}body[data-analysis=skin] #torch-note:not([hidden]){display:block}
@media(max-width:740px){.camera-toolbar #torch-button{grid-column:1/-1;grid-row:2;justify-self:start;margin:0}}

.camera-adjustment-panel{margin:0 0 28px;padding:16px 0;border-block:1px solid var(--surface);font-size:15px;line-height:1.5}.camera-adjustment-panel summary{cursor:pointer;min-height:44px;display:list-item;align-content:center}.camera-adjustment-choice{display:flex;gap:12px;align-items:center;min-height:52px;cursor:pointer}.camera-adjustment-choice input{width:22px;height:22px;flex-shrink:0;accent-color:var(--ink)}.camera-adjustment-choice strong{white-space:nowrap;font-variant-numeric:tabular-nums}.camera-adjustment-panel p,.adjustment-caption{font-size:14px;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}.camera-adjustment-panel p{margin:8px 0}.adjustment-caption:empty{display:none}

.sticker-panel{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--surface)}.sticker-panel h2{font-size:27px;line-height:1.1;letter-spacing:-.04em;margin:0 0 12px}.sticker-panel label{display:block;font-size:14px;margin:18px 0 8px}.sticker-panel select{font:inherit;color:var(--ink);background:var(--surface);border:0;border-radius:6px;min-height:48px;padding:12px;width:100%;max-width:100%}.sticker-panel summary{min-height:44px;align-content:center;cursor:pointer;font-size:14px}.sticker-panel ol,.sticker-panel details p{font-size:14px;line-height:1.6;color:var(--muted)}.sticker-panel ol{padding-left:22px}.sticker-panel li+li{margin-top:10px}.sticker-file-actions{display:flex;flex-wrap:wrap;gap:16px}.sticker-file-actions button{min-height:44px}.touch-regions{flex-wrap:wrap}.touch-regions button{flex:1 1 28%}#sticker-save{width:100%;margin-top:16px}

.selection-box[data-sticker-patch=true]:not(.is-active)>span{display:none}.sticker-detection{margin:16px 0}

.capture-countdown{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:rgb(0 0 0 / .16);color:#fff;pointer-events:none;text-align:center}.capture-countdown strong{display:block;font-size:clamp(80px,12vw,120px);font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.countdown-caption{display:block;font-size:16px;margin-top:12px}.screen-reader-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:740px){.camera-toolbar #capture-delay{grid-column:1/-1;grid-row:3;width:100%;margin-top:8px;min-height:48px}}
