:root{
  --bg:#243447;
  --panel:#2E4156;
  --panel-2:#354A61;
  --cream:#F3EBDD;
  --muted:#C9C1B4;
  --sage:#9FAF9A;
  --terracotta:#C98F73;
  --line:rgba(243,235,221,.12);
  --shadow:0 18px 50px rgba(0,0,0,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--cream);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button{font:inherit}
.app-shell{max-width:1180px;margin:0 auto;padding:28px 28px 110px}
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(2.1rem,5vw,3.6rem);margin-bottom:2px;letter-spacing:-.04em}
h2{font-size:clamp(1.5rem,3vw,2.25rem);letter-spacing:-.03em}
h3{font-size:1.35rem}
.subtitle,.dialog-copy{color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--sage);font-weight:700;margin-bottom:8px}
.icon-btn{
  background:var(--panel);color:var(--cream);border:1px solid var(--line);
  width:48px;height:48px;border-radius:15px;cursor:pointer
}
.hero{
  display:grid;grid-template-columns:1.35fr .65fr;gap:24px;
  background:linear-gradient(145deg,var(--panel),var(--panel-2));
  border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow);margin-bottom:24px
}
.hero p{color:var(--muted);max-width:680px;line-height:1.6}
.hero-kicker{color:var(--sage)!important;font-weight:700}
.hero-actions{display:flex;flex-direction:column;justify-content:center;gap:12px}
.primary,.secondary{
  border:none;border-radius:16px;padding:14px 18px;font-weight:750;cursor:pointer;transition:.18s ease;
}
.primary{background:var(--cream);color:var(--bg)}
.secondary{background:transparent;color:var(--cream);border:1px solid var(--line)}
.primary:hover,.secondary:hover,.day-card:hover{transform:translateY(-2px)}
.small{padding:10px 14px}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px}
.day-card{
  min-height:260px;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:18px;
  display:flex;flex-direction:column;cursor:pointer;transition:.18s ease
}
.day-card.busy{outline:1px solid rgba(201,143,115,.25)}
.day-card.together{outline:1px solid rgba(159,175,154,.3)}
.day-name{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}
.day-note{font-size:.78rem;color:var(--sage);min-height:32px}
.dish-name{font-size:1.22rem;font-weight:760;line-height:1.18;margin:16px 0 10px}
.meta{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.84rem}
.family-status{margin-top:auto;padding-top:14px;font-size:.82rem;color:var(--cream)}
.warning{color:#E5B69F}
.summary-card,.shopping-section{
  margin-top:24px;background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:24px
}
.summary-card{display:flex;justify-content:space-between;gap:20px;align-items:center}
.summary-pills{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}
.summary-pills span,.chip{
  background:rgba(243,235,221,.07);border:1px solid var(--line);border-radius:999px;padding:9px 12px;font-size:.82rem
}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.shopping-group{margin-top:20px}
.shopping-group h3{color:var(--sage);font-size:.95rem}
.shopping-item{
  display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--cream)
}
.shopping-item input{width:21px;height:21px;accent-color:var(--sage)}
.shopping-item.checked span{text-decoration:line-through;color:var(--muted)}
.bottom-nav{
  position:fixed;left:50%;transform:translateX(-50%);bottom:18px;width:min(760px,calc(100% - 24px));
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:rgba(46,65,86,.96);
  backdrop-filter:blur(12px);border:1px solid var(--line);padding:8px;border-radius:22px;box-shadow:var(--shadow)
}
.nav-item{background:transparent;color:var(--muted);border:none;padding:13px 10px;border-radius:14px;cursor:pointer}
.nav-item.active{background:var(--cream);color:var(--bg);font-weight:800}
dialog{
  width:min(720px,calc(100% - 24px));border:none;padding:0;border-radius:26px;background:var(--panel);color:var(--cream);box-shadow:var(--shadow)
}
dialog::backdrop{background:rgba(13,24,36,.72);backdrop-filter:blur(4px)}
.dialog-card{padding:24px}
.dialog-card.compact{text-align:center;max-width:480px;margin:auto}
.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}
.quick-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.chip{color:var(--cream);cursor:pointer}
.chip.active{background:var(--cream);color:var(--bg)}
.dish-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.option-card{
  text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--cream);border-radius:18px;padding:16px;cursor:pointer
}
.option-card strong{display:block;font-size:1.05rem;margin-bottom:6px}
.option-card span{color:var(--muted);font-size:.82rem}
.taste-list{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.taste-list>div{display:flex;justify-content:space-between;align-items:center;background:var(--panel-2);padding:13px 14px;border-radius:14px}
.taste{border:1px solid var(--line);background:transparent;color:var(--cream);padding:8px 10px;border-radius:12px}
.success-icon{width:64px;height:64px;border-radius:50%;background:var(--sage);color:var(--bg);display:grid;place-items:center;font-size:2rem;font-weight:900;margin:4px auto 20px}

@media (max-width:980px){
  .week-grid{grid-template-columns:repeat(2,1fr)}
  .hero{grid-template-columns:1fr}
  .summary-card{align-items:flex-start;flex-direction:column}
  .summary-pills{justify-content:flex-start}
}
@media (max-width:620px){
  .app-shell{padding:18px 14px 100px}
  .week-grid{grid-template-columns:1fr}
  .day-card{min-height:190px}
  .dish-options{grid-template-columns:1fr}
  .bottom-nav{bottom:10px}
  .nav-item{font-size:.82rem}
}
.inbox-banner{margin:0 0 24px;background:rgba(159,175,154,.11);border:1px solid rgba(159,175,154,.3);border-radius:22px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.inbox-banner p:last-child{color:var(--muted);margin-bottom:0}.capture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.capture-card{border:1px solid var(--line);background:var(--panel-2);color:var(--cream);border-radius:20px;padding:22px 16px;text-align:left;cursor:pointer;min-height:150px}.capture-card:hover{transform:translateY(-2px)}.capture-card strong,.capture-card small{display:block}.capture-card small{color:var(--muted);margin-top:7px}.capture-icon{font-size:2rem;display:block;margin-bottom:20px}.link-row{display:none;gap:10px;margin-top:16px}.link-row.show{display:flex}.link-row input{flex:1;background:var(--bg);color:var(--cream);border:1px solid var(--line);border-radius:14px;padding:13px 14px}.wide{max-width:900px}.inbox-items{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}.inbox-item{border:1px solid var(--line);background:var(--panel-2);border-radius:18px;padding:15px;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;cursor:pointer}.thumb{width:72px;height:72px;border-radius:12px;object-fit:cover;background:var(--bg);display:grid;place-items:center;font-size:1.6rem;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.inbox-item strong,.inbox-item small{display:block}.inbox-item small{color:var(--muted);margin-top:5px}.empty-state{grid-column:1/-1;color:var(--muted);padding:28px;text-align:center;border:1px dashed var(--line);border-radius:18px}.import-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:22px;margin-top:18px}.fake-recipe-photo{min-height:420px;border-radius:20px;background:linear-gradient(145deg,#d8c8b3,#f0e6d9);color:#64594c;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3rem}.fake-recipe-photo span{font-size:.9rem;margin-top:10px}.preview-wrap img{width:100%;max-height:520px;object-fit:cover;border-radius:20px}.recipe-draft ul,.recipe-draft ol{color:var(--muted);padding-left:22px;line-height:1.6}.facts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.facts span{background:rgba(243,235,221,.07);border:1px solid var(--line);border-radius:999px;padding:8px 10px;font-size:.8rem}.question{margin:18px 0}.question>strong{display:block;margin-bottom:10px}.full{width:100%;margin-top:8px}@media(max-width:720px){.capture-grid,.inbox-items,.import-layout{grid-template-columns:1fr}.inbox-banner{align-items:flex-start;flex-direction:column}.link-row{flex-direction:column}}


/* --- v3: reversible shopping + family taste profiles --- */
.shopping-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.shopping-item{cursor:pointer}
.shopping-item input{cursor:pointer}
.shopping-item.hidden-checked{display:none}
.person-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
.person-tab{
  border:1px solid var(--line);background:var(--panel-2);color:var(--cream);
  padding:14px;border-radius:16px;cursor:pointer;font-weight:750
}
.person-tab.active{background:var(--cream);color:var(--bg)}
.taste-profile-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-top:8px}
.taste-legend{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.taste-legend span{font-size:.76rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 9px}
.add-taste-row{display:flex;gap:10px;margin:18px 0}
.add-taste-row input{
  flex:1;background:var(--bg);color:var(--cream);border:1px solid var(--line);
  border-radius:14px;padding:13px 14px;min-width:0
}
.taste-matrix{gap:8px}
.taste-row{
  display:grid!important;grid-template-columns:minmax(120px,1fr) auto!important;
  gap:12px;align-items:center!important;background:var(--panel-2);padding:12px 14px!important;border-radius:14px
}
.taste-name{font-weight:700}
.taste-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.taste-choice{
  min-width:42px;border:1px solid var(--line);background:transparent;color:var(--cream);
  border-radius:11px;padding:8px 9px;cursor:pointer;opacity:.65
}
.taste-choice.active{background:var(--cream);color:var(--bg);opacity:1;transform:scale(1.04)}
.taste-empty{color:var(--muted);padding:18px 4px}
@media(max-width:720px){
  .section-heading,.taste-profile-head{align-items:flex-start;flex-direction:column}
  .shopping-actions{justify-content:flex-start}
  .taste-legend{justify-content:flex-start}
  .add-taste-row{flex-direction:column}
  .taste-row{grid-template-columns:1fr!important}
  .taste-buttons{justify-content:flex-start}
}

.print-only{display:none}
@media print {
  @page { size:A4 portrait; margin:14mm; }
  html,body{background:#fff!important;color:#111!important;font-family:Arial,Helvetica,sans-serif!important}
  body *{visibility:hidden!important}
  #shopping,#shopping *{visibility:visible!important}
  #shopping{position:absolute!important;left:0!important;top:0!important;width:100%!important;margin:0!important;padding:0!important;background:#fff!important;color:#111!important;border:none!important;box-shadow:none!important}
  #shopping .section-heading,#shopping .shopping-actions,#shopping .dialog-copy,.bottom-nav{display:none!important}
  .print-only{display:block!important}
  .print-heading{margin-bottom:8mm!important;border-bottom:1px solid #999!important;padding-bottom:4mm!important}
  .print-heading h1{font-size:22pt!important;margin:0 0 2mm 0!important;color:#111!important}
  .print-heading p{margin:0!important;color:#444!important;font-size:10pt!important}
  .shopping-group{margin:0 0 7mm 0!important;break-inside:avoid}
  .shopping-group h3{color:#111!important;font-size:13pt!important;margin:0 0 2mm 0!important;border-bottom:1px solid #bbb!important;padding-bottom:1.5mm!important}
  .shopping-item{display:flex!important;align-items:center!important;gap:3mm!important;padding:2.2mm 0!important;border-bottom:1px dotted #ccc!important;color:#111!important;font-size:11pt!important}
  .shopping-item input{appearance:none!important;-webkit-appearance:none!important;width:4.5mm!important;height:4.5mm!important;border:1.2px solid #111!important;border-radius:0!important;background:#fff!important;margin:0!important}
  .shopping-item.checked span{text-decoration:none!important;color:#777!important}
  .shopping-item.checked{display:none!important}
  .shopping-item.hidden-checked{display:none!important}
}


/* --- v5.2 robust print list --- */
@media print {
  #shoppingList {
    display:none !important;
  }

  #printShoppingList {
    display:block !important;
  }

  #printShoppingList .shopping-item {
    display:flex !important;
    align-items:center !important;
  }

  .print-box {
    display:inline-block !important;
    width:4.5mm !important;
    height:4.5mm !important;
    min-width:4.5mm !important;
    border:1.2px solid #111 !important;
    background:#fff !important;
  }
}


/* --- v7: opskriftsdatabase --- */
.recipes-section{
  margin-top:24px;background:var(--panel);border:1px solid var(--line);
  border-radius:24px;padding:24px
}
.recipe-toolbar{display:flex;flex-direction:column;gap:12px;margin:18px 0}
.recipe-toolbar input,
.recipe-form-grid input,
.recipe-form-grid textarea{
  width:100%;background:var(--bg);color:var(--cream);border:1px solid var(--line);
  border-radius:14px;padding:13px 14px;font:inherit
}
.recipe-toolbar input::placeholder,
.recipe-form-grid input::placeholder,
.recipe-form-grid textarea::placeholder{color:var(--muted)}
.recipe-filter-row{display:flex;flex-wrap:wrap;gap:8px}
.recipe-filter.active{background:var(--cream);color:var(--bg)}
.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.recipe-card{
  text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--cream);
  border-radius:19px;padding:18px;cursor:pointer;min-height:180px;display:flex;flex-direction:column
}
.recipe-card:hover{transform:translateY(-2px)}
.recipe-card h3{margin:0 0 8px}
.recipe-card .recipe-category{font-size:.75rem;color:var(--sage);text-transform:uppercase;letter-spacing:.1em}
.recipe-card .recipe-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;color:var(--muted);font-size:.8rem}
.recipe-card .recipe-flags{margin-top:auto;padding-top:14px;display:flex;gap:8px;font-size:.8rem}
.recipe-empty{color:var(--muted);padding:24px 0}
.recipe-view-meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 22px}
.recipe-view-meta span{border:1px solid var(--line);border-radius:999px;padding:8px 10px;color:var(--muted);font-size:.82rem}
.recipe-view-columns{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px}
.ingredient-list,.instruction-list{padding-left:1.3rem;line-height:1.65}
.recipe-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}
.field{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.85rem}
.field.full{grid-column:1/-1}
.recipe-toggles{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0}
.recipe-toggles label{background:var(--panel-2);padding:11px 13px;border-radius:13px}
.dialog-actions{display:flex;justify-content:flex-end;margin-top:18px}
@media(max-width:850px){
  .recipe-grid{grid-template-columns:repeat(2,1fr)}
  .recipe-view-columns{grid-template-columns:1fr}
}
@media(max-width:620px){
  .recipe-grid{grid-template-columns:1fr}
  .recipe-form-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
}


/* --- v8: opskrifter direkte i ugeplanen --- */
.swap-toolbar{display:flex;flex-direction:column;gap:12px;margin:18px 0}
.swap-toolbar input{
  width:100%;background:var(--bg);color:var(--cream);border:1px solid var(--line);
  border-radius:14px;padding:13px 14px;font:inherit
}
.swap-toolbar input::placeholder{color:var(--muted)}
.swap-status{color:var(--muted);font-size:.82rem;margin:-2px 0 12px}
.swap-recipe-card{
  text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--cream);
  border-radius:18px;padding:16px;cursor:pointer;min-height:120px
}
.swap-recipe-card:hover{transform:translateY(-2px)}
.swap-recipe-card strong{display:block;font-size:1.05rem;margin-bottom:7px}
.swap-recipe-meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}
.swap-recipe-flags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;font-size:.78rem}
.swap-freya-good{color:var(--sage)}
.swap-freya-warn{color:var(--terracotta)}
