@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans+KR:wght@400;500;600;700&display=swap";
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--panel:#fff;--panel-2:#f6f6f8;--hero-bg:#f2f2f4;--line:#e6e6ea;--line-2:#eeeef2;--fg:#2b2e36;--fg-body:#333;--fg-dim:#555;--fg-mute:#6b6b6b;--accent:#3d63f0;--accent-dark:#2a44b8;--accent-bg:#eef2ff;--accent-chip:#e8eeff;--accent-grad:linear-gradient(90deg, #1f2d5c, #3d63f0 55%, #7fa2ff);--warn:#c0323a;--warn-strong:#b0262e;--warn-bg:#fbebec;--warn-card:snow;--warn-line:#f2c4c7;--ok:#17694b;--ok-bg:#e6f4ef;--dark:#1e1e1e;--dark-2:#2e2e32;--chip-dark:#2b2e36;--chip-x:#40444f;--chip-x-hover:#4b505c;--font-body:"IBM Plex Sans KR", -apple-system, "Malgun Gothic", sans-serif;--font-mono:"IBM Plex Mono", monospace;--gutter:max(20px, calc((100% - 1080px) / 2))}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg-body);font-family:var(--font-body);font-variant-numeric:tabular-nums;margin:0;padding:0;overflow-x:clip}a{color:var(--accent)}a:hover{color:var(--accent-dark)}button,input{font:inherit}input::placeholder{color:#767676}img{max-width:100%}.page{flex-direction:column;width:100%;min-height:100vh;display:flex}.topbar{background:var(--dark);flex:none;justify-content:space-between;align-items:center;gap:12px;height:60px;padding:0 max(16px,50% - 540px);display:flex}.brand{min-width:0;color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{color:inherit}.brand:focus-visible{outline-offset:4px;border-radius:6px;outline:2px solid #fff}.brand svg{flex:none}.brand-name{color:#fff;letter-spacing:-.01em;white-space:nowrap;font-size:17px;font-weight:700;line-height:24px}.brand-link{font-family:var(--font-mono);letter-spacing:.04em;color:#bdbdbd;white-space:nowrap;flex:none;font-size:12px;font-weight:500;text-decoration:none}.brand-link:hover{color:#fff;text-decoration:underline}.hero{background:var(--hero-bg);padding:clamp(20px, 4vw, 40px) var(--gutter)}h1{letter-spacing:-.03em;color:var(--fg);margin:0 0 8px;font-size:clamp(26px,5vw,40px);font-weight:700;line-height:1.25}.sub{color:#444;text-wrap:pretty;margin:0;font-size:15px;line-height:24px}.only-narrow{display:none}@media (max-width:600px){.hide-narrow{display:none}.only-narrow{display:block}}.grid{padding:28px var(--gutter) 120px;flex:1;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:32px 40px;display:grid}.col-left,.col-right{flex-direction:column;min-width:0;display:flex}.col-left{gap:32px}.block{flex-direction:column;gap:12px;display:flex}.block-search{gap:10px}.section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-count{font-family:var(--font-mono);color:var(--fg-mute);font-size:12px}.section-head-action{align-items:center;min-height:44px}.head-actions{align-items:center;gap:4px;display:flex}.reset-btn{height:44px;font:inherit;color:var(--fg);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:600;display:inline-flex}.reset-btn:hover{background:#f0f0f2}.reset-btn:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.over-chip{background:var(--warn-bg);height:26px;color:var(--warn);border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.error-box{background:var(--warn-bg);color:var(--warn);border-radius:16px;margin:0;padding:14px 18px;font-size:13px}.brand-chip{background:var(--dark-2);height:26px;font-family:var(--font-mono);letter-spacing:.04em;color:#e0e0e4;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:500;display:inline-flex}.brand-chip-dot{background:linear-gradient(135deg,#3d63f0,#7fa2ff);border-radius:999px;width:6px;height:6px}@media (max-width:600px){.brand-chip{display:none}}@media (min-width:920px){.col-left{max-height:calc(100vh - 32px);position:sticky;top:16px;overflow-y:auto}}.search-pill{background:var(--panel);border:1px solid #d4d4da;border-radius:999px;align-items:center;gap:10px;height:56px;padding:0 20px;display:flex;box-shadow:0 2px 8px #0000000d}.search-pill:focus-within{border-color:var(--fg)}.search-pill svg{flex:none}.search{min-width:0;height:44px;color:var(--fg);background:0 0;border:0;outline:none;flex:1;font-size:16px}.list{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden}.list-scroll{max-height:266px;overflow:hidden auto}.list-scroll.list-tall{max-height:420px}.list-scroll::-webkit-scrollbar{width:14px}.list-scroll::-webkit-scrollbar-track{background:0 0;margin:14px 0}.list-scroll::-webkit-scrollbar-thumb{background:#c9c9cf padding-box padding-box;border:4px solid #0000;border-radius:999px}.list-scroll::-webkit-scrollbar-thumb:hover{background-color:#9a9aa2}.list-scroll::-webkit-scrollbar-button{height:0;display:none}@supports not selector(::-webkit-scrollbar){.list-scroll{scrollbar-width:thin;scrollbar-color:#c9c9cf transparent}}.item{text-align:left;background:var(--panel);width:100%;min-height:48px;color:var(--fg);cursor:pointer;border:0;border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 18px;font-size:14px;line-height:21px;display:flex}.item:last-child{border-bottom:none}.item:hover{background:#f7f7f8}.item.selected{background:#f4f4f5;font-weight:600}.item-name{text-wrap:pretty;word-break:keep-all;overflow-wrap:anywhere;min-width:0}.item-tag{white-space:nowrap;height:24px;color:var(--fg-mute);border-radius:999px;flex:none;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.item-tag.tag-count{color:var(--fg-body);background:#f0f0f2}.item.selected .item-tag{background:var(--fg);color:#fff}.item-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.item-sub{color:var(--fg-mute);word-break:keep-all;font-size:12px;font-weight:400;line-height:18px}.nutrient-filter{flex-direction:column;gap:12px;margin-top:8px;display:flex}.filter-head{justify-content:space-between;align-items:center;gap:12px;min-height:36px;display:flex}.filter-title{align-items:baseline;gap:8px;min-width:0;display:flex}.filter-label{color:var(--fg);font-size:15px;font-weight:700;line-height:22px}.filter-count{color:var(--fg-mute);font-size:13px}.filter-btn{height:36px;font:inherit;color:#444;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 10px;font-size:13px;font-weight:600}.filter-btn:hover{background:#f0f0f2}.filter-actions{flex:none;justify-content:flex-end;align-items:center;gap:2px;display:flex}.chip-wrap{align-items:flex-start;gap:8px;display:flex}.chip-row{flex-wrap:wrap;flex:1;gap:8px;min-width:0;display:flex}.chip{white-space:nowrap;background:var(--panel);height:36px;font:inherit;color:var(--fg-body);cursor:pointer;border:1px solid #e0e0e4;border-radius:999px;flex:none;padding:0 14px;font-size:14px;font-weight:500}.chip:hover{border-color:var(--fg)}.chip.on{background:var(--fg);border-color:var(--fg);color:#fff}.chip:focus-visible,.filter-btn:focus-visible,.chips-toggle:focus-visible,.all-only:focus-visible,.excl-btn:focus-visible,.more-btn:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.chips-toggle{width:36px;height:36px;color:var(--fg);cursor:pointer;background:#fff;border:1px solid #e0e0e4;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;display:none}@media (max-width:600px){.chips-toggle{display:inline-flex}.chip-row:not(.open){scroll-snap-type:x proximity;scrollbar-width:none;flex-wrap:nowrap;margin-left:-20px;padding:2px 32px 2px 20px;scroll-padding-left:20px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.chip-row:not(.open)::-webkit-scrollbar{display:none}.chip-row:not(.open)>.chip{scroll-snap-align:start}.chip-row:not(.open)>.chip.front{order:-1}}.all-only{min-height:36px;font:inherit;color:var(--fg-body);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:10px;padding:0;font-size:14px;display:inline-flex}.switch{background:#c9c9cf;border-radius:999px;flex:none;justify-content:flex-start;width:36px;height:22px;padding:2px;display:flex}.switch.on{background:var(--fg);justify-content:flex-end}.switch-knob{background:#fff;border-radius:999px;width:18px;height:18px;box-shadow:0 1px 2px #0003}.list-intro{flex-direction:column;gap:10px;margin-top:4px;display:flex}.notice{word-break:keep-all;background:#fdf4e3;border-radius:16px;gap:10px;padding:14px 16px;display:flex}.notice svg{flex:none;margin-top:2px}.notice-text{flex-direction:column;gap:2px;display:flex}.notice-title{color:#5c3f06;font-size:15px;font-weight:700;line-height:22px}.notice-body{color:#5c3f06;font-size:14px;line-height:21px}.list-head{justify-content:space-between;align-items:center;gap:12px;min-height:32px;padding:0 4px;display:flex}.list-head-text{color:var(--fg);font-size:14px;font-weight:600}.excl-btn{height:32px;font:inherit;color:#444;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;align-items:center;gap:4px;padding:0 6px;font-size:13px;display:inline-flex}.excl-btn:hover{background:#f0f0f2}.excl-note{color:#444;word-break:keep-all;background:#f6f6f8;border-radius:12px;margin:-4px 0 0;padding:10px 14px;font-size:13px;line-height:20px}.empty-hint{color:var(--fg-dim);padding:18px;font-size:14px}.section-label{letter-spacing:-.02em;color:var(--fg);margin:0;font-size:20px;font-weight:700;line-height:28px}.col-right{gap:12px}.col-right .nutrient{margin-bottom:0}.no-selection,.no-nutrients{background:var(--panel-2);color:var(--fg-dim);border-radius:20px;padding:20px;font-size:14px;line-height:22px}.selected-list{flex-direction:column;gap:8px;display:flex}.selected-card{background:var(--chip-dark);border-radius:16px;align-items:center;min-height:52px;padding:8px 8px 8px 18px;display:flex}.selected-top{flex:1;justify-content:space-between;align-items:center;gap:12px;display:flex}.selected-name{color:#fff;min-width:0;font-size:14px;font-weight:600;line-height:21px}.selected-top button{appearance:none;background:var(--chip-x);color:#fff;cursor:pointer;border:none;border-radius:12px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.selected-top button:hover{background:var(--chip-x-hover)}.selected-meta{color:var(--fg-dim);margin-top:6px;font-size:11px}.nutrient{background:var(--panel);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:10px;margin-bottom:12px;padding:18px 20px;display:flex}.nutrient.over{border-color:var(--warn-line);background:var(--warn-card)}.nutrient-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.nutrient-name{min-width:0;color:var(--fg);font-size:16px;font-weight:700;line-height:24px}.nutrient-amt{font-family:var(--font-mono);color:var(--fg-dim);white-space:nowrap;flex:none;font-size:13px}.nutrient-amt b{color:var(--fg);font-weight:600}.nutrient.over .nutrient-amt b{color:var(--warn)}.track{background:var(--line-2);border-radius:999px;height:8px;position:relative;overflow:hidden}.fill{background:var(--accent-grad);border-radius:999px;height:8px;transition:width .25s}.nutrient.over .fill{background:var(--warn)}.badge{height:24px;color:var(--fg-body);white-space:nowrap;background:#f0f0f2;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.badge .dot{background:#1e9e6a;border-radius:999px;width:6px;height:6px}.nutrient.over .badge{background:var(--warn-bg);color:var(--warn-strong)}.nutrient.over .badge .dot{background:var(--warn)}.nutrient-src{color:#5c5c5c;text-wrap:pretty;word-break:keep-all;font-size:13px;line-height:20px}.common-src{color:#5c5c5c;word-break:keep-all;margin:-6px 0 0;font-size:13px;line-height:20px}.cond-box{color:var(--fg-body);word-break:keep-all;text-wrap:pretty;background:#f4f4f5;border-radius:10px;align-self:flex-start;padding:6px 10px;font-size:13px;line-height:20px}.card-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.nutrient-title{align-items:center;gap:6px;min-width:0;display:flex}.rev-tag{color:#2a44b8;white-space:nowrap;background:#e8eeff;border-radius:6px;align-items:center;height:20px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.ok-box{border:1px solid var(--line);background:var(--panel);border-radius:20px;overflow:hidden}.ok-head{background:var(--panel-2);color:var(--fg-body);align-items:center;gap:6px;padding:12px 18px;font-size:13px;font-weight:600;display:flex}.ok-head .dot{background:#1e9e6a;border-radius:999px;width:6px;height:6px}.ok-item{border-top:1px solid var(--line-2)}.ok-row{text-align:left;width:100%;min-height:52px;font:inherit;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(72px,auto) minmax(40px,1fr) auto 16px;align-items:center;gap:12px;padding:10px 18px;display:grid}.ok-row:hover{background:#fafafb}.ok-row:focus-visible{outline:2px solid var(--fg);outline-offset:-2px}.ok-name-wrap{flex-direction:column;gap:2px;min-width:0;display:flex}.ok-name{color:var(--fg);white-space:nowrap;font-size:14px;font-weight:600}.ok-tag{color:#2a44b8;white-space:nowrap;background:#e8eeff;border-radius:5px;align-self:flex-start;align-items:center;height:18px;padding:0 6px;font-size:10px;font-weight:600;display:inline-flex}.ok-track{background:var(--line-2);border-radius:999px;height:6px;display:block;overflow:hidden}.ok-fill{background:var(--accent-grad);border-radius:999px;height:6px;display:block}.ok-amt{white-space:nowrap;font-family:var(--font-mono);color:var(--fg-dim);font-size:12px}.ok-amt b{color:var(--fg);font-weight:600}.ok-detail{flex-direction:column;gap:8px;padding:0 18px 14px;display:flex}.more-btn{height:32px;font:inherit;color:var(--fg);white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e0e0e4;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 10px 0 12px;font-size:13px;font-weight:600;display:inline-flex}.more-btn:hover{border-color:var(--fg)}.detail-box{background:var(--panel-2);border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.contrib{background:var(--panel-2);border-radius:12px;flex-direction:column;gap:6px;margin-top:2px;padding:12px 14px;display:flex}.contrib-row{color:#444;justify-content:space-between;gap:12px;font-size:13px;line-height:20px;display:flex}.contrib-row span{min-width:0}.contrib-row b{font-family:var(--font-mono);color:var(--fg);flex:none;font-weight:600}.contrib-label{color:var(--fg-body);font-size:13px;font-weight:600}.foot svg{flex:none;margin-top:3px}.status-line{color:var(--fg-mute);margin:0;padding:4px 8px;font-size:13px}.loading-box{text-align:center;background:#f6f6f8;border-radius:20px;flex-direction:column;align-items:center;gap:14px;padding:28px 20px 24px;display:flex}.loading-heart{transform-origin:50% 60%;line-height:0;animation:1.5s cubic-bezier(.45,0,.35,1) infinite vaHeart}.va-dash{animation:1.8s linear infinite vaDash}.loading-text{word-break:keep-all;flex-direction:column;gap:4px;display:flex}.loading-title{color:var(--fg);font-size:15px;font-weight:600}.loading-body{color:#5c5c5c;font-size:13px;line-height:20px}@keyframes vaHeart{0%,to{transform:scale(1)rotate(0)}18%{transform:scale(1.14,.9)rotate(-9deg)}36%{transform:scale(.92,1.1)rotate(7deg)}54%{transform:scale(1.08)rotate(-4deg)}72%{transform:scale(.97,1.03)rotate(3deg)}86%{transform:scale(1.02)rotate(-1deg)}}@keyframes vaDash{to{stroke-dashoffset:-100px}}@media (prefers-reduced-motion:reduce){.va-anim{animation:none!important}}.foot{border-top:1px solid var(--line);color:var(--fg-dim);grid-column:1/-1;align-items:flex-start;gap:8px;margin:0;padding-top:20px;font-size:13px;line-height:20px;display:flex}.protein-card{border-color:var(--line);background:var(--panel);gap:12px}.protein-fill{background:var(--accent-grad)}.protein-badge{color:var(--fg-body);background:#f0f0f2}.weight-label{color:var(--fg-body);flex-direction:column;gap:8px;font-size:13px;display:flex}.weight-input{background:var(--panel-2);width:140px;height:44px;color:var(--fg);border:1px solid #e0e0e4;border-radius:12px;outline:none;padding:0 14px;font-size:15px}@media (max-width:600px){.weight-input{font-size:16px}}input[type=number]::-webkit-inner-spin-button{opacity:.4}
