@layer reset,tokens,base,layout,components,utilities;@layer tokens{:root{color-scheme:light dark;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: .875rem;--text-sm: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.75rem;--text-3xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 18px;--touch-min: 56px;--shutter-size: 72px;--shutter-core: 48px;--z-0: 0;--z-10: 10;--z-100: 100;--z-1000: 1000;--bg: oklch(.985 .003 250);--surface: oklch(1 0 0);--surface-2: oklch(.955 .006 250);--text: oklch(.24 .02 255);--text-muted: oklch(.45 .022 255);--border: oklch(.86 .01 250);--border-strong: oklch(.58 .02 255);--accent: oklch(.42 .13 255);--accent-hover: oklch(.36 .13 255);--accent-text: oklch(.99 0 0);--accent-soft: oklch(.94 .03 255);--danger: oklch(.45 .19 25);--danger-hover: oklch(.39 .19 25);--danger-text: oklch(.99 0 0);--danger-soft: oklch(.955 .028 25);--warn: oklch(.48 .12 75);--warn-soft: oklch(.96 .04 85);--ok: oklch(.42 .11 150);--focus: oklch(.5 .17 255);--shadow: 0 1px 2px oklch(0 0 0 / .08);--scrim: oklch(.16 .02 255 / .86)}:root[data-theme=dark]{--bg: oklch(.18 .012 255);--surface: oklch(.225 .014 255);--surface-2: oklch(.27 .016 255);--text: oklch(.96 .006 255);--text-muted: oklch(.78 .015 255);--border: oklch(.38 .018 255);--border-strong: oklch(.62 .02 255);--accent: oklch(.74 .13 255);--accent-hover: oklch(.8 .12 255);--accent-text: oklch(.16 .02 255);--accent-soft: oklch(.3 .05 255);--danger: oklch(.7 .16 25);--danger-hover: oklch(.76 .15 25);--danger-text: oklch(.16 .02 255);--danger-soft: oklch(.3 .06 25);--warn: oklch(.82 .12 85);--warn-soft: oklch(.31 .05 85);--ok: oklch(.78 .12 150);--focus: oklch(.8 .14 255);--shadow: 0 1px 2px oklch(0 0 0 / .5);--scrim: oklch(.1 .01 255 / .9)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: oklch(.18 .012 255);--surface: oklch(.225 .014 255);--surface-2: oklch(.27 .016 255);--text: oklch(.96 .006 255);--text-muted: oklch(.78 .015 255);--border: oklch(.38 .018 255);--border-strong: oklch(.62 .02 255);--accent: oklch(.74 .13 255);--accent-hover: oklch(.8 .12 255);--accent-text: oklch(.16 .02 255);--accent-soft: oklch(.3 .05 255);--danger: oklch(.7 .16 25);--danger-hover: oklch(.76 .15 25);--danger-text: oklch(.16 .02 255);--danger-soft: oklch(.3 .06 25);--warn: oklch(.82 .12 85);--warn-soft: oklch(.31 .05 85);--ok: oklch(.78 .12 150);--focus: oklch(.8 .14 255);--shadow: 0 1px 2px oklch(0 0 0 / .5);--scrim: oklch(.1 .01 255 / .9)}}}@layer reset,tokens,base,layout,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box}html,body,h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0;padding:0}ul,ol{list-style:none}img,video,canvas{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}}@layer base{html{font-size:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;min-height:100vh;-webkit-text-size-adjust:100%}h1,h2,h3{line-height:1.25;font-weight:700}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:no-preference){.btn,.shutter,.mode{transition:background-color .18s ease,border-color .18s ease,color .18s ease}}}@layer layout{.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;justify-content:space-between;padding:var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:var(--z-100)}@media(max-width:479px){.topbar__tagline{display:none}}.topbar__brand{display:flex;flex-direction:column}.topbar__name{font-weight:700;font-size:var(--text-xl);letter-spacing:.01em}.topbar__tagline{color:var(--text-muted);font-size:var(--text-md)}.topbar__controls{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.topbar--open{position:static}.topbar--compact{flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3);align-items:center}.topbar--compact .topbar__brand{flex-direction:row;align-items:baseline;gap:var(--space-2);min-width:0}.topbar--compact .topbar__name{font-size:var(--text-lg)}.topbar--compact .topbar__tagline{display:none}.topbar__settings{min-height:var(--touch-min);min-width:var(--touch-min);margin-left:auto;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);font-size:var(--text-md);font-weight:600;cursor:pointer}.topbar__panel{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;width:100%;padding-top:var(--space-2);border-top:1px solid var(--border)}.main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:var(--space-4)}.main--capture{padding:var(--space-3)}.footer{padding:var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-md);border-top:1px solid var(--border)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}}@layer components{.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-text);padding:var(--space-3);z-index:var(--z-1000)}.skip-link:focus{left:0}.hero{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start}.hero__title{font-size:var(--text-3xl)}.hero__intro{color:var(--text-muted);max-width:60ch}.note{color:var(--text-muted);font-size:var(--text-md)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.card__title{font-size:var(--text-xl)}.btn{min-height:var(--touch-min);min-width:var(--touch-min);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;background:var(--accent);color:var(--accent-text);font-size:var(--text-lg);font-weight:600;cursor:pointer;text-align:center}.btn--primary:hover{background:var(--accent-hover)}.btn--secondary{background:var(--accent-soft);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover{background:var(--surface-2)}.btn--danger{background:var(--danger);color:var(--danger-text)}.btn--danger:hover{background:var(--danger-hover)}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn:disabled{background:var(--surface-2);color:var(--text-muted);border-color:var(--border);cursor:not-allowed}.lang,.theme{display:flex;flex:0 0 auto;gap:var(--space-1);padding:var(--space-1);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md)}.lang__button,.theme__button{min-height:var(--touch-min);padding:var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:var(--text-md);white-space:nowrap;cursor:pointer}.lang__button[aria-pressed=true],.theme__button[aria-pressed=true]{background:var(--surface);color:var(--text);border-color:var(--border-strong);font-weight:600}.modes{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);width:100%}.modes__legend{font-weight:700;padding:0 var(--space-2)}.mode{display:flex;align-items:flex-start;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);cursor:pointer}.mode:has(.mode__input:checked){border-color:var(--accent);border-width:2px;background:var(--accent-soft)}.mode__input{width:28px;height:28px;margin-top:var(--space-1);accent-color:var(--accent)}.mode__body{display:flex;flex-direction:column}.mode__label{font-size:var(--text-lg);font-weight:600}.mode__hint{color:var(--text-muted);font-size:var(--text-md)}.form{display:flex;flex-direction:column;gap:var(--space-3)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label,.defect__label{font-weight:600;font-size:var(--text-md)}.field__hint{color:var(--text-muted);font-size:var(--text-md)}.input{min-height:var(--touch-min);width:100%;padding:var(--space-3);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-md)}.input--area{min-height:96px;resize:vertical}.records{display:flex;flex-direction:column;gap:var(--space-2)}.record{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.record__title{font-weight:600;font-size:var(--text-lg)}.record__meta{color:var(--text-muted);font-size:var(--text-md)}.badge{align-self:flex-start;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border-strong);font-size:var(--text-md);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.badge--danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger);font-weight:700}.badge--warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.datalist{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:var(--space-2) var(--space-3)}.datalist dt{font-weight:600;color:var(--text-muted)}.capture{display:flex;flex-direction:column;gap:var(--space-2)}.capture__head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.capture__title{font-size:var(--text-xl)}.room-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-3);align-items:center;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.room-bar__id{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.room-bar__label{color:var(--text-muted);font-size:var(--text-md);white-space:nowrap}.room-bar__value{font-size:var(--text-lg);overflow-wrap:anywhere}.room-bar__chip{justify-self:end;padding:var(--space-1) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:var(--text-md);font-weight:600;white-space:nowrap}.room-bar__chip--ok{background:var(--accent-soft);border-color:var(--accent)}.room-bar__chip--pending{background:var(--warn-soft);border-color:var(--warn)}.room-bar__actions{grid-column:1 / -1;display:flex;gap:var(--space-2);flex-wrap:wrap}.room-bar__actions .btn{flex:1 1 140px;font-size:var(--text-md);padding-left:var(--space-2);padding-right:var(--space-2);white-space:nowrap}.room-correct{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.room-correct__row{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.room-correct__row .input{flex:1 1 200px}.room-correct__id{font-family:var(--font-mono);font-size:var(--text-md);color:var(--text-muted);overflow-wrap:anywhere;word-break:break-all}.photo-filter{display:flex;gap:var(--space-2);flex-wrap:wrap}.photo-filter .btn{flex:1 1 160px;font-size:var(--text-md)}.preview{position:relative;width:100%;aspect-ratio:3 / 4;max-height:38vh;background:var(--scrim);border:1px solid var(--border-strong);border-radius:var(--radius-lg);overflow:hidden;touch-action:manipulation}.preview__video{width:100%;height:100%;object-fit:cover;pointer-events:none}.preview__video--mirror{transform:scaleX(-1)}.preview__message{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4);text-align:center;color:var(--accent-text);background:var(--scrim)}.preview__message-text{font-size:var(--text-lg);max-width:32ch}.preview__message-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.upload{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer}.preview__pin{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border:3px solid var(--accent-text);border-radius:50%;background:var(--danger);pointer-events:none;z-index:var(--z-10)}.capture__hint{margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:var(--text-md);font-weight:600}.capture__hint--ready{border-left-color:var(--accent)}.status{min-height:var(--touch-min);display:flex;align-items:center;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);font-size:var(--text-lg);font-weight:600}.status--error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.capture__actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.shutter{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:var(--shutter-size);min-width:var(--shutter-size);max-width:100%;padding:var(--space-2) var(--space-5);border-radius:var(--radius-lg);border:2px solid var(--accent-text);background:var(--accent);color:var(--accent-text);font-size:var(--text-lg);font-weight:700;cursor:pointer}.shutter__core{width:var(--shutter-core);height:var(--shutter-core);flex:0 0 auto;border-radius:50%;background:var(--accent-text)}.shutter__label{white-space:nowrap}.shutter:disabled{background:var(--surface-2);color:var(--text-muted);border-color:var(--border);cursor:not-allowed}.shutter:disabled .shutter__core{background:var(--border-strong)}.defects{display:flex;flex-direction:column;gap:var(--space-3)}.defects__title{font-size:var(--text-xl)}.defects__list{display:flex;flex-direction:column;gap:var(--space-4)}.defects__item{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.thumb{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}.thumb__image{width:min(320px,100%);height:auto;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-2)}.thumb__warning{color:var(--danger);font-weight:600;font-size:var(--text-md)}.defect{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.defect__code{font-size:var(--text-lg);font-family:var(--font-mono)}.defect__note{color:var(--text-muted);font-size:var(--text-md)}.defect__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}}@layer utilities{.preview--inactive{height:auto;max-height:none;aspect-ratio:auto}.preview--inactive .preview__video{display:none}.preview--inactive .preview__message{position:static}@media(max-width:480px){.main--capture{padding:var(--space-1) var(--space-2) calc(100px + env(safe-area-inset-bottom))}.capture{gap:var(--space-1)}.capture__title{font-size:var(--text-lg);line-height:1.2}.room-bar{grid-template-columns:minmax(0,1fr);gap:var(--space-1);padding:var(--space-1) var(--space-2)}.room-bar__id{flex-wrap:wrap;gap:var(--space-1)}.room-bar__value{font-size:var(--text-md);line-height:1.2;word-break:normal;overflow-wrap:normal;max-width:100%}.room-bar__chip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;border:0}.room-bar__actions{grid-column:auto;flex-wrap:nowrap;gap:var(--space-1)}.room-bar__actions .btn{flex:1 1 0;min-width:var(--touch-min);white-space:normal;padding:var(--space-1);line-height:1.2}.room-bar:has(.room-bar__chip--ok){grid-template-columns:minmax(0,1fr) auto}.room-bar:has(.room-bar__chip--ok) .room-bar__actions{max-width:120px}.preview{height:clamp(100px,calc(100dvh - 440px),260px);min-height:100px;max-height:none;aspect-ratio:auto}.capture__hint,.status{padding:var(--space-1) var(--space-2);font-size:var(--text-md);line-height:1.2}.status{min-height:0}.capture__actions{position:fixed;z-index:var(--z-100);bottom:0;left:0;right:0;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.capture__actions .shutter{flex:1 1 144px;max-width:280px;min-width:var(--shutter-size);gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-md);line-height:1.2}.shutter__core{width:var(--space-5);height:var(--space-5);flex-shrink:0}.shutter__label{white-space:normal}.capture__actions>.btn{flex:1 1 120px;max-width:160px;min-width:var(--touch-min);white-space:normal;padding:var(--space-1) var(--space-2);line-height:1.2}.topbar--compact>.btn{padding:var(--space-1) var(--space-2)}.main--capture:has(.capture__actions>.btn:nth-child(3)){padding-bottom:var(--space-2)}.capture__actions:has(>.btn:nth-child(3)){position:sticky}.preview--inactive{height:auto;min-height:0}.preview--inactive .preview__message{padding:var(--space-2);gap:var(--space-2)}}@media(min-width:640px){.main{padding:var(--space-5)}.main--capture{padding:var(--space-4)}.capture__title{font-size:var(--text-2xl)}.preview{max-height:60vh}.room-bar{grid-template-columns:auto minmax(0,1fr) auto}.room-bar__chip{justify-self:start}.room-bar__actions{grid-column:3;grid-row:1;justify-content:flex-end}.room-bar__actions .btn{flex:0 0 auto;font-size:var(--text-lg);padding-left:var(--space-4);padding-right:var(--space-4)}}@media(min-width:860px){.capture{max-width:640px;margin:0 auto}}}
