:root{--ink:#22312b;--muted:#718077;--line:#dfe7e1;--paper:#fbfcf9;--white:#fff;--green:#1f7455;--green-dark:#155c42;--mint:#daf1e4;--sun:#f7e4ad;--berry:#efd7df;--sky:#d9e9f1;--danger:#ba514d;--shadow:0 12px 38px #22312b14}.login-page{background:radial-gradient(circle at 20% 10%,#e3f1e8,transparent 36%),var(--paper);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);width:min(430px,100%);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:34px}.login-brand{margin-bottom:42px}.login-card h1{margin:0 0 28px;font:700 38px Georgia,serif}.login-card label{margin-top:16px;font-weight:750;display:block}.login-card input{border:1px solid var(--line);background:#fbfcfa;border-radius:11px;width:100%;margin-top:7px;padding:12px 13px;display:block}.login-card .button{width:100%;margin-top:24px}.login-error{color:var(--danger);margin:14px 0 0}.login-card button:disabled{opacity:.65;cursor:wait}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);margin:0;font-family:Inter,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,input{font:inherit;color:inherit}button,a{transition:all .18s}button{cursor:pointer}a{color:inherit;text-decoration:none}.workspace{min-height:100vh;padding-bottom:80px}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbfcf9f0;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 3.4vw;display:grid;position:sticky;top:0}.brand{align-items:center;gap:12px;font-family:Georgia,serif;font-size:20px;font-weight:700;display:flex}.brand small,.profile small{letter-spacing:.04em;color:var(--muted);margin-top:2px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;display:block}.brand-mark{background:var(--green);color:#fff;border-radius:13px;place-items:center;width:38px;height:38px;font-style:italic;display:grid}.topbar nav{background:#eef3ef;border-radius:15px;align-items:center;gap:8px;padding:5px;display:flex}.topbar nav a{color:#5b6a62;border-radius:11px;padding:9px 15px}.topbar nav a:hover,.topbar nav a.active{color:var(--green);background:#fff;box-shadow:0 2px 8px #22312b12}.profile{text-align:left;background:0 0;border:0;justify-self:end;align-items:center;gap:10px;display:flex}.profile>span:first-child{width:36px;height:36px;color:var(--green);background:#e3ebe5;border-radius:50%;place-items:center;font-weight:700;display:grid}.page-head{justify-content:space-between;align-items:flex-end;max-width:1440px;margin:0 auto;padding:40px 40px 25px;display:flex}.back{color:var(--green);margin-bottom:24px;font-weight:700;display:inline-block}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green);margin:0 0 7px;font-size:10px;font-weight:800}.page-head h1{margin:0 0 8px;font:700 42px/1.05 Georgia,serif}.muted{color:var(--muted);margin:0}.head-actions{gap:10px;display:flex}.button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 17px;font-weight:750}.button:hover{transform:translateY(-1px);box-shadow:0 5px 15px #22312b14}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover{background:var(--green-dark)}.button.full{width:100%;margin-top:8px}.tabs,.daybar,.summary-grid,.ration-card,.analysis-layout{max-width:1360px;margin-left:auto;margin-right:auto}.tabs{border-bottom:1px solid var(--line);gap:24px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:13px 2px;font-weight:700}.tabs button.active{color:var(--green);border-color:var(--green)}.daybar{border:1px solid var(--line);background:#fff;border-radius:16px;align-items:center;gap:8px;margin-top:18px;padding:13px 16px;display:flex;box-shadow:0 3px 14px #22312b0a}.daybar>span:first-child{margin-right:8px;font-weight:800}.daybar button{border:1px solid var(--line);background:#fff;border-radius:10px;width:34px;height:34px;font-weight:700}.daybar button:hover,.daybar button.active{border-color:var(--green);background:var(--green);color:#fff}.daybar .day-add{color:var(--green);border-style:dashed}.day-date{color:var(--muted);margin-left:auto}.summary-grid{grid-template-columns:repeat(4,1fr) 1.5fr;gap:12px;margin-top:16px;display:grid}.metric,.coverage{border-radius:16px;min-height:112px;padding:17px 18px}.metric{position:relative}.metric span,.coverage>span{font-size:12px;font-weight:750;display:block}.metric strong{margin-top:21px;font:700 30px/1 Georgia,serif;display:inline-block}.metric small{color:#627168;margin-left:5px}.metric-mint{background:var(--mint)}.metric-sun{background:var(--sun)}.metric-berry{background:var(--berry)}.metric-sky{background:var(--sky)}.coverage{border:1px solid var(--line);background:#fff}.coverage strong{margin-top:-16px;margin-left:120px;position:absolute}.coverage div{background:#e6ece8;border-radius:9px;height:9px;margin:23px 0 9px;overflow:hidden}.coverage i{background:var(--green);border-radius:9px;height:100%;display:block}.coverage small{color:var(--muted)}.ration-card,.analysis-card,.insight-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:19px}.ration-card{margin-top:16px;overflow:hidden}.table-head,.dish-row{grid-template-columns:minmax(320px,2.5fr) .65fr 1fr .55fr .45fr .45fr .45fr 28px;align-items:center;gap:12px;display:grid}.table-head{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#f0f4f1;padding:12px 18px 12px 92px;font-size:10px;font-weight:800}.meal{border-bottom:1px solid var(--line)}.meal-title{background:#fafbf9;align-items:center;gap:12px;min-height:60px;padding:11px 18px;display:flex}.meal-number{background:var(--ink);color:#fff;border-radius:12px;place-items:center;width:38px;height:38px;font:700 18px Georgia,serif;display:grid}.meal-title>div{flex:1;align-items:center;gap:14px;display:flex}.meal-title input{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 8px}.meal-title button{color:var(--muted);background:0 0;border:0;font-size:19px}.meal-title button:hover{color:var(--danger)}.dish-row{border-top:1px solid #eef2ef;min-height:66px;padding:10px 18px 10px 68px}.dish-row:hover{background:#fcfdfb}.dish-row>div:first-child{align-items:center;gap:10px;display:flex}.dish-name{text-align:left;background:0 0;border:0;padding:0;font-weight:700}.dish-name span{color:var(--green);opacity:0;margin-top:4px;font-size:10px;display:block}.dish-row:hover .dish-name span{opacity:1}.dish-row small{white-space:nowrap;color:var(--green);background:#e8f2ec;border-radius:6px;padding:4px 6px;font-size:9px}.dish-row small.incomplete{color:#9d6416;background:#fff1d9}.remove{color:#a9b4ad;background:0 0;border:0;font-size:18px}.remove:hover{color:var(--danger)}.add-dish{color:var(--green);background:#f6faf7;border:1px dashed #a8c1b3;border-radius:10px;margin:8px 18px 14px 68px;padding:9px 15px;font-weight:700}.meal-total{color:#5d6a63;background:#f4f7f4;justify-content:flex-end;align-items:center;gap:24px;padding:11px 19px;display:flex}.meal-total span:first-child{margin-right:auto;font-weight:700}.meal-total strong{color:var(--ink)}.add-meal{color:var(--green);background:0 0;border:0;padding:18px 68px;font-weight:800}.analysis-layout{grid-template-columns:minmax(0,2.4fr) minmax(280px,.9fr);gap:16px;margin-top:16px;display:grid}.analysis-card,.insight-card{padding:26px}.analysis-head{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.analysis-head h2{margin:0;font:700 28px Georgia,serif}.legend{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.legend i{border-radius:50%;width:8px;height:8px;margin-left:8px}.low{background:#d3923b!important}.ok{background:var(--green)!important}.high{background:var(--danger)!important}.nutrient-row{border-top:1px solid #edf1ee;grid-template-columns:180px 1fr 100px;align-items:center;gap:20px;padding:15px 0;display:grid}.nutrient-row small{color:var(--muted);margin-top:3px;font-size:10px;display:block}.nutrient-row>div:last-child{text-align:right}.scale{background:#edf1ee;border-radius:10px;height:10px;position:relative}.scale .safe-zone{background:#d9ece1;border-radius:9px;width:38%;height:100%;position:absolute;left:43%}.scale>span{opacity:.23;border-radius:9px;height:100%;position:absolute;top:0;left:0}.scale>i{z-index:3;border:3px solid #fff;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translate(-8px,-50%);box-shadow:0 1px 5px #0003}.insight-card h3{margin:0 0 20px;font:700 26px Georgia,serif}.insight{border-radius:13px;margin-bottom:10px;padding:14px}.insight strong,.insight span{display:block}.insight span{color:#5d675f;margin-top:5px;font-size:11px;line-height:1.4}.insight.warn{background:#fff3df}.insight.neutral{background:#edf4ef}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);z-index:30;border-radius:12px;padding:13px 18px;position:fixed;top:90px;right:30px}.toast:first-letter{color:#91d5af}@media (max-width:1000px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.summary-grid{grid-template-columns:repeat(2,1fr);padding:0 16px}.coverage{grid-column:span 2}.tabs,.daybar,.ration-card,.analysis-layout{margin-left:16px;margin-right:16px}.table-head{display:none}.dish-row{grid-template-columns:minmax(220px,2fr) repeat(4,.5fr) 26px}.dish-row>span:nth-of-type(2){display:none}.analysis-layout{grid-template-columns:1fr}.page-head{padding-left:20px;padding-right:20px}}@media (max-width:680px){.topbar{height:64px;padding:0 15px}.profile>span:last-child{display:none}.page-head{flex-direction:column;align-items:flex-start;gap:20px;padding-top:25px}.page-head h1{font-size:34px}.head-actions{width:100%;overflow:auto}.summary-grid{grid-template-columns:1fr 1fr}.metric{min-height:95px}.metric strong{font-size:25px}.day-date{display:none}.dish-row{grid-template-columns:minmax(165px,2fr) .65fr .45fr 25px;padding-left:18px}.dish-row>span:nth-of-type(2),.dish-row>span:nth-of-type(3),.dish-row>span:nth-of-type(4){display:none}.meal-total{gap:10px;font-size:11px;overflow:auto}.meal-total span:first-child{display:none}.add-dish,.add-meal{margin-left:18px;padding-left:10px}.nutrient-row{grid-template-columns:120px 1fr 75px;gap:10px}.analysis-card{padding:18px}.analysis-head{display:block}.legend{margin-top:15px}.topbar .brand small{display:none}}
.catalog-page,.product-page{max-width:1180px;margin:0 auto;padding:42px 32px 80px}.catalog-page>header,.product-page>header{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.catalog-page h1,.product-page h1{margin:0 0 8px;font:700 42px Georgia,serif}.catalog-page header p,.product-page header p{color:var(--muted);margin:0}.catalog-search{gap:10px;margin:28px 0 13px;display:flex}.catalog-search input{border:1px solid var(--line);background:#fff;border-radius:12px;flex:1;padding:12px 14px}.catalog-stats{color:var(--muted);justify-content:space-between;padding:10px 3px;display:flex}.catalog-stats strong{color:var(--ink);margin-right:5px}.product-list{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;overflow:hidden}.product-list>a{border-top:1px solid #edf1ee;grid-template-columns:1fr 150px 90px;align-items:center;gap:20px;padding:17px 20px;display:grid}.product-list>a:first-child{border-top:0}.product-list>a:hover{background:#f7faf8}.product-list strong,.product-list small{display:block}.product-list small{color:var(--muted);margin-top:4px}.product-list>a>span{text-align:right;font-weight:800}.product-list i{background:var(--mint);color:var(--green);border-radius:7px;justify-self:end;padding:5px 8px;font-size:11px;font-style:normal}.catalog-empty{text-align:center;color:var(--muted);padding:30px}.product-page>.back{margin-bottom:28px}.source-badge{background:var(--mint);text-align:center;border-radius:15px;min-width:155px;padding:15px 18px}.source-badge strong{font:700 29px Georgia,serif;display:block}.source-badge span{color:var(--green);font-size:11px}.product-meta{grid-template-columns:1fr 1.5fr 1.5fr;gap:12px;margin:22px 0;display:grid}.product-meta>span{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:13px;padding:15px;font-size:11px}.product-meta strong{color:var(--ink);margin-top:7px;font-size:13px;display:block}.product-meta a{color:var(--green)}.nutrient-table{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;overflow:hidden}.nutrient-table>header,.nutrient-table>div{border-top:1px solid #edf1ee;grid-template-columns:1fr 180px 220px;align-items:center;gap:18px;padding:12px 18px;display:grid}.nutrient-table>header{color:var(--muted);text-transform:uppercase;background:#f0f4f1;border-top:0;font-size:10px;font-weight:800}.nutrient-table strong,.nutrient-table small{display:block}.nutrient-table small{color:var(--muted);margin-top:3px;font-size:10px}.nutrient-table>div>span:nth-child(2){font-weight:800}.nutrient-table>div>span:nth-child(3){color:var(--green)}.nutrient-table>div.missing{background:#fcfaf6}.nutrient-table>div.missing>span:nth-child(2),.nutrient-table>div.missing>span:nth-child(3){color:#9a6b2f}@media (max-width:700px){.catalog-page,.product-page{padding:28px 16px 60px}.catalog-page>header,.product-page>header{flex-direction:column;align-items:flex-start}.product-list>a{grid-template-columns:1fr auto}.product-list i{display:none}.product-meta{grid-template-columns:1fr}.nutrient-table>header,.nutrient-table>div{grid-template-columns:1fr 90px}.nutrient-table>header>span:last-child,.nutrient-table>div>span:last-child{grid-column:1/-1}}
.recipe-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;margin-top:18px;padding:24px}.recipe-card h2{margin:0 0 16px;font:700 24px Georgia,serif}.recipe-card h2:not(:first-child){margin-top:28px}.ingredient-table p{border-top:1px solid #edf1ee;grid-template-columns:1fr 150px 150px;gap:15px;margin:0;padding:11px 0;display:grid}.ingredient-table span{text-align:right}.missing-recipe{color:#68491f;background:#fff3df;border-radius:13px;padding:18px}.missing-recipe p{margin:6px 0 0;line-height:1.5}.recipe-list>a{grid-template-columns:1fr 130px 90px}@media (max-width:700px){.ingredient-table p{grid-template-columns:1fr auto}.ingredient-table span:last-child{grid-column:2}}
.modal-backdrop{z-index:50;background:#1b2b246b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:min(620px,100%);max-height:min(760px,90vh);padding:24px;overflow:auto;box-shadow:0 28px 80px #0f1e1747}.modal-head{justify-content:space-between;align-items:flex-start;display:flex}.modal-head h2{margin:0 0 18px;font:700 30px Georgia,serif}.modal-head>button{background:0 0;border:0;font-size:26px}.modal label{gap:7px;font-weight:750;display:grid}.modal input{border:1px solid var(--line);background:#fbfcfa;border-radius:11px;padding:11px}.recipe-picker{border:1px solid var(--line);border-radius:13px;max-height:300px;margin:12px 0;overflow:auto}.recipe-picker button{text-align:left;background:#fff;border:0;border-top:1px solid #edf1ee;justify-content:space-between;width:100%;padding:11px 13px;display:flex}.recipe-picker button:first-child{border-top:0}.recipe-picker button:hover,.recipe-picker button.active{color:var(--green);background:#eaf4ed}.recipe-picker span{font-size:11px}.modal-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}@media (max-width:680px){.modal-grid{grid-template-columns:1fr}}
.recipe-editor{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;margin-top:18px;padding:24px}.recipe-head-actions{align-items:center;gap:10px;display:flex}.editor-grid{grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}.recipe-editor label{gap:7px;font-weight:750;display:grid}.recipe-editor input,.recipe-editor select,.recipe-editor textarea{border:1px solid var(--line);background:#fbfcfa;border-radius:11px;width:100%;padding:11px}.recipe-editor textarea{resize:vertical;line-height:1.5}.editor-section-head{justify-content:space-between;align-items:end;margin:28px 0 12px;display:flex}.editor-section-head h2{margin:0;font:700 25px Georgia,serif}.editor-ingredients{border:1px solid var(--line);border-radius:14px;overflow:hidden}.editor-ingredient{border-top:1px solid #edf1ee;grid-template-columns:28px minmax(220px,2fr) 1fr 1fr 30px;align-items:end;gap:10px;padding:12px;display:grid}.editor-ingredient:first-child{border-top:0}.editor-ingredient>span{color:var(--green);background:#eaf2ec;border-radius:8px;align-self:center;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.editor-ingredient>button{color:var(--muted);background:0 0;border:0;align-self:center;font-size:21px}.editor-empty{color:var(--muted);text-align:center;padding:24px}.recipe-preview{border:1px solid var(--line);background:#fbfcfa;border-radius:14px;margin-top:24px;overflow:hidden}.recipe-preview.empty{color:var(--muted);gap:5px;padding:24px;display:grid}.recipe-preview.empty strong{color:var(--ink)}.preview-head{justify-content:space-between;align-items:end;gap:12px;padding:20px;display:flex}.preview-head h2{margin:0;font:700 25px Georgia,serif}.preview-head>span{color:var(--muted);font-size:13px}.preview-macros{background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.preview-macros>div{background:#fff;gap:4px;padding:14px;display:grid}.preview-macros span,.preview-macros small{color:var(--muted)}.preview-macros strong{font-size:22px}.preview-table{max-height:420px;overflow:auto}.preview-row{border-top:1px solid #edf1ee;grid-template-columns:minmax(160px,1.5fr) repeat(4,minmax(100px,1fr));align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.preview-row.heading{color:var(--muted);z-index:1;background:#eef4ef;font-weight:750;position:sticky;top:0}.preview-row strong{display:grid}.preview-row strong small{color:var(--muted);font-weight:400}.preview-row .complete{color:var(--green);font-weight:750}.preview-row .incomplete{color:#a45b1a;font-weight:750}.preview-note{color:#725120;background:#fff7e8;margin:0;padding:12px 16px;font-size:12px}.instructions{margin-top:24px}.editor-footer{justify-content:space-between;align-items:center;gap:16px;margin-top:20px;display:flex}.editor-footer span{color:var(--muted)}@media (max-width:760px){.editor-grid{grid-template-columns:1fr 1fr}.editor-grid label:first-child{grid-column:1/-1}.editor-ingredient{grid-template-columns:28px 1fr 1fr 30px}.editor-ingredient label:first-of-type{grid-column:2/5}.preview-macros{grid-template-columns:1fr 1fr}.preview-table{overflow-x:auto}.preview-row{min-width:680px}.preview-head{flex-direction:column;align-items:start}.editor-footer{flex-direction:column;align-items:stretch}.editor-footer .button{width:100%}}.source-technology{background:#f4faf6;border:1px solid #b9d7c7;border-radius:14px;margin-bottom:24px;padding:18px}.source-technology>div:first-child{justify-content:space-between;align-items:end;gap:12px;display:flex}.source-technology h2{margin:0;font:700 24px Georgia,serif}.source-technology>div:first-child>span,.source-technology>small{color:var(--muted);font-size:11px}.source-technology-list{border-top:1px solid #d5e8dc;margin:14px 0}.source-technology-list>div{border-bottom:1px solid #d5e8dc;grid-template-columns:26px 1fr auto auto;align-items:center;gap:10px;padding:8px 0;display:grid}.source-technology-list>div>span{background:var(--green);color:#fff;border-radius:7px;place-items:center;width:22px;height:22px;font-size:10px;display:grid}.source-technology-list>div>b{font-weight:750}.source-technology-list>div>small{color:var(--muted)}.source-technology>p{white-space:pre-wrap;line-height:1.5}
.table-head,.dish-row{grid-template-columns:minmax(320px,2.5fr) .65fr 1fr .55fr .45fr .45fr .45fr 58px}.dish-actions{justify-content:flex-end;align-items:center;display:flex}.dish-actions button{color:#87958d;background:0 0;border:0;padding:4px;font-size:17px}.dish-actions button:hover{color:var(--green)}.dish-actions .remove:hover{color:var(--danger)}.modal.compact{width:min(520px,100%)}.modal-hint{color:var(--muted);margin:14px 0 0;font-size:12px;line-height:1.5}.replacement-picker{gap:6px;margin-bottom:14px;font-weight:700;display:grid}.replacement-picker select{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:11px 12px}.analysis-scope{gap:6px;margin:0 0 14px;display:flex}.analysis-scope button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:9px;padding:9px 14px;font-weight:700}.analysis-scope button.active{background:var(--green);border-color:var(--green);color:#fff}.target-picker{color:var(--muted);text-transform:uppercase;gap:4px;font-size:10px;font-weight:700;display:grid}.target-picker select{border:1px solid var(--line);max-width:230px;color:var(--ink);text-transform:none;background:#fff;border-radius:9px;padding:8px 10px;font:600 12px inherit}.target-source{color:var(--muted);margin:-6px 0 14px;font-size:12px}.target-source strong{color:var(--ink)}.meal-total small{color:#9d6416;white-space:nowrap;font-size:10px;font-weight:700}.nutrient-tools{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:16px;padding:14px 0 10px;display:flex}.nutrient-tools>label:first-child{min-width:260px;color:var(--muted);text-transform:uppercase;gap:5px;font-size:10px;font-weight:700;display:grid}.nutrient-tools input[type=text],.nutrient-tools input:not([type]){border:1px solid var(--line);color:var(--ink);text-transform:none;border-radius:9px;padding:9px 11px;font:600 12px inherit}.attention-toggle{color:var(--ink);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.attention-toggle input{accent-color:var(--green)}.nutrient-categories{flex-wrap:wrap;gap:6px;padding-bottom:14px;display:flex}.nutrient-categories button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700}.nutrient-categories button.active{border-color:var(--green);color:var(--green);background:#edf4ef}.nutrient-categories small{opacity:.75;font-size:9px}.nutrient-empty{text-align:center;color:var(--muted);padding:32px 12px;font-size:13px}.nutrient-row{text-align:left;background:0 0;border:0;border-top:1px solid #edf1ee;width:100%}.nutrient-row:hover,.nutrient-row.selected{background:#f6faf7}.nutrient-row.selected{box-shadow:inset 3px 0 var(--green)}.contribution-list{gap:12px;display:grid}.contribution-list>div{grid-template-columns:minmax(0,1fr) 88px;align-items:end;gap:10px;display:grid}.contribution-list span{min-width:0}.contribution-list strong,.contribution-list small,.contribution-list b{display:block}.contribution-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.contribution-list small{color:var(--muted);margin-top:2px;font-size:10px}.contribution-list b{text-align:right;font-size:11px}.contribution-list i{background:var(--green);border-radius:4px;min-width:2px;height:4px;margin-top:4px;margin-left:auto;display:block}.contribution-list>p,.contribution-missing{color:var(--muted);font-size:11px;line-height:1.45}.contribution-missing{margin:16px 0}.quality-heading{margin-top:24px}.ration-recommendations{border:1px solid var(--line);background:#fff;border-radius:22px;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:20px;margin:20px 0;padding:22px;display:grid}.ration-recommendations h2{margin:4px 0}.ration-recommendations p:last-child{color:var(--muted);line-height:1.5}.ration-recommendations textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fbfcfa;border-radius:13px;padding:13px}.ration-recommendations footer{color:var(--muted);grid-column:2;justify-content:space-between;align-items:center;gap:12px;font-size:.8rem;display:flex}@media (max-width:1000px){.dish-row{grid-template-columns:minmax(220px,2fr) repeat(4,.5fr) 58px}}@media (max-width:680px){.dish-row{grid-template-columns:minmax(165px,2fr) .65fr .45fr 58px}.nutrient-tools{flex-direction:column;align-items:stretch}.nutrient-tools>label:first-child{width:100%;min-width:0}.ration-recommendations{grid-template-columns:1fr}.ration-recommendations footer{flex-direction:column;grid-column:1;align-items:stretch}.ration-recommendations footer button{width:100%}}
.profile-wrap{justify-self:end;position:relative}.profile-wrap .profile{justify-self:auto}.profile i{color:var(--muted);margin-left:2px;font-style:normal}.profile-menu{border:1px solid var(--line);width:230px;box-shadow:var(--shadow);z-index:40;background:#fff;border-radius:14px;padding:14px;display:grid;position:absolute;top:calc(100% + 12px);right:0}.profile-menu>small{color:var(--muted);margin-top:3px}.profile-menu>a{border:1px solid var(--line);color:var(--ink);border-radius:9px;margin-top:13px;padding:10px 11px;font-weight:750;text-decoration:none}.profile-menu button{color:var(--danger);text-align:left;background:#fff6f5;border:1px solid #f0d7d4;border-radius:9px;margin-top:13px;padding:10px 11px;font-weight:750}.profile-menu button:hover{background:#fde9e7}.profile-menu button:disabled{opacity:.6;cursor:wait}
.product-head-actions{align-items:center;gap:12px;display:flex}.product-editor{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;margin-top:24px;padding:24px}.product-editor-grid{grid-template-columns:2fr 1.4fr 1fr 1.4fr;gap:12px;display:grid}.product-editor label{gap:7px;font-weight:750;display:grid}.product-editor input,.product-editor select{border:1px solid var(--line);background:#fbfcfa;border-radius:11px;width:100%;padding:11px}.source-editor{background:#edf4ef;border-radius:14px;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;padding:18px;display:grid}.product-editor-head{justify-content:space-between;align-items:end;margin:28px 0 12px;display:flex}.product-editor-head h2{margin:0;font:700 25px Georgia,serif}.product-editor-head>span{color:var(--muted)}.product-editor-head>span strong{color:var(--green);font-size:20px}.nutrient-inputs{border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.nutrient-inputs label{border-top:1px solid #edf1ee;grid-template-columns:minmax(150px,1fr) 110px 44px;align-items:center;gap:8px;padding:10px 14px}.nutrient-inputs label:nth-child(-n+2){border-top:0}.nutrient-inputs label:nth-child(odd){border-right:1px solid #edf1ee}.nutrient-inputs span strong,.nutrient-inputs span small{display:block}.nutrient-inputs span small{color:var(--muted);margin-top:2px;font-size:10px;font-weight:400}.nutrient-inputs i{color:var(--muted);font-size:11px;font-style:normal}.product-editor-note{color:#725120;background:#fff7e8;border-radius:10px;margin:14px 0 0;padding:12px 14px;font-size:12px}@media (max-width:850px){.product-editor-grid{grid-template-columns:1fr 1fr}.nutrient-inputs{grid-template-columns:1fr}.nutrient-inputs label:nth-child(2){border-top:1px solid #edf1ee}.nutrient-inputs label:nth-child(odd){border-right:0}}@media (max-width:600px){.product-editor{padding:16px}.product-editor-grid,.source-editor{grid-template-columns:1fr}.product-head-actions{flex-direction:column;align-items:flex-end}.nutrient-inputs label{grid-template-columns:minmax(130px,1fr) 90px 36px}}
.ration-list-actions{align-items:center;gap:16px;margin:28px 0 14px;display:flex}.ration-list-actions span{color:var(--muted)}.plan-list{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.plan-list article{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:17px;overflow:hidden}.plan-list article>a{padding:20px;display:block}.plan-list article>a:hover{background:#fbfdfb}.plan-list h2{margin:12px 0 8px;font:700 25px Georgia,serif}.plan-list p{color:var(--muted);margin:0}.plan-list dl{border-top:1px solid var(--line);gap:26px;margin:22px 0 0;padding-top:14px;display:flex}.plan-list dl div{display:grid}.plan-list dt{color:var(--muted);font-size:11px}.plan-list dd{margin:4px 0 0;font:700 22px Georgia,serif}.plan-list article.archived{opacity:.72}.plan-actions{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);display:grid}.plan-actions button{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--green);text-align:left;background:#f7faf8;padding:10px 12px;font-weight:750}.plan-actions button:nth-child(2n){border-right:0}.plan-actions button:last-child{border-bottom:0}.plan-actions button.danger{color:#a5392e}.plan-status{color:var(--muted);text-transform:uppercase;background:#eef2ef;border-radius:6px;padding:4px 7px;font-size:10px;display:inline-block}.plan-status.published{background:var(--mint);color:var(--green)}.empty-plans{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:17px;grid-column:1/-1;gap:6px;padding:42px;display:grid}.empty-plans strong{color:var(--ink)}.template-section{margin-top:44px}.template-section>header{justify-content:space-between;align-items:end;margin-bottom:14px;display:flex}.template-section h2{margin:0;font:700 30px Georgia,serif}.template-section>header>span{color:var(--muted);font-weight:700}.template-list{gap:10px;display:grid}.template-list article{border:1px solid var(--line);background:#fff;border-radius:15px;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.template-list h3{margin:8px 0 5px;font:700 20px Georgia,serif}.template-list p{color:var(--muted);margin:0}.template-list article>div:last-child{align-items:center;gap:10px;display:flex}.template-scope{color:var(--green);text-transform:uppercase;background:#edf4ef;border-radius:6px;padding:4px 7px;font-size:9px;font-weight:800;display:inline-block}.template-scope.personal{color:#596b91;background:#eef1f7}.template-scope.common{color:#8f621c;background:#fff0d5}.template-delete{color:var(--danger);background:0 0;border:0;font-weight:700}@media (max-width:600px){.template-list article{flex-direction:column;align-items:flex-start}.template-list article>div:last-child{width:100%}}@media (max-width:900px){.plan-list{grid-template-columns:1fr 1fr}}@media (max-width:600px){.plan-list{grid-template-columns:1fr}}
@media print{@page{size:A4 landscape;margin:10mm}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#111!important;background:#fff!important}body{font-size:10pt}.workspace{min-height:0;padding:0}.topbar,.back,.head-actions,.tabs,.daybar button,.add-dish,.add-meal,.dish-actions,.print-trigger,.editor-section-head button,.editor-ingredient>button,.editor-footer,.nutrient-tools,.nutrient-categories,.procurement-scope,.procurement-servings{display:none!important}.page-head,.product-page{max-width:none!important;margin:0!important;padding:0!important}.page-head{align-items:start;padding-bottom:5mm!important}.page-head h1,.product-page h1{font-size:24pt!important}.page-head .muted{display:none}.daybar{max-width:none;box-shadow:none;border:0;margin:0 0 4mm;padding:0}.daybar>span:first-child{display:none}.day-date{color:#111;margin:0;font-weight:700;display:block!important}.summary-grid,.ration-card,.analysis-layout{max-width:none;margin:0}.summary-grid{grid-template-columns:repeat(5,1fr);gap:2mm}.metric,.coverage{border:1px solid #bbb;min-height:0;padding:3mm}.metric strong{margin-top:3mm;font-size:18pt}.coverage strong{margin:0;position:static}.coverage div{margin:3mm 0 2mm}.ration-card,.analysis-card,.insight-card,.recipe-editor{box-shadow:none;border:1px solid #bbb;border-radius:0}.table-head,.dish-row{grid-template-columns:minmax(75mm,2.5fr) 18mm 30mm 17mm repeat(3,14mm);gap:2mm}.table-head{padding:2mm 3mm 2mm 18mm;display:grid!important}.dish-row{min-height:0;padding:2mm 3mm 2mm 13mm}.dish-row .dish-name span{display:none}.dish-row small{white-space:normal}.meal-title{min-height:0;padding:2mm 3mm}.meal-title button{display:none}.meal-title input{background:0 0;border:0;padding:0}.meal-total{padding:2mm 3mm}.meal{break-inside:avoid}.analysis-layout{display:block}.analysis-card{padding:4mm}.insight-card{break-inside:avoid;margin-top:4mm;padding:4mm}.analysis-head{margin-bottom:3mm}.nutrient-row{break-inside:avoid;padding:2mm 0}.scale{border:1px solid #ccc}.analysis-scope{margin:0 0 3mm}.analysis-scope button{display:none}.analysis-scope button.active{border:0;padding:0;color:#111!important;background:0 0!important;display:block!important}.recipe-page header{align-items:start}.recipe-head-actions{display:block}.recipe-head-actions .source-badge{box-shadow:none}.recipe-editor{padding:4mm}.recipe-editor input,.recipe-editor select,.recipe-editor textarea{appearance:none;background:#fff;border:0;border-bottom:1px solid #bbb;border-radius:0;padding:2mm 0}.editor-ingredients{border-radius:0}.editor-ingredient{grid-template-columns:8mm minmax(70mm,2fr) 25mm 25mm;padding:2mm}.editor-ingredient label{break-inside:avoid}.recipe-preview{break-before:page;border-radius:0}.preview-table{max-height:none;overflow:visible}.preview-row{break-inside:avoid;padding:2mm 3mm}.preview-row.heading{position:static}.instructions textarea{height:auto;min-height:28mm;overflow:visible}.procurement-page{max-width:none;padding:0}.procurement-page>header{margin:0 0 5mm}.procurement-page h1{font-size:26pt}.procurement-summary{gap:2mm}.procurement-summary span{border-radius:0;padding:3mm}.procurement-table{box-shadow:none;border-radius:0}.procurement-row{break-inside:avoid;padding:2mm 3mm}.procurement-warning{break-inside:avoid;border-radius:0;padding:4mm}}
.procurement-page{max-width:1180px;margin:0 auto;padding:42px 24px 80px}.procurement-page>header{justify-content:space-between;align-items:flex-start;gap:24px;margin:20px 0 26px;display:flex}.procurement-page h1{margin:8px 0 12px;font-family:Georgia,serif;font-size:clamp(2.3rem,5vw,4.8rem);line-height:.95}.procurement-page header p:last-child{color:var(--muted)}.procurement-scope{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.procurement-scope a{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;padding:9px 14px;text-decoration:none}.procurement-scope a.active{background:var(--green);border-color:var(--green);color:#fff}.procurement-servings{align-items:flex-end;gap:12px;margin:0 0 18px;display:flex}.procurement-servings label{color:var(--muted);flex-direction:column;gap:6px;font-size:.82rem;display:flex}.procurement-servings input{border:1px solid var(--line);width:180px;color:var(--ink);font:inherit;background:#fff;border-radius:12px;padding:11px 13px}.procurement-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.procurement-summary span{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:18px;flex-direction:column;gap:7px;padding:18px;display:flex}.procurement-summary strong{color:var(--ink);font-size:1.15rem}.procurement-table{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;overflow:hidden}.procurement-row{border-bottom:1px solid var(--line);grid-template-columns:52px minmax(260px,1fr) 150px 150px;align-items:center;gap:12px;padding:13px 18px;display:grid}.procurement-row:last-child{border-bottom:0}.procurement-row.heading{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f0f4f1;font-size:.78rem}.procurement-row>span:nth-last-child(-n+2){text-align:right;font-variant-numeric:tabular-nums}.procurement-warning{background:#fff8e8;border:1px solid #e2b46a;border-radius:20px;margin-top:20px;padding:20px 24px}.procurement-warning h2{margin:0 0 10px}.procurement-warning p{margin:8px 0}.procurement-warning ul{margin:6px 0 12px;padding-left:20px}.procurement-footnote,.empty-note{color:var(--muted)}.procurement-footnote{max-width:760px;margin:18px 4px}.empty-note{padding:24px}@media (max-width:700px){.procurement-page{padding:24px 14px 60px}.procurement-page>header{display:block}.procurement-page .print-trigger{margin-top:16px}.procurement-servings{flex-direction:column;align-items:stretch}.procurement-servings input{box-sizing:border-box;width:100%}.procurement-summary{grid-template-columns:1fr}.procurement-table{overflow-x:auto}.procurement-row{grid-template-columns:32px minmax(180px,1fr) 110px 110px;min-width:620px;padding:11px 12px;font-size:.9rem}}
.norms-page{max-width:1280px;margin:0 auto;padding:42px 24px 90px}.norms-page>header h1{margin:8px 0 12px;font-family:Georgia,serif;font-size:clamp(2.5rem,5vw,5rem);line-height:.95}.norms-page>header p:last-child,.norm-actions span,.norm-editor .norm-help{color:var(--muted)}.norm-actions{align-items:center;gap:16px;margin:28px 0;display:flex}.norm-editor{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:24px;margin-bottom:28px;padding:26px}.norm-editor>header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.norm-editor h2,.norm-category h3,.norm-list h2{margin:4px 0}.norm-editor>header>span{color:var(--muted)}.norm-editor>header>span strong{color:var(--ink);font-size:1.4rem}.norm-meta{grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0;display:grid}.norm-meta label{color:var(--muted);flex-direction:column;gap:7px;font-size:.82rem;display:flex}.norm-meta input,.norm-grid input{box-sizing:border-box;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fbfcfa;border-radius:11px;padding:11px 12px}.norm-category{margin-top:26px}.norm-grid{border-bottom:1px solid var(--line);grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(100px,1fr));align-items:center;gap:10px;padding:8px 0;display:grid}.norm-grid.heading{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem}.norm-grid>span{flex-direction:column;gap:3px;display:flex}.norm-grid small{color:var(--muted)}.norm-editor>footer{justify-content:flex-end;align-items:center;gap:16px;margin-top:24px;display:flex}.norm-list{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.norm-list article{border:1px solid var(--line);background:#fff;border-radius:22px;padding:22px}.norm-list article p{color:var(--muted)}.norm-list dl{gap:8px;display:grid}.norm-list dl div{justify-content:space-between;gap:16px;display:flex}.norm-list dt{color:var(--muted)}.norm-list dd{text-align:right;margin:0}.norm-card-actions{gap:8px;margin-top:18px;display:flex}@media (max-width:760px){.norms-page{padding:24px 14px 60px}.norm-meta{grid-template-columns:1fr}.norm-editor{padding:18px}.norm-editor>header{display:block}.norm-category{overflow-x:auto}.norm-grid{grid-template-columns:220px repeat(3,130px);min-width:650px}}
.security-page{max-width:680px;margin:0 auto;padding:56px 24px 90px}.security-page h1{margin:8px 0 14px;font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,5rem);line-height:.95}.security-page>p:last-of-type{color:var(--muted);line-height:1.6}.security-form{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;gap:17px;margin-top:28px;padding:26px;display:grid}.security-form label{gap:7px;font-weight:700;display:grid}.security-form label small,.security-form>div span{color:var(--muted);font-size:.8rem;font-weight:400}.security-form input{border:1px solid var(--line);color:var(--ink);font:inherit;background:#fbfcfa;border-radius:12px;padding:13px}.security-form>div{justify-content:space-between;align-items:center;gap:16px;display:flex}.security-form>div span{line-height:1.4}@media (max-width:620px){.security-page{padding:32px 14px 60px}.security-form{padding:19px}.security-form>div{flex-direction:column;align-items:stretch}.security-form button{width:100%}}
.audit-page{max-width:1180px;margin:0 auto;padding:42px 24px 80px}.audit-page>header{margin-bottom:24px}.audit-page h1{margin:8px 0 12px;font:700 clamp(2.3rem,5vw,4.5rem)/1 Georgia,serif}.audit-page header p:last-child{color:var(--muted)}.audit-list{gap:10px;display:grid}.audit-list article{border:1px solid var(--line);background:#fff;border-radius:15px;grid-template-columns:150px minmax(250px,1fr) 180px;align-items:center;gap:18px;padding:16px 18px;display:grid}.audit-list time,.audit-list>article>span{color:var(--muted);font-size:12px}.audit-list article>div{gap:3px;display:grid}.audit-list article>div span{color:var(--muted);font-size:11px}.audit-list details{border-top:1px solid var(--line);grid-column:1/-1;padding-top:10px}.audit-list summary{cursor:pointer;color:var(--green);font-weight:700}.audit-list details>div{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.audit-list details section{min-width:0}.audit-list pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f7f4;border-radius:10px;max-height:260px;padding:12px;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.audit-empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:15px;padding:40px}@media (max-width:760px){.audit-page{padding:26px 14px 60px}.audit-list article{grid-template-columns:1fr;gap:7px}.audit-list details{grid-column:auto}.audit-list details>div{grid-template-columns:1fr}}
.clients-page{max-width:1180px;margin:0 auto;padding:42px 24px 80px}.clients-page>header{margin-bottom:24px}.clients-page h1{margin:8px 0 12px;font:700 clamp(2.3rem,5vw,4.5rem)/1 Georgia,serif}.clients-page>header p:last-child{max-width:760px;color:var(--muted)}.client-actions{align-items:center;gap:14px;margin:18px 0;display:flex}.client-actions span{color:var(--muted)}.client-form{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:1fr 1.6fr 1fr 1.4fr auto;align-items:end;gap:12px;margin-bottom:18px;padding:18px;display:grid}.client-form label{color:var(--muted);gap:7px;font-size:11px;font-weight:750;display:grid}.client-form input,.client-form select{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;padding:11px}.client-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.client-list article{border:1px solid var(--line);background:#fff;border-radius:18px;padding:22px;box-shadow:0 3px 14px #22312b0a}.client-list article.archived{opacity:.62}.client-kind{background:var(--mint);color:var(--green);text-transform:uppercase;letter-spacing:.06em;border-radius:8px;padding:5px 8px;font-size:10px;font-weight:800;display:inline-block}.client-list h2{margin:14px 0 5px;font:700 25px/1.15 Georgia,serif}.client-list article>p{color:var(--muted);margin:0;font-size:11px}.client-list dl{grid-template-columns:1.5fr .7fr;gap:10px;margin:20px 0;display:grid}.client-list dl div{background:#f4f7f4;border-radius:11px;padding:12px}.client-list dt{color:var(--muted);font-size:10px}.client-list dd{margin:5px 0 0;font-weight:750}.client-card-actions{flex-wrap:wrap;gap:8px;display:flex}.client-card-actions .button{padding:9px 12px}.client-empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:18px;grid-column:1/-1;gap:6px;padding:42px;display:grid}.client-empty strong{color:var(--ink)}.client-list dd select{width:100%;font:inherit;color:inherit;background:0 0;border:0}@media (max-width:1000px){.client-form{grid-template-columns:1fr 1fr}.client-list{grid-template-columns:1fr}}@media (max-width:620px){.clients-page{padding:26px 14px 60px}.client-form{grid-template-columns:1fr}.client-card-actions{display:grid}.client-card-actions .button{width:100%}}
.batch-calculator{background:#f4faf6;border:1px solid #b9d7c7;border-radius:14px;margin-top:24px;overflow:hidden}.batch-calculator>header{justify-content:space-between;align-items:end;gap:20px;padding:18px;display:flex}.batch-calculator h2{margin:0 0 5px;font:700 25px Georgia,serif}.batch-calculator header span{color:var(--muted)}.batch-calculator header label{min-width:180px}.batch-calculator header input{background:#fff}.batch-table{border-top:1px solid #d5e8dc}.batch-table>div{border-top:1px solid #d5e8dc;grid-template-columns:minmax(220px,2fr) 1fr 1fr;gap:12px;padding:10px 18px;display:grid}.batch-table>div:first-child{color:var(--muted);background:#e8f3ec;border-top:0;font-size:11px}.batch-calculator>p{color:#725120;background:#fff7e8;margin:0;padding:12px 18px;font-size:12px}@media (max-width:620px){.batch-calculator>header{flex-direction:column;align-items:stretch}.batch-calculator header label{min-width:0}.batch-table{overflow-x:auto}.batch-table>div{min-width:560px}}
