.app-shell.is-recognition-entry,.app-shell.is-final-recognition{height:100vh;height:100dvh;overflow:hidden}
.app-shell.is-recognition-entry>.brandbar,.app-shell.is-recognition-entry>.bottom-nav,.app-shell.is-final-recognition>.brandbar,.app-shell.is-final-recognition>.bottom-nav{display:none}
.app-shell.is-recognition-entry>.app-main,.app-shell.is-final-recognition>.app-main{height:100%;min-height:0;padding:0;overflow:hidden}
.recognition-camera{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#171912;color:#fff;position:relative}
.recognition-camera__top{padding:max(18px,env(safe-area-inset-top)) 14px 10px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center}
.recognition-camera__top h1{font-size:20px;line-height:1.2;margin:0}
.recognition-camera__top button{width:44px;height:44px;border:0;background:rgba(255,255,255,.1);border-radius:50%;color:#fff;font-size:26px}
.recognition-camera__frame{margin:0 16px;border-radius:24px;overflow:hidden;position:relative;display:grid;place-items:center;background:#292e27}
.recognition-camera__frame>strong{position:absolute;top:18px;font-size:12px;font-weight:600;color:#bfc5ba}
.recognition-camera__frame>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#292e27}
.recognition-camera__frame.is-live>strong{display:none}
.recognition-camera__frame p{position:absolute;left:12px;right:12px;bottom:16px;margin:0;text-align:center;font-size:14px;color:#fff;text-shadow:0 1px 8px #000}
.recognition-camera__guide{display:block;border:2px solid rgba(223,244,119,.95);box-shadow:0 0 0 999px rgba(0,0,0,.12);border-radius:22px;width:min(52%,210px);height:min(70%,380px)}
.recognition-camera__guide.is-shelf{width:88%;height:56%;border-radius:16px}
.recognition-camera__notice{margin:8px 20px 0;text-align:center;color:#f6e6bd;font-size:13px}
.recognition-camera__controls{padding:12px 20px max(18px,env(safe-area-inset-bottom));display:grid;justify-items:center;gap:9px;background:linear-gradient(180deg,rgba(23,25,18,0),#171912 18%)}
.recognition-camera__modes{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:#2b3027;min-width:220px}
.recognition-camera__modes button{min-height:40px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:#d6d8d2;font:inherit;font-weight:700}
.recognition-camera__modes button[aria-pressed=true]{background:#dff477;color:#1c2416}
.recognition-camera__shutter{width:68px;height:68px;border:5px solid #fff;border-radius:50%;background:#dff477;box-shadow:inset 0 0 0 4px #171912}
.recognition-camera__gallery{border:0;background:transparent;color:#dff477;text-decoration:underline;font:inherit;min-height:32px}
.recognition-camera__controls>p{margin:0;font-size:13px;color:#c8cec2}
.recognition-result-host,.recognition-result{height:100%;min-height:0}
.recognition-result{display:grid;grid-template-rows:48px minmax(0,1fr) calc(304px + env(safe-area-inset-bottom));background:#f4f2ec;color:#211f1b;position:relative;overflow:hidden}
.recognition-result.is-browse{grid-template-rows:48px minmax(0,1fr) calc(240px + env(safe-area-inset-bottom))}
.recognition-result.is-top{grid-template-rows:48px minmax(0,1fr) calc(330px + env(safe-area-inset-bottom))}
.recognition-result>header{display:grid;grid-template-columns:minmax(44px,auto) 1fr auto;align-items:center;padding:max(5px,env(safe-area-inset-top)) 12px 4px;gap:8px;background:#f4f2ec;z-index:2}
.recognition-result>header h1{font-size:17px;text-align:center;margin:0}
.recognition-result>header button{border:0;background:transparent;min-height:40px;color:#273214;font:inherit;font-size:13px;font-weight:700}
.recognition-result__status{position:absolute;top:52px;left:50%;transform:translateX(-50%);z-index:3;box-sizing:border-box;max-width:calc(100% - 24px);background:#211f1b;color:#fff;border-radius:14px;padding:7px 12px;margin:0;font-size:12px;line-height:1.25;text-align:center}
.recognition-result__photo{min-height:0;display:grid;place-items:center;background:#252821;overflow:hidden;position:relative;touch-action:none}
.recognition-result__scene{position:relative;display:grid;place-items:center;transform-origin:center;will-change:transform}
.recognition-result__scene>img{width:100%;height:100%;object-fit:contain;display:block}
.recognition-result__scene>div{position:absolute;inset:0}
.recognition-result__marker{position:absolute;translate:-50% -50%;transform:scale(var(--inv,1));transform-origin:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;border:2px solid #fff;background:#263017;color:#fff;font-weight:800;box-shadow:0 2px 9px rgba(0,0,0,.5)}
.recognition-result__marker.is-selected{background:#dff477;color:#1c2416;scale:1.12}
.recognition-result__region{position:absolute;margin:0;padding:0;border:1px solid rgba(223,244,119,.72);border-radius:4px;background:rgba(223,244,119,.04);color:#fff;box-shadow:0 0 0 1px rgba(20,24,17,.22) inset;min-width:0;min-height:0}
.recognition-result__region>span{position:absolute;left:2px;top:2px;display:grid;place-items:center;min-width:16px;height:16px;padding:0 3px;border-radius:6px;background:rgba(28,36,22,.76);font-size:9px;font-weight:800;line-height:1;transform:scale(var(--inv,1));transform-origin:top left}
.recognition-result__region.is-selected{border:2px solid #dff477;background:rgba(223,244,119,.14);box-shadow:0 0 0 2px rgba(28,36,22,.5)}
.recognition-result__fit{position:absolute;right:12px;bottom:10px;border:0;border-radius:999px;background:rgba(30,31,27,.86);color:#fff;padding:8px 12px;font:inherit;font-size:12px;font-weight:700}
.recognition-result__dock{height:calc(304px + env(safe-area-inset-bottom));box-sizing:border-box;padding:6px 10px max(6px,env(safe-area-inset-bottom));display:grid;grid-auto-rows:max-content;align-content:start;background:#f4f2ec;border-radius:18px 18px 0 0;box-shadow:0 -8px 22px rgba(24,22,18,.14);z-index:2;overflow:auto}
.recognition-result.is-browse .recognition-result__dock{height:calc(240px + env(safe-area-inset-bottom))}
.recognition-result.is-top .recognition-result__dock{height:calc(330px + env(safe-area-inset-bottom))}
.recognition-result__modes{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:12px;background:#e4e0d6;height:50px;box-sizing:border-box}
.recognition-result__modes button{border:0;border-radius:9px;background:transparent;color:#5e5a52;font:inherit;font-size:13px;font-weight:800}
.recognition-result__modes button[aria-pressed=true]{background:#fff;color:#263017;box-shadow:0 1px 4px rgba(32,31,27,.12)}
.recognition-result__card{height:64px;width:100%;display:grid;grid-template-columns:54px 1fr;align-items:center;text-align:left;border:0;background:transparent;padding:2px 8px;gap:10px;color:inherit}
.recognition-result__card>span:last-child{min-width:0;display:grid;gap:1px}
.recognition-result__card strong,.recognition-result__card small,.recognition-result__card span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recognition-result__card strong{font-size:14px}.recognition-result__card small,.recognition-result__card span span{font-size:11px;color:#69645b}
.recognition-result__card.is-static{cursor:default}
.recognition-result__packshot{width:46px;height:58px;display:grid;place-items:center;background:#fff;border-radius:10px;overflow:hidden;flex:none}
.recognition-result .recognition-result__packshot>img{display:block;width:100%!important;height:100%!important;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain}.recognition-result__packshot.is-missing{color:#938d83}
.recognition-result__empty{height:64px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.recognition-result__empty button{min-width:max-content;border:0;background:transparent;text-decoration:underline}
.recognition-result__dock nav{height:60px;display:grid;grid-template-columns:42px minmax(0,1fr) 62px 42px;align-items:center;gap:5px;border-top:1px solid #dedad1}
.recognition-result__dock nav button{border:0;background:transparent;min-height:42px;font:inherit;font-weight:700;color:#313427}
.recognition-result__dock nav label{display:grid;grid-template-rows:auto auto;gap:2px;text-align:center;font-size:11px;font-weight:700}.recognition-result__dock nav input{width:100%;accent-color:#596f25}
.recognition-result__styles{height:44px;display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}
.recognition-result__styles button{border:1px solid #d2cec3;background:#fff;border-radius:999px;min-height:32px;padding:0 13px;white-space:nowrap;color:#34322d}
.recognition-result__styles button[aria-pressed=true]{background:#263017;border-color:#263017;color:#fff}
.recognition-result__ranking{height:64px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.recognition-result__ranking button{border:1px solid #c7c2b7;background:#fff;border-radius:14px;padding:6px 8px;font:inherit;font-size:12px;font-weight:750;line-height:1.15;color:#2e2b26}.recognition-result__ranking button span{display:none}.recognition-result__ranking button[aria-pressed=true]{border-color:#53651f;background:#e7f59f;color:#263017}.recognition-result__ranking button[aria-pressed=true] span{display:inline}
.recognition-result__ranking button:disabled{opacity:.5;background:#ece9e1;color:#625f58}
.recognition-result__browse-note,.recognition-result__value-note{margin:2px 8px;color:#69645b;font-size:10px;line-height:1.25}.recognition-result__value-note{color:#625d50}
.recognition-result__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.38);z-index:10}
.recognition-result__sheet{position:absolute;left:0;right:0;bottom:0;max-height:82%;display:grid;grid-template-rows:auto minmax(0,1fr);background:#f7f5ef;border-radius:22px 22px 0 0;z-index:11;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 30px rgba(0,0,0,.2)}
.recognition-result__sheet header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #ddd8cd}.recognition-result__sheet h2{font-size:19px;margin:2px 0}.recognition-result__sheet header small{color:#6c675e}.recognition-result__sheet header button{border:0;background:#e6e2d9;border-radius:50%;width:38px;height:38px;font-size:20px}
.recognition-result__sheet ol{overflow:auto;list-style:none;padding:0 14px 24px;margin:0}.recognition-result__sheet li{min-height:70px;display:grid;grid-template-columns:24px minmax(0,1fr) 38px;align-items:center;gap:6px;border-bottom:1px solid #e0dcd2}.recognition-result__sheet li>button{border:0;background:transparent}.recognition-result__sheet li>button[data-recognition-row]{min-height:70px;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;text-align:left;gap:8px;color:inherit}.recognition-result__sheet li>button[data-recognition-row]>span:last-child{display:grid;min-width:0}.recognition-result__sheet li strong,.recognition-result__sheet li small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recognition-result__sheet li small{color:#706b62}.recognition-result__sheet li>button[data-recognition-open]{font-size:26px;min-height:44px}.recognition-result__unknown{width:40px;height:50px;border-radius:9px;background:#e2ded5;display:grid;place-items:center;font-weight:800;color:#777168}
.recognition-result__candidate-sheet{max-height:min(82%,430px)}
.recognition-result__candidate-sheet li.recognition-result__candidate{display:block;min-height:74px}
.recognition-result__candidate-sheet li.recognition-result__candidate>button,.recognition-result__candidate-sheet li.recognition-result__candidate>div{box-sizing:border-box;width:100%;min-height:74px;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;padding:6px 2px;border:0;background:transparent;color:inherit;text-align:left}
.recognition-result__candidate-sheet li.recognition-result__candidate>button>span:last-child,.recognition-result__candidate-sheet li.recognition-result__candidate>div>span:last-child{display:grid;gap:3px;min-width:0}
.recognition-result__candidate-sheet .recognition-result__candidate-empty{display:block;padding:20px 2px;color:#706b62}
@media(max-width:340px){.recognition-result__dock{padding-left:6px;padding-right:6px}.recognition-result__ranking{gap:5px}.recognition-result__ranking button{font-size:11px;padding:5px}.recognition-camera__top h1{font-size:18px}}
@media(min-width:700px){.recognition-camera,.recognition-result{max-width:430px;margin:0 auto;box-shadow:0 0 40px rgba(0,0,0,.18)}}
