
:root{
  --petrol:#0b6f86;--accent:#c9e45c;--accent-press:#b5d044;--petrol-ink:#075569;--petrol-tint:#d4ecf1;
  --ground:#eaf3f5;--card:#fff;--ink:#12262d;--ink-2:#34494f;--ink-3:#4f666d;
  --line:#d3e4e8;--line-strong:#8fb0b8;--soft:#e1edf0;
  --stop:#99190f;--stop-solid:#b3261a;--stop-tint:#ffdcd6;--stop-wash:#fff3f1;
  --wait:#6b4500;--wait-tint:#ffe7a3;--done:#08654a;--done-tint:#d8f3e7;
  --veil:#ffffff2b;
  --r-control:14px;--r-card:20px;--r-stage:28px;--tab-h:66px;
  --shadow-float:0 10px 28px #0b3a4624;--shadow-sheet:0 20px 60px #0b2a3338;
  --ease:cubic-bezier(.2,.9,.25,1);--t-press:100ms;--t-feedback:140ms;--t-arrive:220ms;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans Devanagari","Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ground);-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font-size:1rem;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100svh}
h1,h2,h3,p,ol,ul,dl,dd{margin:0;padding:0}ol,ul{list-style:none}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
input{font:inherit;color:inherit}
::selection{background:var(--petrol-tint);color:var(--ink)}
:focus-visible{outline:3px solid var(--petrol);outline-offset:2px;border-radius:6px}
.stage :focus-visible,.top :focus-visible{outline-color:#fff}
.num{font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ── App shell ── */
.app{min-height:100svh;background:var(--ground);max-width:560px;margin:0 auto;position:relative}
.top{position:sticky;top:0;z-index:20;background:var(--petrol);color:#fff;padding:calc(10px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:8px;font-weight:750;font-size:1.1875rem;letter-spacing:-.02em}
.brand svg{width:26px;height:26px;color:var(--accent)}
.lang{display:flex;background:var(--veil);border-radius:999px;padding:3px;border:0}
.lang span{padding:5px 11px;border-radius:999px;font-size:.8125rem;font-weight:700;transition:background-color var(--t-feedback),color var(--t-feedback)}
.lang span.on{background:#fff;color:var(--petrol)}
.stage{background:var(--petrol);color:#fff;padding:4px 20px 24px;border-radius:0 0 var(--r-stage) var(--r-stage);display:grid;gap:6px}
.stage h1{font-size:clamp(1.75rem,8vw,2.125rem);font-weight:750;letter-spacing:-.03em;line-height:1.1;text-wrap:balance}
.stage p{color:#ffffffeb}
.stage-chip{justify-self:start;padding:5px 11px;border-radius:999px;background:var(--veil);font-size:.8125rem;font-weight:700}
.screen{padding:14px 16px calc(var(--tab-h) + 40px);display:grid;gap:12px;align-content:start}
.h2{font-size:1.0625rem;font-weight:750;letter-spacing:-.01em;padding:6px 4px 0}
.group{background:var(--card);border-radius:var(--r-card);overflow:hidden}
.group>*+*{border-top:1px solid var(--line)}
.row{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:60px;width:100%;background:none;border:0;text-align:left;transition:background-color var(--t-feedback)}
button.row:active{background:var(--petrol-tint)}
.row-body{flex:1;min-width:0;display:grid;gap:1px}
.row-title{font-size:1.0625rem;font-weight:650}
.row-sub{font-size:.875rem;color:var(--ink-3)}
.textbtn{justify-self:start;border:0;background:none;padding:6px 0 0;min-height:32px;font-size:.875rem;font-weight:650;color:var(--petrol-ink);text-decoration:underline;text-underline-offset:3px}
.chev{width:9px;height:9px;border-right:2px solid var(--line-strong);border-top:2px solid var(--line-strong);transform:rotate(45deg);flex:none}

.state{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.8125rem;font-weight:700;white-space:nowrap}
.state::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.s-stop{background:var(--stop-tint);color:var(--stop)}
.s-wait{background:var(--wait-tint);color:var(--wait)}
.s-done{background:var(--done-tint);color:var(--done)}
.s-plain{background:var(--petrol-tint);color:var(--petrol-ink)}
.s-soft{background:var(--soft);color:var(--ink-3)}

.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:12px 18px;border:1.5px solid transparent;border-radius:var(--r-control);font-size:1.0625rem;font-weight:700;transition:transform var(--t-press) var(--ease),background-color var(--t-feedback),opacity var(--t-feedback)}
.button:active:not(:disabled){transform:scale(.97)}
.button:disabled{opacity:.5;cursor:not-allowed}
.b-primary{background:var(--accent);color:var(--ink)}
.b-primary:active:not(:disabled){background:var(--accent-press)}
.b-secondary{background:#fff;color:var(--petrol-ink);border-color:var(--line-strong)}
.b-stop{background:var(--stop-solid);color:#fff}
.b-block{width:100%}
.button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#d9e8ec;border-radius:var(--r-control);padding:3px}
.seg button{border:0;background:none;padding:9px 4px;border-radius:11px;font-size:.875rem;font-weight:650;color:var(--ink-2);min-height:40px;transition:background-color var(--t-feedback),color var(--t-feedback)}
.seg button[aria-pressed="true"]{background:#fff;color:var(--petrol-ink)}

.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-control);font-size:.9375rem;font-weight:550}
.n-wait{background:var(--wait-tint);color:var(--wait)}
.n-stop{background:var(--stop-tint);color:var(--stop)}
.n-done{background:var(--done-tint);color:var(--done)}
.notice svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}

/* Floating tab bar */
.tabbar{position:fixed;z-index:30;left:50%;transform:translateX(-50%);width:min(calc(100vw - 24px),536px);bottom:calc(14px + env(safe-area-inset-bottom));height:var(--tab-h);padding:6px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;border-radius:24px;background:#ffffffeb;-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);box-shadow:var(--shadow-float),0 1px 0 #ffffffcc inset}
.tabbar button{border:0;background:none;display:grid;justify-items:center;align-content:center;gap:3px;border-radius:18px;color:var(--ink-3);font-size:.8125rem;font-weight:650;transition:transform var(--t-press) var(--ease),background-color var(--t-feedback),color var(--t-feedback)}
.tabbar button:active{scale:.94}
.tabbar button[aria-current="page"]{background:var(--petrol-tint);color:var(--petrol-ink)}
.tabbar:has(button:nth-child(5)) button{font-size:.75rem}
.tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ── Logger: Due now ── */
.next{background:#fff;border-radius:var(--r-card);padding:16px;display:grid;gap:14px}
.next-h{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.next-name{font-size:1.3125rem;font-weight:750;letter-spacing:-.02em;line-height:1.2}
.shots{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.shot{position:relative;aspect-ratio:3/4;border-radius:12px;border:1.5px dashed var(--line-strong);display:grid;align-items:end;justify-items:center;padding-bottom:6px;font-size:.75rem;font-weight:650;color:var(--ink-3);overflow:hidden;background:none}
.shot svg.photo{position:absolute;inset:0;width:100%;height:100%}
.shot span{position:relative}
.shot.done{border:0;color:#fff}
.shot.done::after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(#0000,#000a)}
.shot.done span{z-index:1}
.shot.cur{border:2px solid var(--petrol);color:var(--petrol-ink);background:var(--petrol-tint)}
.shot.landing{animation:land 420ms var(--ease) both}
@keyframes land{from{transform:scale(.86);filter:blur(6px) brightness(1.6)}to{transform:none;filter:none}}
.camhint{font-size:.8125rem;color:var(--ink-3);text-align:center;margin-top:-6px}
.field{display:grid;gap:6px}
.field label{font-size:.9375rem;font-weight:650;color:var(--ink-2)}
.input{width:100%;min-height:54px;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-control);background:#fff;font-size:1.25rem;font-weight:700;caret-color:var(--petrol);transition:border-color var(--t-feedback),box-shadow var(--t-feedback)}
.input:focus{outline:0;border-color:var(--petrol);box-shadow:0 0 0 4px var(--petrol-tint)}
.input.bad{border-color:var(--stop-solid);box-shadow:0 0 0 4px var(--stop-tint)}
.hint{font-size:.875rem;color:var(--ink-3)}
.hint.bad{color:var(--stop);font-weight:650}
.stepper{display:grid;grid-template-columns:54px 1fr 54px;align-items:center;gap:8px}
.stepper button{min-height:54px;border-radius:var(--r-control);border:1.5px solid var(--line-strong);background:#fff;font-size:1.5rem;font-weight:600;color:var(--petrol-ink)}
.stepper output{text-align:center;font-size:1.75rem;font-weight:750}
.timer-bar{height:6px;border-radius:999px;background:var(--veil);overflow:hidden;margin-top:4px}
.timer-bar i{display:block;height:100%;background:var(--accent);border-radius:inherit}

/* ── Reviewer: DMS copy sheet ── */
.car{padding:14px 16px;display:grid;gap:10px}
.car-h{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.car-name{font-size:1.0625rem;font-weight:700;letter-spacing:-.01em;background:none;border:0;padding:0;text-align:left}
.figs{display:grid;grid-template-columns:1.3fr 1.3fr .8fr .8fr;background:var(--ground);border-radius:12px;padding:4px}
.fig{border:0;background:none;text-align:left;padding:6px 8px;border-radius:9px;display:grid;transition:background-color var(--t-feedback)}
.fig:active{background:var(--petrol-tint)}
.fig small{font-size:.75rem;font-weight:650;color:var(--ink-3)}
.fig b{font-size:1.1875rem;font-weight:700;letter-spacing:-.01em}
.car.flagged .figs{background:var(--stop-wash)}
.car-f{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.8125rem;color:var(--ink-3)}
.judge{border:0;background:none;padding:6px 0;color:var(--stop);font-weight:700;font-size:.875rem;text-decoration:underline;text-underline-offset:3px}
.tick{width:44px;height:44px;border-radius:50%;border:2px solid var(--petrol);background:#fff;display:grid;place-items:center;flex:none;transition:background-color var(--t-feedback),transform var(--t-press) var(--ease)}
.tick:active:not(:disabled){transform:scale(.92)}
.tick svg{width:22px;height:22px;fill:none;stroke:var(--petrol);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.tick[aria-pressed="true"]{background:var(--petrol)}
.tick[aria-pressed="true"] svg{stroke:#fff}
.tick:disabled{border-color:var(--line);opacity:.6;cursor:not-allowed}
.tick:disabled svg{stroke:var(--line-strong)}
.car.entered{opacity:.62}
.toast{position:fixed;z-index:60;left:50%;bottom:calc(var(--tab-h) + 30px);transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:.9375rem;font-weight:650;white-space:nowrap;pointer-events:none;animation:toast 1.6s var(--ease) both}
@keyframes toast{0%{opacity:0;transform:translate(-50%,8px)}12%,80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}

/* ── Owner: Odometer chain ── */
.chain{display:flex;align-items:stretch}
.link{flex:1;display:grid;justify-items:center;padding:6px 0;border-radius:10px;background:var(--petrol-tint);color:var(--petrol-ink);font-size:.6875rem;font-weight:650;border:0;min-width:0}
.link i{font-style:normal;font-size:.9375rem;font-weight:750}
.link.today{background:var(--accent);color:var(--ink)}
.link.idle{background:#eef3f4;color:var(--ink-3)}
.link.flag{box-shadow:inset 0 0 0 2px var(--stop-solid)}
.join{width:8px;align-self:center;height:3px;background:var(--petrol);flex:none}
.break{flex:none;align-self:stretch;margin:0 3px;padding:4px 5px;border-radius:8px;border:0;background:var(--stop-solid);color:#fff;font-size:.625rem;font-weight:750;writing-mode:vertical-rl;transform:rotate(180deg);line-height:1;transition:transform var(--t-press) var(--ease)}
.break:active{transform:rotate(180deg) scale(.94)}
.break.settled{background:var(--ink-3)}
.km{font-size:.875rem;color:var(--ink-3);white-space:nowrap}.km b{font-size:1.5rem;color:var(--ink);letter-spacing:-.02em}


.nw{white-space:nowrap}
.car-h>div{min-width:0}
.ocr{display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:center;background:var(--ground);border-radius:var(--r-control);padding:10px}
.ocr>div:last-child{display:grid;gap:2px}
.ocr-crop{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden}
.ocr-crop svg{position:absolute;width:250%;height:250%;left:-75%;top:-125%}
.ocr-num{font-size:1.75rem;font-weight:750;letter-spacing:-.02em;line-height:1.1}
.ocr.busy .ocr-crop::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#0000 30%,#ffffff55 50%,#0000 70%);background-size:250% 100%;animation:scan 1.1s linear infinite}
@keyframes scan{from{background-position:120% 0}to{background-position:-120% 0}}
.top-r{display:flex;align-items:center;gap:8px}
.sample-tag{font-size:.6875rem;font-weight:750;letter-spacing:.04em;color:#ffffffd1}
.state svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.state:has(svg)::before{display:none}
button.state{border:0;min-height:32px;transition:transform var(--t-press) var(--ease)}
button.state:active{transform:scale(.96)}
.s-solid{background:var(--stop-solid);color:#fff}
.chain-flags{display:flex;flex-wrap:wrap;gap:6px}
.join.cut{width:16px;height:0;background:none;border-top:3px dashed var(--stop-solid)}
.join.cut.settled{border-top-color:var(--ink-3)}
.fig small{display:flex;align-items:center;gap:4px}
.fig small svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.fig.copied small{color:var(--petrol-ink)}
.fig.copied small svg{opacity:1;stroke-width:3}
.judge.calm{color:var(--petrol-ink)}
.actions.sticky{position:sticky;bottom:calc(-24px - env(safe-area-inset-bottom));margin:0 -16px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:var(--ground);box-shadow:0 -1px 0 var(--line)}
.sheet:focus{outline:none}
.delta svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ── Sheet ── */
.scrim{position:fixed;inset:0;z-index:40;background:#0b2a3366;opacity:0;transition:opacity 200ms var(--ease)}
.scrim.on{opacity:1}
.sheet{position:fixed;z-index:50;left:0;right:0;bottom:0;margin:0 auto;max-width:560px;max-height:92svh;display:flex;flex-direction:column;background:var(--ground);border-radius:26px 26px 0 0;box-shadow:var(--shadow-sheet);transform:translateY(100%);will-change:transform}
.grab{border:0;background:none;padding:10px 0 6px;display:grid;place-items:center;cursor:grab;touch-action:none;flex:none}
.grab::before{content:"";width:40px;height:5px;border-radius:999px;background:var(--line-strong)}
.sheet-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:2px 18px 10px;flex:none}
.sheet-h h2{font-size:1.375rem;font-weight:750;letter-spacing:-.02em;line-height:1.2}
.close{width:44px;height:44px;border-radius:50%;border:0;background:#d9e8ec;display:grid;place-items:center;flex:none;margin:-4px -6px 0 0}
.close svg{width:18px;height:18px;fill:none;stroke:var(--ink-2);stroke-width:2.4;stroke-linecap:round}
.sheet-body{overflow-y:auto;padding:0 16px calc(24px + env(safe-area-inset-bottom));display:grid;gap:12px;scrollbar-width:none}
.pset{background:#fff;border-radius:var(--r-card);padding:14px;display:grid;gap:10px}
.pset-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pset-h b{font-size:1rem}
.pset-h span{font-size:.8125rem;color:var(--ink-3)}
.pthumbs{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;height:180px}
.pthumbs .ph{position:relative;border-radius:10px;overflow:hidden;background:#cfdde1}
.pthumbs .ph:first-child{grid-row:1/3}
.pthumbs .ph svg{position:absolute;inset:0;width:100%;height:100%}
.pthumbs .ph em{position:absolute;left:6px;bottom:5px;font-style:normal;font-size:.6875rem;font-weight:700;color:#fff;text-shadow:0 1px 2px #0008}
.meta{display:flex;flex-wrap:wrap;gap:6px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pair figure{margin:0;background:#fff;border-radius:16px;padding:8px;display:grid;gap:6px}
.pair .ph{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden}
.pair .ph svg{position:absolute;inset:0;width:100%;height:100%}
.pair figcaption{font-size:.8125rem;color:var(--ink-3);display:grid}
.pair figcaption b{color:var(--ink);font-size:.9375rem}
.delta{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:750;color:var(--stop);font-size:1.0625rem}
.quote{background:#fff;border-radius:var(--r-control);padding:12px 14px;font-size:.9375rem;color:var(--ink-2)}
.quote b{display:block;font-size:.8125rem;color:var(--ink-3)}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.reasons{display:grid;gap:8px}
.reason{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 16px;background:#fff;border-radius:var(--r-control);border:1.5px solid transparent;font-size:1.0625rem;font-weight:650;text-align:left}
.reason[aria-pressed="true"]{border-color:var(--petrol);background:var(--petrol-tint);color:var(--petrol-ink)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.9375rem}
.kv dt{color:var(--ink-3)}.kv dd{font-weight:650;text-align:right}

.view .screen{animation:arrive var(--t-arrive) var(--ease) both}
@keyframes arrive{from{transform:translateY(8px)}to{transform:none}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
}
@media (prefers-reduced-transparency:reduce){.tabbar{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (prefers-contrast:more){:root{--ink-3:#2f454b;--line:#8fb0b8}.tabbar{background:#fff;box-shadow:0 0 0 2px var(--ink)}}

/* ── Real-app additions ── */
.stage-btn{justify-self:start;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:0;background:var(--veil);color:#fff;font-size:.8125rem;font-weight:700;min-height:36px}
.stage-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.daynav{display:flex;align-items:center;gap:6px}
.daynav button{width:40px;height:36px;border-radius:12px;border:0;background:var(--veil);color:#fff;display:grid;place-items:center}
.daynav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.shot.uploading{border:2px solid var(--petrol);background:var(--petrol-tint)}
.shot.uploading span::after{content:"…"}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pthumbs .ph img,.pair .ph img,.ocr-crop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph.gone{display:grid;place-items:center;color:var(--ink-3);font-size:.75rem;font-weight:650;background:var(--soft)}
.form{display:grid;gap:14px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.input.small{font-size:1.0625rem;font-weight:600}
select.input{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%2312262d' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:40px}
textarea.input{min-height:110px;font-size:1rem;font-weight:500;resize:vertical}
.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:1rem;font-weight:600}
.check input{width:22px;height:22px;accent-color:var(--petrol)}
.pinbox{background:var(--ink);color:#fff;border-radius:var(--r-control);padding:16px;text-align:center;display:grid;gap:4px}
.pinbox b{font-size:2rem;letter-spacing:.2em;font-variant-numeric:tabular-nums}
.empty{background:#fff;border-radius:var(--r-card);padding:22px 18px;color:var(--ink-2);text-align:center;display:grid;gap:10px;justify-items:center}
.signin{min-height:100svh;display:grid;align-content:start}
.signin .stage{padding-top:calc(28px + env(safe-area-inset-top));padding-bottom:30px}
.err{background:var(--stop-tint);color:var(--stop);padding:12px 14px;border-radius:var(--r-control);font-weight:600}
.link-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mini{font-size:.8125rem;color:var(--ink-3)}
.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--petrol-tint);border-top-color:var(--petrol);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.meter-view{border-radius:var(--r-control);overflow:hidden;background:var(--ink);max-height:240px;display:grid;place-items:center}
.meter-view img{width:100%;max-height:240px;object-fit:contain;display:block}

/* ── Odo's own camera ── */
.cam{position:fixed;inset:0;z-index:100;background:#000;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.cam-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cam-top,.cam-bottom,.cam-hint,.cam-msg{position:relative;z-index:1}
.cam-top{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 12px max(14px,env(safe-area-inset-left));background:linear-gradient(#000b,#0000);text-align:center;font-size:1rem}
.cam-x,.cam-flip{width:44px;height:44px;border-radius:50%;border:0;background:#ffffff2e;color:#fff;font-size:1.15rem;display:grid;place-items:center}
.cam-hint{align-self:center;margin:0 16px;background:#000a;padding:8px 14px;border-radius:999px;font-size:.9375rem;font-weight:600;text-align:center}
.cam-msg{align-self:center;max-width:320px;margin:0 16px;background:#fff;color:var(--ink);padding:18px;border-radius:18px;text-align:center;font-weight:600}
.cam-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;padding:18px 24px calc(26px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#000b)}
.cam-shutter{width:78px;height:78px;border-radius:50%;border:4px solid #fff;background:transparent;padding:5px}
.cam-shutter i{display:block;width:100%;height:100%;border-radius:50%;background:var(--accent);transition:transform var(--t-press) var(--ease)}
.cam-shutter:active i{transform:scale(.9)}
.cam-shutter:disabled{opacity:.35}
.cam-flash::after{content:"";position:absolute;inset:0;z-index:2;background:#fff;animation:camflash .3s ease-out forwards}
@keyframes camflash{from{opacity:.9}to{opacity:0}}
