@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}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.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{--color-bg-base: #fcf9f6;--color-bg-surface: #fefdfb;--color-bg-elevated: #ffffff;--color-bg-header: #ebe8e4;--color-bg-hover: #f5f3f0;--color-border-base: #d4cfcb;--color-border-subtle: #e8e5e1;--color-border-strong: #c9c4bf;--color-text-primary: #2e2823;--color-text-secondary: #6b6662;--color-text-tertiary: #9d9893;--color-primary: #c67c2e;--color-primary-hover: #a86925;--color-primary-active: #8c5620;--color-primary-light: #f0dcc4;--color-success: #6b8e73;--color-warning: #d4a253;--color-error: #b85c44;--color-info: #7b8ea3;--font-sans: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Outfit Variable", "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", "Monaco", "Inconsolata", "Roboto Mono", "Courier New", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.2;--line-height-snug: 1.3;--line-height-base: 1.4;--line-height-relaxed: 1.6;--letter-spacing-tight: -.01em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--spacing-16: 64px;--radius-none: 0;--radius-sm: 2px;--radius-base: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(46, 40, 35, .06), 0 1px 3px rgba(46, 40, 35, .08);--shadow-base: 0 2px 4px rgba(46, 40, 35, .08), 0 4px 8px rgba(46, 40, 35, .1);--shadow-md: 0 4px 8px rgba(46, 40, 35, .1), 0 6px 12px rgba(46, 40, 35, .12);--shadow-lg: 0 8px 16px rgba(46, 40, 35, .12), 0 10px 24px rgba(46, 40, 35, .14);--shadow-inset: inset 0 1px 3px rgba(46, 40, 35, .12)}html[data-theme=dark]{--color-bg-base: #1a1917;--color-bg-surface: #232220;--color-bg-elevated: #2b2926;--color-bg-header: #2b2926;--color-bg-hover: #302e2a;--color-border-base: #38342f;--color-border-subtle: #2a2724;--color-border-strong: #4a423b;--color-text-primary: #ece9e5;--color-text-secondary: #a8a29b;--color-text-tertiary: #6f6a64;--color-primary: #d98b40;--color-primary-hover: #e6a258;--color-primary-active: #c2762f;--color-primary-light: #3a2e20;--color-success: #7fa587;--color-warning: #e0b36a;--color-error: #d07a60;--color-info: #92a4b8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .45);--shadow-base: 0 2px 4px rgba(0, 0, 0, .4), 0 4px 8px rgba(0, 0, 0, .45);--shadow-md: 0 4px 8px rgba(0, 0, 0, .45), 0 6px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .5), 0 10px 24px rgba(0, 0, 0, .55);--shadow-inset: inset 0 1px 3px rgba(0, 0, 0, .5)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;padding:0;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text-primary);background-color:var(--color-bg-base);min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1.ant-typography,h2.ant-typography,h3.ant-typography,h4.ant-typography,h5.ant-typography,.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-typography h4,.ant-typography h5{font-family:var(--font-display)}h1{font-size:var(--font-size-xl);margin-bottom:var(--spacing-6)}h2{font-size:var(--font-size-lg);margin-bottom:var(--spacing-4)}h3{font-size:var(--font-size-md);margin-bottom:var(--spacing-3)}p{margin:0 0 var(--spacing-4) 0}a{color:var(--color-primary);text-decoration:none;transition:color .15s ease;font-weight:var(--font-weight-medium)}a:hover{color:var(--color-primary-hover);text-decoration:none}a:active{color:var(--color-primary-active)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}table{border-collapse:collapse;width:100%}button{font-family:var(--font-sans);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}.mono-numbers{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.text-right{text-align:right}.text-center{text-align:center}::selection{background-color:var(--color-primary-light);color:var(--color-text-primary)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-bg-header)}::-webkit-scrollbar-thumb{background:var(--color-border-base);border-radius:6px;border:2px solid var(--color-bg-header)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ant-table-wrapper .ant-table-tbody>tr>td{padding:6px 12px;font-size:14px;line-height:var(--line-height-snug)}.ant-table-wrapper .ant-table-thead>tr>th{padding:8px 12px;font-size:12px;font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);background-color:var(--color-bg-header);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-base)}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background-color:var(--color-bg-hover)}.ant-table-wrapper .ant-table-tbody>tr.ant-table-row-selected>td{background-color:var(--color-primary-light)}.ant-table-wrapper .ant-table-tbody>tr.ant-table-row-selected:hover>td{background-color:#e0bf9a}.ant-table-wrapper .ant-table-tbody>tr.ant-table-row:nth-child(2n)>td{background-color:transparent}.ant-table-wrapper .ant-table-thead>tr>th{border-bottom:1px solid var(--color-border-base)}.ant-table-wrapper .ant-table-tbody>tr>td{border-bottom:1px solid var(--color-border-subtle)}.ant-table-wrapper .ant-table-thead>tr>th:not(:last-child):before,.ant-table-wrapper .ant-table-tbody>tr>td:not(:last-child):before{display:none}.ant-table-wrapper .ant-table-tbody>tr>td.numeric,.ant-table-wrapper .ant-table-thead>tr>th.numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.ant-table-wrapper,.ant-table-wrapper .ant-table{background-color:var(--color-bg-surface)}.ant-table-wrapper .ant-pagination{margin-top:var(--spacing-4)}.ant-table-wrapper .ant-pagination-item{border:1px solid var(--color-border-base);background-color:var(--color-bg-surface)}.ant-table-wrapper .ant-pagination-item-active{border-color:var(--color-primary);background-color:var(--color-primary-light)}.ant-table-wrapper .ant-pagination-item a{color:var(--color-text-primary)}.ant-table-wrapper .ant-pagination-item-active a{color:var(--color-primary)}.ant-table-wrapper .ant-table-column-sorter{color:var(--color-text-tertiary)}.ant-table-wrapper .ant-table-column-sorter-up.active,.ant-table-wrapper .ant-table-column-sorter-down.active{color:var(--color-primary)}.ant-table-wrapper .ant-table-placeholder{background-color:var(--color-bg-surface);color:var(--color-text-secondary)}.ant-btn{font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);transition:all .15s ease}.ant-btn:hover:not(:disabled){box-shadow:var(--shadow-base);transform:translateY(-1px)}.ant-btn:active:not(:disabled){box-shadow:var(--shadow-inset);transform:translateY(0)}.ant-btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.ant-btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.ant-btn-primary:active:not(:disabled){background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.ant-btn-default{background-color:var(--color-bg-surface);border-color:var(--color-border-base);color:var(--color-text-primary)}.ant-btn-default:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.ant-btn-text{box-shadow:none;color:var(--color-text-secondary)}.ant-btn-text:hover:not(:disabled){color:var(--color-primary);background-color:var(--color-bg-hover);box-shadow:none;transform:none}.ant-btn-link{color:var(--color-primary);box-shadow:none}.ant-btn-link:hover:not(:disabled){color:var(--color-primary-hover);box-shadow:none;transform:none}.ant-btn:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}.ant-btn-icon-only{display:inline-flex;align-items:center;justify-content:center}.ant-btn-group .ant-btn{box-shadow:none}.ant-btn-group .ant-btn:hover:not(:disabled){box-shadow:var(--shadow-sm);z-index:1}.ant-card{background-color:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-base)}.ant-card-head{border-bottom:1px solid var(--color-border-subtle);padding:var(--spacing-4) var(--spacing-5);background-color:transparent}.ant-card-head-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.ant-card-body{padding:var(--spacing-5)}.ant-card-small .ant-card-head{padding:var(--spacing-3) var(--spacing-4)}.ant-card-small .ant-card-body{padding:var(--spacing-4)}.ant-card-hoverable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);transition:all .2s ease}.ant-card-extra{font-size:var(--font-size-base);color:var(--color-text-secondary)}.ant-input,.ant-input-affix-wrapper{background-color:var(--color-bg-elevated);border:1px solid var(--color-border-base);border-radius:var(--radius-base);box-shadow:var(--shadow-inset);color:var(--color-text-primary);transition:all .15s ease}.ant-input-affix-wrapper>.ant-input{border:none;box-shadow:none;background-color:transparent;border-radius:0}.ant-input:hover,.ant-input-affix-wrapper:hover{border-color:var(--color-primary)}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.ant-input::placeholder{color:var(--color-text-tertiary)}.ant-input-search .ant-input-group-addon .ant-btn{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.ant-input-search .ant-input-group-addon .ant-btn:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.ant-input-group-addon{background-color:var(--color-bg-header);border-color:var(--color-border-base);color:var(--color-text-secondary)}.ant-input:disabled,.ant-input-affix-wrapper-disabled{background-color:var(--color-bg-header);color:var(--color-text-tertiary);opacity:.6}.ant-select-selector{background-color:var(--color-bg-elevated);border:1px solid var(--color-border-base);border-radius:var(--radius-base);box-shadow:var(--shadow-inset);transition:all .15s ease}.ant-select:hover .ant-select-selector{border-color:var(--color-primary)}.ant-select-focused .ant-select-selector,.ant-select-open .ant-select-selector{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.ant-select-selection-placeholder{color:var(--color-text-tertiary)}.ant-select-dropdown{background-color:var(--color-bg-elevated);border-radius:var(--radius-base);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-subtle)}.ant-select-item{color:var(--color-text-primary);padding:6px 12px}.ant-select-item-option-selected{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-weight-medium)}.ant-select-item-option-active{background-color:var(--color-bg-hover)}.ant-select-multiple .ant-select-selection-item{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.ant-select-disabled .ant-select-selector{background-color:var(--color-bg-header);color:var(--color-text-tertiary);opacity:.6}.ant-statistic{display:flex;flex-direction:column}.ant-statistic-title{font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-2)}.ant-statistic-content{font-size:28px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-variant-numeric:tabular-nums;line-height:var(--line-height-tight)}.ant-statistic-content-value{font-family:var(--font-mono)}.ant-statistic-content-prefix,.ant-statistic-content-suffix{font-size:20px;margin:0 4px}.formula-ingredients-editor{display:flex;flex-direction:column;gap:12px}.formula-ingredients-editor.compact{gap:8px}.editor-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.changes-indicator{margin-left:auto}.add-ingredient-form{padding:12px;background:var(--ant-color-fill-tertiary);border-radius:6px;border:1px dashed var(--ant-color-border);position:relative;z-index:10}.add-ingredient-form .ant-select-dropdown{z-index:1050!important}.compact .add-ingredient-form{padding:8px}.row-new{background-color:var(--ant-color-success-bg)}.row-removed{background-color:var(--ant-color-error-bg);text-decoration:line-through;opacity:.6}.ingredient-new{font-weight:500}.formula-ingredients-editor .ant-input-number{width:100%}.formula-ingredients-editor .ant-table-summary{background:var(--ant-color-fill-tertiary)}.landing{background:var(--color-bg-base);color:var(--color-text-primary);min-height:100vh}.landing-ribbon{background:var(--color-primary-light);color:var(--color-text-primary);text-align:center;padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border-subtle)}.landing-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-6);background:color-mix(in srgb,var(--color-bg-surface) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border-subtle)}.landing-nav-links{display:flex;align-items:center;gap:var(--spacing-6)}.landing-nav-links a{color:var(--color-text-secondary);font-size:var(--font-size-base);text-decoration:none}.landing-nav-links a:hover{color:var(--color-primary)}@media(max-width:767px){.landing-nav-links{display:none}.landing-nav{padding:var(--spacing-3) var(--spacing-4)}}.landing-section{padding:var(--spacing-16) var(--spacing-6)}.landing-section-alt{background:var(--color-bg-surface);border-block:1px solid var(--color-border-subtle)}.landing-inner{max-width:1100px;margin:0 auto}.landing-section h2{font-family:var(--font-display);font-size:clamp(24px,4vw,32px);line-height:1.25;margin:0 0 var(--spacing-3)}.landing-section-lead{color:var(--color-text-secondary);font-size:var(--font-size-md);margin:0 0 var(--spacing-10);max-width:60ch}.landing-hero{padding:var(--spacing-16) var(--spacing-6);background:linear-gradient(180deg,var(--color-primary-light) 0%,var(--color-bg-base) 100%)}.landing-hero h1{font-family:var(--font-display);font-size:clamp(32px,6vw,52px);line-height:1.1;margin:0 0 var(--spacing-4);max-width:18ch}.landing-hero-sub{font-size:var(--font-size-md);color:var(--color-text-secondary);max-width:52ch;margin:0 0 var(--spacing-8)}.landing-hero-note{margin-top:var(--spacing-4);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.landing-card{height:100%;background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-6)}.landing-card h3{font-size:var(--font-size-md);margin:var(--spacing-3) 0 var(--spacing-2)}.landing-card p{color:var(--color-text-secondary);margin:0}.landing-icon{color:var(--color-primary);font-size:24px;line-height:1}.landing-step-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:600}.landing-shot{border:1px solid var(--color-border-base);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);background:var(--color-bg-elevated)}.landing-shot-bar{display:flex;gap:6px;padding:var(--spacing-2) var(--spacing-3);background:var(--color-bg-header);border-bottom:1px solid var(--color-border-subtle)}.landing-shot-dot{width:10px;height:10px;border-radius:50%;background:var(--color-border-strong)}.landing-shot img{display:block;width:100%;height:auto}.landing-shot-placeholder{aspect-ratio:16 / 10;display:grid;place-items:center;padding:var(--spacing-6);text-align:center;color:var(--color-text-tertiary);background:repeating-linear-gradient(45deg,var(--color-bg-hover),var(--color-bg-hover) 10px,var(--color-bg-surface) 10px,var(--color-bg-surface) 20px)}.landing-shot-caption{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--spacing-3) 0 0}.landing-trust-item{display:flex;align-items:flex-start;gap:var(--spacing-3);color:var(--color-text-secondary)}.landing-trust-item .landing-icon{font-size:18px;margin-top:2px}.landing-cta{text-align:center;background:var(--color-primary-light);border-block:1px solid var(--color-border-subtle)}.landing-cta .landing-section-lead{margin-inline:auto;margin-bottom:var(--spacing-8)}.landing-footer{background:var(--color-bg-surface);border-top:1px solid var(--color-border-subtle);padding:var(--spacing-12) var(--spacing-6) var(--spacing-8);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.landing-footer a{color:var(--color-text-secondary);text-decoration:none}.landing-footer a:hover{color:var(--color-primary)}.landing-footer-bottom{margin-top:var(--spacing-8);padding-top:var(--spacing-4);border-top:1px solid var(--color-border-subtle);color:var(--color-text-tertiary)}*{box-sizing:border-box}body{margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.ant-table-cell a{color:var(--color-primary);cursor:pointer}.ant-table-cell a:hover{color:var(--color-primary-hover)}.highlight-row,.highlight-row>td{background-color:var(--ant-color-warning-bg)!important}.highlight-row:hover,.highlight-row:hover>td{background-color:var(--ant-color-warning-bg-hover)!important}
