*{box-sizing:border-box}:root{color-scheme:dark;--bg: #0c111d;--panel: #111a2e;--panel-2: #0e1627;--muted: #9fb0c8;--text: #e7edf7;--accent: #22d3ee;--accent-2: #7c6ef6;--accent-3: #ff7b5f;--border: #1c2740;--shadow: 0 18px 40px rgba(0, 0, 0, .35);--radius: 16px}body{margin:0;background:radial-gradient(circle at 20% 20%,#0e1627,#090f1c 45%,#070c16);color:var(--text);font-family:Manrope,Inter,Segoe UI,system-ui,-apple-system,sans-serif;letter-spacing:.01em}a{color:var(--accent-2);text-decoration:none}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c111deb;z-index:10}.brand{font-weight:800;letter-spacing:.04em;color:#e8f9ff;font-size:18px;display:flex;align-items:center;gap:10px}.brand-logo{max-width:150px;width:100%;height:auto}@media(max-width:768px){.brand-logo{max-width:120px}}.nav{display:flex;gap:12px}.nav-desktop{display:flex}.nav-link{padding:8px 12px;border-radius:12px;color:var(--muted);font-weight:600;transition:.2s ease;display:inline-flex;align-items:center;gap:6px}.nav-link.active{background:linear-gradient(120deg,#22d3ee29,#7c6ef629);color:#e7edf7;box-shadow:inset 0 0 0 1px #7c6ef659}.topbar-actions{display:flex;align-items:center;gap:10px}.date-picker{position:relative}.date-picker-trigger{background:transparent;color:inherit;border:1px solid var(--border);padding:8px 38px 8px 14px;border-radius:10px;width:auto;text-align:left;position:relative}.date-picker-trigger:after{content:"";position:absolute;top:50%;right:10px;width:18px;height:18px;margin-top:1px;transform:translateY(-50%);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'><rect x='3' y='4' width='18' height='17' rx='3' stroke='%23e2e8f0' stroke-width='2'/><path d='M7 3v4M17 3v4' stroke='%23e2e8f0' stroke-width='2' stroke-linecap='round'/><path d='M3 9h18' stroke='%23e2e8f0' stroke-width='2' stroke-linecap='round'/><circle cx='8' cy='13' r='1' fill='%23e2e8f0'/><circle cx='12' cy='13' r='1' fill='%23e2e8f0'/><circle cx='16' cy='13' r='1' fill='%23e2e8f0'/><circle cx='8' cy='17' r='1' fill='%23e2e8f0'/><circle cx='12' cy='17' r='1' fill='%23e2e8f0'/><circle cx='16' cy='17' r='1' fill='%23e2e8f0'/></svg>");background-repeat:no-repeat;background-position:center;background-size:18px 18px;opacity:.9}.date-picker-backdrop{position:fixed;inset:0;background:#02061799;display:flex;align-items:center;justify-content:center;z-index:220;padding:16px}.date-picker-modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 50px #00000059;padding:12px;min-width:min(320px,90vw)}.modal-backdrop{position:fixed;inset:0;background:#02061799;display:flex;align-items:center;justify-content:center;z-index:230;padding:16px}.modal-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 20px 50px #00000059;min-width:min(360px,92vw)}.modal-card h3{margin:0 0 6px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.quick-add-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.quick-add-panel{width:100%;max-width:420px;padding:20px;border-radius:16px;border:1px solid rgba(255,255,255,.08);max-height:85vh;overflow:hidden}.quick-add-header{margin-bottom:8px;align-items:center;gap:8px;flex-direction:row;justify-content:space-between}.quick-add-close{align-self:center}.quick-add-list{max-height:50vh;overflow-y:auto}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.date-picker-title{font-weight:600;text-transform:capitalize}.date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.date-picker-footer{display:flex;justify-content:center;margin-top:10px}.date-picker-weekday{font-size:.75rem;color:var(--muted);text-align:center}.date-picker-day{height:32px;border:none;border-radius:8px;background:var(--panel-2);color:inherit;cursor:pointer}.date-picker-day:hover{background:#94a3b82e}.date-picker-day:disabled{opacity:.2;cursor:default}.date-picker-day.today{border:1px solid var(--accent-2)}.date-picker-day.selected{background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#0b1526}.user-chip{background:#ffffff14;padding:7px 12px;border-radius:14px;font-size:13px}.ghost-button{padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);font-weight:600;cursor:pointer;transition:.2s ease;position:relative;display:inline-flex;align-items:center;justify-content:center}.ghost-button.icon-only{width:36px;height:36px;padding:6px}.ghost-button.icon-round{width:28px;height:28px;padding:0;border-radius:999px;border-color:#ffffff1f;background:#ffffff0d;color:var(--accent)}.icon-image{width:16px;height:16px;display:block;object-fit:contain}.ghost-button.favorite-active{color:#f6c453;border-color:#f6c45373;background:#f6c4531f}.ghost-button:active{transform:scale(.98);background:#ffffff0a}.ghost-button.active-pill{border-color:var(--accent);color:var(--accent)}.btn-inline{display:inline-flex;align-items:center;gap:6px}.inline-row{display:flex;align-items:center;gap:8px}.date-nav-row{align-items:center;margin-bottom:12px;gap:8px;flex-wrap:wrap}.flex{display:flex}.flex-1{flex:1 1 auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.align-start{align-items:flex-start}.align-center{align-items:center}.justify-center{justify-content:center}.self-end{align-self:flex-end}.flex-wrap{flex-wrap:wrap}.m-0{margin:0}.mt-4{margin-top:4px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-neg-8{margin-bottom:-8px}.my-8{margin-top:8px;margin-bottom:8px}.my-12{margin-top:12px;margin-bottom:12px}.my-20{margin-top:20px;margin-bottom:20px}.ml-6{margin-left:6px}.mr-6{margin-right:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-24{gap:24px}.sheet-title{margin:6px 0 4px}.page{padding:20px;max-width:1100px;margin:0 auto}.route-view{animation:pageSlideFadeIn .22s cubic-bezier(.22,.8,.24,1);will-change:opacity}@keyframes pageSlideFadeIn{0%{opacity:.6}to{opacity:1}}@media(prefers-reduced-motion:reduce){.route-view{animation:none}}.bottom-nav{display:none}.bottom-nav-link{text-decoration:none;color:var(--muted);font-weight:600;padding:8px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:4px}.bottom-nav-link.active{color:var(--text);transform:translateY(-2px);background:linear-gradient(120deg,#22d3ee24,#7c6ef624);box-shadow:inset 0 0 0 1px #7c6ef64d}.icon-control{width:38px;height:38px;border-radius:12px;border:1px solid #293450;background:#11182c;color:#e2e8f0;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.icon-badge{position:relative;display:inline-flex}.badge-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #0b1324}.icon-control:hover{background:#1f2937;border-color:#3aaed2;color:#49ffe0}.icon-control:focus-visible{outline:none;border-color:#3aaed2;box-shadow:0 0 0 2px #3aaed240}.panel{background:linear-gradient(145deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.panel-pad-16{padding:16px}.share-request-sender{font-weight:600}.panel-section+.panel-section{margin-top:16px}.profile-panel .panel-section h3{display:block;width:100%;align-self:stretch;padding-top:16px;padding-bottom:10px;margin-top:12px;margin-bottom:8px;border-top:1px solid rgba(148,163,184,.18)}.profile-tabs-panel{padding-bottom:14px}.profile-section-list{display:flex;flex-direction:column;gap:10px}.profile-section-item{width:100%;border:1px solid var(--border);border-radius:12px;background:#ffffff08;color:var(--text);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.profile-section-item-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.profile-section-item-title{font-weight:700}.profile-section-item-subtitle{font-size:.9rem;text-align:left}.profile-back-button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px}.profile-logout-item{margin-top:2px}.profile-view-enter{animation-duration:.22s;animation-timing-function:cubic-bezier(.22,.8,.24,1);animation-fill-mode:both}.profile-view-enter.from-forward{animation-name:profileSlideInForward}.profile-view-enter.from-back{animation-name:profileSlideInBack}@keyframes profileSlideInForward{0%{opacity:.6;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes profileSlideInBack{0%{opacity:.6;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}.native-disclosure>summary{cursor:pointer}.native-disclosure[open]>summary{margin-bottom:10px}.native-disclosure>summary>div{display:block}.native-disclosure>.disclosure-body{margin-top:4px}.panel h1{margin:0 0 4px}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:nowrap;position:relative}.summary-date{display:flex;justify-content:flex-end}.panel-filter{width:100%;margin-bottom:12px}.log-filter-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.log-filter-row .field{margin:0;flex:1;min-width:220px}@media(max-width:600px){.log-filter-row{flex-wrap:nowrap}.log-filter-row .field{min-width:0}.favorites-switch-label{display:none}}.ingredient-filter{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.ingredient-filter .field{margin:0;flex:1;min-width:220px}@media(max-width:600px){.ingredient-filter{flex-wrap:nowrap;align-items:center}.ingredient-filter .field{min-width:0}.ingredient-filter .ghost-button{flex:0 0 auto}}.panel-header-inline{width:100%}.selector-row-flat{display:flex;gap:12px;align-items:center;padding:0;border:none;background:transparent;box-shadow:none}.selector-row-flat .field{margin:0;flex:1}.selector-row-flat .selector-input.flat{flex:1 1 0;min-width:0}.selector-row-flat .quantity-field.flat,.selector-row-flat .unit-field.flat{flex:0 0 auto}.selector-row-flat .quantity-field.flat{width:80px}.selector-row-flat .unit-field.flat{min-width:150px}.selector-row-flat .selector-action{margin-left:auto}.selector-quantity-width{max-width:140px}.selector-unit-width{min-width:140px}.camera-overlay{position:fixed;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:9999}.camera-frame{width:90%;max-width:400px;border-radius:12px;overflow:hidden;background:#0f172a}.camera-preview{width:100%;height:260px;object-fit:cover;background:#000}.skeleton-line.tight{height:42px}.skeleton-width-160{width:160px}.selector-input-wrap{position:relative}.recipe-ingredient-row .unit-field .ghost-button{height:44px;display:inline-flex;align-items:center;justify-content:center}.recipe-ingredient-row.selector-row-flat{margin-bottom:12px}.recipe-ingredient-row.selector-row-flat:last-child{margin-bottom:0}@media(max-width:600px){.recipe-ingredient-row.selector-row-flat{display:grid;grid-template-columns:90px 1fr 40px;grid-template-areas:"ingredient ingredient ingredient" "quantity unit action";gap:12px;align-items:start}.recipe-ingredient-row.selector-row-flat .selector-input.flat{grid-area:ingredient;min-width:0}.recipe-ingredient-row.selector-row-flat .quantity-field.flat,.recipe-ingredient-row.selector-row-flat .unit-field.flat{min-width:0}.recipe-ingredient-row.selector-row-flat .quantity-field.flat{grid-area:quantity;max-width:none}.recipe-ingredient-row.selector-row-flat .unit-field.flat{grid-area:unit;max-width:none}.recipe-ingredient-row.selector-row-flat .selector-action{grid-area:action;margin-left:0;justify-self:end}.recipe-ingredient-row .unit-field .pill-row{flex-wrap:nowrap;gap:4px}.recipe-ingredient-row .unit-field .ghost-button{padding:0 6px;min-width:0;height:44px;font-size:.78rem;display:inline-flex;align-items:center;justify-content:center}.recipe-ingredient-row.selector-row-flat .field>span{white-space:nowrap}}@media(max-width:415px){.recipe-ingredient-row.selector-row-flat{grid-template-columns:80px 1fr 32px}}.panel-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;margin-top:4px;position:static}.panel-header>.panel-actions{position:absolute;top:0;right:0}.log-action-buttons{align-items:stretch;margin-bottom:8px}.log-action-buttons .ghost-button{flex:0 0 auto;justify-content:center}@media(max-width:480px){.dashboard-actions{display:none}}@media(max-width:390px){.log-action-buttons{flex-wrap:wrap;gap:6px}.log-action-buttons .ghost-button{padding:8px}.log-action-buttons .ghost-button svg{width:14px;height:14px}.log-action-buttons .ghost-button span{gap:4px}}@media(max-width:359px){.log-action-buttons .ghost-button svg{display:none}}.switch{display:inline-flex;align-items:center;gap:10px;font-size:.9rem;color:var(--text)}.switch input{appearance:none;width:44px;height:24px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);position:relative;cursor:pointer;transition:background .15s ease,border-color .15s ease}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text);background-image:none;background-repeat:no-repeat;background-position:center;background-size:12px 12px;transition:transform .15s ease,background .15s ease}.switch.favorites-switch input:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='%230b1526' fill='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='12 2 15 9 22 9 16.5 13.5 18.5 21 12 16.8 5.5 21 7.5 13.5 2 9 9 9 12 2'/></svg>")!important}.switch.favorites-switch input:checked:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e2e8f0'><polygon points='12 2 15 9 22 9 16.5 13.5 18.5 21 12 16.8 5.5 21 7.5 13.5 2 9 9 9 12 2'/></svg>")!important}.switch.nutrient-pills-switch input:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='4' y='9' width='16' height='6' rx='3' fill='%230b1526'/></svg>")}.switch.nutrient-pills-switch input:checked:after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='4' y='9' width='16' height='6' rx='3' fill='%23e2e8f0'/></svg>")}.switch input:checked{background:linear-gradient(120deg,var(--accent),var(--accent-2));border-color:var(--accent-2)}.switch input:checked:after{transform:translate(20px);background:#071824;background-image:none}.profile-checkbox-row{flex-direction:row;align-items:center;gap:10px}.profile-checkbox{appearance:none;width:18px;height:18px;border-radius:5px;border:1px solid rgba(148,163,184,.45);background:#0f172ae6;display:grid;place-content:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.profile-checkbox:after{content:"";width:10px;height:10px;transform:scale(0);transition:transform .12s ease;background:#0b1526;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 14%,80% 0,43% 62%)}.profile-checkbox:checked{background:linear-gradient(120deg,var(--accent),var(--accent-2));border-color:var(--accent-2);box-shadow:0 4px 10px #7c6ef647}.profile-checkbox:checked:after{transform:scale(1)}.favorite-toggle{appearance:none;border:1px solid var(--border);background:#0f172a99;color:var(--text);border-radius:14px;padding:10px 12px;display:inline-flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.favorite-toggle:hover{border-color:#22d3ee73;transform:translateY(-1px)}.favorite-toggle-check{width:18px;height:18px;border-radius:6px;border:1px solid rgba(148,163,184,.5);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:transparent;background:#0f172ae6}.favorite-toggle.is-active{border-color:var(--border);background:#0f172a99}.favorite-toggle.is-active .favorite-toggle-check{background:linear-gradient(120deg,var(--accent),var(--accent-2));border-color:var(--accent-2);color:#0b1526}.link-button{background:none;border:none;padding:0;color:var(--accent-2);font-size:.85rem;cursor:pointer;display:block;width:100%;text-align:center}.link-button:hover{text-decoration:underline}.share-select,.share-select option{padding:4px 8px}.share-search{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#ffffff08;color:var(--text)}.share-list{margin-top:8px;border:1px solid var(--border);border-radius:12px;padding:8px;max-height:240px;overflow-y:auto;display:grid;gap:8px}.share-item{display:flex;align-items:flex-start;gap:10px;padding:6px 8px;border-radius:10px;background:#0f172a59}.share-item .profile-checkbox{margin-top:2px}.share-section{margin-top:16px}.share-section:first-of-type{margin-top:8px}.share-selection-summary{margin-top:6px;font-size:.85rem}.share-selection-preview{display:block;margin-top:4px;color:#e2e8f0b3}.muted{color:var(--muted)}.quiet{color:var(--muted);opacity:.75;font-style:italic;font-size:.88em}.stack{display:flex;flex-direction:column;gap:12px;margin:16px 0}.hidden-input{display:none}.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.field-row{display:flex;gap:12px;align-items:flex-end}.field-row .field{flex:1 1 auto}.field-row .primary{height:46px;padding:0 18px;align-self:flex-end}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#f87171;box-shadow:0 0 0 1px #f8717166}.field-error{color:#fca5a5;font-size:12px;margin-top:4px;display:block}.form-error-banner{background:#f871711a;border:1px solid rgba(248,113,113,.4);color:#fecaca;padding:10px 14px;border-radius:12px;margin-bottom:12px}.recipe-description-input{width:100%;padding:10px;border-radius:10px;border:1px solid var(--border);background:#0b1221;color:var(--text)}input,select,button{font:inherit}input,select{padding:12px 13px;border-radius:14px;border:1px solid var(--border);background:#ffffff08;color:var(--text);transition:.2s ease}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 13px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:38px}select option{background:#0f172a;color:var(--text)}select::-ms-expand{display:none}input:focus,select:focus,textarea:focus{outline:none;border-color:#22d3ee99;box-shadow:0 0 0 3px #22d3ee26}input[type=date]::-webkit-calendar-picker-indicator{filter:brightness(0) invert(1);opacity:1}input[type=date]::-moz-focus-inner{filter:brightness(0) invert(1)}.primary{background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#071824;border:none;padding:10px 12px;border-radius:12px;font-weight:600;cursor:pointer;align-self:start;box-shadow:0 10px 30px #22d3ee40}.button-row{display:flex;justify-content:flex-start;align-items:center;gap:10px;margin-top:6px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}.summary-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two-cols{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}.full-span{grid-column:1 / -1}.stat{padding:14px;border:1px solid var(--border);border-radius:16px;background:#ffffff08;box-shadow:inset 0 1px #ffffff05}.stat-button{cursor:pointer;text-align:left;width:100%;appearance:none;font:inherit}.stat-label{color:var(--muted);font-size:12px}.stat-label.favorite{color:#fcd34d;font-weight:700}.stat-value{font-size:22px;font-weight:800}.stat-percent,.summary-percent{font-size:13px}.summary-percent-block{display:block;font-size:.9em;font-weight:700}.stat-value-line{display:block;margin-top:4px;white-space:nowrap;font-size:.9em;font-weight:700}.list{margin-top:20px;display:flex;flex-direction:column;gap:10px}.recipe-items{gap:14px}.dashboard-history-grid,.dashboard-favorites-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}@media(max-width:600px){.dashboard-history-grid,.dashboard-favorites-grid{grid-template-columns:1fr}}.list-item{border:1px solid var(--border);border-radius:14px;padding:12px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(160deg,#ffffff05,#ffffff03);gap:12px;box-shadow:0 10px 25px #0003;overflow:visible;position:relative;-webkit-tap-highlight-color:transparent}.card-clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.ingredient-card,.recipe-card{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;position:relative}.ingredient-card-header,.recipe-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:nowrap}.ingredient-card-title,.recipe-card-title{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:baseline;gap:8px;flex:1 1 auto;min-width:0}.pill-row{display:flex;gap:8px}@media(max-width:900px){.pill-row{flex-wrap:wrap}}.trend-chart{display:flex;flex-direction:column;gap:16px}.trend-nav{display:flex;justify-content:flex-end;gap:8px}@media(max-width:900px){.trend-nav{justify-content:space-between}}.trend-nav button{border:1px solid var(--border);background:#ffffff0d;color:var(--text);border-radius:12px;width:36px;height:36px;cursor:pointer;transition:.2s ease}.trend-nav button:disabled{opacity:.35;cursor:default}.trend-graph{display:flex;gap:16px;align-items:flex-start;overflow:hidden;padding-top:8px}.trend-axis{display:flex;flex-direction:column;justify-content:space-between;height:220px;color:var(--muted);font-size:12px;text-align:right;min-width:46px;margin-top:-5px}.trend-axis span{line-height:1}.trend-grid-wrapper{flex:1;overflow:hidden;padding-bottom:8px;position:relative}.trend-grid{display:flex;gap:0;min-width:100%;transition:transform .4s ease}.trend-column{display:flex;flex-direction:column;gap:6px;align-items:center;flex:0 0 var(--trend-slide-width, 100%);min-width:var(--trend-slide-width, 100%);padding:0 6px;box-sizing:border-box}.trend-bars{width:100%;height:220px;display:grid;grid-template-columns:repeat(var(--trend-columns, 1),minmax(8px,1fr));gap:6px;align-items:end;padding:0 6px;border-radius:12px;position:relative;background-image:repeating-linear-gradient(to top,rgba(255,255,255,.12),rgba(255,255,255,.12) 1px,transparent 1px,transparent 55px)}.trend-bars:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:#ffffff2e;pointer-events:none}.trend-bar{height:var(--trend-bar-height, 4px);background:var(--trend-bar-color, var(--accent));border-radius:6px;transition:height .2s ease,background .2s ease;position:relative}.trend-bar-over:after{content:"";position:absolute;bottom:2px;left:32%;right:32%;height:var(--trend-overflow-height, 2px);background:#f87171;border-radius:6px;box-shadow:0 0 0 1px #0f172a80}.trend-date{font-size:11px;color:var(--muted);text-align:center}.trend-legend{margin-top:4px}.trend-legend.pill-row{justify-content:center}.legend-pill{background:transparent;color:#e5e7eb}.trend-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--trend-swatch-color, var(--accent))}.pill{padding:7px 12px;border-radius:999px;background:#22d3ee24;color:#e7edf7;font-size:12px;box-shadow:inset 0 0 0 1px #22d3ee4d;transition:transform .14s ease,box-shadow .14s ease;display:inline-flex;align-items:center;line-height:1}.pills-compact .pill{padding:5px 10px;font-size:11px}.card-skeleton{position:relative;overflow:hidden}.skeleton-line,.skeleton-pill,.skeleton-icon{background:#ffffff14;border-radius:999px}.skeleton-line{height:12px}.skeleton-title{width:160px}.skeleton-subtitle{width:220px}.skeleton-icon{width:28px;height:28px}.skeleton-pill{width:80px;height:22px}@media(max-width:600px){.skeleton-title{width:120px}.skeleton-subtitle{width:160px}.skeleton-pill{width:64px}}.pill:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #7c6ef640,0 8px 18px #22d3ee2e}.favorite-label{color:inherit;font-weight:600}.inline{display:grid;grid-template-columns:1fr 1fr;gap:8px}.base-row{display:grid;grid-template-columns:minmax(140px,2fr) minmax(80px,1fr);gap:10px;align-items:center}.export-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}.export-date-row{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;justify-content:start;gap:8px;align-items:end}.export-date-row .field{gap:4px;width:auto}.export-date-row .date-picker,.export-date-row .date-picker-trigger{width:auto}.export-date-row .date-picker-trigger{padding:12px 38px 12px 13px;border-radius:14px;min-height:46px;display:inline-flex;align-items:center}@media(min-width:900px){.export-section{display:flex;align-items:flex-end;gap:12px}.export-section>.field{flex:1 1 auto;min-width:280px}.export-section .export-date-row{margin-top:0!important}}.top-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,1.5fr) minmax(0,3.5fr);gap:12px;align-items:end}.recipe-meta-row{display:contents}.four-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;align-items:end}@media(min-width:825px){.four-cols,.four-cols.full-span{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-meta-row{display:grid;grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:12px;align-items:end}}.top-name{min-width:220px}.error{background:#ef44441a;border:1px solid rgba(239,68,68,.4);padding:10px 12px;border-radius:12px;color:#fecdd3}@media(max-width:900px){.topbar{flex-wrap:wrap;gap:10px;padding:12px 14px}.nav{display:none}.page{padding:14px}.panel{padding:16px;border-radius:14px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);padding:10px 12px 14px;gap:4px;background:#0c111df2;border-top:1px solid var(--border);box-shadow:0 -10px 30px #0000004d;z-index:20}body{padding-bottom:80px}.bottom-nav-link{text-align:center;font-size:12px;color:var(--muted);padding:8px 6px;border-radius:12px}.bottom-nav-link.active{color:var(--text);background:linear-gradient(120deg,#22d3ee24,#7c6ef624);box-shadow:inset 0 0 0 1px #7c6ef64d;transform:translateY(-2px)}.bottom-nav-icon{font-size:18px}.nav-icon{font-size:16px}.nav-label{font-size:14px}.summary-header{flex-direction:column;align-items:flex-start}.summary-date{width:100%;justify-content:flex-start}.panel-header .filter-input{width:100%;min-width:0;max-width:none}.panel-header .field,.panel-header .field input{width:100%}.selector-row.recipe-row{flex-wrap:wrap}.selector-row.recipe-row .selector-input{flex:1 1 100%;min-width:0}.selector-row.recipe-row .quantity-field,.selector-row.recipe-row .unit-field{flex:1 1 160px;min-width:0}.selector-row.recipe-row .selector-action{width:100%;margin-left:0;display:flex;justify-content:flex-end}.top-name{min-width:0}.keyword-search .field,.keyword-search .field input{width:100%}@media(max-width:540px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-date .pill-row{justify-content:center}.ingredient-card-title,.recipe-card-title{padding-right:40px}}.keyword-search .selector-row-flat{flex-wrap:wrap}.keyword-search .selector-row-flat .selector-input.flat{flex:0 0 100%}.keyword-search .selector-row-flat .quantity-field.flat,.keyword-search .selector-row-flat .unit-field.flat{flex:1 1 218px;max-width:none!important;min-width:0}.keyword-search .selector-row-flat .selector-action{width:100%;margin-left:0}.keyword-search .selector-row-flat .selector-action .primary{width:100%}.keyword-search .keyword-search-row.selector-row-flat{flex-wrap:nowrap;align-items:flex-end}.keyword-search .keyword-search-row.selector-row-flat .selector-input.flat{flex:1 1 auto}.keyword-search .keyword-search-row.selector-row-flat .selector-action{width:auto;margin-left:auto;align-self:flex-end}.keyword-search .recipe-ingredient-row.selector-row-flat .selector-action{width:auto;margin-left:0;align-self:flex-end}.scan-input{min-width:100%}.list-item{padding:18px 12px}}.fab{position:fixed;right:18px;bottom:90px;width:56px;height:56px;border-radius:50%;border:none;color:#071824;background:linear-gradient(120deg,var(--accent),var(--accent-2));box-shadow:0 10px 30px #22d3ee59;font-size:28px;font-weight:800;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:30}@media(max-width:900px){.fab{display:flex}.summary-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.scan-card{margin-top:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#ffffff05;display:grid;gap:8px;margin-bottom:24px}.scan-action{width:100%;border:1px dashed rgba(148,163,184,.35);background:#0f172a99;color:var(--text);border-radius:16px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.scan-action:disabled{opacity:.6;cursor:progress}.scan-action:hover:not(:disabled){border-color:#22d3ee99;transform:translateY(-1px);box-shadow:0 10px 24px #22d3ee1f}.scan-icon{width:72px;height:72px;border-radius:16px;background:#22d3ee29;color:var(--accent);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.scan-copy{text-align:left;flex:1 1 auto}.scan-description{font-size:.92rem;line-height:1.4}.scan-label{font-weight:700;color:var(--muted)}.scan-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.scan-input{flex:1;min-width:180px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#ffffff05;color:var(--text)}.scan-icon svg{width:44px;height:44px;fill:currentColor}.scan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:700px){.scan-grid{grid-template-columns:1fr}}@media(max-width:600px){.scan-card{margin-bottom:16px;padding:10px;gap:6px}.scan-action{padding:12px;gap:12px;border-radius:14px}.scan-icon{width:56px;height:56px;border-radius:14px}.scan-icon svg{width:32px;height:32px}.scan-description{font-size:.85rem}}.keyword-dropdown{position:absolute;left:0;right:0;top:64px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);z-index:10;display:flex;flex-direction:column;max-height:280px;overflow-y:auto;padding:6px}.keyword-result{display:flex;justify-content:space-between;align-items:center;border-radius:14px;padding:12px 16px;border:1px solid transparent;background:#ffffff08;color:inherit;text-align:left;gap:16px;transition:border-color .2s ease,transform .15s ease}.keyword-result:hover{transform:translateY(-1px);border-color:#ffffff14}.keyword-result.active{border-color:var(--accent);background:#38d0ff14}.keyword-result-info{flex:1}.sheet-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;width:100%}.sheet-actions .sheet-delete{margin-right:auto}body.no-scroll{overflow:hidden}.sheet-overlay{position:fixed;inset:0;height:100dvh;min-height:100dvh;background:#0000008c;display:flex;justify-content:center;align-items:flex-end;z-index:60;animation:fadeIn .16s ease}.sheet{width:min(960px,calc(100% - 24px));max-height:min(86dvh,calc(100dvh - 28px));background:linear-gradient(145deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:20px 20px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--shadow);overflow-y:auto;animation:slideUp .2s ease}.sheet-header{display:flex;justify-content:space-between;align-items:center;gap:10px;position:relative}.sheet-close{border:none;background:transparent;padding:4px;border-radius:999px;position:absolute;top:-8px;right:-4px}.sheet-close:hover{background:#ffffff0f}.sheet-handle{width:46px;height:5px;border-radius:999px;background:#ffffff29;margin-bottom:8px}.sheet-overlay.closing{animation:fadeOut .18s ease forwards}.sheet.closing{animation:slideDown .18s ease forwards}@media(max-width:700px){.sheet{width:calc(100% - 18px);max-height:min(86dvh,calc(100dvh - 44px));margin:0 9px;border-radius:18px 18px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{transform:translateY(24px);opacity:.95}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(24px);opacity:.9}}.ingredient-pills-row{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px}.ingredient-icons-row{justify-content:flex-end;gap:12px;margin-top:0;position:absolute;top:12px;right:12px}.ingredient-actions-row{position:static;margin-top:10px;justify-content:flex-start}.card-footer-actions{display:flex;justify-content:flex-end;margin-top:6px}@media(max-width:640px){.ingredient-actions-row{justify-content:flex-start}}.consume-control{position:relative;z-index:2}.consume-popover-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0307128c;z-index:200;height:100dvh;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.consume-popover{position:relative;background:#0f172a;border:1px solid #293450;border-radius:14px;padding:16px 12px 12px;min-width:240px;max-width:calc(100vw - 32px);box-shadow:0 12px 30px #02061773}.consume-date-picker{align-self:center}.consume-date-nav{display:inline-flex;align-items:center;gap:8px}.consume-row.consume-date-row{flex-wrap:nowrap;align-items:center;justify-content:space-between;margin-top:14px}.consume-date-actions{flex:0 0 auto}.consume-close{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:0;border:none;background:transparent;color:var(--text);font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.consume-row{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}@media(max-width:480px){.top-row{grid-template-columns:1fr}.recipe-meta-row{display:contents}}.consume-row.consume-row-stack{width:100%;flex-direction:column;align-items:stretch;gap:8px}.consume-row .field{justify-content:flex-start}.consume-row .field span{min-height:16px}.consume-actions{align-self:flex-end;margin-bottom:3px;display:flex;align-items:center;justify-content:flex-end}.consume-quantity-field input{width:72px;max-width:72px}.consume-qty-stepper{display:inline-flex;align-items:center;gap:6px}.consume-qty-stepper input{width:72px;max-width:72px}.consume-qty-arrow{width:32px;height:32px;border-radius:8px;align-self:center}.consume-unit-field select{width:100%}.consume-unit-readonly{padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#ffffff08;color:var(--text);font-weight:600;min-height:42px;display:flex;align-items:center}.consume-unit-pills{flex-wrap:wrap;gap:8px}.consume-unit-pills .ghost-button{min-height:43px;height:43px;display:inline-flex;align-items:center}.consume-actions .ghost-button.icon-round{width:32px;height:32px}.suggestion-add-button{border:none;padding:0;background:transparent;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center}.suggestion-pills{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.suggestion-pill{position:relative;flex:1 1 calc(50% - 12px);max-width:calc(50% - 12px);background:var(--panel-2);border:1px solid var(--border);border-radius:20px;padding:14px 16px;text-align:left;color:inherit;cursor:default;display:flex;flex-direction:column;gap:8px;transition:transform .2s ease,border-color .2s ease}.suggestion-pill:disabled{opacity:.6;cursor:progress}.suggestion-pill:not(:disabled):hover{border-color:#22d3ee99;transform:translateY(-1px)}.suggestion-pill-top{display:flex;align-items:center;gap:8px;justify-content:space-between;padding-right:40px}.suggestion-pill-title{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:1;min-width:0}.suggestion-pill-title strong{flex:0 0 auto;min-width:0}.suggestion-pill strong{font-size:1rem;flex:1}.card-subtitle-row{display:flex;align-items:center;gap:8px;margin-top:4px}.card-right-slot{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}.suggestion-tag{font-size:.7rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:#ffffff0a;letter-spacing:.08em;display:inline-flex;align-self:flex-start}.suggestion-tag-small{font-size:.65rem}.suggestion-tag.ingredient{color:#4dd0e1}.suggestion-tag.recipe{color:#a78bfa}.list-item.has-vertical-type{padding-left:50px}.card-type-pill-vertical{position:absolute;left:10px;top:10px;bottom:10px;transform:none;writing-mode:vertical-lr;text-orientation:mixed;font-size:.66rem;text-transform:uppercase;padding:6px 2px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;letter-spacing:.04em;white-space:nowrap;pointer-events:none;display:flex;align-items:center;justify-content:center}@supports (writing-mode: sideways-lr){.card-type-pill-vertical{writing-mode:sideways-lr}}.card-type-pill-vertical.ingredient{color:#4dd0e1}.card-type-pill-vertical.recipe{color:#a78bfa}.suggestion-detail{font-size:.85rem}.suggestion-meta{display:flex;align-items:center;justify-content:flex-start;gap:10px}.suggestion-pill .suggestion-pill-nutrients{justify-content:flex-start}.suggestion-add-icon{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;background:#ffffff0d;color:var(--accent)}.list-item.consume-open,.suggestion-pill.consume-open{z-index:6}@media(max-width:600px){.suggestion-pill{flex-basis:100%;max-width:100%}}@media(max-width:900px){.ingredient-card,.recipe-card{padding-right:56px}.ingredient-pills-row,.ingredient-icons-row{flex-wrap:wrap}.ingredient-icons-row{position:absolute;margin-top:0;justify-content:flex-end;width:auto;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px;top:16px;right:12px}.ingredient-icons-row.ingredient-actions-row{position:static;justify-content:flex-start}.ingredient-card-title,.recipe-card-title{padding-right:0}.ingredient-card-title>strong,.recipe-card-title>strong{padding-right:80px;display:inline-block}.history-actions{align-items:flex-start}}@media(max-width:600px){.ingredient-card,.recipe-card{padding-right:12px}}.history-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.app-footer{text-align:center;padding:24px 16px 32px;color:#94a3b8;font-size:.9rem;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.app-footer .bullet{color:#475569}.app-footer a{color:#22d3ee;text-decoration:none}.app-footer a:hover{text-decoration:underline}
