.login[data-v-e06d3415]{min-height:78dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 8px}.login__logo[data-v-e06d3415]{font-size:54px}.login__title[data-v-e06d3415]{margin:8px 0 2px;font-size:24px}.login__sub[data-v-e06d3415]{margin:0 0 24px}.login__form[data-v-e06d3415]{width:100%;max-width:300px;display:flex;flex-direction:column;gap:10px}.login__form input[data-v-e06d3415]{text-align:center;letter-spacing:6px;font-size:22px;padding:14px}.login__error[data-v-e06d3415]{color:var(--danger);font-size:13px;margin:0;text-align:center}.login__hint[data-v-e06d3415]{margin-top:22px;text-align:center}.detail-head[data-v-e8b9ad93]{display:flex;align-items:flex-start;gap:12px;min-width:0}.detail-thumb[data-v-e8b9ad93]{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none;background:#f3f4f6;cursor:zoom-in}.detail-thumb--empty[data-v-e8b9ad93]{display:flex;align-items:center;justify-content:center;font-size:28px;cursor:default}.detail-head__main[data-v-e8b9ad93]{min-width:0;flex:1}.detail-name[data-v-e8b9ad93]{font-size:18px;font-weight:700;word-break:break-word}.detail-pills[data-v-e8b9ad93]{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}.detail-code[data-v-e8b9ad93]{word-break:break-all}.detail-subtitle[data-v-e8b9ad93]{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}.nutri[data-v-e8b9ad93]{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:10px}.nutri th[data-v-e8b9ad93],.nutri td[data-v-e8b9ad93]{text-align:right;padding:6px 4px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.nutri th[data-v-e8b9ad93]:first-child,.nutri td[data-v-e8b9ad93]:first-child{text-align:left;color:var(--muted)}.nutri thead th[data-v-e8b9ad93]{font-weight:600;font-size:12px;color:var(--muted)}.nutri tbody tr:last-child td[data-v-e8b9ad93]{border-bottom:0}.small-btn[data-v-e8b9ad93]{padding:6px 10px;font-size:12px}.history-stats .stat[data-v-e8b9ad93]{background:var(--bg)}.history-meta[data-v-e8b9ad93]{display:flex;flex-direction:column;gap:2px;margin-top:8px}.image-preview[data-v-e8b9ad93]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#000000d1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;cursor:zoom-out}.image-preview img[data-v-e8b9ad93]{max-width:100%;max-height:82dvh;border-radius:12px;object-fit:contain}.image-preview__hint[data-v-e8b9ad93]{color:#d1d5db;font-size:12px}.detail-backdrop[data-v-cfe46aa5]{z-index:60}.edit-btn[data-v-cfe46aa5]{margin-top:14px}.err[data-v-54e395b7]{color:var(--danger);font-size:13px;margin:0 0 10px}.notice[data-v-b833bcdf]{border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:10px}.notice--warning[data-v-b833bcdf]{background:#fef3c7;color:#92400e}.error-text[data-v-b833bcdf]{color:var(--danger);font-size:13px;margin:0 0 10px}.bind-row[data-v-b833bcdf]{display:flex;gap:8px;align-items:flex-start;margin:12px 2px;font-size:13px;color:var(--muted)}.bind-row input[data-v-b833bcdf]{width:18px;height:18px;margin-top:2px;flex:none}.rule-code[data-v-b833bcdf]{display:block;margin-top:4px;font-size:11px;color:#0f766e;word-break:break-all}.choose-list[data-v-b833bcdf]{margin:12px 0;max-height:42dvh;overflow-y:auto}.choose-item[data-v-b833bcdf]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer}.choose-item__name[data-v-b833bcdf]{font-weight:600}.hint[data-v-b833bcdf]{margin:8px 2px}.hint p[data-v-b833bcdf]{margin:2px 0}.similar-note[data-v-b833bcdf]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 10px;border-radius:10px;background:#fef3c7;color:#92400e;font-size:12px}.small-btn[data-v-b833bcdf]{padding:5px 8px;font-size:12px;color:#92400e}.lookup-note[data-v-b833bcdf]{margin:0 0 10px;padding:8px 10px;border-radius:10px;background:var(--primary-soft);color:#115e59;font-size:12px}.detected code[data-v-b833bcdf]{display:inline-block;max-width:100%;word-break:break-all;color:var(--primary);font-size:11px}.sheet__actions[data-v-b833bcdf]{margin-top:12px;display:flex;flex-direction:column;gap:6px}.small-btn[data-v-ef3659ed]{padding:7px 12px;font-size:13px}.detail-link[data-v-ef3659ed]{padding:6px 10px;font-size:12px;margin-bottom:12px}.day-group[data-v-ef3659ed]{margin-top:14px}.day-group__title[data-v-ef3659ed]{display:flex;justify-content:space-between;align-items:baseline;margin:0 2px 6px;font-size:13px;font-weight:600;color:var(--muted)}.record-row[data-v-ef3659ed]{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border-bottom:1px solid var(--line)}.record-row__main[data-v-ef3659ed]{flex:1;min-width:0;border:0;background:transparent;padding:9px 0;text-align:left;cursor:pointer}.record-row__info[data-v-ef3659ed]{flex:none;border:0;background:transparent;color:var(--muted);font-size:12px;padding:8px 2px 8px 10px;cursor:pointer}.record-row__info[data-v-ef3659ed]:active{color:var(--primary)}.record-row[data-v-ef3659ed]:last-child{border-bottom:0}.record-row__name[data-v-ef3659ed]{font-weight:600}.error-text[data-v-ef3659ed]{color:var(--danger);font-size:13px}.scanner[data-v-8483037d]{position:relative;border-radius:16px;overflow:hidden;background:#0b1220;aspect-ratio:3 / 4;display:flex;flex-direction:column;justify-content:flex-end}.scanner__video[data-v-8483037d]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scanner__placeholder[data-v-8483037d]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#cbd5e1;font-size:14px;padding:0 24px;text-align:center}.scanner__icon[data-v-8483037d]{font-size:54px;opacity:.5}.scanner__frame[data-v-8483037d]{position:absolute;left:50%;top:42%;width:min(62vw,260px);height:min(62vw,260px);transform:translate(-50%,-50%);border-radius:14px;box-shadow:0 0 0 100vmax #0000006b;border:2px solid #5eead4}.scanner__tools[data-v-8483037d]{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:3}.scanner__tool[data-v-8483037d]{border:0;border-radius:999px;padding:6px 10px;font-size:12px;background:#1118279e;color:#e5e7eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.scanner__status[data-v-8483037d]{position:absolute;top:10px;left:10px;z-index:3;font-size:11px;color:#99f6e4;background:#1118279e;padding:4px 8px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.scanner__actions[data-v-8483037d]{position:relative;z-index:2;display:flex;gap:10px;padding:12px;background:linear-gradient(transparent,#0000008c)}.scanner__actions .btn[data-v-8483037d]{flex:1}.scanner__file[data-v-8483037d]{display:none}.scan-head[data-v-66e440d6]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mode-toggle[data-v-66e440d6]{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;white-space:nowrap}.mode-toggle.is-on[data-v-66e440d6]{background:var(--primary-soft);border-color:transparent;color:#115e59}.today-strip[data-v-66e440d6]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.today-strip__item[data-v-66e440d6]{background:var(--card);border-radius:12px;padding:8px 6px;text-align:center}.today-strip__item strong[data-v-66e440d6]{display:block;font-size:18px;font-variant-numeric:tabular-nums}.today-strip__item span[data-v-66e440d6]{font-size:11px;color:var(--muted)}.scan-error[data-v-66e440d6]{color:var(--danger);font-size:13px;margin:10px 2px}.scan-tip[data-v-66e440d6]{margin:12px 2px 0;line-height:1.6}.small-btn[data-v-c0f9c0af]{padding:6px 10px;font-size:13px}.product-list[data-v-c0f9c0af]{max-height:300px;overflow-y:auto;margin-top:10px}.product-row[data-v-c0f9c0af]{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:transparent;padding:8px 2px;border-bottom:1px solid var(--line);text-align:left;cursor:pointer}.product-row[data-v-c0f9c0af]:last-child{border-bottom:0}.rule-row[data-v-c0f9c0af]{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.rule-row[data-v-c0f9c0af]:last-child{border-bottom:0}.rule-row__product[data-v-c0f9c0af]{font-weight:600}.rule-row__pattern[data-v-c0f9c0af]{display:block;font-size:11px;color:var(--muted);word-break:break-all;margin:2px 0}.rule-row__actions[data-v-c0f9c0af]{display:flex;flex-direction:column;gap:6px;flex:none}.note[data-v-c0f9c0af]{margin:8px 0 0}.logout[data-v-c0f9c0af]{margin-top:22px}.chart[data-v-3a1b0c3a]{width:100%}.chart__svg[data-v-3a1b0c3a]{width:100%;height:auto;display:block}.chart__axis[data-v-3a1b0c3a]{stroke:#e5e7eb;stroke-width:1}.chart__label[data-v-3a1b0c3a]{font-size:8px;fill:#9ca3af}.chart__value[data-v-3a1b0c3a]{font-size:8px;fill:#6b7280;font-weight:600}.summary-card[data-v-a5e7d64c]{margin-top:10px}.second-row[data-v-a5e7d64c]{margin-top:8px}.metric-select[data-v-a5e7d64c]{width:auto;padding:4px 10px;font-size:12px;border-radius:8px}.chart-foot[data-v-a5e7d64c]{margin-top:6px}.mini[data-v-a5e7d64c]{width:132px;padding:2px}.mini button[data-v-a5e7d64c]{font-size:12px;padding:5px 4px}.rank+.rank[data-v-a5e7d64c]{margin-top:10px}.rank__head[data-v-a5e7d64c]{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.rank__bar[data-v-a5e7d64c]{height:6px;border-radius:999px;background:#eceef1;overflow:hidden}.rank__fill[data-v-a5e7d64c]{height:100%;border-radius:999px;background:var(--primary);opacity:.75}.error-text[data-v-a5e7d64c]{color:var(--danger);font-size:13px}.hero__main[data-v-0b4432b5]{display:flex;align-items:flex-end;justify-content:space-between}.hero__value[data-v-0b4432b5]{font-size:34px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.hero__value small[data-v-0b4432b5]{font-size:14px;font-weight:500;color:var(--muted)}.hero__streak[data-v-0b4432b5]{text-align:right}.goal-list[data-v-0b4432b5]{display:flex;flex-direction:column;gap:10px}.goal__head[data-v-0b4432b5]{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:4px}.goal__head .over[data-v-0b4432b5]{color:var(--danger);font-weight:700}.goal__bar[data-v-0b4432b5]{height:8px;border-radius:999px;background:#eceef1;overflow:hidden}.goal__fill[data-v-0b4432b5]{height:100%;border-radius:999px;transition:width .3s ease}.top-gap[data-v-0b4432b5]{margin-top:10px}.record-name[data-v-0b4432b5]{font-weight:600}.small-btn[data-v-0b4432b5]{padding:6px 8px;font-size:13px}:root{--bg: #f5f6f8;--card: #ffffff;--text: #111827;--muted: #6b7280;--line: #e5e7eb;--primary: #0f766e;--primary-soft: #ccfbf1;--danger: #dc2626;--warning: #d97706;--radius: 14px;--tabbar-height: 58px;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}#app{min-height:100dvh}.app-shell{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.page{flex:1;padding:14px 14px calc(var(--tabbar-height) + 20px + env(safe-area-inset-bottom))}.page-title{margin:4px 2px 12px;font-size:20px;font-weight:700;letter-spacing:.2px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 8px;font-size:14px;font-weight:600;color:var(--muted)}.card{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:0 1px 2px #1118270d}.card+.card{margin-top:10px}.row{display:flex;align-items:center;gap:10px}.row--between{justify-content:space-between}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:10px 14px;font-size:15px;font-weight:500;cursor:pointer}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--ghost{background:transparent;border-color:transparent;color:var(--primary)}.btn--danger{color:var(--danger)}.btn--block{width:100%;display:block}.btn--lg{padding:14px;font-size:17px;border-radius:12px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field>span{font-size:12px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px;background:#fff;color:var(--text);font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{text-align:center;padding:10px 4px;border-radius:10px;background:#fafafa}.stat__value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.stat__label{font-size:11px;color:var(--muted);margin-top:2px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;max-width:560px;margin:0 auto;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--tabbar-height);text-decoration:none;color:var(--muted);font-size:11px}.tabbar__item.is-active{color:var(--primary);font-weight:600}.tabbar__icon{font-size:19px;line-height:1}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-height) + 24px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 28px);background:#111827;color:#fff;padding:12px 14px;border-radius:12px;box-shadow:0 8px 24px #0000002e}.toast__message{font-size:14px}.toast__action{border:0;background:transparent;color:#5eead4;font-weight:700;font-size:14px;padding:2px;cursor:pointer}.toast__close{border:0;background:transparent;color:#9ca3af;font-size:18px;line-height:1;padding:0 2px;cursor:pointer}.toast-enter-active,.toast-leave-active{transition:opacity .18s ease,transform .18s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,8px)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#11182773;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:88dvh;overflow-y:auto;background:var(--bg);border-radius:18px 18px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom));animation:sheet-in .2s ease}@keyframes sheet-in{0%{transform:translateY(18px);opacity:.6}}.sheet__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sheet__title{font-size:17px;font-weight:700}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;background:var(--primary-soft);color:#115e59}.pill--warning{background:#fef3c7;color:#92400e}.list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:0}.divider{height:1px;background:var(--line);margin:10px 0}.empty{text-align:center;color:var(--muted);padding:26px 0;font-size:14px}.segmented{display:flex;background:#eceef1;border-radius:10px;padding:3px;gap:2px}.segmented button{flex:1;border:0;background:transparent;border-radius:8px;padding:7px 4px;font-size:13px;color:var(--muted);cursor:pointer}.segmented button.is-active{background:#fff;color:var(--text);font-weight:600;box-shadow:0 1px 2px #00000014}.hidden-logout{display:none}.fade-list>*+*{margin-top:8px}@media(prefers-color-scheme:dark){:root{--bg: #0b1220;--card: #141c2b;--text: #e5e7eb;--muted: #94a3b8;--line: #263143;--primary: #2dd4bf;--primary-soft: #134e4a;color-scheme:dark}input,select,textarea,.stat,.segmented{background:#0f1725}.segmented button.is-active{background:#1e293b}.tabbar{background:#0f1725f0}}
