:root{--fs-xs:11px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:28px;--fs-huge:44px;--u:4px;--r-sm:10px;--r:14px;--r-lg:18px;--ease:cubic-bezier(.32, .72, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-fast:.18s;--t:.38s;--t-slow:.56s;--bg:var(--tg-theme-bg-color,#fff);--surface:var(--tg-theme-secondary-bg-color,#f2f2f7);--text:var(--tg-theme-text-color,#000);--hint:var(--tg-theme-hint-color,#8e8e93);--button:var(--tg-theme-button-color,#007aff);--button-text:var(--tg-theme-button-text-color,#fff);--accent:#1f9d55;--accent-soft:color-mix(in srgb, var(--accent) 12%, transparent);--danger:#ff3b30;--line:color-mix(in srgb, var(--hint) 22%, transparent);--line-soft:color-mix(in srgb, var(--hint) 13%, transparent);--tabbar-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--bg:#fff;--surface:#f2f2f7;--text:#000;--hint:#8e8e93;--button:#007aff;--button-text:#fff;--accent:#1f9d55;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#000;--surface:#1c1c1e;--text:#fff;--hint:#8e8e93;--button:#0a84ff;--button-text:#fff;--accent:#30d158;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t:0s;--t-slow:0s}*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:var(--fs-base);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;line-height:1.42;overflow-x:hidden}.tabbar,.chip,.button,.switch,.tab,.collapse-head,.crm-row{-webkit-user-select:none;user-select:none}input,button,textarea{font-family:inherit;font-size:inherit}.app{flex-direction:column;min-height:100%;display:flex}.page{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));animation:page-in var(--t) var(--ease);flex:1}.page-forward{animation-name:page-in-right}.page-back{animation-name:page-in-left}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@keyframes page-in-right{0%{opacity:0;transform:translate(18px)}}@keyframes page-in-left{0%{opacity:0;transform:translate(-18px)}}.screen{padding:calc(var(--u) * 5) calc(var(--u) * 4) calc(var(--u) * 7);gap:calc(var(--u) * 3);flex-direction:column;max-width:560px;margin:0 auto;display:flex}.center-screen{text-align:center;justify-content:center;align-items:center;min-height:100vh}.screen-head{margin-bottom:var(--u)}.screen-head.center{text-align:center}.row-between{justify-content:space-between;align-items:flex-start;gap:calc(var(--u) * 3);display:flex}.screen-title{font-size:var(--fs-xl);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.12}.screen-title.sm{font-size:var(--fs-lg);letter-spacing:-.02em}.screen-sub{margin:calc(var(--u) * 1.5) 0 0;color:var(--hint);font-size:var(--fs-sm)}.link-sub{appearance:none;text-align:left;cursor:pointer;color:var(--button);background:0 0;border:0;padding:0}.welcome-emoji,.result-emoji{margin-bottom:calc(var(--u) * 2);animation:pop var(--t-slow) var(--ease-out);font-size:40px;line-height:1}@keyframes pop{0%{opacity:0;transform:scale(.7)}}.panel{background:var(--surface);border:.5px solid var(--line-soft);border-radius:var(--r-lg);padding:calc(var(--u) * 4);gap:calc(var(--u) * 3);flex-direction:column;display:flex}.panel-title,.section-head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--hint);margin:0;font-weight:600}.section-head{margin-top:calc(var(--u) * 2)}.stack{gap:calc(var(--u) * 2.5);flex-direction:column;display:flex}.mini-card{background:var(--bg);border:.5px solid var(--line-soft);border-radius:var(--r);padding:calc(var(--u) * 3.5);gap:calc(var(--u) * 2.5);animation:reveal var(--t) var(--ease);flex-direction:column;display:flex}@keyframes reveal{0%{opacity:0;transform:translateY(-6px)scale(.99)}}.hero{border-radius:var(--r-lg);border:.5px solid var(--line-soft);background:var(--surface);padding:calc(var(--u) * 7) calc(var(--u) * 4) calc(var(--u) * 5);text-align:center;transition:box-shadow var(--t) var(--ease);position:relative;overflow:hidden}.hero-value{font-size:var(--fs-huge);letter-spacing:-.045em;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.hero-label{margin-top:calc(var(--u) * 2);color:var(--hint);font-size:var(--fs-sm)}.hero-note{margin-top:var(--u);color:var(--hint);font-size:var(--fs-xs);opacity:.75}.flash-normal{animation:flash-soft .7s var(--ease-out)}.flash-big{animation:flash-strong .7s var(--ease-out)}@keyframes flash-soft{30%{box-shadow:inset 0 0 0 1.5px var(--accent-soft)}}@keyframes flash-strong{25%{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent);transform:scale(1.012)}60%{transform:scale(1)}}.stats-grid{gap:calc(var(--u) * 2);grid-template-columns:repeat(3,1fr);display:grid}.stats-grid.two{grid-template-columns:repeat(2,1fr)}.stat{background:var(--surface);border:.5px solid var(--line-soft);border-radius:var(--r);padding:calc(var(--u) * 3) calc(var(--u) * 2.5);text-align:center;min-width:0}.stat-value{font-weight:600;font-size:var(--fs-base);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;letter-spacing:-.015em}.stat-value.big{font-size:var(--fs-xl);letter-spacing:-.03em}.stat-label{color:var(--hint);font-size:var(--fs-xs);margin-top:var(--u);letter-spacing:.02em}.accent{color:var(--accent)}.negative{color:var(--danger)}.dim{color:var(--hint);font-size:var(--fs-sm);font-weight:400}.highlight{border-radius:var(--r-lg);padding:calc(var(--u) * 4);background:var(--surface);border:.5px solid color-mix(in srgb, var(--accent) 30%, transparent)}.highlight-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--accent);font-weight:600}.highlight-value{margin-top:calc(var(--u) * 1.5);font-size:var(--fs-md);letter-spacing:-.02em;font-weight:600}.highlight-rate{color:var(--hint);font-size:var(--fs-sm);margin-top:2px}.field{display:block}.field-label{color:var(--hint);font-size:var(--fs-sm);margin-bottom:calc(var(--u) * 1.5);display:block}.input{width:100%;min-height:46px;padding:calc(var(--u) * 3) calc(var(--u) * 3.5);border-radius:var(--r);border:.5px solid var(--line);background:var(--bg);color:var(--text);transition:border-color var(--t-fast) var(--ease);font-size:16px}.input::placeholder{color:color-mix(in srgb, var(--hint) 80%, transparent)}.input:focus{border-color:var(--accent);outline:none}.input-inline{width:86px;min-height:38px;padding:calc(var(--u) * 2);text-align:center}.textarea{resize:vertical;min-height:84px;line-height:1.45}.field-pair{gap:calc(var(--u) * 2.5);grid-template-columns:1fr 1fr;display:grid}.unit{color:var(--hint);font-size:var(--fs-sm)}.suggest{position:relative}.suggest-list{z-index:20;top:calc(100% + var(--u) * 1.5);padding:var(--u);background:var(--bg);border:.5px solid var(--line);border-radius:var(--r);max-height:244px;animation:drop-in var(--t-fast) var(--ease-out);margin:0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto;box-shadow:0 16px 40px #00000038}@keyframes drop-in{0%{opacity:0;transform:translateY(-8px)}}.suggest-item{justify-content:space-between;align-items:center;gap:calc(var(--u) * 2.5);width:100%;color:var(--text);text-align:left;padding:calc(var(--u) * 2.5) calc(var(--u) * 3);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;display:flex}.suggest-item:active{background:var(--surface)}.suggest-tag{font-size:var(--fs-xs);color:var(--hint);white-space:nowrap}.chips{gap:calc(var(--u) * 2);flex-wrap:wrap;align-items:center;display:flex}.chip{align-items:center;gap:calc(var(--u) * 1.5);border:.5px solid var(--line);color:var(--text);padding:calc(var(--u) * 2) calc(var(--u) * 3.5);font-size:var(--fs-sm);cursor:pointer;transition:transform var(--t-fast) var(--ease), background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border-radius:999px;display:inline-flex}.chip:active{transform:scale(.96)}.chip-on{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}.chip-static{cursor:default;background:var(--bg)}.chip-emoji{font-size:var(--fs-base)}.button{appearance:none;width:100%;min-height:50px;padding:calc(var(--u) * 3.5);border-radius:var(--r);background:var(--button);color:var(--button-text);font-size:var(--fs-md);cursor:pointer;transition:transform .12s var(--ease), opacity var(--t-fast) var(--ease);border:0;font-weight:600}.button:active:not(:disabled){transform:scale(.97)}.button:disabled{opacity:.35;cursor:default}.button-lg{border-radius:var(--r-lg);min-height:54px}.button-ghost{color:var(--text);border:.5px solid var(--line);background:0 0;font-weight:500}.button-danger{color:var(--danger);border:.5px solid color-mix(in srgb, var(--danger) 30%, transparent);background:0 0;font-weight:500}.link-button{appearance:none;color:var(--button);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;padding:0}.link-button.danger{color:var(--danger);opacity:.8}.list{flex-direction:column;display:flex}.item{justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);padding:calc(var(--u) * 3) 0;display:flex}.item+.item{border-top:.5px solid var(--line-soft)}.item-main{min-width:0}.item-title{align-items:center;gap:calc(var(--u) * 2);letter-spacing:-.015em;font-weight:600;display:flex}.item-sub{color:var(--hint);font-size:var(--fs-sm);margin-top:1px}.item-side{text-align:right;flex-shrink:0}.item-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.item-fresh{animation:fresh 1s var(--ease-out)}@keyframes fresh{0%{background:var(--accent-soft);opacity:.35;transform:translate(-8px)}to{background:0 0}}.item-off{opacity:.35}.tag{font-size:var(--fs-xs);padding:1px calc(var(--u) * 2);border:.5px solid var(--line);color:var(--hint);white-space:nowrap;border-radius:999px;font-weight:500}.tag-trophy,.tag-rare,.tag-score{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.rank{border-radius:var(--r-sm);border:.5px solid var(--line);width:20px;height:20px;color:var(--hint);font-size:var(--fs-xs);place-items:center;font-weight:600;display:inline-grid}.star{color:var(--accent);margin-right:var(--u)}.timer-badge{align-items:center;gap:calc(var(--u) * 2);padding:calc(var(--u) * 1.5) calc(var(--u) * 3);border:.5px solid var(--line-soft);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-sm);border-radius:999px;flex-shrink:0;display:inline-flex}.live-dot{background:var(--accent);width:7px;height:7px;animation:breathe 3s var(--ease) infinite;border-radius:50%}@keyframes breathe{0%,to{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}.timer-card,.tournament{background:var(--bg);border:.5px solid var(--line-soft);border-radius:var(--r);padding:calc(var(--u) * 3.5);gap:calc(var(--u) * 2.5);flex-direction:column;display:flex}.timer-done,.tournament-soon{border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.timer-top{justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);display:flex}.timer-name{align-items:center;gap:calc(var(--u) * 2);font-weight:600;display:inline-flex}.timer-left,.tournament-when{font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap;font-weight:600}.progress{background:var(--line-soft);border-radius:999px;height:3px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width 1s linear}.tabbar{z-index:30;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(20px)saturate(180%);border-top:.5px solid var(--line-soft);grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{appearance:none;color:var(--hint);cursor:pointer;transition:color var(--t-fast) var(--ease);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 2px;display:flex}.tab-active{color:var(--accent)}.tab-icon{place-items:center;display:grid;position:relative}.icon{width:22px;height:22px;transition:transform var(--t) var(--ease-out)}.icon-active{transform:translateY(-1px)scale(1.05)}.tab-label{letter-spacing:.01em;white-space:nowrap;font-size:9.5px}.tab-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg);animation:breathe 3s var(--ease) infinite;border-radius:50%;position:absolute;top:-1px;right:-3px}.empty{text-align:center;padding:calc(var(--u) * 7) calc(var(--u) * 4)}.empty-emoji{margin-bottom:calc(var(--u) * 2.5);opacity:.7;font-size:36px;line-height:1}.empty-title{font-weight:600;font-size:var(--fs-md);margin:0}.empty-text{margin:calc(var(--u) * 1.5) auto 0;max-width:300px;color:var(--hint);font-size:var(--fs-sm)}.skeleton{border-radius:var(--r-lg);background:linear-gradient(90deg, var(--surface) 25%, color-mix(in srgb, var(--hint) 14%, var(--surface)) 50%, var(--surface) 75%);background-size:200% 100%;height:72px;animation:1.5s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loader{border:2px solid var(--line);border-top-color:var(--accent);width:24px;height:24px;margin-bottom:calc(var(--u) * 3);border-radius:50%;animation:.7s linear infinite spin}.loader-sm{border-width:1.5px;width:14px;height:14px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.capture{gap:calc(var(--u) * 2.5);flex-direction:column;display:flex}.capture-row{gap:calc(var(--u) * 2.5);grid-template-columns:1fr 1fr;display:grid}.capture-status{align-items:center;gap:calc(var(--u) * 2.5);color:var(--hint);font-size:var(--fs-sm);display:flex}.divider{align-items:center;gap:calc(var(--u) * 3);color:var(--hint);font-size:var(--fs-xs);display:flex}.divider:before,.divider:after{content:"";background:var(--line-soft);flex:1;height:.5px}.keepnet-inputs{align-items:center;gap:calc(var(--u) * 1.5);margin-top:calc(var(--u) * 1.5);display:flex}.sheet{gap:calc(var(--u) * 3.5);padding:calc(var(--u) * 5) calc(var(--u) * 4);animation:sheet-up var(--t) var(--ease);flex-direction:column;align-items:center;display:flex}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}.sheet-head{justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);width:100%;display:flex}.sheet-title{font-weight:600}.viewfinder{aspect-ratio:3/4;border-radius:var(--r-lg);background:#000;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.viewfinder-video{object-fit:cover;width:100%;height:100%}.viewfinder-hint{align-items:center;gap:calc(var(--u) * 2.5);color:#fff;font-size:var(--fs-sm);text-align:center;padding:0 calc(var(--u) * 5);display:flex;position:absolute}.shutter{appearance:none;border:2.5px solid var(--line);cursor:pointer;width:70px;height:70px;transition:transform .12s var(--ease);background:0 0;border-radius:50%;place-items:center;display:grid}.shutter:active:not(:disabled){transform:scale(.9)}.shutter:disabled{opacity:.35;cursor:default}.shutter-inner{background:var(--text);border-radius:50%;width:56px;height:56px}.collapse-head{appearance:none;justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.collapse-title{letter-spacing:-.015em;font-weight:600;display:block}.collapse-sub{color:var(--hint);font-size:var(--fs-sm);margin-top:1px;display:block}.chevron{color:var(--hint);font-size:var(--fs-lg);transition:transform var(--t) var(--ease), color var(--t-fast) var(--ease);line-height:1;transform:rotate(90deg)}.chevron-up{color:var(--accent);transform:rotate(-90deg)}.guide-summary{margin:calc(var(--u) * 1.5) 0 0;font-size:var(--fs-sm);color:var(--text);line-height:1.45}.guide-text{font-size:var(--fs-base);color:color-mix(in srgb, var(--text) 86%, transparent);margin:0;line-height:1.55}.glossary-term{font-weight:600}.glossary-meaning{color:var(--hint);font-size:var(--fs-sm);margin-top:2px}.panel-best{border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.best-mark{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--accent);align-self:flex-start;font-weight:600}.panel-pro{border-style:dashed}.plan{appearance:none;border:.5px solid var(--line);background:var(--bg);border-radius:var(--r);padding:calc(var(--u) * 3.5);justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);text-align:left;color:var(--text);cursor:pointer;transition:border-color var(--t-fast) var(--ease), transform .12s var(--ease);display:flex}.plan:active{transform:scale(.99)}.plan-title{font-weight:600;display:block}.plan-desc{color:var(--hint);font-size:var(--fs-sm);margin-top:2px;display:block}.plan-price{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.switch-row{justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);padding:calc(var(--u) * 3) 0;display:flex}.switch-row+.switch-row{border-top:.5px solid var(--line-soft)}.switch-main{min-width:0}.switch-title{font-weight:600}.switch-sub{color:var(--hint);font-size:var(--fs-sm);margin-top:1px}.switch{appearance:none;background:color-mix(in srgb, var(--hint) 32%, transparent);cursor:pointer;width:51px;height:31px;transition:background var(--t-fast) var(--ease);border:0;border-radius:999px;flex-shrink:0;position:relative}.switch-on{background:var(--accent)}.switch:after{content:"";width:27px;height:27px;transition:transform var(--t-fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #00000038}.switch-on:after{transform:translate(20px)}.ingredient{gap:calc(var(--u) * 2);padding:calc(var(--u) * 3) 0;flex-direction:column;display:flex}.ingredient+.ingredient{border-top:.5px solid var(--line-soft)}.crm-row{appearance:none;padding:calc(var(--u) * 3) 0;justify-content:space-between;align-items:center;gap:calc(var(--u) * 3);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.crm-row+.crm-row{border-top:.5px solid var(--line-soft)}.crm-row:active{opacity:.6}.alert{border-radius:var(--r-lg);padding:calc(var(--u) * 3.5) calc(var(--u) * 4);background:var(--surface);border:.5px solid color-mix(in srgb, var(--danger) 35%, transparent)}.alert-title{color:var(--danger);font-weight:600;font-size:var(--fs-sm)}.alert-text{margin:calc(var(--u) * 1.5) 0 0;font-size:var(--fs-sm);color:color-mix(in srgb, var(--text) 85%, transparent);line-height:1.5}.error{color:var(--danger);font-size:var(--fs-sm);margin:0}.hint-line{color:var(--hint);font-size:var(--fs-sm);text-align:center;margin:0}.hint-line.left{text-align:left}.hint-line.accent{color:var(--accent)}
