.crop-editor{display:grid;gap:9px;margin:0 0 12px;padding:12px;border:1px solid #267995;border-radius:12px;background:#e2f7ff;color:#092235}.crop-editor h3,.crop-editor p{margin:0}.crop-editor p{font-size:12px}.crop-preview{position:relative;max-height:260px;overflow:hidden;background:#00131d}.crop-preview img{display:block;width:100%;max-height:260px;object-fit:contain}.crop-box{position:absolute;border:2px solid #62efff;box-shadow:0 0 0 999px #00101c88;touch-action:none;cursor:move}.crop-handle{position:absolute;width:20px;height:20px;border:2px solid #fff;border-radius:50%;background:#159ec3;touch-action:none}.crop-handle.nw{left:-11px;top:-11px;cursor:nwse-resize}.crop-handle.ne{right:-11px;top:-11px;cursor:nesw-resize}.crop-handle.sw{left:-11px;bottom:-11px;cursor:nesw-resize}.crop-handle.se{right:-11px;bottom:-11px;cursor:nwse-resize}.crop-editor label{display:grid;gap:3px;font-size:12px}.crop-actions{display:flex;gap:8px}.crop-actions button{flex:1}.nova-card{margin:10px 0;padding:14px;border:1px solid #7de8ff;border-radius:14px;background:linear-gradient(120deg,#0a425e,#113d79)}.nova-card strong{font-size:20px}.nova-card p{margin:6px 0 0;color:#d6f7ff;font-size:13px}:root{font-family:Pretendard,system-ui,sans-serif;color:#eff8ff;background:#06121e}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#06121e}button,input{font:inherit}button{cursor:pointer}.app{min-height:100dvh;position:relative;overflow:hidden;background:radial-gradient(circle at 50% -20%,#135b7f,#06121e 58%)}.camera{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#0b2233}.overlay{position:relative;z-index:1;width:100%;max-width:100%;min-height:100dvh;display:flex;flex-direction:column;padding:24px 18px;background:linear-gradient(#03101a99,transparent 35%,#03101ae8)}header,.controls{position:relative;z-index:2}header{display:flex;justify-content:space-between;align-items:center;gap:12px;min-width:0}h1{flex:0 0 auto;font-size:18px;margin:0}.privacy{min-width:0;max-width:112px;text-align:right;font-size:11px;line-height:1.3;color:#b8d6e8}.language select{border:1px solid #75cfe8;border-radius:8px;padding:5px;color:#e9fbff;background:#063249;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.guide{margin:auto;width:min(90vw,440px);height:180px;border:2px solid #82e8ff;border-radius:22px;position:relative;box-shadow:0 0 0 999px #00101c77,0 0 28px #45c8ed}.guide:after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#75efff;box-shadow:0 0 15px #75efff;animation:scan 1.8s ease-in-out infinite}@keyframes scan{0%,to{transform:translateY(-64px)}50%{transform:translateY(64px)}}.guide p{position:absolute;width:100%;text-align:center;top:calc(100% + 16px);color:#e3faff}.controls{display:grid;gap:10px;padding-bottom:96px}.primary{border:0;border-radius:14px;padding:15px;color:#031721;background:linear-gradient(100deg,#6ee7f8,#55b9ff);font-weight:800}.manual{display:flex;width:100%;min-width:0;gap:8px}.manual input{width:0;min-width:0;flex:1 1 auto;border:1px solid #46738b;border-radius:12px;padding:13px;color:#fff;background:#062131}.manual button{flex:0 0 auto;border:1px solid #72d8f2;border-radius:12px;padding:0 14px;color:#d9f9ff;background:#0d3b50}.notice{width:100%;overflow-wrap:anywhere;margin:6px 0 0;text-align:center;color:#b9d6e3;font-size:12px}.sheet{position:fixed;z-index:3;left:0;right:0;bottom:0;max-height:78dvh;overflow:auto;padding:12px 18px 32px;border-radius:24px 24px 0 0;background:#effaff;color:#092235;box-shadow:0 -10px 40px #0008;transform:translateY(calc(100% - 78px));transition:transform .28s ease}.sheet.open{transform:translateY(0)}.handle{width:44px;height:5px;margin:0 auto 12px;border-radius:5px;background:#9bb7c7}.sheet h2{font-size:20px;margin:4px 0}.meta{color:#537083;margin:0 0 16px;font-size:13px}.signals{display:grid;gap:10px}.signal{border-radius:16px;padding:14px;border:1px solid #d4e6ef}.signal.explicit{background:linear-gradient(135deg,#fff0f0,#ffc3c8);border-color:#fa7885}.signal.ambiguous,.signal.possible-imitation{background:linear-gradient(135deg,#fff8ea,#ffe0a0);border-color:#eeb65a}.signal.not-found{background:linear-gradient(135deg,#eefeff,#bceefe);border-color:#74cbe6}.signal.no-data{background:#eef2f5;border-color:#bdc8ce}.signal strong{display:block}.signal p,.ingredients{font-size:13px;line-height:1.55;margin:7px 0 0}.evidence{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.evidence span{padding:3px 7px;border-radius:999px;background:#fffa;font-size:12px}.source{margin-top:18px;font-size:12px;color:#527084}.source a{color:#075f91}.close{float:right;border:0;background:transparent;color:#315368;font-size:18px}.error{color:#ffe3e3;background:#7a1625bb;padding:10px;border-radius:10px;font-size:13px}.ingredient-entry{display:grid;gap:10px;margin-top:16px;padding:14px;border-radius:16px;background:#e2f7ff}.ingredient-entry h3,.ingredient-entry p{margin:0}.ingredient-entry p{color:#315368;font-size:13px;line-height:1.45}.ingredient-entry textarea{width:100%;min-height:124px;resize:vertical;border:1px solid #78adbf;border-radius:12px;padding:12px;color:#092235;background:#fff;line-height:1.5}.ocr-upload{display:block;border:1px dashed #297a97;border-radius:12px;padding:12px;color:#075f91;background:#f7fdff;font-weight:700;text-align:center;cursor:pointer}.ocr-upload input{position:absolute;width:1px;height:1px;opacity:0}.ocr-hint,.ocr-message{font-size:12px!important}.ocr-message{color:#075f91!important;font-weight:700}.contribute{display:grid;gap:10px;margin:14px 0 10px;padding:12px;border:1px solid #0c739a;border-radius:12px;color:#075f91;background:#e1f6fc}.contribute h3,.contribute p{margin:0}.contribute .primary{width:100%}.contribute .error{color:#8b1423;background:#ffe9ea}.submission-message{font-size:13px;font-weight:700}@media(prefers-reduced-motion:reduce){.guide:after,.sheet{animation:none;transition:none}}
