:root{--paper:#fbf7f9;--paper-raised:#fff;--ink:#241220;--ink-soft:#6b5a66;--line:#e8dee3;--accent:#8e2a4c;--accent-ink:#fff;--accent-soft:#f3e3e9;--good:#4f7a5c;--good-soft:#e6efe8;--warn:#9c6b1f;--warn-soft:#f7ecd8;--critical:#a33b3b;--critical-soft:#f7e3e3;--shadow-sm:0 1px 2px #2412200d;--shadow-md:0 6px 20px #24122017;--display:"Fraunces", Georgia, "Iowan Old Style", serif;--sans:"Work Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:15.5px/1.55 var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#1c1017;--paper-raised:#241620;--ink:#f3e9ee;--ink-soft:#b9a4b2;--line:#3a2530;--accent:#e2799b;--accent-ink:#241220;--accent-soft:#3a1e28;--good:#8fb49a;--good-soft:#24322a;--warn:#d8a65c;--warn-soft:#362b1a;--critical:#d97a7a;--critical-soft:#3a2323;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #0006}}:root[data-theme=dark]{--paper:#1c1017;--paper-raised:#241620;--ink:#f3e9ee;--ink-soft:#b9a4b2;--line:#3a2530;--accent:#e2799b;--accent-ink:#241220;--accent-soft:#3a1e28;--good:#8fb49a;--good-soft:#24322a;--warn:#d8a65c;--warn-soft:#362b1a;--critical:#d97a7a;--critical-soft:#3a2323;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #0006}:root[data-theme=light]{--paper:#fbf7f9;--paper-raised:#fff;--ink:#241220;--ink-soft:#6b5a66;--line:#e8dee3;--accent:#8e2a4c;--accent-ink:#fff;--accent-soft:#f3e3e9;--good:#4f7a5c;--good-soft:#e6efe8;--warn:#9c6b1f;--warn-soft:#f7ecd8;--critical:#a33b3b;--critical-soft:#f7e3e3;--shadow-sm:0 1px 2px #2412200d;--shadow-md:0 6px 20px #24122017}*{box-sizing:border-box}body{background:var(--paper);margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--display);color:var(--ink);text-wrap:balance;margin:0;font-weight:600}p{margin:0}button,input,select,textarea{font-family:var(--sans)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:1000px;margin:0 auto;padding:0 20px 80px}.swatch-ribbon{width:100%;height:104px;position:relative;overflow:hidden}.swatch-ribbon-bars{width:100%;height:100%;display:flex}.swatch-ribbon-bar{flex:1 0 auto;min-width:3px;height:100%;box-shadow:inset -1px 0 #ffffff8c}.swatch-ribbon-overlay{background:linear-gradient(#0000 35%,#14081073);justify-content:center;align-items:flex-end;padding-bottom:12px;display:flex;position:absolute;inset:0}.swatch-ribbon-caption{color:#fff;font-family:var(--display);letter-spacing:.01em;text-shadow:0 1px 4px #00000059;font-variant-numeric:tabular-nums;text-align:center;padding:0 24px;font-size:14px;font-style:italic}.app-header{z-index:10;background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:22px 0 18px;display:flex;position:sticky;top:0}.app-header .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.app-header h1{font-size:26px;font-style:italic;font-weight:500}button{font-family:var(--sans);cursor:pointer;border:1px solid var(--line);background:var(--paper-raised);color:var(--ink);border-radius:9px;padding:9px 16px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,transform 50ms}button:hover{border-color:var(--accent)}button:active{transform:translateY(1px)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.primary:hover{filter:brightness(1.06)}.error-box{background:var(--critical-soft);color:var(--critical);border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:14px}.empty-hint{color:var(--ink-soft);text-align:center;padding:48px 0;font-size:14px}.product-form{background:var(--paper-raised);border:1px solid var(--line);max-width:560px;box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:18px;padding:28px;display:flex}.product-form h2{margin-bottom:4px;font-size:20px;font-style:italic}.form-row{flex-direction:column;gap:7px;display:flex}.form-row.two-col{flex-direction:row;gap:16px}.form-row.two-col>div{flex-direction:column;flex:1;gap:7px;display:flex}.form-row label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:11.5px;font-weight:600}.form-row input,.form-row select,.form-row textarea{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:9px 11px;font-size:14.5px}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--accent)}.field-hint{color:var(--ink-soft);font-size:12px}.checkbox-inline{text-transform:none;letter-spacing:normal;color:var(--ink-soft);align-items:center;gap:6px;margin-top:4px;font-size:13px;font-weight:400;display:flex}.radio-group{flex-wrap:wrap;gap:18px;display:flex}.radio-group label{text-transform:none;letter-spacing:normal;color:var(--ink);align-items:center;gap:6px;font-size:14px;font-weight:400;display:flex}.form-actions{gap:10px;margin-top:4px;display:flex}.color-preview{color:var(--ink-soft);font-variant-numeric:tabular-nums;align-items:center;gap:10px;font-size:13px;display:flex}.swatch{border:1px solid #0000001f;border-radius:6px 6px 3px 3px;width:18px;height:24px;display:inline-block;box-shadow:inset 0 2px 3px #ffffff59,inset 0 -3px 4px #0000001f}.swatch.small{vertical-align:middle;width:12px;height:16px;margin-right:7px}.swatch.corner{width:20px;height:26px;position:absolute;top:10px;left:10px}.similar-warning{background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);color:var(--warn);border-radius:10px;padding:14px 16px;font-size:13px}.similar-warning ul{margin:8px 0;padding-left:20px}.list-toolbar{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:12px;flex-wrap:wrap;gap:10px;margin-bottom:18px;padding:10px;display:flex}.search-input{border:1px solid var(--line);background:var(--paper);min-width:180px;color:var(--ink);border-radius:8px;flex:1;padding:9px 12px;font-size:14px}.list-toolbar select{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:9px 10px;font-size:14px}.view-toggle{gap:4px;display:flex}.view-toggle button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.product-table{border-collapse:collapse;background:var(--paper-raised);border:1px solid var(--line);width:100%;box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}.product-table th,.product-table td{text-align:left;border-bottom:1px solid var(--line);padding:11px 13px;font-size:13.5px}.product-table th{background:var(--accent-soft);color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.product-table td:nth-child(6){font-variant-numeric:tabular-nums}.product-table tbody tr:hover{background:color-mix(in srgb, var(--accent-soft) 45%, transparent)}.thumb{object-fit:cover;border-radius:7px;width:40px;height:40px}.row-expired{background:var(--critical-soft)}.row-soon{background:var(--warn-soft)}.badge{letter-spacing:.03em;border-radius:999px;margin-left:6px;padding:3px 9px;font-size:10.5px;font-weight:700;display:inline-block}.badge-expired{background:var(--critical);color:#fff}.badge-soon{background:var(--warn);color:#fff}.pill{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-block}.pill-suitability-suitable,.pill-status-to_try{background:var(--good-soft);color:var(--good)}.pill-suitability-neutral,.pill-status-archived{background:var(--line);color:var(--ink-soft)}.pill-suitability-unsuitable{background:var(--critical-soft);color:var(--critical)}.pill-status-favorite{background:var(--accent-soft);color:var(--accent)}.actions{gap:6px;display:flex}.actions button{padding:5px 11px;font-size:12px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.gallery-card{background:var(--paper-raised);border:1px solid var(--line);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:12px;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.gallery-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.gallery-card img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.gallery-card .no-photo{aspect-ratio:1;width:100%;color:var(--ink-soft);background:var(--accent-soft);justify-content:center;align-items:center;font-size:12px;display:flex}.gallery-card .badge{position:absolute;top:10px;right:10px}.gallery-caption{flex-direction:column;gap:2px;padding:10px 11px;display:flex}.gallery-caption strong{font-family:var(--display);font-size:14.5px;font-style:italic;font-weight:500}.gallery-caption span{color:var(--ink-soft);font-size:12px}.back-link{color:var(--ink-soft);background:0 0;border:none;align-self:flex-start;margin-bottom:14px;padding:0;font-size:13px}.back-link:hover{color:var(--accent);border-color:#0000}.home-browse{flex-direction:column;gap:22px;display:flex}.home-search{gap:8px;display:flex}.home-search input{border:1px solid var(--line);background:var(--paper-raised);color:var(--ink);border-radius:9px;flex:1;padding:11px 14px;font-size:14.5px}.home-search button{padding:10px 18px}.home-section-title{font-family:var(--display);color:var(--ink);font-size:16px;font-style:italic}.category-tile-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.category-tile{border:1px solid var(--line);height:140px;box-shadow:var(--shadow-sm);border-radius:16px;padding:0;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.category-tile:hover{box-shadow:var(--shadow-md);border-color:var(--line);transform:translateY(-2px)}.category-tile-bars{display:flex;position:absolute;inset:0}.category-tile-bar{flex:1}.category-tile-overlay{text-align:left;background:linear-gradient(#0000 40%,#1408108c);flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:16px;display:flex;position:absolute;inset:0}.category-tile-label{font-family:var(--display);color:#fff;text-shadow:0 1px 4px #0000004d;font-size:20px;font-style:italic;font-weight:500}.category-tile-count{color:#ffffffd9;margin-top:2px;font-size:12px}.view-all-link{color:var(--accent);background:0 0;border:none;align-self:center;padding:6px;font-size:13.5px;font-weight:600}.view-all-link:hover{border-color:#0000;text-decoration:underline}.subcategory-browse{flex-direction:column;display:flex}.subcategory-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:14px;margin-bottom:18px;display:grid}.subcategory-tile{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;display:flex}.subcategory-tile:hover{border-color:var(--accent)}.subcategory-swatches{gap:3px;display:flex}.swatch.tiny{border-radius:3px 3px 2px 2px;width:9px;height:12px}.subcategory-label{font-size:14px;font-weight:600}.subcategory-count{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:12px}.product-cards{display:none}.pill-muted{background:var(--line);color:var(--ink-soft)}@media (width<=640px){.app{padding:0 14px 60px}.swatch-ribbon{height:76px}.swatch-ribbon-caption{font-size:12.5px}.app-header{flex-direction:column;align-items:flex-start;gap:12px;padding:16px 0 14px}.app-header h1{font-size:21px}.app-header button.primary{width:100%}.list-toolbar{flex-direction:column;align-items:stretch}.list-toolbar select,.view-toggle{width:100%}.view-toggle button{flex:1}.form-row.two-col{flex-direction:column}.form-actions button{flex:1}.product-table{display:none}.product-cards{flex-direction:column;gap:10px;display:flex}.product-card{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:14px;gap:12px;padding:13px;display:flex}.product-card-thumb{object-fit:cover;border-radius:10px;flex-shrink:0;width:54px;height:54px}.product-card-thumb.placeholder{display:block}.product-card-main{flex:1;min-width:0;position:relative}.product-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-card-brand{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px;font-weight:700}.product-card-name{overflow-wrap:anywhere;margin-top:2px;font-size:15px;font-weight:600}.kebab{color:var(--ink-soft);background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:17px;line-height:1}.kebab:hover{color:var(--accent);border-color:#0000}.kebab-menu{z-index:5;background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:10px;flex-direction:column;min-width:88px;display:flex;position:absolute;top:26px;right:0;overflow:hidden}.kebab-menu button{text-align:left;border:none;border-radius:0;padding:9px 12px}.product-card-meta{color:var(--ink-soft);flex-wrap:wrap;gap:10px;margin:6px 0 8px;font-size:11.5px;display:flex}.product-card-meta b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.product-card .badges{flex-wrap:wrap;gap:6px;display:flex}.category-tile-grid,.subcategory-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.category-tile{height:110px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}}
