:root {
  --gd: #0D5A96; --gm: #1B75BC; --gl: #4A9ED6;
  --gold: #1B75BC; --gold-l: #A8D4F5;
  --cream: #EEF5FC; --ww: #F7FBFF;
  --text: #0D1F33; --muted: #4A6A8A; --border: #C2DCF0;
  --surf: #FFFFFF; --nav: 68px;
  --r: 16px; --rs: 10px;
  --sh: 0 2px 16px rgba(13,90,150,0.10);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text);height:100%;overflow-x:hidden}
#app{min-height:100dvh;display:flex;flex-direction:column}
.screen{display:none;flex:1;overflow-y:auto;padding-bottom:calc(var(--nav) + 12px);-webkit-overflow-scrolling:touch}
.screen.active{display:block}

/* TOP HEADER */
.hdr{background:var(--gd);padding:18px 20px 14px;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(255,255,255,0.06)}
.hdr h1{font-family:'Playfair Display',serif;font-size:21px;color:var(--gold-l);line-height:1.2}
.hdr p{font-size:11px;color:rgba(255,255,255,0.55);margin-top:3px;letter-spacing:.2px}

/* BOTTOM NAV */
nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav);background:var(--gd);display:flex;border-top:1px solid rgba(255,255,255,0.07);z-index:200;padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1;background:none;border:none;color:rgba(255,255,255,0.4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;letter-spacing:.3px;cursor:pointer;transition:color .2s;padding-top:6px}
nav button.active{color:var(--gold-l)}
nav button svg{width:21px;height:21px}

/* SECTION HEAD */
.sh{padding:18px 20px 4px}
.sh h2{font-family:'Playfair Display',serif;font-size:20px;color:var(--gd)}
.sh p{font-size:12px;color:var(--muted);margin-top:3px}

/* SEARCH */
.sb{padding:12px 20px}
.sb input{width:100%;padding:11px 16px;border:1.5px solid var(--border);border-radius:50px;background:var(--ww);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--text);outline:none;transition:border-color .2s}
.sb input:focus{border-color:var(--gm)}
.sb input::placeholder{color:var(--muted)}

/* FILTER CHIPS */
.fr{display:flex;gap:8px;padding:0 20px 14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.fr::-webkit-scrollbar{display:none}
.fgrp{display:flex;flex-direction:column;gap:4px}
.flbl{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding-left:2px}
.cr{display:flex;gap:6px}
.chip{padding:6px 13px;border-radius:50px;border:1.5px solid var(--border);background:var(--ww);font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .18s;user-select:none}
.chip.active{background:var(--gd);border-color:var(--gd);color:#fff}

/* PRODUCT GRID */
.pg{padding:0 16px;display:flex;flex-direction:column;gap:12px}

/* PRODUCT CARD */
.pc{background:var(--surf);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;border:1px solid var(--border)}
.ch{padding:14px 14px 10px;cursor:pointer;display:flex;align-items:flex-start;gap:12px}
.ci{width:46px;height:46px;border-radius:12px;background:var(--cream);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.cm{flex:1;min-width:0}
.cb{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:5px}
.badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:50px;letter-spacing:.2px}
.bq{background:#DCEEFA;color:#0D5A96}
.bp{background:#D6EEFF;color:#0A4A80}
.bl{background:#E8F4FF;color:#1B75BC}
.bo{background:#D0F0F4;color:#006B7A}
.bpr{background:#FFF0CC;color:#7A5200}
.bdog{background:#CCE8FA;color:#0D5A96}
.bcat{background:#D6F0FF;color:#0A4A80}
.bstage{background:var(--cream);color:var(--muted);border:1px solid var(--border)}
.cn{font-family:'Playfair Display',serif;font-size:16px;font-weight:600;color:var(--gd);line-height:1.3}
.cs{font-size:12px;color:var(--muted);margin-top:2px}
.price-summary{margin-top:10px;font-size:15px;font-weight:700;color:var(--gd);line-height:1.3}
.price-summary-size{font-size:12px;color:var(--muted);margin-top:4px}
.sku-options{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:10px}
.sku-chip{padding:6px 10px;border:1px solid rgba(0,0,0,.12);border-radius:12px;background:var(--surf);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;transition:all .18s}
.sku-chip.active{background:var(--gd);color:#fff;border-color:var(--gd)}
.cchev{color:var(--muted);transition:transform .2s;margin-top:3px;flex-shrink:0}
.cchev.open{transform:rotate(180deg)}

/* STAT PILLS */
.spr{display:flex;gap:7px;padding:0 14px 12px;flex-wrap:wrap}
.sp{background:var(--cream);border-radius:8px;padding:6px 10px;text-align:center}
.sp .val{font-size:14px;font-weight:700;color:var(--gm);line-height:1}
.sp .lbl{font-size:9px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.3px}

/* CARD DETAIL */
.cd{display:none;border-top:1px solid var(--border)}
.cd.open{display:block}
.ds{padding:12px 14px;border-bottom:1px solid var(--border)}
.ds:last-child{border-bottom:none}
.ds h4{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gold);margin-bottom:7px}
.ds p{font-size:13px;line-height:1.65;color:var(--text)}
.hl{display:flex;flex-wrap:wrap;gap:6px}
.ht{font-size:11px;padding:4px 10px;background:var(--gm);color:#fff;border-radius:50px;font-weight:500}
.sl{display:flex;gap:6px;flex-wrap:wrap}
.st{font-size:12px;font-weight:600;padding:5px 12px;border:1.5px solid var(--gl);color:var(--gd);border-radius:8px;background:#EEF5FC}

/* INGREDIENT GRID */
.ig{padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ingcard{background:var(--surf);border-radius:var(--rs);padding:14px 12px;border:1px solid var(--border);cursor:pointer;transition:all .15s;box-shadow:var(--sh)}
.ingcard:active{transform:scale(.97)}
.ingcard .ii{font-size:28px;margin-bottom:6px}
.ingcard .in{font-size:13px;font-weight:600;color:var(--gd);line-height:1.3}
.ingcard .ic{font-size:10px;color:var(--muted);margin-top:2px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}

/* INGREDIENT MODE TOGGLE */
.ing-toggle{display:flex;margin:0 20px 12px;background:var(--surf);border:1.5px solid var(--border);border-radius:10px;padding:3px;gap:3px}
.ing-toggle button{flex:1;padding:9px 4px;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;color:var(--muted);background:transparent;cursor:pointer;transition:all .18s;-webkit-tap-highlight-color:transparent}
.ing-toggle button.active{background:var(--gd);color:#fff;box-shadow:0 2px 6px rgba(27,117,188,.3)}

/* CONDITION CHIPS GRID */
.condgrid{display:none;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 16px 14px}
.condgrid.active{display:grid}
.condchip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px 4px;border-radius:12px;border:1.5px solid var(--border);background:var(--ww);cursor:pointer;transition:all .15s;user-select:none;min-height:66px;-webkit-tap-highlight-color:transparent}
.condchip:active{transform:scale(.94)}
.condchip .cci{font-size:24px;line-height:1}
.condchip .ccl{font-size:10px;font-weight:600;color:var(--muted);text-align:center;line-height:1.2;letter-spacing:.1px}
.condchip.active{border-color:var(--gm);background:#EBF4FF;box-shadow:0 2px 8px rgba(27,117,188,.18)}
.condchip.active .ccl{color:var(--gd)}

/* CONDITION PANEL */
#condpanel{display:none;margin:8px 16px 4px;border-radius:14px;overflow:hidden;box-shadow:var(--sh)}
#condpanel.active{display:block}
.cpanel-hdr{padding:14px 16px 10px;background:var(--gd);color:#fff}
.cpanel-hdr h4{font-size:14px;font-weight:700;margin:0 0 3px;font-family:'DM Sans',sans-serif}
.cpanel-hdr p{font-size:11px;opacity:.8;margin:0;line-height:1.5}
.cpanel-body{padding:12px 16px;background:var(--surf);border:1px solid var(--border);border-top:none;border-radius:0 0 14px 14px}
.cpanel-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:8px}
.cpanel-pills{display:flex;flex-wrap:wrap;gap:7px}
.cpill{padding:8px 12px;border-radius:9px;background:var(--ww);border:1.5px solid var(--border);font-size:12px;font-weight:600;color:var(--gd);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent}
.cpill:active{transform:scale(.96);background:#EBF4FF}
.cpill-badge{font-size:10px;padding:2px 7px;border-radius:5px;font-weight:700;flex-shrink:0}

/* MODAL */
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;padding:20px;align-items:flex-end}
.overlay.open{display:flex}
.modal{background:var(--surf);border-radius:24px 24px 16px 16px;width:100%;max-height:82vh;overflow-y:auto;padding:24px 20px 32px;animation:slideUp .25s ease}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}
.micon{font-size:44px;text-align:center;margin-bottom:10px}
.modal h3{font-family:'Playfair Display',serif;font-size:21px;color:var(--gd);text-align:center;margin-bottom:3px}
.mcat{text-align:center;font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}
.msec{margin-bottom:14px}
.msec h4{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gold);margin-bottom:6px}
.msec p{font-size:14px;line-height:1.65;color:var(--text)}
.mclose{display:block;width:100%;margin-top:20px;background:var(--gd);color:#fff;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer}

/* QUIZ */
.qls{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}
.qlc{background:var(--surf);border:1px solid var(--border);border-radius:var(--r);padding:16px;cursor:pointer;display:flex;align-items:center;gap:14px;transition:all .15s;box-shadow:var(--sh)}
.qlc:active{transform:scale(.98)}
.qlc.done{border-color:var(--gm);background:#EEF5FC}
.qlci{font-size:32px}
.qlcinfo{flex:1}
.qlcinfo h3{font-size:15px;font-weight:600;color:var(--gd)}
.qlcinfo p{font-size:12px;color:var(--muted);margin-top:2px}
.qlcbadge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:50px;white-space:nowrap}
.qlcbadge.done{background:#CCE8FA;color:#0D5A96}
.qlcbadge.todo{background:var(--cream);color:var(--muted);border:1px solid var(--border)}

.qcon{padding:0 16px}
.qprog{margin-bottom:16px}
.qpbar{background:var(--border);border-radius:4px;height:4px}
.qpfill{background:var(--gold);height:4px;border-radius:4px;transition:width .3s}
.qptxt{font-size:11px;color:var(--muted);margin-top:4px}

.qqcard{background:var(--surf);border-radius:var(--r);padding:18px 14px;border:1px solid var(--border);margin-bottom:16px;box-shadow:var(--sh)}
.qqcard h3{font-family:'Playfair Display',serif;font-size:17px;color:var(--gd);line-height:1.45;margin-bottom:14px}
.opt{display:block;width:100%;text-align:left;padding:12px 13px;margin-bottom:7px;border:1.5px solid var(--border);border-radius:10px;background:var(--ww);font-family:'DM Sans',sans-serif;font-size:13px;color:var(--text);cursor:pointer;transition:all .15s}
.opt:last-of-type{margin-bottom:0}
.opt.correct{background:#D6EEFF;border-color:#1B75BC;color:#0D3A6B}
.opt.wrong{background:#FDDEDE;border-color:#F44336;color:#B71C1C}
.opt:disabled{cursor:default}
.fb{border-radius:10px;padding:11px 13px;margin-top:11px;font-size:13px;line-height:1.5}
.fb.ok{background:#DCF0FF;color:#0A3D70;border:1px solid #7CC0EA}
.fb.bad{background:#FFEBEE;color:#C62828;border:1px solid #FFCDD2}
.nxt{display:none;width:100%;background:var(--gd);color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;margin-top:11px}
.nxt.on{display:block}
.qres{padding:32px 16px;text-align:center;display:none}
.qres.on{display:block}
.rscore{font-size:64px;font-weight:700;color:var(--gd);line-height:1}
.rlbl{font-size:13px;color:var(--muted);margin-top:4px}
.rmsg{font-family:'Playfair Display',serif;font-size:20px;color:var(--gd);margin:16px 0 8px}
.rsub{font-size:14px;color:var(--muted);line-height:1.5}
.racts{display:flex;gap:10px;margin-top:22px}
.racts button{flex:1;padding:13px;border-radius:12px;border:none;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer}
.bret{background:var(--cream);color:var(--gd);border:1.5px solid var(--border)!important;border:none}
.bback{background:var(--gd);color:#fff}

/* TIPS */
.tcon{padding:0 16px}
.tcat{background:var(--surf);border-radius:var(--r);overflow:hidden;margin-bottom:12px;border:1px solid var(--border);box-shadow:var(--sh)}
.tch{padding:14px 15px;display:flex;align-items:center;gap:12px;cursor:pointer}
.tchi{font-size:22px}
.tchtitle{font-size:14px;font-weight:600;color:var(--gd);flex:1}
.tchev{color:var(--muted);transition:transform .2s}
.tchev.open{transform:rotate(180deg)}
.tcontent{display:none;border-top:1px solid var(--border)}
.tcontent.open{display:block}
.ti{padding:13px 14px;border-bottom:1px solid var(--border)}
.ti:last-child{border-bottom:none}
.tiq{font-size:13px;font-weight:600;color:var(--gd);margin-bottom:5px}
.tia{font-size:13px;line-height:1.6;color:var(--muted)}
.script{margin-top:8px;background:var(--cream);border-left:3px solid var(--gm);padding:10px 12px;border-radius:0 8px 8px 0;font-size:13px;line-height:1.6;font-style:italic;color:var(--text)}

/* EMPTY STATE */
.es{text-align:center;padding:48px 20px;color:var(--muted)}
.es div{font-size:40px;margin-bottom:12px}
.es p{font-size:14px}

/* STAR BANNER */
.line-banner{margin:0 16px 12px;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px}
.lb-quinoa{background:linear-gradient(135deg,#0D5A96,#1B75BC);color:#fff}
.lb-pumpkin{background:linear-gradient(135deg,#1466A8,#2E8ED6);color:#fff}
.lb-lag{background:linear-gradient(135deg,#0A4070,#1560A0);color:#fff}
.lb-ocean{background:linear-gradient(135deg,#006B7A,#009DB5);color:#fff}
.lb-prime{background:linear-gradient(135deg,#7A5200,#C28400);color:#fff}
.lb-icon{font-size:28px}
.lb-text h3{font-family:'Playfair Display',serif;font-size:15px;color:#fff}
.lb-text p{font-size:11px;color:rgba(255,255,255,.7);margin-top:2px}

/* RESULTS STARS */
.stars{font-size:32px;margin-bottom:12px}

/* PROTEIN BARS */
.pinfo{padding:8px 14px 10px;background:#F0F7FF;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.pinfo-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.pinfo-row:last-child{margin-bottom:0}
.pi-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);width:82px;flex-shrink:0}
.pi-track{flex:1;height:9px;background:rgba(0,0,0,.07);border-radius:5px;overflow:hidden}
.pi-fill-p{height:100%;background:var(--gd);border-radius:5px;transition:width .5s}
.pi-fill-a{height:100%;background:var(--gl);border-radius:5px;transition:width .5s}
.pi-val{font-size:13px;font-weight:700;color:var(--gd);width:38px;text-align:right;flex-shrink:0}
.pinfo-note{font-size:10px;color:var(--muted);text-align:right;margin-top:3px}

/* CALCULATOR SCREEN fields */
.cfield label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);display:block;margin-bottom:5px}

/* MATCHER SCREEN */
.match-step{padding:24px 16px}
.match-progress{width:100%;height:6px;background:var(--border);border-radius:3px;margin-bottom:24px;overflow:hidden}
.match-prog-bar{height:100%;background:var(--gm);transition:width .3s;border-radius:3px}
.match-step h3{font-family:'Playfair Display',serif;font-size:21px;color:var(--gd);line-height:1.3;margin-bottom:8px}
.match-step p{font-size:13px;color:var(--muted);line-height:1.5}
.match-btn{width:100%;padding:16px 14px;background:var(--cream);border:2px solid var(--border);border-radius:12px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:4px;transition:all .2s;text-align:left}
.match-btn:active{transform:scale(.98);background:var(--border)}
.match-result-card{background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px;cursor:pointer;transition:all .2s}
.match-result-card:active{transform:scale(.98);background:var(--border)}

/* SEARCH */
.search-modal{background:var(--surf);border-radius:16px 16px 0 0;width:100%;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .25s ease}
.search-modal-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:center}
.search-modal-results{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.search-group{padding:12px 16px 0}
.search-group-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:8px 0;margin-bottom:8px;border-top:1px solid var(--border);padding-top:12px}
.search-group:first-of-type .search-group-label{border-top:none;padding-top:0}
.search-result{display:flex;padding:12px 10px;cursor:pointer;border-radius:10px;transition:background .2s;align-items:flex-start}
.search-result:active{background:var(--cream)}
.search-result-title{font-size:14px;font-weight:600;color:var(--gd)}
.search-result-sub{font-size:11px;color:var(--muted);margin-top:2px}
.search-result-desc{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.4}
.search-more{padding:8px 10px;font-size:12px;color:var(--muted);font-style:italic}
