@font-face{font-family:Ysabeau Infant;src:url(/fonts/YsabeauInfant-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Ysabeau Infant;src:url(/fonts/YsabeauInfant-SemiBold.ttf) format("truetype");font-weight:600 700;font-display:swap}:root{color-scheme:light;--color-teal: #009aa8;--color-teal-dark: #006d75;--color-teal-light: #e6f3f4;--color-slate: #2a4b6d;--color-slate-active: #21395a;--color-camel: #c49462;--color-bg: #f7f8f7;--color-text: #222222;--color-text-muted: #656c80;--color-border: #e8e5e0;--color-danger: #c8452f;--color-mint: var(--color-teal);--color-mint-light: var(--color-teal-light);--color-pink: var(--color-teal);--color-pink-dark: var(--color-teal-dark);--touch-target-min: 44px;--font-display: "Ysabeau Infant", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background-color:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}button{font:inherit}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.touch-target{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.screen-role{margin:0 0 2px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-mint)}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-shell__main{flex:1;padding:16px;padding-bottom:calc(var(--touch-target-min) + 24px + env(safe-area-inset-bottom,0px))}.app-shell__header{position:sticky;top:0;z-index:10;padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));background-color:var(--color-slate);color:#fff}.app-shell__header-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-shell__brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:1.25rem;letter-spacing:-.01em;color:#fff}.app-shell__logo{width:26px;height:26px;flex:0 0 auto}.admin-tabs{display:flex;gap:8px;margin:0 0 16px}.admin-tabs .secondary-button{width:auto;margin-top:0}.app-shell__logout{padding:6px 14px;border:1px solid rgba(255,255,255,.5);border-radius:8px;background:transparent;color:#fff;font-weight:600;cursor:pointer}.app-shell__nav{position:fixed;inset-inline:0;bottom:0;z-index:10;display:flex;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-color:var(--color-slate);border-top:1px solid var(--color-slate-active)}.app-shell__nav-link{position:relative;flex:1;min-width:0;min-height:56px;padding:8px 4px;font-size:.8rem;text-align:center;text-decoration:none;font-weight:600;color:#ffffffd1}.app-shell__nav-link:active{background-color:var(--color-slate-active)}.app-shell__nav-link--active{color:#fff;background-color:var(--color-slate-active);box-shadow:inset 0 3px 0 var(--color-teal)}.queue-indicator{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;text-decoration:none}.queue-indicator__active,.queue-indicator__failed{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 7px;border-radius:11px;font-size:.78rem;font-weight:700;line-height:1}.queue-indicator__active{background-color:#ffffff29;color:#fff}.queue-indicator__failed{background-color:var(--color-danger);color:#fff}.draft-count-badge-link{text-decoration:none}.draft-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 7px;border-radius:11px;font-size:.78rem;font-weight:700;line-height:1;background-color:var(--color-camel);color:#fff}.app-shell__badge{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background-color:var(--color-camel);color:#fff;font-size:.72rem;font-weight:700;line-height:1}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100%;padding:24px;box-sizing:border-box}.login-screen form{display:flex;flex-direction:column;gap:8px;width:100%;max-width:320px}.login-screen__input{width:100%;padding:0 12px;border:1px solid var(--color-border);border-radius:8px;font-size:16px}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100%;padding:24px;box-sizing:border-box;text-align:center;color:var(--color-text-muted)}.toast{position:fixed;left:50%;bottom:calc(var(--touch-target-min) + 16px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:10px 14px;transform:translate(-50%);border-radius:12px;background-color:var(--color-slate);color:#fff;font-weight:600;font-size:.88rem;box-shadow:0 8px 24px #17272f59}.toast__dismiss{padding:0;border:none;background:transparent;color:#fff;font-size:1rem;line-height:1;cursor:pointer;opacity:.8}.toast__dismiss:hover{opacity:1}.app-banners{position:fixed;inset-inline:0;top:0;z-index:18;display:flex;flex-direction:column}.connection-status--offline{padding:8px 16px;background-color:#f4ead2;color:#845d1a;font-weight:600;text-align:center}.update-prompt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;background-color:var(--color-mint-light);color:var(--color-text)}.retake-banner{margin:0 0 8px;padding:8px 12px;border-left:3px solid var(--color-camel);border-radius:8px;background-color:var(--color-teal-light);color:var(--color-text);font-size:.9rem}.slot-warning{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--color-camel);border-radius:8px;background-color:var(--color-teal-light);color:var(--color-text);font-size:.9rem}.slot-warning--stop{border-left-color:var(--color-danger);color:var(--color-danger)}.install-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background-color:var(--color-teal-light);color:var(--color-text);font-size:.85rem}.install-hint__text{margin:0;flex:1}.install-hint__dismiss{flex-shrink:0;padding:0 12px;border:1px solid var(--color-slate);border-radius:8px;background:transparent;color:var(--color-slate);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap}.camera-view{position:relative;margin:-16px -16px 16px;overflow:hidden;background-color:#000}.camera-view__video{display:block;width:100%;height:clamp(280px,calc(100vh - 260px - env(safe-area-inset-bottom,0px)),70vh);height:clamp(280px,calc(100dvh - 260px - env(safe-area-inset-bottom,0px)),70vh);object-fit:cover;background-color:#000}.camera-view__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.camera-view__frame{width:70%;aspect-ratio:3 / 2;border:3px solid var(--color-pink);border-radius:12px}.camera-view__status{position:absolute;left:0;right:0;bottom:12px;margin:0;padding:8px 16px;text-align:center;color:#fff;background-color:#1f2d278c;font-weight:600}.camera-permission{padding:16px;margin-top:12px;background-color:var(--color-mint-light);border-radius:12px}.camera-permission h2{margin:0 0 8px}.scan-unreadable-hint{width:100%;margin-top:12px}.live-camera{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:contain;background-color:#000;color:#fff}.live-camera__videobox{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;justify-content:center}.live-camera__viewport{position:relative;width:100%;height:100%}.live-camera__video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background-color:#000}@supports (container-type: size){.live-camera__videobox{container-type:size}.live-camera__viewport{width:min(100cqw,calc(100cqh * var(--video-aspect, .5625)));height:min(100cqh,calc(100cqw / var(--video-aspect, .5625)));container-type:size}}.live-camera__frame{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;aspect-ratio:var(--frame-aspect, .75);width:100%;height:auto;max-width:100%;max-height:100%;pointer-events:none;border:1px solid rgba(255,255,255,.55);border-radius:4px;box-shadow:0 0 0 999px #0000008c}@supports (container-type: size){.live-camera__frame{width:min(100cqw,calc(100cqh * var(--frame-aspect, .75)));height:min(100cqh,calc(100cqw / var(--frame-aspect, .75)));max-width:none;max-height:none}}.live-camera__topbar,.live-camera__bottombar{position:relative;z-index:2;flex:0 0 auto;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.live-camera__topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));background:linear-gradient(to bottom,#0000008c,#0000000d)}.live-camera__back{flex:0 0 auto;border:none;border-radius:50%;background-color:#ffffff1f;color:#fff;font-size:1.2rem;cursor:pointer}.live-camera__title{display:flex;min-width:0;flex-direction:column;align-items:center;text-align:center}.live-camera__title-brand{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-mint)}.live-camera__title-product{overflow:hidden;max-width:48vw;color:#ffffffbf;font-size:.72rem;white-space:nowrap;text-overflow:ellipsis}.live-camera__counter{flex:0 0 auto;padding:4px 10px;border-radius:999px;background-color:#ffffff24;font-size:.75rem;font-weight:700;white-space:nowrap}.live-camera__error-action{display:block;margin-top:6px;color:inherit;font-weight:700;text-decoration:underline}.live-camera__error{position:relative;z-index:2;flex:0 0 auto;margin:0;padding:8px 16px;background-color:#c8452fd9;color:#fff;font-size:.85rem;font-weight:600;text-align:center}.live-camera__mask{position:relative;z-index:1;display:flex;flex:1 1 auto;min-height:0;align-items:center;justify-content:center;padding:8px max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left))}.live-camera__status{position:relative;z-index:2;align-self:center;max-width:min(92%,420px);margin:6px 0 0;padding:4px 14px;border-radius:999px;background-color:#0006;color:#ffffffeb;font-size:.76rem;font-weight:600;text-align:center;white-space:normal}.live-camera__mask .camera-permission{position:relative;z-index:2;max-width:86%;margin-top:0;background-color:#fffffff5}.live-camera__dock{position:relative;z-index:2;flex:0 0 auto}.live-camera__draft{position:absolute;right:0;bottom:100%;left:0;z-index:2;max-height:40vh;padding:4px max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left));overflow-y:auto;overscroll-behavior:contain}.live-camera__draft:empty{display:none}.live-camera__draft .album-strip{margin:0}.live-camera__draft .album-strip__item{width:56px;height:56px}.live-camera__draft .primary-button{width:auto;min-width:180px;min-height:44px;margin:0 auto;padding:0 24px;background-color:#009aa8d9;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.live-camera__draft .primary-button:active{background-color:#006d75e6}.live-camera__bottombar{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px max(16px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(to top,#0000008c,#0000000d)}@media(orientation:landscape){.live-camera__status{display:none}.live-camera__topbar{padding:max(4px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left))}.live-camera__draft{max-height:32vh}.live-camera__bottombar{flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:6px max(16px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.live-camera__primary-row{width:auto}}.live-camera__formats{display:flex;gap:8px}.live-camera__format-pill{padding:0 16px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background-color:transparent;color:#ffffffbf;font-size:.78rem;font-weight:700;letter-spacing:.02em;cursor:pointer}.live-camera__format-pill[aria-pressed=true]{border-color:var(--color-mint);background-color:#009aa847;color:#fff}.live-camera__primary-row{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}.live-camera__thumb{overflow:hidden;width:56px;height:56px;padding:0;border:2px solid rgba(255,255,255,.3);border-radius:14px;background-color:#ffffff1a;cursor:pointer}.live-camera__thumb img{display:block;width:100%;height:100%;object-fit:cover}.live-camera__shutter{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border:4px solid #fff;border-radius:50%;background-color:var(--color-pink);color:#fff;font-size:1.6rem;box-shadow:0 2px 8px #00000073;cursor:pointer}.live-camera__shutter:active{background-color:var(--color-pink-dark)}.live-camera__shutter:disabled{opacity:.6;cursor:default}.live-camera__more{display:flex;width:56px;height:56px;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;border-radius:50%;background-color:#ffffff1f;color:#fff;font-size:.62rem;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}.live-camera__sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:flex-end;background-color:#0000;opacity:0;pointer-events:none;transition:opacity .2s ease,background-color .2s ease}.live-camera__sheet-backdrop--open{background-color:#00000080;opacity:1;pointer-events:auto}.live-camera__sheet{width:100%;max-height:min(72vh,72dvh);overflow-y:auto;overscroll-behavior:contain;padding:16px 16px calc(var(--touch-target-min) + max(16px,env(safe-area-inset-bottom)));border-radius:16px 16px 0 0;background-color:#fff;color:var(--color-text);box-shadow:0 -4px 16px #0000004d;transform:translateY(12px);transition:transform .2s ease}.live-camera__sheet-backdrop--open .live-camera__sheet{transform:translateY(0)}.live-camera__sheet-close{margin-left:auto;border:none;border-radius:50%;background-color:var(--color-mint-light);color:var(--color-text);font-size:1rem;cursor:pointer}.album-screen__more{margin-top:20px}.album-screen__more h2{margin:0 0 4px;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.native-camera-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.album-strip{display:flex;gap:8px;margin:16px 0 0;padding:0;list-style:none;overflow-x:auto;-webkit-overflow-scrolling:touch}.album-strip__item{position:relative;flex:0 0 auto;width:96px;height:96px;border-radius:10px;overflow:hidden;background-color:var(--color-mint-light)}.album-strip__image{display:block;width:100%;height:100%;object-fit:cover}.album-strip__image--placeholder{display:flex;align-items:center;justify-content:center;padding:4px;background-color:var(--color-gray-light, #e6e8e6);color:var(--color-text-muted, #6b706b);font-size:11px;line-height:1.2;text-align:center}.album-strip__preview-trigger{display:block;width:100%;height:100%;padding:0;margin:0;border:0;background:none;cursor:pointer}.album-strip__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;background-color:#101b17}.album-strip__overlay-image{display:flex;flex:1;align-items:center;justify-content:center;min-height:0;padding:16px}.album-strip__overlay-image img{max-width:100%;max-height:100%;object-fit:contain}.album-strip__overlay-image .album-strip__image--placeholder{width:min(320px,80vw);height:220px}.album-strip__overlay-close{position:absolute;top:16px;right:16px;border:none;border-radius:50%;background-color:#ffffffe6;font-size:1.4rem;line-height:1;cursor:pointer}.album-strip__overlay-controls{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:16px max(16px,env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background-color:#ffffff14}.album-strip__overlay-select{display:flex;align-items:center;gap:10px;min-height:var(--touch-target-min);color:#fff;font-size:.95rem}.album-strip__overlay-select input{flex:0 0 auto;accent-color:var(--color-pink)}.album-strip__overlay-delete.secondary-button{width:100%;min-width:0;margin-top:0;border-color:var(--color-danger);background-color:var(--color-danger);color:#fff;font-weight:600}.album-strip__overlay-delete.secondary-button:active{background-color:#a43a26}.album-strip__item--excluded .album-strip__image,.album-strip__item--excluded .album-strip__image--placeholder{opacity:.35;filter:grayscale(1)}.thumbnail-strip__empty{margin:16px 0 0;color:var(--color-text-muted);text-align:center}.thumbnail-strip{display:flex;gap:8px;margin:16px 0 0;padding:0;list-style:none;overflow-x:auto;-webkit-overflow-scrolling:touch}.thumbnail{position:relative;flex:0 0 auto;width:84px;height:84px;border-radius:10px;overflow:hidden;background-color:var(--color-mint-light);border:2px solid transparent}.thumbnail--failed{border-color:var(--color-danger)}.thumbnail--completed{border-color:var(--color-mint)}.thumbnail__image{display:block;width:100%;height:100%;object-fit:cover}.thumbnail__status{position:absolute;right:4px;bottom:4px;min-width:20px;padding:2px 4px;border-radius:6px;background-color:#1f2d27a6;color:#fff;font-size:.75rem;font-weight:700;text-align:center}.thumbnail__frame{position:relative;display:block;width:100%;height:100%}.thumbnail__button{position:relative;width:100%;height:100%;padding:0;border:none;background:transparent;cursor:pointer}.failed-frame-sheet__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;background-color:#1f2d2780}.failed-frame-sheet{width:100%;padding:20px 16px calc(var(--touch-target-min) + 32px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;background-color:#fff;box-shadow:0 -4px 16px #1f2d2740}.failed-frame-sheet h2{margin:0 0 8px}.failed-frame-sheet p{margin:0 0 12px;color:var(--color-text-muted)}.failed-frame-sheet__actions,.failed-frame-sheet__confirm{display:flex;flex-direction:column;gap:8px}.upload-result-banner{margin:12px 0 0;padding:12px 14px;border-radius:8px;font-weight:700;text-align:center}.upload-result-banner p{margin:0}.upload-result-banner .secondary-button{margin-top:10px;font-weight:600}.upload-result-banner--ok{background-color:var(--color-teal-light);color:var(--color-teal-dark);border:1px solid var(--color-teal)}.upload-result-banner--warn{background-color:#fbe9e6;color:var(--color-danger);border:1px solid var(--color-danger)}.album-screen__capture-actions{display:flex;gap:8px;margin-top:12px}.album-screen__capture-actions .primary-button,.album-screen__capture-actions .secondary-button{flex:1 1 0;min-width:0;width:auto;margin-top:0;font-size:.82rem}.primary-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;margin-top:12px;border:none;border-radius:12px;background-color:var(--color-pink);color:#fff;font-size:1.05rem;font-weight:700;text-decoration:none;cursor:pointer}.primary-button:active{background-color:var(--color-pink-dark)}.primary-button:disabled{opacity:.45;cursor:default}.secondary-button:disabled{opacity:.5;border-color:var(--color-border);color:var(--color-text-muted);cursor:default}.secondary-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:8px;padding:8px 12px;border:2px solid var(--color-mint);border-radius:12px;background-color:transparent;color:var(--color-text);font-weight:600;text-decoration:none;cursor:pointer}.secondary-button:active{background-color:var(--color-mint-light)}.screen-hint{margin:0 0 16px;color:var(--color-text-muted)}.screen-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:8px}.screen-head h1{margin:0}.screen-head .screen-back{margin-bottom:0}.screen-back{width:auto;margin-top:0;margin-bottom:12px;align-self:flex-start;padding:8px 16px}.secondary-button[aria-pressed=true],.secondary-button[aria-current=page]{background-color:var(--color-teal-light);border-color:var(--color-teal-dark);color:var(--color-teal-dark);font-weight:700}.product-card{padding:16px;margin-bottom:12px;background-color:#fff;border:1px solid var(--color-border);border-radius:12px}.product-card__name{margin:0 0 4px;font-size:1.2rem;font-weight:700}.product-card__article{margin:0;color:var(--color-text-muted)}.product-list{margin:0 0 8px;padding:0;list-style:none}.journal-list{margin:0 0 12px;padding:0;list-style:none}.journal-list li{padding:10px 0;border-bottom:1px solid var(--color-border)}.journal-list__row{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:5px;row-gap:2px;justify-content:flex-start;width:100%;padding:0;color:inherit;text-decoration:none}.journal-list__row:active{background-color:var(--color-mint-light)}.journal-list__name{font-weight:600}.journal-list__meta{color:var(--color-text-muted)}.journal-list__meta--alert{color:var(--color-danger);font-weight:600}.journal-summary{font-weight:700}.journal-intro{margin:0 0 12px;color:var(--color-text-muted);font-size:.88rem;line-height:1.45}.journal-party{margin:0 0 12px;padding:8px 12px;border-radius:10px;background-color:var(--color-teal-light);font-weight:600}.journal-party--idle{background-color:transparent;border:1px dashed var(--color-border);color:var(--color-text-muted);font-weight:400}.journal-summary--alert{color:var(--color-danger)}.admin-settings-screen__hint{margin:0 0 16px;color:var(--color-text-muted)}.admin-settings-screen form{display:flex;flex-direction:column;gap:8px;max-width:320px}.admin-settings-screen__input{width:100%;padding:0 12px;border:1px solid var(--color-border);border-radius:8px;font-size:16px}.admin-settings-screen__section{max-width:320px;margin:24px 0 0;padding:0;border:none}.admin-settings-screen__section legend{font-weight:700;padding:0;margin-bottom:8px}.admin-settings-screen__section form{display:flex;flex-direction:column;gap:8px}.admin-settings-screen__barcode-formats{display:flex;flex-wrap:wrap;gap:8px}.admin-settings-screen__barcode-format{gap:6px;padding:0 10px;border:1px solid var(--color-border);border-radius:8px}.admin-users-screen h2{margin:24px 0 8px}.admin-users-screen__input{width:100%;padding:0 12px;border:1px solid var(--color-border);border-radius:8px;font-size:16px}.admin-users-screen__create-form{display:flex;flex-direction:column;gap:8px;max-width:320px}.admin-users-screen__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px}.admin-users-table{width:100%;border-collapse:collapse}.admin-users-table th,.admin-users-table td{padding:8px 4px;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top}.admin-users-table__select{padding:0 8px;border:1px solid var(--color-border);border-radius:8px;font-size:16px;background-color:#fff}.admin-users-table__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.admin-users-table__actions .secondary-button{width:auto;flex:0 0 auto;margin-top:0}.admin-users-table__reset-form .secondary-button{width:auto;margin-top:0}.admin-users-table__reset-form .admin-users-screen__input{max-width:240px}.admin-users-table__reset-form{display:flex;flex-direction:column;gap:4px}.admin-users-table__confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.retake-list{margin:0;padding:0;list-style:none}.retake-list__hint{margin:0 0 16px;color:var(--color-text-muted)}.retake-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-border)}.retake-list__info{flex:1 1 100%;display:flex;flex-wrap:wrap;column-gap:4px;row-gap:2px}.retake-list__actions{display:flex;flex:0 0 auto;gap:8px}.retake-list__actions .secondary-button{width:auto;flex:0 0 auto;margin-top:0}.history-list{margin:0;padding:0;list-style:none}.history-list__item{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-border)}.history-list__info{flex:1 1 100%;display:flex;flex-wrap:wrap;column-gap:10px;row-gap:2px;align-items:baseline}.history-list__when{font-weight:600}.history-list__status{color:var(--color-teal-dark)}.history-list__author{color:var(--color-text-muted);font-size:.85rem}.history-list__filename{flex:1 1 100%;color:var(--color-text-muted);font-size:.78rem;word-break:break-all}.history-list__explain{flex:1 1 100%;color:var(--color-text-muted);font-size:.85rem}.history-list__actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px}.history-list__actions .secondary-button{width:auto;flex:0 0 auto;margin-top:0}.draft-list-screen__warning{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--color-camel);border-radius:8px;background-color:var(--color-teal-light);color:var(--color-text);font-size:.9rem}.draft-list-screen__list{margin:0;padding:0;list-style:none}.draft-list-screen__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-border)}.draft-list-screen__row .secondary-button,.draft-list-screen__row .primary-button{width:auto;flex:1 1 auto}@media(min-width:768px){.app-shell__header{padding:10px 0}.app-shell__header-inner{max-width:980px;margin:0 auto;padding:0 32px;gap:20px;justify-content:flex-start;box-sizing:border-box}.app-shell__logout{margin-left:auto}.app-shell__nav{position:static;inset-inline:auto;bottom:auto;z-index:auto;gap:4px;border-top:none;background:transparent;padding-bottom:0}.app-shell__nav-link{flex:0 0 auto;min-width:0;min-height:44px;padding:0 16px;border-radius:8px}.app-shell__badge{position:static;margin-left:6px}.app-shell__nav-link--active{background-color:transparent;box-shadow:inset 0 -3px 0 var(--color-teal)}.app-shell__nav-link--active:active{background-color:var(--color-slate-active)}.app-shell__main{max-width:980px;width:100%;margin:0 auto;padding:28px 32px 48px}.primary-button,.secondary-button{max-width:380px}.retake-list .secondary-button{max-width:none}.product-card{max-width:560px}.camera-view__video{height:58vh;max-height:560px}.app-shell__main:has(.photo-catalog-screen),.app-shell__main:has(.photo-catalog-product-screen),.app-shell__main:has(.photo-trash-screen){max-width:1280px}.app-shell:has(.photo-catalog-screen) .app-shell__header-inner,.app-shell:has(.photo-catalog-product-screen) .app-shell__header-inner,.app-shell:has(.photo-trash-screen) .app-shell__header-inner{max-width:1280px}}.photo-catalog-screen__topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.photo-catalog-screen__trash-link{width:auto;margin-top:0}.photo-catalog-screen__controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.photo-catalog-screen__search{flex:1 1 100%;min-width:0;padding:0 12px;border:1px solid var(--color-border);border-radius:8px;font-size:16px}.photo-catalog-screen__controls .secondary-button{width:auto;margin-top:0;white-space:nowrap}.photo-catalog-screen__view-toggle{display:flex;overflow:hidden;border:1px solid var(--color-border);border-radius:8px}.photo-catalog-screen__view-btn{min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:0 14px;border:none;border-left:1px solid var(--color-border);background-color:#fff;color:var(--color-text-muted);font-weight:600;font-size:.85rem;cursor:pointer}.photo-catalog-screen__view-btn:first-child{border-left:none}.photo-catalog-screen__view-btn[aria-pressed=true]{background-color:var(--color-teal-light);color:var(--color-teal-dark)}.photo-catalog-screen__coverage{margin:0 0 20px}.photo-catalog-screen__coverage-label{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.photo-catalog-screen__coverage-meter{height:8px;border-radius:4px;background-color:var(--color-border);overflow:hidden}.photo-catalog-screen__coverage-fill{display:block;height:100%;background-color:var(--color-teal)}.photo-catalog-list{margin:0 0 16px;padding:0;list-style:none;background-color:#fff;border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.photo-catalog-list__row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--color-border)}.photo-catalog-list__row:last-child{border-bottom:none}.photo-catalog-list__thumb{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background-color:var(--color-mint-light);color:var(--color-teal-dark);font-weight:700;font-size:.85rem}.photo-catalog-list__link{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:4px 12px;min-width:0;color:inherit;text-decoration:none}.photo-catalog-list__name{flex:1 1 220px;min-width:0;font-weight:600;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-catalog-list__article,.photo-catalog-list__count,.photo-catalog-list__status{flex:0 0 auto;font-size:.8rem;color:var(--color-text-muted)}.photo-catalog-screen__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.photo-catalog-screen__chip{gap:6px;padding:6px 12px;border:1px solid var(--color-border);border-radius:20px;background-color:#fff;font-weight:600;font-size:.85rem;color:var(--color-text-muted)}.photo-catalog-screen__chip[aria-pressed=true]{border-color:var(--color-teal);background-color:var(--color-teal-light);color:var(--color-teal-dark)}.photo-catalog-screen__chip-count{font-variant-numeric:tabular-nums;opacity:.8}.photo-catalog-screen__summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.photo-catalog-screen__stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background-color:#fff;border:1px solid var(--color-border);border-radius:12px}.photo-catalog-screen__stat--accent{background-color:var(--color-teal);color:#fff;border-color:var(--color-teal)}.photo-catalog-screen__stat-label{font-size:.78rem;font-weight:600;opacity:.85}.photo-catalog-screen__stat-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.photo-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:0 0 16px;padding:0;list-style:none}.photo-catalog-grid__item{display:flex;align-items:flex-start;gap:8px;padding:4px;background-color:#fff;border:1px solid var(--color-border);border-radius:12px}.photo-catalog-grid__card{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;color:inherit;text-decoration:none}.photo-catalog-grid__name{font-weight:600;font-size:.92rem}.photo-catalog-grid__article{font-size:.8rem;color:var(--color-text-muted)}.photo-catalog-grid__meta{font-size:.78rem;color:var(--color-text-muted)}.photo-catalog-screen__total,.photo-catalog-screen__inline-loading,.photo-catalog-product-screen__inline-loading{color:var(--color-text-muted);font-size:.85rem}.photo-catalog-screen__bulk-bar{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;background-color:var(--color-slate);color:#fff;border-radius:12px}.photo-catalog-screen__bulk-bar .secondary-button{width:auto;margin-top:0;color:#fff;border-color:#ffffff80}.photo-catalog-product-screen__head{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.photo-catalog-product-screen__head .secondary-button{width:auto;margin-top:0}.photo-catalog-product-screen__meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;align-items:center;color:var(--color-text-muted);font-size:.85rem}.photo-catalog-product-screen__layout{display:flex;flex-direction:column;gap:20px}.photo-catalog-product-screen__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0 0 16px;padding:0;list-style:none}.photo-tile{display:flex;flex-direction:column;gap:6px;padding:10px;background-color:#fff;border:1px solid var(--color-border);border-radius:12px}.photo-tile__img{width:100%;height:120px;object-fit:cover;border-radius:8px;background-color:var(--color-mint-light)}.photo-tile__img-broken{display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--color-text-muted)}.photo-tile__thumb{position:relative;width:100%;height:120px;border-radius:8px;overflow:hidden;background-color:var(--color-mint-light)}.photo-tile__thumb .photo-tile__img{height:100%;border-radius:0;opacity:0;transition:opacity .15s ease-in}.photo-tile__thumb .photo-tile__img.is-loaded{opacity:1}.photo-tile__thumb-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.photo-tile__thumb-spinner:after{content:"";width:20px;height:20px;border:3px solid var(--color-teal-dark);border-top-color:transparent;border-radius:50%;opacity:.6;animation:product-photos-thumb-spin .8s linear infinite}.photo-tile__filename{font-size:.8rem;color:var(--color-text-muted);word-break:break-all}.photo-tile__badge{align-self:flex-start;padding:2px 8px;border-radius:10px;background-color:var(--color-camel);color:#fff;font-size:.72rem;font-weight:700}.photo-tile__badge--external{background-color:var(--color-danger)}.tag--danger{padding:2px 8px;border-radius:10px;background-color:var(--color-danger);color:#fff;font-size:.72rem;font-weight:700}.photo-tile__num{align-self:flex-start;color:var(--color-text-muted);font-size:.78rem;font-weight:700}.photo-tile__actions{display:flex;flex-wrap:wrap;gap:6px}.photo-tile__actions .secondary-button{width:auto;margin-top:0;padding:4px 8px;font-size:.78rem;min-height:32px}.photo-tile--pending{border-style:dashed;opacity:.85}.photo-catalog-product-screen__dropzone{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px;border:2px dashed var(--color-border);border-radius:12px;background-color:var(--color-mint-light)}.photo-catalog-product-screen__dropzone .secondary-button,.photo-catalog-product-screen__dropzone label.secondary-button{width:auto;margin-top:0}.photo-catalog-product-screen__dropzone-hint{flex-basis:100%;margin:0;color:var(--color-text-muted);font-size:.78rem}.photo-catalog-product-screen__aside{display:flex;flex-direction:column;gap:14px}.panel{padding:14px 16px;background-color:#fff;border:1px solid var(--color-border);border-radius:12px}.panel h2{margin:0 0 8px;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.panel p{margin:0 0 6px;font-size:.88rem}.panel .secondary-button{width:100%}.confirm-dialog-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background-color:#17272f80}.confirm-dialog{max-width:400px;width:100%;padding:20px;background-color:#fff;border-radius:14px}.confirm-dialog__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.confirm-dialog__actions .secondary-button,.confirm-dialog__actions .primary-button{flex:1 1 auto;width:auto;min-width:120px;min-height:var(--touch-target-min);margin-top:0;margin-right:0}.replace-dialog{max-width:480px;width:100%;max-height:80vh;overflow-y:auto;padding:20px;background-color:#fff;border-radius:14px}.replace-dialog__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:12px 0;padding:0;list-style:none}.replace-dialog__tile-button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:44px;padding:6px;background-color:#fff;border:1px solid var(--color-border);border-radius:10px;cursor:pointer;text-align:left}.replace-dialog__tile-button:hover,.replace-dialog__tile-button:focus-visible{border-color:var(--color-mint)}.replace-dialog__img{width:100%;height:88px;object-fit:cover;border-radius:8px;background-color:var(--color-mint-light)}.replace-dialog__filename{font-size:.72rem;color:var(--color-text-muted);word-break:break-all}.photo-trash-screen__list{margin:0 0 16px;padding:0;list-style:none}.photo-trash-screen__row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-border)}.photo-trash-screen__preview{flex:0 0 auto;width:72px;height:72px;border-radius:10px;overflow:hidden;background-color:var(--color-mint-light)}.photo-trash-screen__preview-trigger{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}.photo-trash-screen__preview img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .15s ease-in}.photo-trash-screen__preview img.is-loaded{opacity:1}.photo-trash-screen__preview-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.photo-trash-screen__preview-spinner:after{content:"";width:18px;height:18px;border:3px solid var(--color-teal-dark);border-top-color:transparent;border-radius:50%;opacity:.6;animation:product-photos-thumb-spin .8s linear infinite}.photo-trash-screen__preview-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:4px;color:var(--color-text-muted);font-size:.62rem;text-align:center}.photo-trash-screen__info{flex:1 1 200px;display:flex;flex-wrap:wrap;column-gap:10px;row-gap:2px;align-items:baseline;min-width:0}.photo-trash-screen__name{flex:1 1 100%;font-weight:600}.photo-trash-screen__meta{color:var(--color-text-muted);font-size:.85rem}.photo-trash-screen__filename{flex:1 1 100%;color:var(--color-text-muted);font-size:.75rem;word-break:break-all}.photo-trash-screen__actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px}.photo-trash-screen__row .secondary-button{width:auto;flex:0 0 auto;margin-top:0}.photo-trash-screen__row-error{flex:1 1 100%;margin:4px 0 0;color:var(--color-danger)}.photo-trash-screen__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px;background-color:#17272f}.photo-trash-screen__overlay img{max-width:100%;max-height:80vh;object-fit:contain}.photo-trash-screen__overlay .secondary-button{width:auto;min-width:160px;margin-top:0;background-color:#ffffffe6}@media(min-width:768px){.photo-catalog-screen__summary{grid-template-columns:repeat(4,1fr)}.photo-catalog-product-screen__layout{flex-direction:row;align-items:flex-start}.photo-catalog-product-screen__gallery-wrap{flex:1;min-width:0}.photo-catalog-product-screen__aside{flex:0 0 300px}}.product-photos-screen__head{margin-bottom:16px}.product-photos-screen__head h1{margin:0 0 4px;font-size:1.2rem}.product-photos-screen__article{margin:0 0 4px;color:var(--color-text-muted)}.product-photos-screen__counter{margin:0;font-weight:700;color:var(--color-teal-dark)}.product-photos-screen__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0 0 16px;padding:0;list-style:none}.product-photos-screen__tile{display:flex;flex-direction:column;gap:4px}.product-photos-screen__tile .secondary-button{margin-top:0;padding:4px 6px;font-size:.74rem}.product-photos-screen__thumb{display:block;position:relative;width:100%;aspect-ratio:1 / 1;padding:0;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background-color:var(--color-mint-light);cursor:pointer}.product-photos-screen__thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .15s ease-in}.product-photos-screen__thumb img.is-loaded{opacity:1}@keyframes product-photos-thumb-spin{to{transform:rotate(360deg)}}.product-photos-screen__thumb-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.product-photos-screen__thumb-spinner:after{content:"";width:22px;height:22px;border:3px solid var(--color-teal-dark);border-top-color:transparent;border-radius:50%;opacity:.6;animation:product-photos-thumb-spin .8s linear infinite}.product-photos-screen__thumb-broken{display:flex;align-items:center;justify-content:center;height:100%;padding:6px;font-size:.72rem;text-align:center;color:var(--color-text-muted)}.product-photos-screen__degraded{padding:12px 14px;margin-bottom:16px;border:1px solid var(--color-border);border-radius:12px;background-color:#fff}.product-photos-screen__history{margin:8px 0 0;padding:0;list-style:none}.product-photos-screen__history li{padding:6px 0;border-bottom:1px solid var(--color-border)}.product-photos-screen__awaiting{padding:12px 14px;margin-bottom:16px;border:1px solid var(--color-border);border-radius:12px;background-color:var(--color-mint-light)}.product-photos-screen__awaiting h2{margin:0 0 8px;font-size:1rem}.product-photos-screen__awaiting-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.product-photos-screen__awaiting-list li{display:flex;align-items:center;justify-content:space-between;gap:8px}.product-photos-screen__secondary-zone{margin-top:20px;padding-top:12px;border-top:1px solid var(--color-border)}.product-photos-screen__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background-color:#141e1ae6}.product-photos-screen__overlay img{max-width:100%;max-height:100%;object-fit:contain}.product-photos-screen__overlay-close{position:absolute;top:16px;right:16px;border:none;border-radius:50%;background-color:#ffffffe6;font-size:1.4rem;line-height:1;cursor:pointer}.product-gallery-preview{margin-top:16px}.product-gallery-preview__button{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:var(--touch-target-min);padding:12px 14px;border:1px solid var(--color-border);border-radius:12px;background-color:#fff;text-align:left;cursor:pointer;font-weight:700;color:var(--color-teal-dark)}.product-gallery-preview__strip{display:flex;gap:8px;overflow-x:auto;margin:8px 0 0;padding:0;list-style:none;width:100%}.product-gallery-preview__strip li{flex:0 0 auto;width:56px;height:56px;border-radius:8px;overflow:hidden;border:1px solid var(--color-border);background-color:var(--color-mint-light)}.product-gallery-preview__strip img{width:100%;height:100%;object-fit:cover;display:block}.upload-notice{width:100%;padding:8px 16px;font-size:.875rem;text-align:center;background-color:#f3e6d5;color:var(--color-teal-dark)}@media(max-width:767px){.admin-users-table,.admin-users-table tbody,.admin-users-table tr,.admin-users-table td{display:block;width:100%}.admin-users-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.admin-users-table tr{margin-bottom:12px;padding:12px;border:1px solid var(--color-border);border-radius:12px}.admin-users-table td{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 0;border-bottom:none}.admin-users-table td:before{content:attr(data-label);flex:0 0 84px;color:var(--color-text-muted);font-size:.8rem}.admin-users-table td[data-label=Действия]{flex-direction:column;align-items:stretch}.admin-users-table td[data-label=Действия]:before{flex:0 0 auto}.admin-users-table__actions>.secondary-button{flex:1 1 auto}.admin-users-table__confirm .secondary-button{flex:0 0 auto}}
