:root{--font-sans:"Segoe UI", "Helvetica Neue", Arial, sans-serif;--overlay-scrim:#080a14b3;--danger-shadow:#5a2a2a59}:root[data-theme=dark]{--color-app-bg:#0f0f23;--color-app-fg:#d4d7e8;--color-muted:#8388a7;--color-subtle:#5d627c;--color-panel:#12122a;--color-panel-alt:#16213e;--color-panel-strong:#1a1a2e;--color-surface:#101936;--color-surface-soft:#1a1a3e;--color-surface-pressed:#2a2a5e;--color-border:#2a2a4a;--color-border-strong:#4a4a8a;--color-accent-text:#8ec8f0;--color-heading:#e0e0ff;--color-link:#6eaadc;--color-link-hover:#8ec8f0;--color-success:#7ce07c;--color-info:#60a5fa;--color-warning-bg:#2a1a00;--color-warning-ring:#d97706;--color-error-bg:#3e1a1a;--color-error-text:#f87171;--color-error-border:#5a2a2a;--color-filter-header-bg:#1a2a1e;--color-filter-header-text:#b0e0b0;--color-filter-cell-bg:#0f1a0f;--color-filter-cell-hover:#1a2a1a;--color-checkbox:#22c55e;--color-dialog-copy:#9aa5d4;--color-brand-townhouse-bg:#7b1f1f;--color-brand-carrs-bg:#181818;--color-brand-club-bg:#1e5a2c;--color-brand-zesta-bg:#c32626;--color-brand-toasteds-bg:#4e2d67;--color-brand-chip-text:#fff}:root[data-theme=light]{--color-app-bg:#f3f5f9;--color-app-fg:#1f2433;--color-muted:#5f6679;--color-subtle:#7f879b;--color-panel:#e8edf6;--color-panel-alt:#fff;--color-panel-strong:#dce5f2;--color-surface:#fff;--color-surface-soft:#eef3fb;--color-surface-pressed:#dde7f7;--color-border:#c5d0e1;--color-border-strong:#7c96c1;--color-accent-text:#215f9a;--color-heading:#162338;--color-link:#235f93;--color-link-hover:#163f68;--color-success:#1f7a3d;--color-info:#235f93;--color-warning-bg:#fff2d9;--color-warning-ring:#b96f10;--color-error-bg:#fde9e8;--color-error-text:#b33838;--color-error-border:#e7b0ae;--color-filter-header-bg:#e4efe1;--color-filter-header-text:#245130;--color-filter-cell-bg:#edf5ec;--color-filter-cell-hover:#dcebd8;--color-checkbox:#208f47;--color-dialog-copy:#526078;--color-brand-townhouse-bg:#7b1f1f;--color-brand-carrs-bg:#181818;--color-brand-club-bg:#1e5a2c;--color-brand-zesta-bg:#c32626;--color-brand-toasteds-bg:#4e2d67;--color-brand-chip-text:#fff}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:var(--color-app-bg);width:100%;height:100%;color:var(--color-app-fg);font-family:var(--font-sans);overflow:hidden}body{transition:background-color .18s,color .18s}.login-wrapper[data-v-6f6a19ae]{background:var(--color-app-bg);justify-content:center;align-items:center;height:100vh;display:flex}.login-form[data-v-6f6a19ae]{background:var(--color-panel-alt);border-radius:8px;flex-direction:column;gap:16px;width:320px;padding:32px;display:flex}h2[data-v-6f6a19ae]{color:var(--color-heading);text-align:center;margin:0 0 8px;font-size:18px}.field[data-v-6f6a19ae]{flex-direction:column;gap:4px;display:flex}label[data-v-6f6a19ae]{color:var(--color-accent-text);font-size:12px;font-weight:600}input[data-v-6f6a19ae]{border:1px solid var(--color-border);background:var(--color-app-bg);color:var(--color-app-fg);border-radius:4px;padding:8px 10px;font-size:14px}input[data-v-6f6a19ae]:focus{border-color:var(--color-border-strong);outline:none}button[data-v-6f6a19ae]{background:var(--color-surface-soft);color:var(--color-heading);cursor:pointer;border:none;border-radius:4px;padding:10px;font-size:14px;font-weight:600}button[data-v-6f6a19ae]:hover:not(:disabled){background:var(--color-border-strong)}button[data-v-6f6a19ae]:disabled{opacity:.5;cursor:default}.error[data-v-6f6a19ae]{color:var(--color-error-text);margin:0;font-size:12px}.snapshot-bar[data-v-10100d29]{background:var(--color-panel);border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:6px 10px;display:flex;position:relative}.bar-section[data-v-10100d29]{align-items:center;gap:4px;display:flex}.bar-section label[data-v-10100d29]{color:var(--color-accent-text);white-space:nowrap;font-size:11px;font-weight:600}select[data-v-10100d29]{border:1px solid var(--color-border);background:var(--color-app-bg);color:var(--color-app-fg);border-radius:4px;max-width:200px;padding:4px 6px;font-size:12px}.bar-actions[data-v-10100d29]{align-items:center;gap:4px;margin-left:auto;display:flex}.readonly-badge[data-v-10100d29]{color:var(--color-muted);font-size:11px;font-style:italic}.status-badge[data-v-10100d29]{font-size:11px}.success-badge[data-v-10100d29]{color:var(--color-success)}.info-badge[data-v-10100d29]{color:var(--color-info)}.sort-badge[data-v-10100d29]{color:var(--color-accent-text)}.secondary[data-v-10100d29]{padding-inline:6px}.bar-btn[data-v-10100d29]{border:1px solid var(--color-border);color:var(--color-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:flex}.bar-btn.active[data-v-10100d29]{background:var(--color-surface);color:var(--color-heading);border-color:var(--color-border-strong)}.icon-btn[data-v-10100d29]{justify-content:center;width:30px;height:28px;padding:0}.bar-btn[data-v-10100d29]:hover:not(:disabled){background:var(--color-surface-soft);color:var(--color-app-fg)}.bar-btn[data-v-10100d29]:disabled{opacity:.4;cursor:default}.bar-btn.danger[data-v-10100d29]:hover:not(:disabled){background:var(--color-error-bg);color:var(--color-error-text);border-color:var(--color-error-border)}.bar-btn.logout[data-v-10100d29]{padding:4px 6px}.upload-overlay[data-v-10100d29]{background:var(--overlay-scrim);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upload-form[data-v-10100d29]{background:var(--color-panel-alt);border-radius:8px;flex-direction:column;gap:12px;width:340px;padding:24px;display:flex}.upload-form h3[data-v-10100d29]{color:var(--color-heading);margin:0;font-size:16px}.dialog-copy[data-v-10100d29]{color:var(--color-dialog-copy);font-size:12px;line-height:1.45}.field[data-v-10100d29]{flex-direction:column;gap:4px;display:flex}.field label[data-v-10100d29]{color:var(--color-accent-text);font-size:11px;font-weight:600}.field input[type=text][data-v-10100d29]{border:1px solid var(--color-border);background:var(--color-app-bg);color:var(--color-app-fg);border-radius:4px;padding:6px 8px;font-size:13px}.field input[type=file][data-v-10100d29]{color:var(--color-muted);font-size:12px}.form-actions[data-v-10100d29]{justify-content:flex-end;gap:8px;display:flex}.danger-dialog[data-v-10100d29]{border:1px solid var(--color-error-border);box-shadow:0 12px 40px var(--danger-shadow)}.grid-shell[data-v-e9d99bb4]{font-family:var(--font-sans);background:var(--color-app-bg);color:var(--color-app-fg);flex-direction:column;flex:1;font-size:12px;display:flex;overflow:hidden}@keyframes fade-in-out-e9d99bb4{0%{opacity:0}15%{opacity:1}75%{opacity:1}to{opacity:0}}.grid-wrapper[data-v-e9d99bb4]{flex:1;grid-template-rows:40px 1fr;display:grid;overflow:hidden}.corner[data-v-e9d99bb4]{z-index:3;background:var(--color-panel-strong);grid-area:1/1;overflow:hidden}.header-row[data-v-e9d99bb4]{z-index:2;background:var(--color-panel-strong);grid-area:1/2;overflow:hidden}.header-row-inner[data-v-e9d99bb4]{flex-wrap:nowrap;width:max-content;display:flex}.frozen-col[data-v-e9d99bb4]{z-index:2;background:var(--color-panel-alt);grid-area:2/1;overflow:hidden}.body[data-v-e9d99bb4]{grid-area:2/2;overflow:auto}.body-inner[data-v-e9d99bb4]{width:max-content}.grid-row[data-v-e9d99bb4]{flex-wrap:nowrap;display:flex}.cell[data-v-e9d99bb4]{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);white-space:nowrap;text-overflow:ellipsis;flex-grow:0;flex-shrink:0;align-items:center;width:160px;min-width:160px;max-width:160px;height:40px;padding:4px 8px;display:flex;position:relative;overflow:hidden}.cell-text[data-v-e9d99bb4]{text-overflow:ellipsis;overflow:hidden}.cell-list[data-v-e9d99bb4]{white-space:normal;width:100%;margin:0;padding-left:18px}.cell-list li[data-v-e9d99bb4]{margin:0}.brand-list[data-v-e9d99bb4]{list-style:outside}.wrap-cell[data-v-e9d99bb4]{white-space:normal;align-items:flex-start;height:auto;min-height:40px}.wrap-cell .cell-text[data-v-e9d99bb4]{white-space:normal;word-break:break-word}.header-cell[data-v-e9d99bb4]{background:var(--color-panel-strong);color:var(--color-heading);font-weight:600}.header-content[data-v-e9d99bb4]{align-items:center;gap:8px;width:100%;padding-right:28px;display:flex}.filter-header[data-v-e9d99bb4]{background:var(--color-filter-header-bg);color:var(--color-filter-header-text)}.sort-btn[data-v-e9d99bb4]{border:1px solid var(--color-border);width:24px;height:24px;color:var(--color-muted);cursor:pointer;z-index:1;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.sort-btn[data-v-e9d99bb4]:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-app-fg)}.sort-btn[data-v-e9d99bb4]:focus-visible{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-heading);outline:none}.frozen-cell[data-v-e9d99bb4]{background:var(--color-panel-alt);direction:rtl}.cell-link[data-v-e9d99bb4]{color:var(--color-link);text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;text-decoration:none;overflow:hidden}.cell-link[data-v-e9d99bb4]:hover{color:var(--color-link-hover);text-decoration:underline}.body-cell[data-v-e9d99bb4]{background:var(--color-app-bg);color:var(--color-app-fg);cursor:pointer}.body-cell[data-v-e9d99bb4]:hover{background:var(--color-surface-soft)}.body-cell[data-v-e9d99bb4]:active{background:var(--color-surface-pressed)}.image-cell[data-v-e9d99bb4]{cursor:default;justify-content:center}.recipe-thumb[data-v-e9d99bb4]{object-fit:cover;border:1px solid var(--color-border);background:var(--color-panel);border-radius:6px;width:auto;max-width:96px;height:auto;max-height:64px;display:block}.empty-image[data-v-e9d99bb4]{color:var(--color-muted);font-size:11px}.filter-col[data-v-e9d99bb4]{background:var(--color-filter-cell-bg);cursor:default;justify-content:center}.filter-col[data-v-e9d99bb4]:hover{background:var(--color-filter-cell-hover)}.diff-cell[data-v-e9d99bb4]{box-shadow:inset 0 0 0 2px var(--color-warning-ring);background:var(--color-warning-bg)!important}.filter-checkbox[data-v-e9d99bb4]{cursor:pointer;width:16px;height:16px;accent-color:var(--color-checkbox)}.filter-checkbox[data-v-e9d99bb4]:disabled{cursor:default}.filter-checkbox.filter-off[data-v-e9d99bb4]{opacity:.25}[data-v-e9d99bb4] .brand-chip{color:var(--color-brand-chip-text);border-radius:999px;align-items:center;margin:1px 0;padding:1px 5px;font-weight:700;display:inline-flex}[data-v-e9d99bb4] .brand-townhouse{background:var(--color-brand-townhouse-bg)}[data-v-e9d99bb4] .brand-carrs{background:var(--color-brand-carrs-bg)}[data-v-e9d99bb4] .brand-club{background:var(--color-brand-club-bg)}[data-v-e9d99bb4] .brand-zesta{background:var(--color-brand-zesta-bg)}[data-v-e9d99bb4] .brand-toasteds{background:var(--color-brand-toasteds-bg)}.col-resize-handle[data-v-e9d99bb4]{cursor:col-resize;z-index:1;width:5px;position:absolute;top:0;bottom:0;right:0}.col-resize-handle[data-v-e9d99bb4]:hover{background:var(--color-border-strong)}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.error-banner{background:var(--color-error-bg);color:var(--color-error-text);border-bottom:1px solid var(--color-error-border);padding:6px 12px;font-size:12px}.loading-bar{background:var(--color-surface-soft);color:var(--color-info);border-bottom:1px solid var(--color-border-strong);padding:6px 12px;font-size:12px}.empty-state{color:var(--color-subtle);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}
