:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#073b18;background:#fbfdf9;--green: #063d18;--green-soft: #e6f7e9;--yellow: #ffcb05;--yellow-dark: #e9b800;--border: #e6ebe6;--muted: #617267}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.icon{display:inline-block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.brand{display:flex;align-items:center;gap:18px;color:var(--green);text-decoration:none;font-size:clamp(27px,2.6vw,42px);font-weight:750;letter-spacing:-.8px}.brand-mark{display:grid;place-items:center;width:62px;height:62px;color:var(--green);border:3px solid var(--yellow);border-radius:50%}.plain-icon-button{border:0;background:transparent;color:var(--green);padding:8px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 33px}h1{margin:0;color:var(--green);font-size:clamp(28px,3vw,42px);letter-spacing:-1px}h2{margin:0;font-size:20px;color:var(--green)}.heading-accent{display:block;width:84px;height:6px;margin-top:16px;border-radius:8px;background:var(--yellow)}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:48px;border-radius:12px;padding:0 20px;border:1px solid transparent;font-size:17px;font-weight:700}.button.primary{color:#073b18;background:var(--yellow);box-shadow:0 6px 12px #b88b0024}.button.primary:hover{background:var(--yellow-dark)}.button.secondary{color:var(--green);background:#f2f4f2;border-color:#d8e1d9}.button.secondary:hover{background:#e7ece8}.create-list{min-height:71px;padding:0 28px;font-size:19px}.list-table{overflow:hidden;border:1px solid #e9eeea;border-radius:16px;background:#fff;box-shadow:0 5px 18px #143b2112}.list-head,.list-row{display:grid;grid-template-columns:minmax(340px,1.65fr) minmax(150px,.8fr) minmax(280px,.8fr);align-items:center;gap:24px}.list-head{min-height:86px;padding:0 32px;border-bottom:2px solid #1d6c38;font-size:20px;font-weight:750}.list-row{min-height:112px;padding:20px 32px;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.document-badge{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:13px;background:var(--green-soft)}.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:20px}.action-button{display:grid;place-items:center;width:72px;height:68px;border:1px solid #cbe1d0;border-radius:13px;background:#fff;color:var(--green)}.action-button:hover{background:#f2faf3}.action-button.delete-button{border-color:#ffc8c1;color:#e1251b}.action-button.delete-button:hover{background:#fff4f3}.go-button{color:var(--green);padding:8px}.back-link{display:inline-block;margin-bottom:23px;color:var(--green);font-weight:650;text-decoration:none}.detail-heading{margin-bottom:23px}.panel{border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:0 4px 15px #143b210d}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#062c1566}.modal{width:min(100%,460px);max-height:calc(100vh - 40px);overflow:auto;padding:28px;border-radius:16px;background:#fff;box-shadow:0 18px 46px #062c1544}.modal h2{margin-bottom:24px;font-size:23px}form{display:flex;flex-direction:column;gap:17px}.field{display:flex;flex-direction:column;gap:7px;color:var(--green);font-size:14px;font-weight:650}.field input,.field select,.field textarea{width:100%;border:1px solid #cdd9d0;border-radius:8px;padding:11px 12px;background:#fff;color:#183b25;outline:none;font-weight:400}.field textarea{min-height:85px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #e3f4e5}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:6px}.empty-state{padding:30px;color:var(--muted);text-align:center}.error{margin:0;color:#c82117}.success{margin:0;color:#237c38}.panel{padding:25px}.panel h2{margin-bottom:21px}@media (max-width: 900px){.list-head,.list-row{grid-template-columns:minmax(220px,1.4fr) 110px minmax(210px,.8fr);gap:12px;padding-left:20px;padding-right:20px}.document-badge{width:50px;height:50px;flex-basis:50px}.action-button{width:50px;height:48px}.row-actions{gap:7px}}@media (max-width: 620px){.brand{gap:10px;font-size:26px}.brand-mark{width:43px;height:43px;border-width:2px}.page-heading{align-items:flex-start;flex-direction:column}.create-list{width:100%;min-height:55px}.list-table{overflow-x:auto}.list-head,.list-row{min-width:690px}.detail-heading .button{width:100%}}:root .button.danger{color:#fff;background:#d62b21}:root .button.danger:hover{background:#bc2118}:root .confirm-message{margin:0 0 24px;color:#405549;font-size:16px;line-height:1.5}@media (max-width: 620px){:root .list-table{overflow:visible;border:0;background:transparent;box-shadow:none}:root .list-head{display:none}:root .list-row{display:grid;grid-template-columns:1fr auto;min-width:0;min-height:0;gap:16px;margin-bottom:12px;padding:16px;border:1px solid #e2e9e3;border-radius:14px;background:#fff;box-shadow:0 3px 12px #143b210d}:root .document-badge{width:48px;height:48px;flex-basis:48px}:root .row-actions{grid-column:2;grid-row:2;justify-content:flex-end;gap:5px}:root .action-button{width:39px;height:39px;border-radius:9px}:root .action-button .icon{width:19px;height:19px}:root .go-button{display:grid;place-items:center;width:39px;height:39px}}.list-search{max-width:420px;margin-bottom:18px}body{font-size:15px}.brand{gap:12px;font-size:30px}.brand-mark{width:50px;height:50px}.page-heading{gap:16px;margin-bottom:24px}h1{font-size:34px}h2{font-size:18px}.button{min-height:42px;padding:0 16px;border-radius:9px;font-size:15px}.list-head,.list-row{gap:16px}.list-head{min-height:64px;padding:0 24px;font-size:16px}.list-row{min-height:88px;padding:14px 24px}.document-badge{width:52px;height:52px;flex-basis:52px}.row-actions{gap:12px}.action-button{width:52px;height:48px;border-radius:9px}.panel{border-radius:12px}.modal{padding:24px;border-radius:12px}.modal-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:24px}.modal-header h2{flex:1;min-width:0;margin-bottom:0;overflow-wrap:anywhere}.modal-close{flex:0 0 44px;width:44px;height:44px;margin-top:-8px;margin-right:-8px;border:0;border-radius:8px;background:transparent;color:var(--green);font-size:30px;line-height:1}.modal-close:hover{background:var(--green-soft)}.modal-close:focus-visible{outline:2px solid var(--green);outline-offset:2px}.modal .dialog-actions{flex-wrap:wrap}form{gap:14px}.brand{gap:10px;font-size:23px}.brand-mark{width:38px;height:38px}h1{font-size:24px}.list-head,.list-row{font-size:15px}.list-head{min-height:58px}.list-row{min-height:78px}.button{font-size:14px}.list-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.list-tools .list-search{flex:0 1 420px;margin-bottom:0}.list-tools .create-list{min-height:42px;font-size:15px}@media (max-width: 620px){.list-tools{align-items:stretch;flex-direction:column;gap:6px}.list-tools .list-search{max-width:none;flex:0 1 auto}.list-tools .create-list{width:100%;min-height:55px}}.compact-delete{display:grid;place-items:center;width:34px;height:42px;border:0;border-radius:8px;background:transparent;color:#d62b21}.compact-delete:hover{background:#fff4f3}.add-row{align-self:flex-start;min-height:36px}.muted{color:var(--muted)}.field-error{color:#c82117;font-weight:500}.sort-button{display:flex;align-items:center;gap:14px;width:fit-content;padding:4px 0;border:0;background:transparent;color:var(--green);font:inherit;font-weight:inherit}.list-title{display:flex;align-items:center;gap:34px;color:var(--green);text-decoration:none;font-size:22px}.access-badge{display:grid;place-items:center;width:62px;height:62px;border:1px solid #d7eedb;border-radius:50%;background:#effbf1;color:var(--green)}.access-badge.private{border-color:#f8e8b0;background:#fff9e9;color:#e5af00}.tip{display:flex;justify-content:center;align-items:center;gap:12px;margin:31px 0 0;color:var(--green);font-size:17px}.tip span{display:grid;place-items:center;width:27px;height:27px;border:2px solid currentColor;border-radius:50%;font-weight:700}.status-card,.todo-category{border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:0 4px 15px #143b210d}.status-card{display:flex;align-items:center;gap:16px;padding:16px 20px;margin-bottom:22px}.status-card small{display:block;margin-top:3px;color:var(--muted)}.filter-toggle{display:inline-flex;align-items:center;gap:10px;margin:0 0 16px;font-weight:600}.filter-toggle input,.todo-item input,.multi-select-menu input,.shopping-preview input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}.todo-category{margin-bottom:16px;padding:22px 24px}.todo-category h2{margin-bottom:12px}.todo-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #edf0ed}.todo-item label{display:flex;align-items:flex-start;gap:11px}.todo-item small{display:block;white-space:pre-wrap;margin-top:5px;color:var(--muted)}.done{color:var(--muted);text-decoration:line-through}.small-actions{display:flex;gap:5px}.small-actions button,.quick-add button{display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--green);padding:8px}.small-actions button:hover,.quick-add button:hover{background:#eef6ef}.quick-add{display:flex;gap:10px;margin-top:11px}.quick-add input{flex:1;border:0;border-bottom:1px solid #b4c4b7;padding:9px;outline:0}.quick-add input:focus{border-bottom:2px solid var(--green)}.bottom-actions{display:flex;gap:12px;margin-top:22px}.multi-select{position:relative}.multi-select-trigger{display:flex;justify-content:space-between;width:100%;border:1px solid #cdd9d0;border-radius:8px;padding:11px 12px;background:#fff;color:#183b25;text-align:left;font-weight:400}.multi-select-menu{position:absolute;z-index:2;top:calc(100% + 4px);width:100%;max-height:200px;overflow:auto;padding:6px;border:1px solid #cdd9d0;border-radius:8px;background:#fff;box-shadow:0 7px 18px #143b2126}.multi-select-menu label{display:flex;align-items:center;justify-content:flex-start;gap:9px;padding:9px;color:#183b25;cursor:pointer;font-weight:400}.multi-select-menu label:hover{background:#edf7ee}.multi-select-menu input,.shopping-preview input[type=checkbox]{flex:0 0 18px;margin:0}.chips{display:flex;flex-wrap:wrap;gap:7px}.chips span{display:inline-flex;align-items:center;gap:5px;border-radius:16px;padding:5px 9px;background:var(--green-soft);color:var(--green);font-size:13px}.chips button{border:0;padding:0;background:transparent;color:inherit;font-size:16px;line-height:1}@media (max-width: 900px){.list-title{gap:14px;font-size:18px}}@media (max-width: 620px){.tip{align-items:flex-start;font-size:14px}.bottom-actions{flex-direction:column}.bottom-actions .button{width:100%}}:root .category-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}:root .category-heading h2{margin-bottom:0}:root .category-delete{display:inline-flex;align-items:center;gap:6px;border:1px solid #ffc8c1;border-radius:8px;padding:7px 10px;background:#fff;color:#d62b21;font-size:13px;font-weight:650}:root .category-delete:hover{background:#fff4f3}@media (max-width: 500px){:root .category-heading{align-items:flex-start;flex-direction:column}}:root details.status-card{display:block;padding:0}:root .status-card summary{display:flex;align-items:center;gap:16px;padding:16px 20px;cursor:pointer;list-style:none}:root .status-card summary::-webkit-details-marker{display:none}:root .status-card summary small{display:block;margin-top:3px;color:var(--muted)}:root .collapse-arrow{margin-left:auto;font-size:23px;transition:transform .2s ease}:root .status-card[open] .collapse-arrow{transform:rotate(180deg)}:root .share-content{padding:0 20px 20px 98px;border-top:1px solid var(--border)}:root .share-content p{margin:14px 0;color:#405549}@media (max-width: 620px){:root .list-title{grid-column:1 / -1;gap:14px;font-size:18px}:root .access-badge{width:46px;height:46px}:root .share-content{padding:0 16px 16px}:root .status-card summary{padding:14px 16px}}.multi-select-menu{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));max-height:190px;overflow-y:auto;overflow-x:hidden}.list-title{gap:20px;font-size:18px}.access-badge{width:52px;height:52px}.status-card,.todo-category{border-radius:12px}.todo-category{padding:18px 20px}.list-title{font-size:17px}.tip>span{display:grid;flex:0 0 27px;place-items:center;width:27px;height:27px;aspect-ratio:1;line-height:1}.todo-item input:checked{accent-color:var(--yellow-dark)}.todo-links-editor{margin:20px 0;padding:16px;border:1px solid var(--border);border-radius:10px}.todo-links-editor legend{padding:0 6px;font-weight:700}.todo-link-editor{display:grid;grid-template-columns:1fr 1.5fr auto;gap:10px;align-items:end;margin-bottom:12px}.todo-link-editor .field{margin:0}.todo-detail{display:grid;gap:20px;margin:18px 0 24px}.todo-detail h3{margin:0 0 7px}.todo-detail p{margin:0;white-space:pre-wrap}.todo-link-list{display:grid;gap:9px;padding:0;margin:0;list-style:none}.todo-link-list li{display:flex;min-width:0;align-items:center;gap:9px}.todo-link-list li .icon{flex:0 0 auto}.todo-link-list a{display:block;min-width:0;max-width:100%;overflow:hidden;color:var(--green);text-overflow:ellipsis;white-space:nowrap}@media (max-width: 650px){.todo-link-editor{grid-template-columns:1fr auto}.todo-link-editor .field:nth-child(2){grid-column:1}}.small-actions .todo-links-hint{display:flex;align-items:center;gap:6px;font-size:13px}.small-actions a.todo-links-hint{padding:8px;border-radius:7px;color:var(--green);text-decoration:none}.small-actions a.todo-links-hint:hover{background:#eef6ef}.todo-links-hint .icon{flex-shrink:0}.meal-plan-title-text{min-width:0}.meal-plan-title-text strong{display:block}.meal-plan-title-text small{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:400}.meal-dialog-fields,.meal-plan-settings,.meal-week,.shopping-preview{border:0;padding:0;min-width:0}.meal-plan-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.meal-plan-settings legend,.meal-week legend{font-weight:600;margin-bottom:18px}.meal-day-empty{color:var(--muted);font-size:14px}.meal-add{margin-top:8px}.meal-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.meal-day{border:1px solid #dce4ef;border-radius:14px;padding:20px;background:#fff}.meal-day h2{font-size:1.1rem;margin-top:0}.meal-slot{border-top:1px solid #e9edf3;padding:12px 0}.meal-slot h3{font-size:.85rem;margin:0 0 12px}.meal-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px}.meal-recipe{display:flex;flex-direction:column;gap:5px;min-width:0;color:inherit;text-decoration:none;overflow-wrap:anywhere}.meal-recipe:hover{color:var(--green);text-decoration:none}.meal-recipe small{color:var(--muted)}.meal-entry-actions{display:flex;gap:4px;align-items:center}.meal-entry-actions .action-button,.meal-entry-actions .go-button{width:34px;height:34px;padding:7px}.meal-entry-actions .action-button:disabled{opacity:.35;cursor:default}.meal-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.meal-actions{margin:24px 0}.meal-error{color:#b42318}.shopping-preview>label,.shopping-group,.shopping-ingredient{display:flex;gap:10px;align-items:baseline}.shopping-preview section{border-top:1px solid #e3e8f0;padding:12px 0}.shopping-group{align-items:center}.shopping-category-toggle{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:6px 0;border:0;background:transparent;color:var(--green);font:inherit;text-align:left}.shopping-category-count{margin-left:auto;color:var(--muted);font-size:13px}.shopping-category-toggle .icon{flex-shrink:0;transition:transform .15s ease}.shopping-category-toggle[aria-expanded=true] .icon{transform:rotate(90deg)}.shopping-ingredient{padding:8px 0 8px 20px}.shopping-ingredient small{display:block;white-space:pre-wrap;margin-top:5px;color:#526176}.shopping-preview .field{display:flex;flex-direction:column;align-items:stretch}@media (max-width: 760px){.meal-week,.meal-plan-settings{grid-template-columns:1fr}.meal-day{padding:14px}}.admin-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:22px}.category-admin{display:grid;gap:28px}.category-admin-table .list-head,:root .category-admin-table .list-row{grid-template-columns:minmax(0,1fr);min-width:0;min-height:56px}.user-row{display:grid;grid-template-columns:1fr 1.5fr auto;gap:13px;padding:14px 0;border-bottom:1px solid var(--border);color:#284434}.user-row small{color:var(--muted)}@media (max-width: 900px){.admin-grid{grid-template-columns:1fr}}@media (max-width: 620px){.user-row{grid-template-columns:1fr;gap:4px}}.admin-grid{grid-template-columns:minmax(0,1fr)}.user-table .list-head,.user-table .list-row{grid-template-columns:minmax(180px,1fr) minmax(240px,1.4fr) minmax(130px,.7fr) minmax(150px,.6fr)}.admin-search{display:flex;align-items:flex-end;justify-content:flex-start;gap:20px;width:100%;margin-bottom:22px}.admin-search .field{flex:0 1 420px;min-width:0}@media (max-width: 620px){.admin-search{align-items:stretch;flex-direction:column;gap:10px}.admin-search .field,.admin-search .button{width:100%;max-width:none}.user-table{overflow:visible}.user-table .list-head{display:none}.user-table .list-row{display:grid;grid-template-columns:1fr auto;gap:5px 12px;min-width:0;padding:16px}.user-table .list-row>span{grid-column:1}.user-table .list-row>span:nth-of-type(1):before{content:"E-Mail: ";color:var(--muted)}.user-table .list-row>span:nth-of-type(2):before{content:"Rolle: ";color:var(--muted)}.user-table .row-actions{grid-column:2;grid-row:1 / span 3}}.user-table .row-actions{justify-content:flex-start}.recipe-tags-table .list-head,.recipe-tags-table .list-row{grid-template-columns:minmax(0,1fr) minmax(150px,.7fr) 150px}.recipe-tags-table .list-row strong{min-width:0;overflow-wrap:anywhere}:root .recipe-tags-table .list-row{min-height:64px;align-items:center}:root .recipe-tags-table .row-actions{grid-column:3;grid-row:1;justify-content:flex-start}@media (max-width: 620px){.recipe-tags-table .list-head{display:none}:root .recipe-tags-table .list-row{grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:12px 16px;gap:12px}:root .recipe-tags-table .row-actions{grid-column:2;grid-row:1 / span 2}.recipe-tags-table .recipe-tag-category{grid-column:1;grid-row:2;font-size:13px;color:var(--muted)}}@media (max-width: 620px){.admin-search .field{flex-basis:auto}}.admin-navigation{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border)}.admin-navigation a{padding:12px 18px;color:var(--muted);text-decoration:none;border-bottom:3px solid transparent}.admin-navigation a.active{color:var(--green);border-bottom-color:currentColor;font-weight:600}.ingredient-admin{margin:8px 0 32px}.ingredients-toolbar{align-items:flex-end;gap:20px}.ingredients-toolbar .list-search{flex:0 1 420px}.ingredients-filters{display:flex;flex-wrap:wrap;gap:8px}.ingredients-filters .button{gap:10px}.ingredient-count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;padding:0 7px;border-radius:6px;background:#f0f3ef;color:var(--muted);font-size:13px;font-weight:650}.ingredients-selection{display:flex;align-items:center;gap:20px;justify-content:space-between;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:24px}.ingredients-selection-content{flex:1;min-width:0}.ingredients-selection h3{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:15px}.ingredient-chips{display:flex;gap:8px;flex-wrap:wrap}.ingredient-chips button{display:inline-flex;align-items:center;gap:12px;border:1px solid #cddfcf;border-radius:8px;padding:6px 10px;background:var(--green-soft);color:var(--green);font-size:14px;text-align:left;overflow-wrap:anywhere}.ingredient-chips button span{font-size:20px;line-height:1}.ingredients-list-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 16px}.ingredients-list-heading h3{font-size:18px;margin:0}.ingredients-select-all{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--muted);font-size:14px;cursor:pointer}.ingredient-admin input[type=checkbox]{accent-color:var(--green);width:20px;height:20px;margin:0;flex-shrink:0;cursor:pointer}.ingredients-table{margin-bottom:24px}.ingredients-table .list-head,.ingredients-table .list-row{grid-template-columns:22px minmax(160px,1fr) minmax(180px,.7fr) 180px}.ingredient-admin-list{list-style:none;padding:0;margin:0}.ingredients-table .list-row.is-selected{background:var(--green-soft)}.ingredient-name{min-width:0;overflow-wrap:anywhere}.ingredient-name strong{font-size:16px}.ingredient-row-category{min-width:0}.ingredients-table .ingredient-row-actions{gap:10px;justify-content:flex-start}.ingredients-assignment{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;align-items:start}.ingredients-assignment .field>span{display:flex;align-items:center;gap:9px}.ingredients-assignment-action .button{width:100%;margin-top:26px}.ingredients-assignment-action p{color:var(--muted);font-size:13px;line-height:1.6;margin:10px 0 0}.ingredients-feedback{display:flex;align-items:center;gap:8px;color:var(--green);font-size:14px;padding:12px 16px;background:var(--green-soft);border-radius:8px}.ingredients-empty{color:var(--muted);text-align:center;padding:32px 20px}.ingredient-admin button:focus-visible,.ingredient-admin select:focus-visible,.ingredient-admin input[type=checkbox]:focus-visible{outline:2px solid var(--green);outline-offset:3px}@media (max-width: 850px){.ingredients-toolbar{align-items:stretch;flex-direction:column}.ingredients-toolbar .list-search{flex-basis:auto}.ingredients-table .list-head,.ingredients-table .list-row{gap:12px;padding-inline:16px;grid-template-columns:22px minmax(120px,1fr) minmax(150px,.7fr) 165px}}@media (max-width: 620px){.ingredients-selection{flex-direction:column;align-items:stretch;padding:16px;gap:14px}:root .ingredients-table .list-row{grid-template-columns:22px minmax(0,1fr);gap:12px;padding:16px}.ingredients-table .ingredient-name{grid-column:2;gap:12px}.ingredients-table .ingredient-row-category{grid-column:2;grid-row:2}:root .ingredients-table .ingredient-row-actions{grid-column:2;grid-row:3;gap:5px}.ingredients-assignment{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}.ingredients-assignment-action .button{margin-top:0}.ingredient-row-category select{font-size:16px}}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at top left,#edf9ef,transparent 38%),#fbfdf9}.login-card{width:min(100%,430px);padding:38px;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 14px 40px #143b2120}.login-brand{margin-bottom:38px}.login-brand .brand-mark{width:50px;height:50px}.login-card h1{font-size:30px}.login-card>p{margin:9px 0 27px;color:var(--muted)}.login-card .button{margin-top:5px}:root .login-page .content{display:grid;width:100%;min-height:100vh;place-items:center;margin:0;padding:24px}.recipe-create-actions{display:flex;gap:10px}.import-started{margin-bottom:20px}.recipe-inbox{position:relative}.inbox-button{position:relative;display:grid;place-items:center}.inbox-badge{position:absolute;top:0;right:0;display:grid;min-width:19px;height:19px;place-items:center;border:2px solid #fff;border-radius:10px;padding:0 4px;background:#d62b21;color:#fff;font-size:11px;font-weight:800;line-height:1}.inbox-menu{position:absolute;z-index:15;top:calc(100% + 14px);right:0;width:min(380px,calc(100vw - 28px));max-height:min(480px,calc(100vh - 100px));overflow:auto;border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff;box-shadow:0 12px 30px #143b2133}.inbox-menu h2{margin:5px 8px 10px}.inbox-entry{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;width:100%;border:0;border-radius:9px;padding:10px;background:transparent;color:var(--green);text-align:left}.inbox-entry:hover{background:var(--green-soft)}.inbox-entry .document-badge{width:42px;height:42px}.inbox-entry strong,.inbox-entry small{display:block}.inbox-entry small{margin-top:3px;color:var(--muted)}.inbox-empty{margin:0;padding:18px 10px;color:var(--muted);text-align:center}.import-help{margin:0;color:var(--muted);line-height:1.5}.import-image-section{display:grid;gap:12px}.import-image-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}.import-source-actions{display:flex;flex-wrap:wrap;gap:10px}.import-ocr-response{max-height:420px;overflow:auto;margin:0;border:1px solid var(--border);border-radius:12px;padding:16px;background:#f8fcf8;color:#284434;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.import-original-image{display:block;width:100%;max-height:520px;border:1px solid var(--border);border-radius:12px;object-fit:contain;background:#f5f7f5}.import-image-loading{min-height:120px;display:grid;place-items:center;border:1px solid var(--border);border-radius:12px;color:var(--muted);background:#f8fcf8}.image-upload{display:grid;place-items:center;gap:6px;min-height:180px;border:2px dashed #b9cfbd;border-radius:12px;background:#f8fcf8;color:var(--green);cursor:pointer;text-align:center}.image-upload:hover{border-color:var(--green);background:var(--green-soft)}.image-upload span{font-weight:750}.image-upload small{color:var(--muted);font-weight:400}.image-upload input{position:absolute;width:1px;height:1px;opacity:0}.import-processing{display:grid;place-items:center;gap:12px;padding:30px 10px;text-align:center}.import-processing p{margin:0;color:var(--muted)}.loading-spinner{width:38px;height:38px;border:4px solid var(--green-soft);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-review .import-ingredient-row{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(130px,1.2fr) 85px 90px 34px;gap:8px;align-items:end;padding-bottom:12px;border-bottom:1px solid var(--border)}.recognized-text{grid-column:1 / -1;color:var(--muted)}@media (max-width: 620px){.recipe-create-actions{flex-direction:column}}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.recipe-card{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;padding:20px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 4px 15px #143b210d}.recipe-card-main{display:flex;align-items:center;min-width:0;gap:16px;color:var(--green);text-decoration:none}.recipe-card-main h2{margin-bottom:5px}.recipe-card-main p{margin:0 0 5px;color:var(--muted)}.recipe-card-main small{color:var(--muted)}.recipe-card .row-actions{flex:0 0 auto;gap:6px}.recipe-card .action-button{width:42px;height:42px}.recipe-card .empty-state{grid-column:1 / -1}.detail-actions{display:flex;gap:10px}.recipe-author{margin:-12px 0 24px;color:var(--muted)}.recipe-detail-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(420px,1.5fr);gap:22px;align-items:start}.ingredient-list,.recipe-steps{margin:18px 0 0;padding:0;list-style:none}.ingredient-list li{display:grid;grid-template-columns:minmax(90px,auto) 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--border)}.recipe-steps{counter-reset:recipe-step}.recipe-steps li{counter-increment:recipe-step;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:11px 0;line-height:1.5}.recipe-steps li:before{content:counter(recipe-step);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--yellow);color:var(--green);font-weight:750}.recipe-form{gap:22px}.recipe-form .form-section{display:flex;flex-direction:column;gap:12px;margin:0;padding:16px;border:1px solid var(--border);border-radius:10px}.recipe-form legend{padding:0 7px;color:var(--green);font-weight:750}.ingredient-editor-row{display:grid;grid-template-columns:minmax(150px,1.5fr) 85px 90px 34px 34px;gap:8px;align-items:start}.step-editor-row{display:grid;grid-template-columns:30px 1fr 34px;gap:9px;align-items:center}.step-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--green-soft);font-weight:700}.ingredient-editor-row .field>span{display:flex;align-items:flex-end;min-height:34px}.ingredient-search{position:relative}.ingredient-suggestions{position:absolute;z-index:3;top:86px;width:100%;max-height:190px;overflow-y:auto;padding:5px;border:1px solid #cdd9d0;border-radius:8px;background:#fff;box-shadow:0 7px 18px #143b2126}.ingredient-suggestions button{display:block;width:100%;border:0;border-radius:6px;padding:9px;background:transparent;color:#183b25;text-align:left}.ingredient-suggestions button:hover,.ingredient-suggestions button[aria-selected=true]{background:var(--green-soft)}.ingredient-suggestions small{display:block;padding:9px;color:var(--muted);font-weight:400}.ingredient-create{margin-top:4px;border:0;padding:2px 0;background:transparent;color:var(--green);font-size:12px;font-weight:650;text-align:left}.ingredient-create:hover{text-decoration:underline}.ingredient-order-actions{display:grid;align-content:center;height:42px;margin-top:41px}.ingredient-editor-row>.compact-delete{margin-top:41px}.recipe-form.modal{width:min(100%,760px)}.modal:has(.recipe-form){width:min(100%,760px)}@media (max-width: 760px){.recipe-detail-grid{grid-template-columns:1fr}.detail-actions{width:100%}.detail-actions .button{flex:1}.ingredient-editor-row{grid-template-columns:1fr 1fr 34px 34px}.ingredient-editor-row .ingredient-search{grid-column:1 / -1}.import-review .import-ingredient-row{grid-template-columns:1fr 1fr 34px}.import-review .import-ingredient-row .field:nth-child(1),.import-review .import-ingredient-row .field:nth-child(2){grid-column:1 / -1}}@media (max-width: 500px){.recipe-grid{grid-template-columns:1fr}.recipe-card{align-items:flex-start;flex-direction:column}.recipe-card .row-actions{align-self:flex-end}}.profile-menu .inbox-button{display:flex}.profile-menu .inbox-badge{position:static;margin-left:auto;border:0}.profile-menu .inbox-menu{position:static;width:100%;margin-top:4px;box-shadow:none}.profile-menu:has(.inbox-menu){width:min(380px,calc(100vw - 28px))}.inbox-entry>span:nth-child(2){min-width:0;overflow-wrap:anywhere}@media (max-width: 760px){.profile-menu:has(.inbox-menu){width:auto}}.compact-move{display:grid;place-items:center;width:34px;height:21px;border:0;border-radius:6px;background:transparent;color:var(--green)}.compact-move:hover:not(:disabled){background:var(--green-soft)}.compact-move:disabled{color:#aab5ad;opacity:.55}.compact-move.move-up .icon{transform:rotate(-90deg)}.compact-move.move-down .icon{transform:rotate(90deg)}.recipe-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin-bottom:1rem}.recipe-filters .field{flex:1;min-width:180px}.recipe-metadata{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0;font-size:.875rem}.recipe-tag{background:var(--surface-secondary, #edf2ed);color:#284433;border-radius:1rem;padding:.15rem .6rem}.recipe-tag-select{position:relative}.recipe-tag-trigger{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;border:1px solid var(--border, #cdd9d0);border-radius:8px;background:var(--surface, #fff);color:inherit;font:inherit;cursor:pointer;text-align:left}.recipe-tag-menu{position:absolute;top:72px;left:0;right:0;z-index:10;max-height:220px;overflow-y:auto;padding:6px;border:1px solid var(--border, #cdd9d0);border-radius:8px;background:var(--surface, #fff);box-shadow:0 8px 24px #0002}.recipe-tag-menu label{display:flex;align-items:center;gap:10px;padding:10px;border-radius:6px;cursor:pointer}.recipe-tag-menu label:hover{background:#edf7ee}.recipe-tag-menu input{width:16px;height:16px;margin:0}.recipe-filter-chips{display:flex;flex-wrap:wrap;gap:8px}.recipe-filter-chips:not(:empty){margin:8px 0 16px}.recipe-filter-chips>span{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:18px;background:var(--green-soft);color:var(--green);font-size:13px}.recipe-filter-chips button{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0 3px}.recipe-filter-toolbar{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;margin-bottom:12px}.recipe-filter-toolbar>.field{flex:0 1 420px;min-width:0;margin:0}.recipe-filter-trigger{flex-shrink:0}.recipe-tag-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.recipe-tag-group{border:0;padding:0;margin:8px 0;min-width:0}.recipe-tag-group legend{font-weight:600;color:var(--green);padding:4px 10px}.recipe-tag-groups .recipe-tag-group{border:1px solid var(--border);border-radius:8px;padding:8px}.recipe-tag-groups label{display:flex;align-items:center;gap:10px;padding:8px;cursor:pointer}.recipe-tag-groups input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--green)}.app-page{min-height:100vh;background:radial-gradient(circle at 30% 20%,#f5fff4 0,transparent 31%),#fcfdfb}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#fff;border-bottom:1px solid #eef1ed;box-shadow:0 4px 12px #143b2112}.avatar-menu{position:relative}.navigation-toggle{display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--green-soft);color:var(--green);font-weight:700}.navigation-toggle:hover,.navigation-toggle[aria-expanded=true]{background:#e2f1e3}.profile-menu{position:absolute;z-index:10;top:calc(100% + 12px);right:0;min-width:240px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 90px);overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 10px 24px #143b2126}.profile-menu[hidden]{display:none}.profile-menu a,.profile-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:7px;padding:11px 12px;background:transparent;color:var(--green);text-align:left;text-decoration:none}.profile-menu a:hover,.profile-menu button:hover,.profile-menu a.active{background:#f0f8f1}.profile-menu .logout-button{margin-top:6px;border-top:1px solid var(--border);border-radius:0 0 7px 7px}.content{width:min(100% - 80px,1400px);margin:0 auto;padding:32px 0 40px}@media (max-width: 900px){.content{width:min(100% - 40px,1400px)}}@media (max-width: 760px){.topbar{padding:0 14px}.navigation-toggle{padding:10px}.profile-menu{position:fixed;top:72px;left:14px;right:14px;width:auto;max-width:none;max-height:calc(100dvh - 86px)}}@media (max-width: 620px){.content{width:min(100% - 28px,1400px);padding-top:30px}}
