:root{--bg:#1c1c1a;--surface:#242422;--surface-2:#2c2b27;--surface-3:#36352f;--border:#403f38;--text:#f1efe8;--text-dim:#a6a399;--text-faint:#726f63;--accent:#ef9f27;--accent-hover:#f2b252;--protein:#5b9bd5;--protein-dim:#2a4966;--carbs:#4fa8a0;--carbs-dim:#2f655f;--fat:#b06aae;--fat-dim:#4f304e;--fiber:#7c9473;--fiber-dim:#4a5745;--calories:#f1efe8;--weight:#3987e5;--body-fat:#d55181;--steps:#c9a227;--calories-burned:#d9714e;--sugar:#e0499b;--sodium:#4bb8c9;--danger:#c0564b;--success:#6b9e78;--shreddial-charcoal:#1c1c1a;--shreddial-offwhite:#f1efe8;--shreddial-amber:#ef9f27;--font-display:"Oswald", "Arial Narrow", sans-serif;--font-wordmark:"Bebas Neue", sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh;margin:0;padding:0}body{background-image:radial-gradient(circle at 10% 0,#ef9f270d,#0000 40%),radial-gradient(circle at 90% 100%,#4fa8a00a,#0000 40%);background-attachment:fixed}::selection{background:var(--accent);color:var(--bg)}a{color:inherit}button{font-family:var(--font-body);cursor:pointer}input,select,textarea,button{font-family:var(--font-body);color:var(--text)}.app-shell{max-width:900px;padding:env(safe-area-inset-top,0px) 20px calc(100px + env(safe-area-inset-bottom,0px));min-height:100vh;margin:0 auto}.app-header{border-bottom:1px solid var(--border);justify-content:center;align-items:center;margin-bottom:22px;padding:28px 0 18px;display:flex;position:relative}.profile-btn{background:var(--surface-2);border:1px solid var(--border);width:44px;height:44px;color:var(--text-dim);border-radius:50%;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.profile-btn:hover,.profile-btn.active{color:var(--accent);border-color:var(--accent)}.app-title{margin:0;font-size:38px}.wordmark{font-family:var(--font-wordmark);letter-spacing:1px;display:inline-flex}.shred{color:var(--shreddial-offwhite)}.dial{color:var(--shreddial-amber);transform-origin:0 100%;margin-left:-.11em;display:inline-block;transform:skew(-12deg)scaleX(.9)}.tab-nav{background:var(--surface);border-top:1px solid var(--border);z-index:50;padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0}.tab-nav-inner{width:100%;max-width:900px;margin:0 auto;display:flex}.tab-btn{color:var(--text-faint);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;background:0 0;border:none;border-top:2px solid #0000;flex:1;padding:14px 8px 12px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s}.tab-btn.active{color:var(--accent);border-top-color:var(--accent)}.tab-btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--carbs);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:16px;padding:18px}.card-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);justify-content:space-between;align-items:center;margin:0 0 14px;font-size:14px;display:flex}.card-title-toggle{cursor:pointer;border-radius:6px 6px 0 0;margin:-18px -18px 14px;padding:14px 18px;transition:background-color .15s}.card-title-toggle:hover{background:var(--surface-2)}.card-title-toggle:active{background:var(--surface-3)}.card-title-toggle-control{align-items:center;gap:10px;display:flex}.card-title-count{font-size:14px;font-weight:700;font-family:var(--font-mono);color:var(--text-dim)}.card-title-count-stacked{flex-direction:column;align-items:flex-end;gap:1px;line-height:1.3;display:flex}.card-title-toggle-btn{font-family:var(--font-body);text-transform:none;letter-spacing:normal;color:var(--accent);background:var(--surface-3);border-radius:4px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;font-weight:600;display:inline-flex}.card-title-toggle:hover .card-title-toggle-btn{background:var(--accent);color:var(--bg)}.card-title-chevron{font-size:10px;transition:transform .2s;display:inline-block}.card-title-chevron.is-open{transform:rotate(90deg)}.toggle-switch-wrap{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.toggle-switch{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.toggle-switch-track{background:var(--surface-3);border:1px solid var(--border);border-radius:999px;transition:background-color .15s,border-color .15s;position:absolute;inset:0}.toggle-switch-thumb{background:var(--text-dim);border-radius:50%;width:14px;height:14px;transition:transform .15s,background-color .15s;position:absolute;top:2px;left:2px}.toggle-switch input:checked+.toggle-switch-track{background:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-switch-track .toggle-switch-thumb{background:var(--bg);transform:translate(16px)}.toggle-switch input:focus-visible+.toggle-switch-track{outline:2px solid var(--accent);outline-offset:2px}.plate-row{align-items:center;gap:12px;margin-bottom:14px;display:flex}.plate-row:last-child{margin-bottom:0}.plate-label{white-space:nowrap;width:90px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);flex-shrink:0;font-size:12px}.plate-track{background:var(--surface-2);border-radius:3px;flex:1;gap:2px;height:22px;padding:2px;display:flex;position:relative;overflow:hidden}.plate-seg{background:var(--surface-3);border-radius:1px;flex:1 1 0;min-width:0;transition:background .2s}.plate-seg.filled{background:var(--seg-color,var(--protein))}.plate-seg.over{background:var(--danger)}.plate-seg.met{background:var(--success)}.plate-numbers{text-align:right;width:92px;font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.plate-numbers.over-label{color:var(--danger)}.plate-numbers.met-label{color:var(--success)}.ring-row{flex-wrap:wrap;justify-content:space-between;gap:14px 8px;display:flex}.ring-item{flex-direction:column;align-items:center;gap:4px;display:flex}.ring-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;fill:var(--text);font-size:17px;font-weight:600}.ring-target{font-family:var(--font-mono);font-variant-numeric:tabular-nums;fill:var(--text-faint);font-size:10px}.ring-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:11px}.btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:9px 16px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s}.btn:hover{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-danger:hover{background:#c0564b1f}.btn-carb{border-color:var(--carbs);color:var(--carbs);background:0 0}.btn-carb:hover{background:#4fa8a01f}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon{color:var(--text-faint);background:0 0;border:none;padding:4px 8px;font-size:16px;line-height:1}.btn-icon:hover:not(:disabled){color:var(--danger)}.btn-icon:disabled{opacity:.35;cursor:default}.field{margin-bottom:12px}.field label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-size:12px;font-family:var(--font-display);margin-bottom:5px;display:block}.field input,.field select{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;width:100%;padding:9px 10px;font-size:16px}.field-row{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.field-row .field{min-width:0;margin-bottom:0}.field-row-compact{display:flex}.entry-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.entry-row:last-child{border-bottom:none}.entry-main{flex:1;min-width:0}.entry-headline{align-items:flex-start;gap:8px;display:flex}.entry-name{overflow-wrap:break-word;flex:1;min-width:0;font-size:14px}.entry-serving{color:var(--text-faint);font-family:var(--font-mono);font-size:11px}.entry-serving-line{color:var(--text-faint);font-family:var(--font-mono);margin-top:2px;font-size:11px;display:block}.entry-macros{font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.stat-chip-row{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.stat-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;flex-direction:column;align-items:center;padding:4px 10px;display:flex}.stat-chip .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;line-height:1.3}.stat-chip .lbl{color:var(--text-faint);font-size:9px;line-height:1.3}.stat-chip.protein .num{color:var(--protein)}.stat-chip.carbs .num{color:var(--carbs)}.stat-chip.fat .num{color:var(--fat)}.stat-chip.fiber .num{color:var(--fiber)}.stat-chip.sugar .num{color:var(--sugar)}.stat-chip.sodium .num{color:var(--sodium)}.stat-chip.calories{border-color:var(--accent)}.stat-chip.calories .num{color:var(--accent);font-size:14px;font-weight:800}.stat-chip.calories .lbl{font-size:10px}.stat-chip-row-lg .stat-chip{padding:8px 16px}.stat-chip-row-lg .stat-chip .num{font-size:20px}.stat-chip-row-lg .stat-chip .lbl{font-size:11px}.stat-chip-row-lg .stat-chip.calories .num{font-size:24px}.stat-chip-row-lg .stat-chip.calories .lbl{font-size:12px}.search-wrap{position:relative}.suggest-list{background:var(--surface-3);border:1px solid var(--border);z-index:20;border-radius:4px;max-height:260px;margin-top:2px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.suggest-item{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--border);background:0 0;justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;display:flex}.suggest-item:last-child{border-bottom:none}.suggest-item:hover,.suggest-item.highlighted{background:var(--surface-2)}.suggest-macro{color:var(--text-faint);font-family:var(--font-mono);font-size:11px}.food-source-badge{text-transform:uppercase;letter-spacing:.02em;background:var(--surface-2);vertical-align:middle;border-radius:3px;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:500}.food-source-badge.source-usda{color:var(--text-faint)}.food-source-badge.source-shreddial-community{color:var(--accent)}.food-source-badge.source-personal{color:var(--text-dim)}.suggest-list-inline{max-height:380px;margin-top:6px;position:static}.ingredient-match-row{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px 16px;padding:12px 0;display:flex}.ingredient-match-row:last-child{border-bottom:none}.ingredient-match-desc{color:var(--text-dim);flex:0 200px;padding-top:6px;font-size:13px;font-style:italic}.ingredient-match-body{flex:240px;min-width:200px}.ingredient-match-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.date-nav{justify-content:center;align-items:center;gap:14px;margin-bottom:18px;display:flex}.date-nav .date-display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;text-align:center;cursor:pointer;border-radius:4px;min-width:200px;padding:4px 10px;font-size:18px;transition:background-color .15s}.date-nav .date-display:hover,.date-nav .date-display:focus-visible{background:var(--surface-2)}.date-nav .date-display:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-nav-selects{flex:1;justify-content:center;gap:6px;min-width:0;margin:0 8px;display:flex}.calendar-select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:4px;min-width:0;padding:6px 8px;font-size:13px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;color:var(--text-faint);padding:4px 0;font-size:11px}.calendar-day{aspect-ratio:1;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;font-size:13px;display:flex}.calendar-day:hover:not(:disabled){background:var(--surface-3)}.calendar-day:disabled{color:var(--text-faint);opacity:.4}.calendar-day-outside{color:var(--text-faint)}.calendar-day-today{border-color:var(--accent)}.calendar-day-selected{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.date-nav button{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:4px;width:34px;height:34px;font-size:16px}.date-nav button:hover{background:var(--surface-2)}.date-jump{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:4px;padding:5px 8px;font-size:12px}.day-tag-badge{font-family:var(--font-mono);text-transform:uppercase;vertical-align:middle;border-radius:3px;margin-left:8px;padding:1px 5px;font-size:10px}.day-tag-badge.tag-CheatDay,.day-tag-badge.tag-CarbLoad,.day-tag-badge.tag-Daily{text-transform:none;color:var(--text);background:var(--surface-2);border:none;border-radius:999px;align-items:center;gap:5px;padding:2px 9px 2px 7px;font-family:inherit;font-size:11px;font-weight:500;display:inline-flex}.day-tag-badge.tag-CheatDay:before,.day-tag-badge.tag-CarbLoad:before,.day-tag-badge.tag-Daily:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.day-tag-badge.tag-CheatDay:before{background:var(--danger)}.day-tag-badge.tag-CarbLoad:before{background:var(--carbs)}.day-tag-badge.tag-Daily:before{background:var(--text-dim)}.recipe-imported-badge{font-family:var(--font-mono);text-transform:uppercase;vertical-align:middle;color:var(--text-dim);border:1px solid var(--border);border-radius:3px;margin-left:8px;padding:1px 5px;font-size:10px}.food-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:4px 8px;padding:10px 0;display:flex}.food-row:last-child{border-bottom:none}.food-name{overflow-wrap:break-word;flex:1;min-width:120px;font-size:14px}.food-actions{gap:4px;margin-left:auto;display:flex}.food-item{border-bottom:1px solid var(--border);padding:10px 0}.food-item:last-child{border-bottom:none}.food-headline{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.food-meta-row{justify-content:space-between;align-items:center;gap:8px;margin-top:2px;display:flex}.food-meta-row .stat-chip-row{margin-top:0}.empty-state{text-align:center;color:var(--text-faint);padding:40px 20px}.empty-state .glyph{font-family:var(--font-display);color:var(--surface-3);margin-bottom:8px;font-size:42px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}.spinner-sm{border-width:2px;border-color:#0000 currentColor currentColor;width:14px;height:14px}.spinner-page{justify-content:center;align-items:center;min-height:40vh;padding:40px 20px;display:flex}.branded-loading{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100vh;display:flex}.branded-loading-icon{width:96px;height:96px}.branded-loading-wordmark .wordmark{font-size:44px}.toast{background:var(--surface-3);border:1px solid var(--border);color:var(--text);z-index:100;opacity:0;pointer-events:none;border-radius:4px;padding:10px 18px;font-size:13px;transition:opacity .2s,transform .2s;position:fixed;bottom:70px;left:50%;transform:translate(-50%)}.toast.show{opacity:1;transform:translate(-50%)translateY(-4px)}.modal-backdrop{z-index:200;background:#0a0c0e99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=640px){.modal-backdrop{align-items:center}}.modal{background:var(--surface);border:1px solid var(--border);padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:8px 8px 0 0;width:100%;max-width:480px;max-height:85vh;overflow-y:auto}@media (width>=640px){.modal{border-radius:8px}.modal-wide{max-width:680px}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:16px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.stat-strip{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.stat-box{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:6px;padding:12px 10px}.stat-box .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.stat-box .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-top:2px;font-size:10px}.stat-box.protein .num{color:var(--protein)}.stat-box.carbs .num{color:var(--carbs)}.stat-box.fat .num{color:var(--fat)}.hint{color:var(--text-faint);margin-top:6px;font-size:12px}.section-gap{margin-top:28px}.flex-between{justify-content:space-between;align-items:center;display:flex}.link-btn{color:var(--carbs);background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}@media (width<=480px){.field-row,.stat-strip{grid-template-columns:repeat(2,1fr)}.app-title{font-size:26px}.stat-chip-row-lg{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.stat-chip-row-lg .stat-chip:first-child{grid-column:1/-1}}
