:root{--bg:#f5f7f4;--card:#fff;--text:#1f2d25;--muted:#6b756f;--primary:#315b4a;--accent:#c77a43;--line:#d9e2dc}body.dark{--bg:#18211d;--card:#223029;--text:#eef5f0;--muted:#aebbb3;--line:#3b4b42}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--text)}header{background:var(--primary);color:#fff;padding:18px 22px;display:flex;justify-content:space-between;align-items:center}h1{margin:0 0 4px}header p{margin:0;opacity:.85}button,select,input{font:inherit}button{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;background:var(--accent);color:#fff;font-weight:700}nav{display:flex;gap:8px;padding:12px;overflow:auto;background:var(--card);border-bottom:1px solid var(--line)}nav button{background:transparent;color:var(--text);white-space:nowrap}nav button.active{background:var(--primary);color:#fff}main{max-width:1250px;margin:auto;padding:16px}.view{display:none}.view.active{display:block}.panel{background:var(--card);padding:14px;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;display:flex;gap:10px;flex-wrap:wrap}.filters input,.filters select,.settings select,.extra input{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text)}.filters input{flex:1;min-width:220px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:0 4px 14px rgba(0,0,0,.04)}.card h3{margin:0 0 8px}.meta{color:var(--muted);font-size:.92rem;margin:6px 0}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.tag{background:#e8f1ec;color:#315b4a;padding:4px 8px;border-radius:999px;font-size:.8rem}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions a{background:var(--primary);color:#fff;text-decoration:none;padding:9px 11px;border-radius:9px}.fav{background:#d9a92e}.week{display:grid;gap:10px}.day{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;grid-template-columns:120px 1fr auto;gap:10px;align-items:center}.day select{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text)}.summary{margin-top:14px;background:var(--card);padding:16px;border-radius:14px;border:1px solid var(--line)}.shop-item,.extra li{background:var(--card);border:1px solid var(--line);padding:10px;border-radius:10px;margin:8px 0;display:flex;gap:10px;align-items:flex-start}.shop-item.done{text-decoration:line-through;opacity:.6}.stats{margin:10px 0;color:var(--muted)}@media(max-width:650px){.day{grid-template-columns:1fr}.day strong{font-size:1.1rem}}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1000;padding:20px;overflow:auto}
.modal.open{display:block}.modal-card{max-width:760px;margin:20px auto;background:var(--card);color:var(--text);border-radius:18px;padding:24px;position:relative}
.modal-close{position:absolute;right:14px;top:14px;background:#b54848}
.recipe-columns{display:grid;grid-template-columns:1fr 1.5fr;gap:24px}.recipe-columns li{margin-bottom:8px}
.recipe-head{padding-right:45px}.recipe-head .meta{font-size:1rem}
@media(max-width:700px){.recipe-columns{grid-template-columns:1fr}.modal{padding:8px}.modal-card{margin:5px auto;padding:18px}}

.header-actions{display:flex;gap:8px;align-items:center}.auth-panel{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1500;padding:18px}.auth-panel.open{display:block}
.auth-card{max-width:440px;margin:8vh auto;background:var(--card);color:var(--text);padding:24px;border-radius:18px;position:relative}
.auth-card input{display:block;width:100%;padding:12px;margin:10px 0;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text)}
#syncStatus{font-size:.9rem}.sync-ok{color:#d9f2df}.sync-error{color:#ffd0d0}
@media(max-width:650px){header{align-items:flex-start}.header-actions{flex-wrap:wrap;justify-content:flex-end}header h1{font-size:1.35rem}}

.attendance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.attendance-day{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px}
.attendance-actions{display:grid;gap:7px;margin:12px 0}.attendance-actions button{background:#68776f}.attendance-actions .selected{outline:3px solid #e7a96b}
.member-status{display:grid;gap:5px;padding-top:8px;border-top:1px solid var(--line)}
.preferences .wide,#adminFamilyPanel .wide{width:100%}.preferences label{display:block;margin:10px 0}
.preferences input,.preferences textarea,#adminFamilyPanel input,#adminFamilyPanel select{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text)}
.preferences textarea{min-height:90px}.meal-note{display:block;margin-top:8px;padding:8px;width:100%;border:1px solid var(--line);border-radius:8px}

.shopping-group{margin:18px 0}.shopping-group h3{position:sticky;top:0;background:var(--bg);padding:8px 2px;margin:0;z-index:2}
.shop-item strong{display:inline-block;min-width:90px}

/* To-kolonne indkøbsside */
.shopping-toolbar{align-items:center;justify-content:space-between;padding:16px 18px}
.shopping-toolbar h2,.shopping-column h2{margin:0}
.shopping-toolbar p,.shopping-column-head p{margin:4px 0 0;color:var(--muted)}
.shopping-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}
.shopping-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.shopping-column{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;min-width:0}
.shopping-column-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.count-badge{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-weight:700;white-space:nowrap}
.shopping-info,.shopping-footer-info{background:#e7f3ed;border-radius:10px;padding:11px 13px;color:#315b4a;font-size:.92rem}
.shopping-info{margin-bottom:14px}.shopping-footer-info{margin-top:18px}
.planned-meal{border:1px solid var(--line);border-radius:12px;margin:10px 0;overflow:hidden;background:var(--card)}
.planned-meal summary{cursor:pointer;list-style:none;padding:13px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.planned-meal summary::-webkit-details-marker{display:none}
.planned-meal summary::after{content:"⌄";font-size:1.2rem;color:var(--muted)}
.planned-meal[open] summary::after{content:"⌃"}
.planned-title{display:flex;gap:9px;align-items:center;min-width:0}.planned-check{color:var(--muted)}
.planned-portions{font-size:.85rem;color:var(--muted);white-space:nowrap}
.planned-ingredients{border-top:1px solid var(--line)}
.planned-ingredient-row{display:flex;justify-content:space-between;gap:16px;padding:10px 13px;border-bottom:1px solid var(--line)}
.planned-ingredient-row:last-child{border-bottom:0}.planned-ingredient-row strong{white-space:nowrap}
.extra-shopping{margin-top:20px}.extra-shopping h3{margin-bottom:10px}
.extra-shopping .extra{display:grid;grid-template-columns:1fr auto;gap:8px}.extra-shopping .extra input{width:100%}
.shopping-group{margin:0 0 17px}.shopping-group h3{position:static;background:transparent;padding:9px 0;margin:0;border-bottom:1px solid var(--line)}
.aggregated-items{padding-top:5px}.aggregated-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 2px;cursor:pointer}
.aggregated-name{min-width:0}.aggregated-amount{white-space:nowrap;text-align:right}.aggregated-item.done{text-decoration:line-through;opacity:.55}
.empty-shopping{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}
@media(max-width:900px){
  .shopping-columns{grid-template-columns:1fr}
  .total-column{order:2}.planned-column{order:1}
}
@media(max-width:520px){
  .shopping-toolbar{align-items:flex-start}
  .shopping-toolbar-actions{width:100%}.shopping-toolbar-actions button{flex:1}
  .shopping-column{padding:12px}.planned-meal summary{align-items:flex-start}
  .planned-ingredient-row{font-size:.92rem}
}
