.app-page{min-height:100vh}.app-main{padding:48px 0 80px;background:#081a30;min-height:calc(100vh - 72px)}.app-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.app-title h1{font-size:42px;margin:7px 0}.app-title p{color:#9fb8cc;max-width:760px}.public-link{color:#bcd2e3;text-decoration:none}.head-actions,.detail-actions{display:flex;gap:9px;flex-wrap:wrap}.primary.small{padding:10px 15px}.editor-row,.recipe-import{display:grid;grid-template-columns:minmax(180px,2fr) 100px 130px 160px auto auto;gap:9px;padding:18px 30px}.recipe-import{grid-template-columns:minmax(260px,1fr) auto;align-items:center}.recipe-import small{grid-column:1/-1;color:#7f9db8}.editor-row input,.recipe-import input,.inline-edit input,.inline-edit select,.editor-card input,.editor-card textarea,.editor-card select{background:#0c2239;border:1px solid #285274;border-radius:9px;padding:11px;color:#fff;width:100%}.editor-row button,.recipe-import button,.detail-actions button,.upload-button,.inline-edit button{border:1px solid #285c80;background:#0c3557;color:#fff;border-radius:9px;padding:10px 13px;cursor:pointer}.secondary-action{background:#172b3c!important}.danger{border-color:#82414b!important;background:#421d27!important}.table-list{padding:5px 30px 34px}.item-row{display:grid;grid-template-columns:28px minmax(160px,2fr) 80px 100px 150px auto;gap:10px;align-items:center;padding:11px 8px;border-bottom:1px solid #183651}.item-row.done .item-name{text-decoration:line-through;opacity:.55}.item-row input[type=checkbox]{width:18px;height:18px;accent-color:#19b7ff}.item-name{font-weight:700}.item-meta{color:#839db2;font-size:12px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-actions button{background:#0c2c49;border:1px solid #285c80;color:#dff4ff;border-radius:7px;padding:7px 9px;cursor:pointer}.recipe-card{padding:0!important;overflow:hidden}.recipe-thumb{width:100%;height:150px;object-fit:cover;background:#0a2039;display:block}.recipe-card-body{padding:17px}.recipe-grid.list-mode{grid-template-columns:1fr}.recipe-grid.list-mode .recipe-card{display:grid;grid-template-columns:150px 1fr;min-height:120px}.recipe-grid.list-mode .recipe-thumb{height:100%;min-height:120px}.recipe-placeholder{height:150px;background:linear-gradient(135deg,#0b3555,#071a2c);display:grid;place-items:center;font-size:36px;color:#4bcfff}.recipe-grid.list-mode .recipe-placeholder{height:100%;min-height:120px}.detail-image-wrap{margin:-32px -32px 24px;max-height:360px;overflow:hidden;border-radius:20px 20px 0 0}.detail-image-wrap img{width:100%;max-height:360px;object-fit:cover;display:block}.detail-actions{margin:16px 0 22px}.upload-button{display:inline-flex;align-items:center}.editor-card{width:min(680px,94%);max-height:90vh;overflow:auto}.editor-card label{margin:12px 0}.editor-card textarea{min-height:120px;resize:vertical}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;overflow:visible}.plan-day{min-width:0}.plan-meal b{line-height:1.3;overflow-wrap:anywhere}.plan-meal .row-actions{margin-top:8px;justify-content:flex-start}.pantry-row{grid-template-columns:minmax(240px,2.2fr) 80px 100px minmax(140px,1fr) auto;column-gap:18px}.pantry-row .row-actions{min-width:108px}.pantry-row .item-name{line-height:1.25}.sync[data-state="error"]{color:#ff9d9d}.sync[data-state="busy"]{color:#ffd77b}@media(max-width:900px){.editor-row{grid-template-columns:1fr 90px 100px}.editor-row button{min-height:42px}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.item-row{grid-template-columns:28px 1fr auto}.pantry-row{grid-template-columns:1fr auto}.item-row .optional-col,.pantry-row .optional-col{display:none}.app-title{flex-direction:column}}@media(max-width:600px){.editor-row,.recipe-import{grid-template-columns:1fr;padding:15px 18px}.recipe-import small{grid-column:auto}.table-list{padding:5px 18px 25px}.recipe-grid.list-mode .recipe-card{grid-template-columns:100px 1fr}.recipe-grid.list-mode .recipe-thumb,.recipe-grid.list-mode .recipe-placeholder{min-height:105px}.detail-image-wrap{margin:-24px -18px 20px}.app-title h1{font-size:34px}}
/* Phase 1D.3.3 — keep recipe close control visible above uploaded/source hero images */
.recipe-detail-card > #closeRecipeDetail{
  position:sticky;
  top:0;
  float:right;
  z-index:25;
  width:42px;
  height:42px;
  margin:0 0 -42px 12px;
  border:1px solid #3b6786;
  border-radius:50%;
  background:rgba(5,20,36,.92);
  color:#eef7ff;
  display:grid;
  place-items:center;
  line-height:1;
  backdrop-filter:blur(8px);
  box-shadow:0 4px 16px #0008;
}
.recipe-detail-card > #closeRecipeDetail:hover{background:#0c3557;border-color:#38c9ff}
.recipe-detail-card .detail-image-wrap{clear:both}

/* Phase 1D.3.4 — responsive embedded YouTube player for YouTube-sourced recipes */
.detail-video-section{margin:20px 0 24px}
.detail-video-section h4{margin:0 0 10px;color:#dff4ff}
.youtube-frame-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:14px;background:#020912;border:1px solid #234b69;box-shadow:0 10px 30px #0005}
.youtube-frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:600px){.detail-video-section{margin:16px 0 20px}.youtube-frame-wrap{border-radius:10px}}

/* Phase 1D.3.5 — preserve recipe image aspect ratios in List View */
.recipe-grid.list-mode .recipe-card{
  grid-template-columns:160px minmax(0,1fr);
  align-items:stretch;
}
.recipe-grid.list-mode .recipe-thumb{
  width:160px;
  height:100%;
  min-height:120px;
  max-height:170px;
  object-fit:contain;
  object-position:center;
  align-self:center;
  background:#07182a;
}
.recipe-grid.list-mode .recipe-placeholder{
  width:160px;
  min-height:120px;
  max-height:170px;
  align-self:stretch;
}
@media(max-width:600px){
  .recipe-grid.list-mode .recipe-card{grid-template-columns:110px minmax(0,1fr)}
  .recipe-grid.list-mode .recipe-thumb,
  .recipe-grid.list-mode .recipe-placeholder{width:110px;min-height:105px;max-height:145px}
}

/* Phase 1D.3.6 — uniform recipe rows with non-distorted center-cropped thumbnails */
.recipe-grid.list-mode .recipe-card{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  height:150px;
  min-height:150px;
  max-height:150px;
  align-items:stretch;
  overflow:hidden;
}
.recipe-grid.list-mode .recipe-thumb,
.recipe-grid.list-mode .recipe-placeholder{
  width:150px;
  height:150px;
  min-height:150px;
  max-height:150px;
  align-self:stretch;
}
.recipe-grid.list-mode .recipe-thumb{
  object-fit:cover;
  object-position:center;
}
.recipe-grid.list-mode .recipe-card-body{
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.recipe-grid.list-mode .recipe-card-body h4,
.recipe-grid.list-mode .recipe-card-body p,
.recipe-grid.list-mode .recipe-card-body small{
  overflow:hidden;
  text-overflow:ellipsis;
}
.recipe-grid.list-mode .recipe-card-body h4{white-space:nowrap}
.recipe-grid.list-mode .recipe-card-body small{
  white-space:nowrap;
  display:block;
}
@media(max-width:600px){
  .recipe-grid.list-mode .recipe-card{
    grid-template-columns:105px minmax(0,1fr);
    height:120px;
    min-height:120px;
    max-height:120px;
  }
  .recipe-grid.list-mode .recipe-thumb,
  .recipe-grid.list-mode .recipe-placeholder{
    width:105px;
    height:120px;
    min-height:120px;
    max-height:120px;
  }
}
/* Phase 1D.4 — list intelligence, pantry awareness, weekly build review */
.item-row.selectable{grid-template-columns:28px 28px minmax(160px,2fr) 80px 100px 150px auto}.item-select{width:17px;height:17px;accent-color:#19b7ff}.proposal-card{width:min(820px,95%);max-height:90vh;overflow:auto}.proposal-summary{color:#9fb8cc}.proposal-body{display:grid;gap:10px;margin:18px 0}.proposal-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid #214864;border-radius:10px;background:#0a2036}.proposal-row small{display:block;color:#87a4ba;margin-top:3px}.proposal-row .status{font-size:12px;border-radius:999px;padding:4px 8px;background:#123653;color:#bcecff}.proposal-row .status.pantry{background:#31421d;color:#dff5a8}.proposal-row .status.merge{background:#47371b;color:#ffe09b}.proposal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.analysis-banner{margin:10px 30px 0;padding:12px 14px;border:1px solid #285c80;border-radius:10px;background:#0b2944;color:#bfe9ff}.editor-row{grid-template-columns:minmax(180px,2fr) 90px 110px 140px repeat(3,auto)}
@media(max-width:900px){.item-row.selectable{grid-template-columns:28px 28px 1fr auto}.editor-row{grid-template-columns:1fr 90px 100px}.proposal-row{grid-template-columns:26px 1fr}.proposal-row .status{grid-column:2}}

/* Phase 1D.4.17 — manual combine mode */
.item-row .item-select{display:none}
.item-row.combine-mode .item-select{display:inline-block}
#analyzeListButton.combine-active{font-weight:700}

/* Phase 1D.4.18 — Shopping List column headers */
.item-table-header{
  min-height:auto;
  padding-top:10px;
  padding-bottom:8px;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--muted);
  border-bottom:1px solid rgba(56,189,248,.45);
}
.item-table-header .header-check{text-align:center;white-space:nowrap}
.item-table-header .header-item{min-width:0}
.item-table-header .row-actions{justify-content:flex-start}
@media (max-width:760px){
  .item-table-header .optional-col{display:none}
  .item-table-header .row-actions{justify-content:flex-end}
}

/* Phase 1D.4.19 — precise Shopping List header alignment
   Header uses the exact item-row grid; these rules keep labels inside their grid cells. */
.item-table-header{
  display:grid;
  align-items:center;
}
.item-table-header > *{min-width:0}
.item-table-header .header-check{
  width:100%;
  text-align:left;
  padding-left:0;
  white-space:nowrap;
  font-size:.66rem;
  letter-spacing:.04em;
}
.item-table-header .header-item{
  padding-left:10px;
  white-space:nowrap;
}
.item-table-header .optional-col{
  text-align:left;
}
.item-table-header .row-actions{
  width:100%;
  justify-content:flex-start;
  text-align:left;
}

/* Phase 1E.0 — Entitlement access gate */
.access-gate[hidden]{display:none!important}
.access-gate{margin-top:20px}

/* Phase 1E.1 — Owner Admin */
.admin-tab[hidden]{display:none!important}
.admin-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:8px 0 14px;color:var(--muted);font-size:.9rem}
.admin-table-wrap{overflow-x:auto;border:1px solid rgba(148,163,184,.18);border-radius:14px}
.admin-table{width:100%;border-collapse:collapse;min-width:820px}
.admin-table th,.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid rgba(148,163,184,.14);vertical-align:middle}
.admin-table th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.admin-table td small{display:block;color:var(--muted);margin-top:4px;font-size:.72rem;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.admin-table select,.admin-table input[type=date]{width:100%;min-width:125px}
.admin-actions{display:flex;gap:8px}.admin-save{white-space:nowrap}


/* Phase 1E.2 — Plan recipe navigation, Pantry headers, responsive workspace */
.plan-recipe-link{display:block;width:100%;padding:0;border:0;background:transparent;color:#dff4ff;font:inherit;font-weight:700;text-align:left;line-height:1.3;cursor:pointer;overflow-wrap:anywhere}
.plan-recipe-link:hover{text-decoration:underline;color:#69d7ff}.plan-recipe-link:disabled{cursor:default;text-decoration:none;color:inherit;opacity:1}
.pantry-table-header{margin:5px 30px 0;padding:10px 8px 8px;min-height:auto;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid rgba(56,189,248,.45)}
.pantry-table-header .row-actions{justify-content:flex-start}

@media(max-width:760px){
  .workspace-toolbar{align-items:flex-start;gap:10px}.workspace-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.workspace-tab{flex:0 0 auto;white-space:nowrap}
  .view-head{align-items:flex-start;gap:12px}.head-actions{width:100%}.head-actions button{flex:1 1 auto}
  .item-table-header,.pantry-table-header{display:none!important}
  .table-list{display:grid;gap:10px;padding-top:10px}
  .item-row,.item-row.selectable,.pantry-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px 10px;padding:13px;border:1px solid #183651;border-radius:12px;background:#0a2036}
  .item-row.selectable.combine-mode{grid-template-columns:28px 28px minmax(0,1fr)}
  .item-row:not(.selectable)>:nth-child(2),.item-row.selectable:not(.combine-mode)>:nth-child(3){grid-column:2}
  .item-row.selectable.combine-mode>:nth-child(3){grid-column:3}
  .item-row .optional-col,.pantry-row .optional-col{display:block!important;font-size:.86rem;color:#b8ccdc}
  .item-row:not(.selectable)>.optional-col,.pantry-row>.optional-col{grid-column:2}
  .item-row.selectable:not(.combine-mode)>.optional-col{grid-column:2}.item-row.selectable.combine-mode>.optional-col{grid-column:3}
  .item-row:not(.selectable)>.optional-col:nth-of-type(1)::before,.pantry-row>.optional-col:nth-child(2)::before{content:'Qty: ';color:#7897af;font-weight:700}
  .pantry-row>.optional-col:nth-child(3)::before{content:'Unit: ';color:#7897af;font-weight:700}.pantry-row>.optional-col:nth-child(4)::before{content:'Category: ';color:#7897af;font-weight:700}
  .item-row .row-actions,.pantry-row .row-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap;min-width:0}.item-row.selectable.combine-mode .row-actions{grid-column:3}
  .plan-grid{grid-template-columns:1fr}.plan-day{width:100%}.plan-meal{padding:12px}
  .recipe-grid{grid-template-columns:1fr}
  .admin-table-wrap{overflow:visible;border:0}.admin-table{min-width:0;display:block}.admin-table thead{display:none}.admin-table tbody{display:grid;gap:12px}.admin-table tr{display:grid;padding:13px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:#0a2036}.admin-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:7px 0;border:0;align-items:center}.admin-table td:nth-child(1)::before{content:'Account';color:var(--muted);font-size:.72rem;text-transform:uppercase}.admin-table td:nth-child(2)::before{content:'Access';color:var(--muted);font-size:.72rem;text-transform:uppercase}.admin-table td:nth-child(3)::before{content:'Status';color:var(--muted);font-size:.72rem;text-transform:uppercase}.admin-table td:nth-child(4)::before{content:'Expires';color:var(--muted);font-size:.72rem;text-transform:uppercase}.admin-table td:nth-child(5)::before{content:'Actions';color:var(--muted);font-size:.72rem;text-transform:uppercase}.admin-table select,.admin-table input[type=date]{min-width:0}.admin-actions{justify-content:flex-start}
}
@media(max-width:600px){.app-main{padding-top:24px}.web-workspace{border-radius:14px}.view-head{padding-left:18px;padding-right:18px}.workspace-toolbar{padding-left:12px;padding-right:12px}.plan-meal .row-actions button,.row-actions button{min-height:38px}}

/* Phase 1E.2.1 — mobile list card alignment refinement */
@media(max-width:760px){
  /* Shopping cards: checkbox at left, all item details in the main column. */
  .item-row:not(.pantry-row){grid-template-columns:28px minmax(0,1fr);align-items:start}
  .item-row:not(.pantry-row)>:nth-child(2){grid-column:2;min-width:0}
  .item-row:not(.pantry-row)>.optional-col{grid-column:2!important;min-width:0}
  .item-row:not(.pantry-row)>.optional-col:nth-child(3)::before{content:'Qty: ';color:#7897af;font-weight:700}
  .item-row:not(.pantry-row)>.optional-col:nth-child(4)::before{content:'Unit: ';color:#7897af;font-weight:700}
  .item-row:not(.pantry-row)>.optional-col:nth-child(5)::before{content:'Category: ';color:#7897af;font-weight:700}
  .item-row:not(.pantry-row)>.row-actions{grid-column:2!important}
  .item-row:not(.pantry-row) .item-meta{overflow-wrap:anywhere;line-height:1.3;margin-top:2px}

  /* Combine mode adds the selection checkbox as a second narrow column. */
  .item-row.selectable.combine-mode{grid-template-columns:28px 28px minmax(0,1fr)}
  .item-row.selectable.combine-mode>:nth-child(3){grid-column:3;min-width:0}
  .item-row.selectable.combine-mode>.optional-col{grid-column:3!important}
  .item-row.selectable.combine-mode>.optional-col:nth-child(4)::before{content:'Qty: ';color:#7897af;font-weight:700}
  .item-row.selectable.combine-mode>.optional-col:nth-child(5)::before{content:'Unit: ';color:#7897af;font-weight:700}
  .item-row.selectable.combine-mode>.optional-col:nth-child(6)::before{content:'Category: ';color:#7897af;font-weight:700}
  .item-row.selectable.combine-mode>.row-actions{grid-column:3!important}

  /* Pantry has no checkbox, so it must not reserve the shopping checkbox column. */
  .pantry-row{grid-template-columns:minmax(0,1fr)!important;align-items:start}
  .pantry-row>div:first-child,.pantry-row>.optional-col,.pantry-row>.row-actions{grid-column:1!important;min-width:0}
  .pantry-row>.optional-col:nth-child(2)::before{content:'Qty: ';color:#7897af;font-weight:700}
  .pantry-row>.optional-col:nth-child(3)::before{content:'Unit: ';color:#7897af;font-weight:700}
  .pantry-row>.optional-col:nth-child(4)::before{content:'Category: ';color:#7897af;font-weight:700}
  .pantry-row .item-name{font-size:1rem;line-height:1.25;overflow-wrap:normal;word-break:normal}
  .pantry-row .item-meta{overflow-wrap:anywhere;line-height:1.3;margin-top:2px}
}
