@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg: #f0f7f2;--surface: #ffffff;--surface-2: #eef6f0;--border: #d1e8da;--text: #16291c;--text-muted: #44704f;--focus: #2f9e57;--brand: #1a6b2f;--brand-hover: #155a27;--on-brand: #ffffff;--danger: #c0392b;--saved-bg: #e6f4ec;--saved-border: #c0deca;--saved-text: #1a6b2f;--lost-bg: #fff3f2;--lost-border: #f5d0d3;--lost-text: #b3322a;--header-bg: #1a6b2f;--header-muted: #cfe5d6;--header-lost: #ffd4cf;--chart-saved: #1a6b2f;--chart-lost: #c0392b;--chart-grid: #e6efe9;--toast-bg: #16331f;--toast-error: #8a2c24;--backdrop: rgba(10, 30, 15, .45);--shadow: 0 1px 2px rgba(16, 40, 24, .04), 0 4px 16px rgba(16, 40, 24, .06);--shadow-lg: 0 8px 28px rgba(16, 40, 24, .22);color-scheme:light}:root[data-theme=dark]{--bg: #0d1410;--surface: #152019;--surface-2: #1c2a21;--border: #2a3b30;--text: #e6f1e9;--text-muted: #9dbba8;--focus: #7fd49a;--brand: #277a40;--brand-hover: #216b37;--danger: #b3362b;--saved-bg: #183322;--saved-border: #25492f;--saved-text: #7fd49a;--lost-bg: #3a1c1a;--lost-border: #5a2a26;--lost-text: #ff9a8f;--header-bg: #12361e;--header-muted: #a9ccb4;--header-lost: #ffb3aa;--chart-saved: #4fbf6e;--chart-lost: #e0685b;--chart-grid: #223127;--toast-bg: #25402e;--toast-error: #6e2620;--backdrop: rgba(0, 0, 0, .6);--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{min-height:100%;margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3,p{margin:0}.icon-btn{width:44px;height:44px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s}.icon-btn:hover{background:var(--surface-2)}.link-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:none;background:none;color:var(--text-muted);font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.spin{animation:spin .9s linear infinite}.splash{position:fixed;inset:0;background:var(--header-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;transition:opacity .4s ease}.splash.splash-fade{opacity:0;pointer-events:none}.splash-icon{width:72px;height:72px;filter:brightness(0) invert(1);animation:spinOnce 1.5s ease-in-out forwards}.splash-title{font-size:2rem;font-weight:700;letter-spacing:-.02em;color:#fff;margin:20px 0 8px}.splash-tagline{color:#ffffffbf;font-size:1rem}.splash-dots{display:flex;gap:8px;margin-top:52px}.splash-dots span{width:6px;height:6px;border-radius:50%;background:#ffffff59;animation:dotPulse 1.2s ease-in-out infinite}.splash-dots span:nth-child(2){animation-delay:.2s}.splash-dots span:nth-child(3){animation-delay:.4s}.container{max-width:600px;min-height:100vh;margin:0 auto;display:flex;flex-direction:column}main{flex:1;display:flex;flex-direction:column;gap:12px;padding:16px 16px calc(112px + env(safe-area-inset-bottom))}.header{position:relative;overflow:hidden;padding:calc(8px + env(safe-area-inset-top)) 12px 24px 20px;background:var(--header-bg);border-radius:0 0 28px 28px;text-align:center}.header-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.08);pointer-events:none}.header-ring-1{width:260px;height:260px;top:-80px;left:-60px}.header-ring-2{width:180px;height:180px;top:-40px;left:-20px}.header-bar{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:44px}.header-app-name{font-size:12px;font-weight:600;color:var(--header-muted);letter-spacing:.12em;text-transform:uppercase}.header-settings{color:var(--header-muted)}.header-settings:hover{background:#ffffff1f}.header-content{position:relative;padding-right:8px}.header-hero{font-size:3.25rem;font-weight:700;color:#fff;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:4px}.header-sub{font-size:13px;color:var(--header-muted);margin-top:8px}.header-bg-icon{position:absolute;width:180px;height:180px;top:55%;left:50%;transform:translate(-50%,-50%);opacity:.07;filter:brightness(0) invert(1);animation:spinOnce 1.5s ease-in-out 1.9s forwards;pointer-events:none}.header-divider{width:40px;height:1px;background:#ffffff40;margin:10px auto 0}.header-stats{display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;margin:14px auto 0;padding:7px 16px;border-radius:999px;background:#0000002e}.header-stat{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.header-stat-saved{color:var(--header-muted)}.header-stat-lost{color:var(--header-lost)}.header-stat-divider{color:#ffffff4d;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:var(--shadow)}.card-title{font-size:15px;font-weight:600;color:var(--text)}.hint{display:flex;align-items:flex-start;gap:12px;padding:14px 8px 14px 14px}.hint-icon{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--saved-bg);color:var(--saved-text)}.hint-text{flex:1;padding-top:2px}.hint-title{font-size:15px;font-weight:600;margin-bottom:4px}.hint-text p:last-child{font-size:14px;line-height:1.45;color:var(--text-muted)}.log-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.mode-toggle{display:flex;padding:3px;border-radius:999px;background:var(--surface-2)}.mode-toggle button{min-height:36px;padding:0 14px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.mode-toggle button[aria-pressed=true]{background:var(--brand);color:var(--on-brand)}.mode-toggle .mode-lost[aria-pressed=true]{background:var(--danger)}.log-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.log-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:116px;padding:16px;border-radius:18px;cursor:pointer;text-align:left;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;transition:transform .12s ease,background .2s,border-color .2s}.log-tile:active{transform:scale(.96)}.log-tiles-saved .log-tile{background:var(--saved-bg);border:1px solid var(--saved-border);color:var(--saved-text)}.log-tiles-lost .log-tile{background:var(--lost-bg);border:1px solid var(--lost-border);color:var(--lost-text)}.tile-name{font-size:17px;font-weight:600}.tile-detail{font-size:12px;opacity:.9}.tile-price{margin-top:auto;font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile-bump{position:absolute;top:12px;right:14px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;pointer-events:none;animation:bumpUp .7s ease-out forwards}.log-more{width:100%;margin-top:6px}.sheet{width:100%;max-width:600px;max-height:90dvh;margin:auto auto 0;padding:0;border:none;border-radius:24px 24px 0 0;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.sheet[open]{animation:sheetUp .25s cubic-bezier(.2,.8,.2,1)}.sheet::backdrop{background:var(--backdrop)}.sheet-body{padding:8px 20px calc(24px + env(safe-area-inset-bottom))}.sheet-handle{width:36px;height:4px;margin:0 auto 6px;border-radius:2px;background:var(--border)}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin:0 -10px 12px 0}.sheet-title{font-size:18px;font-weight:600}.size-pills{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 16px}.size-pill{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:60px;padding:10px 8px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);font-size:15px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.size-pill small{font-size:12px;font-weight:400;color:var(--text-muted)}.size-pill[aria-pressed=true]{border:2px solid var(--brand);background:var(--saved-bg);color:var(--saved-text)}.bulk-stepper{display:flex;align-items:center;justify-content:center;gap:28px;margin:12px 0 20px}.stepper-btn{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--brand);cursor:pointer;transition:transform .12s}.stepper-btn:active{transform:scale(.9)}.bulk-count{min-width:64px;font-size:44px;font-weight:700;text-align:center;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.btn-primary,.btn-secondary-danger{width:100%;min-height:52px;padding:0 16px;border-radius:14px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .12s,background .15s}.btn-primary{border:none;background:var(--brand);color:var(--on-brand)}.btn-primary:hover{background:var(--brand-hover)}.btn-primary.btn-danger{background:var(--danger)}.btn-secondary-danger{border:1px solid var(--lost-border);background:var(--lost-bg);color:var(--lost-text)}.btn-primary:active,.btn-secondary-danger:active{transform:scale(.97)}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.view-toggle{display:flex;padding:3px;margin-bottom:14px;border-radius:999px;background:var(--surface-2)}.view-toggle button{flex:1;min-height:40px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.view-toggle button.active{background:var(--brand);color:var(--on-brand)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.stat-card{border-radius:14px;padding:14px}.stat-card.stat-saved{background:var(--saved-bg);border:1px solid var(--saved-border);color:var(--saved-text)}.stat-card.stat-lost{background:var(--lost-bg);border:1px solid var(--lost-border);color:var(--lost-text)}.stat-label{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;margin-bottom:6px}.stat-value{font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-count{font-size:12px;margin-top:4px;opacity:.9}.net-banner{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.net-banner span:first-child{font-size:14px;color:var(--text-muted)}.net-banner span:last-child{font-size:16px;font-weight:700;color:var(--saved-text);font-variant-numeric:tabular-nums}.chart-section{display:flex;justify-content:center;margin-top:16px}.chart-section-bars{flex-direction:column;align-items:stretch}.chart-caption{font-size:12px;color:var(--text-muted);margin-bottom:6px}.chart-bars{position:relative;height:150px}.chart-empty{font-size:13px;color:var(--text-muted);text-align:center}.chart-donut{width:180px;height:180px}.chart-donut canvas{width:100%!important;height:100%!important}.fab{position:fixed;right:max(20px,calc(50% - 280px));bottom:calc(20px + env(safe-area-inset-bottom));z-index:40;width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-lg);cursor:pointer;transition:transform .12s,background .15s}.fab:hover{background:var(--brand-hover)}.fab:active{transform:scale(.94)}.camera{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:none;background:#000;color:#fff;overflow:hidden}.camera::backdrop{background:#000}.camera video{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover}.camera-frame{position:absolute;top:50%;left:50%;width:min(78vw,340px);height:170px;transform:translate(-50%,-50%);border:3px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 0 0 100vmax #00000073;pointer-events:none}.camera-hint{position:absolute;left:0;right:0;bottom:calc(48px + env(safe-area-inset-bottom));font-size:16px;font-weight:500;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,.6)}.camera-close{position:absolute;top:calc(16px + env(safe-area-inset-top));left:16px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer}.camera-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;font-size:15px;line-height:1.5;text-align:center}.camera-message-title{font-size:18px;font-weight:600}.camera-message p:not(.camera-message-title){max-width:340px;color:#fffc}.camera-retry{min-height:48px;margin-top:8px;padding:0 24px;border:none;border-radius:999px;background:#fff;color:#16291c;font-size:15px;font-weight:600;cursor:pointer}.scan-status{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:15px;line-height:1.45;color:var(--text-muted)}.scan-product{margin-bottom:16px}.scan-name{font-size:20px;font-weight:600;letter-spacing:-.01em}.scan-meta{margin-top:4px;font-size:14px;line-height:1.45;color:var(--text-muted)}.scan-warn{color:var(--lost-text)}.scan-again{width:100%;margin-top:8px}.settings-group{margin:12px 0 4px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.settings-row{display:flex;align-items:center;gap:14px;width:calc(100% + 16px);min-height:60px;margin:0 -8px;padding:8px;border:none;border-radius:14px;background:transparent;text-align:left;cursor:pointer;transition:background .15s}.settings-row:hover{background:var(--surface-2)}.settings-icon{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--saved-bg);color:var(--saved-text)}.settings-row-danger .settings-icon{background:var(--lost-bg);color:var(--lost-text)}.settings-text{display:flex;flex-direction:column;gap:2px}.settings-title{font-size:15px;font-weight:500}.settings-detail{font-size:13px;color:var(--text-muted)}.settings-foot{margin-top:16px;font-size:12px;line-height:1.5;color:var(--text-muted)}.toast-region{position:fixed;left:0;right:0;bottom:calc(96px + env(safe-area-inset-bottom));z-index:50;display:flex;justify-content:center;padding:0 16px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;width:100%;max-width:568px;padding:10px 10px 10px 16px;border-radius:14px;background:var(--toast-bg);color:#fff;font-size:14px;line-height:1.4;box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastIn .2s ease}.toast-error{background:var(--toast-error)}.toast-message{flex:1}.toast-action{flex-shrink:0;min-height:36px;padding:0 14px;border:none;border-radius:10px;background:#ffffff29;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.toast-action:hover{background:#ffffff42}.confirm-dialog{width:min(340px,calc(100% - 32px));padding:22px;border:none;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.confirm-dialog::backdrop{background:var(--backdrop)}.confirm-message{margin-bottom:20px;font-size:16px;line-height:1.45}.confirm-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.confirm-cancel,.confirm-ok{min-height:48px;border-radius:12px;font-size:15px;font-weight:500;cursor:pointer}.confirm-cancel{border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.confirm-ok{border:none;background:var(--danger);color:#fff}@keyframes spinOnce{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dotPulse{0%,to{background:#ffffff4d}50%{background:#ffffffe6}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bumpUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-22px)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{opacity:0;animation:fadeIn .4s ease forwards}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:600px){main{padding:12px 12px calc(108px + env(safe-area-inset-bottom))}.header{border-radius:0 0 24px 24px}.header-hero{font-size:2.75rem}}
