/* PrepSheet Plus styles, stamped 20261015 (item 7 win-back card added at the end); copied from prepsheet-plus-20261014.css, which stays byte for byte. */
/* v1.5 (price-rise alerts) stylesheet, stamped 20261014: prepsheet-plus-20261013.css plus the .ps-alerts rules at the end. */
/* PrepSheet Plus v1 (staged 10 Oct 2026). Web only; stripped from /app. */
.plus-account{margin-top:10px;padding:12px 14px;border:1px solid var(--line,#d7ded8);border-radius:10px;background:var(--bg3,#edf2ed)}
.plus-account p{margin:4px 0}
.plus-badge{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid var(--line2,#aebbb2);font-weight:600;font-size:.9rem}
.plus-badge.on{background:var(--ps-green,#16382c);color:#fff;border-color:transparent}
.plus-alert{padding:8px 10px;border-radius:8px;background:#fdecea;color:#7a1f14;border:1px solid #f1b8af}
.plus-picker .plus-feats{margin:8px 0 14px 18px}
.plus-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:10px}
.plus-plan{border:1px solid var(--line,#d7ded8);border-radius:12px;padding:14px;background:#fff}
.plus-plan.featured{border:2px solid var(--ps-green,#16382c)}
.plus-plan h3{margin:0 0 4px}
.plus-price{font-size:1.7rem;font-weight:700;margin:2px 0}
.plus-price span{font-size:.95rem;font-weight:400;color:var(--muted,#526158)}
.menu-gp .dash-wrap{overflow-x:auto;position:relative}
.menu-gp table.dash{width:100%;border-collapse:collapse}
.menu-gp table.dash th,.menu-gp table.dash td{padding:6px 8px;border-bottom:1px solid var(--line,#d7ded8);text-align:left}
.menu-gp table.dash .num{text-align:right}
.menu-gp input.menu-price{width:6.5em;text-align:right}
.menu-gp tr.locked td{filter:blur(4px);user-select:none;pointer-events:none}
.gp-flag{font-size:.85rem;padding:1px 8px;border-radius:999px;white-space:nowrap;background:#eef0ee;color:#3b4a42}
.gp-flag.bad{background:#fdecea;color:#7a1f14}
.gp-flag.ok{background:#e6f2ea;color:#1e5c42}
.dash-upsell{margin-top:10px;padding:12px;border-radius:10px;background:var(--bg3,#edf2ed)}
.dash-controls label{display:inline-flex;gap:6px;align-items:center}
.wc-window{margin:6px 0 10px}
.wc-window .seg button[aria-disabled="true"]{opacity:.65}
.wc-window .movers ol{margin:6px 0 0 18px}
.plus-brand{margin-top:10px}
.plus-brand summary{cursor:pointer;font-weight:600}
.plus-brand .chk{display:flex;gap:8px;align-items:center;margin-top:8px}
.ps-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.ps-brand .ps-logo{max-height:48px;max-width:160px;object-fit:contain}
.ps-brand .ps-kitchen{font-weight:700;font-size:1.2rem}
.ps-extra{margin-top:10px}
.ps-extra .ps-photo{display:block;max-width:220px;max-height:160px;margin-top:8px;object-fit:cover;border-radius:6px}
@media print{
  body.print-dash main > *:not(#view-recipes){display:none!important}
  body.print-dash #view-recipes > *:not(#menu-gp){display:none!important}
  body.print-dash #menu-gp{display:block!important}
  body.print-dash #menu-gp .dash-controls,body.print-dash #menu-gp .dash-upsell{display:none!important}
  body.print-dash #menu-gp input.menu-price{border:0}
}
.plus-note{background:#fff7e6;border-left:3px solid #c98a2b;padding:8px 12px}
/* v1.2 upgrade prompts (stamped 20261011). Web only; stripped from /app. */
.plus-upsell{margin:10px 0;padding:14px 16px;border:2px solid var(--ps-green,#16382c);border-radius:12px;background:#fff}
.plus-upsell p{margin:4px 0}
.plus-upsell .plus-upsell-h{font-weight:700;font-size:1.05rem}
.plus-upsell .plus-upsell-founding{margin-top:8px;padding:6px 10px;border-radius:8px;background:#fff7e6;border-left:3px solid #c98a2b}
.plus-upsell .plus-upsell-annual{font-size:.95rem}
.plus-upsell .actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 4px}
.plus-upsell .hint{font-size:.85rem}
.plus-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#e6f2ea;color:#1e5c42;font-size:.75rem;font-weight:600;vertical-align:middle}
@media (max-width:560px){.plus-upsell{padding:12px}.plus-upsell .actions .btn{flex:1 1 100%;text-align:center}}
@media print{.plus-upsell,.plus-upsell-slot{display:none!important}}
/* v1.3 staffing (stamped 20261012). Web only; stripped from /app. */
.ps-labour{margin-top:12px}
.ps-labour .staff-dish summary,.ps-rota .staff-rota>summary{cursor:pointer;font-weight:600}
.ps-rota .staff-rota>summary h2{display:inline;margin:0}
.ps-labour .row3,.ps-rota .row3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:8px 0}
.ps-labour .row3 label,.ps-rota .row3 label{display:block;font-size:.9rem;margin-bottom:4px}
.ps-labour .row3 input,.ps-rota .row3 input{width:100%;box-sizing:border-box}
.ps-labour .inline{display:flex;gap:6px;align-items:center}
.ps-labour .inline input{flex:1 1 auto;min-width:0}
.staff-out{margin:8px 0;padding:10px 12px;border-radius:10px;background:var(--bg3,#edf2ed)}
.staff-out p{margin:3px 0}
.staff-out .bad,.menu-gp td.bad{color:#7a1f14}
.staff-out .good{color:#1e5c42}
.ps-rota table.rota{width:100%;border-collapse:collapse}
.ps-rota table.rota td,.ps-rota table.rota th{padding:4px 6px;border-bottom:1px solid var(--line,#d7ded8);text-align:left}
.ps-rota table.rota input{width:100%;min-width:60px;box-sizing:border-box}
.ps-rota table.rota input[data-rk="role"]{min-width:110px}
.ps-rota table.rota .num,.ps-rota table.rota input.num{text-align:right}
.ps-rota table.rota-hist{width:100%;border-collapse:collapse;margin-top:6px}
.ps-rota table.rota-hist td,.ps-rota table.rota-hist th{padding:6px 8px;border-bottom:1px solid var(--line,#d7ded8);text-align:left}
.ps-rota table.rota-hist .num{text-align:right}
.ps-rota .chks{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0}
.ps-rota .chks .chk{display:inline-flex;gap:6px;align-items:center;font-size:.92rem}
.ps-rota .chks input[type=checkbox]{width:18px;height:18px;min-width:18px;padding:0;margin:0;flex:none;box-shadow:none}
.ps-rota .rota-save .actions{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.menu-gp .menu-prime{margin:4px 0 10px}
@media (max-width:560px){.ps-rota .dash-wrap{overflow-x:auto}.ps-rota table.rota{min-width:560px}}
/* v1.3: scan card sub-line (approved 10 Oct) */
.plus-upsell .plus-upsell-sub{font-size:.95rem;font-weight:600}
/* ---------- v1.4 (20261013): rota table stacks on phones (no sideways scroll) ---------- */
@media (max-width:560px){
  .ps-rota .dash-wrap{overflow-x:visible}
  .ps-rota table.rota{min-width:0}
  .ps-rota table.rota thead{display:none}
  .ps-rota table.rota,.ps-rota table.rota tbody{display:block;width:100%}
  .ps-rota table.rota tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--line,#d7ded8)}
  .ps-rota table.rota td{display:block;padding:0;border:0}
  .ps-rota table.rota td[data-label]::before{content:attr(data-label);display:block;font-size:.8rem;font-weight:600;margin-bottom:2px;color:var(--muted,#55615a)}
  .ps-rota table.rota td:first-child{grid-column:1 / -1}
  .ps-rota table.rota td.rota-del{grid-column:1 / -1;text-align:right}
  .ps-rota table.rota input,.ps-rota table.rota select{width:100%;min-width:0}
  .ps-rota table.rota input.num{text-align:left}
}
/* ---------- v1.4 (20261013): allergen matrix ---------- */
.ps-allergens{margin:10px 0}
.ps-allergens summary{font-weight:700;cursor:pointer}
.ps-allergens .alg-list{display:grid;gap:10px;margin:8px 0}
.ps-allergens fieldset.alg-ing{border:1px solid var(--line,#d7ded8);border-radius:10px;padding:8px 10px;margin:0;min-width:0}
.ps-allergens fieldset.alg-ing legend{font-weight:600;padding:0 4px}
.ps-allergens .alg-chips{display:flex;flex-wrap:wrap;gap:6px}
.ps-allergens .alg-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line,#d7ded8);border-radius:999px;font-size:.9rem;cursor:pointer;background:#fff}
.ps-allergens .alg-chip input{width:16px;height:16px;min-width:16px;margin:0;padding:0;flex:none;box-shadow:none}
.ps-allergens .alg-chip:has(input:checked){background:#fdecea;border-color:#c0392b}
.ps-allergens .alg-chip.alg-none:has(input:checked){background:#e9f5ee;border-color:#2e7d4f}
.ps-allergens .alg-out{margin:8px 0;padding:10px 12px;border-radius:10px;background:#f3f6f4}
.ps-allergens .alg-out p{margin:2px 0}
.ps-allergens .alg-unchecked{color:#8a5a00}
.ps-allergens .alg-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.ps-allergens .alg-disclaimer{font-size:.85rem}
.alg-wrap{overflow-x:auto}
table.alg-matrix{border-collapse:collapse;width:100%;font-size:.9rem}
table.alg-matrix th,table.alg-matrix td{border:1px solid var(--line,#d7ded8);padding:4px 6px;text-align:center}
table.alg-matrix tbody th{text-align:left;font-weight:600;white-space:nowrap}
table.alg-matrix th.rot{vertical-align:bottom;height:150px;padding:4px 2px}
table.alg-matrix th.rot span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-weight:600;font-size:.82rem}
table.alg-matrix td.y{font-weight:700;color:#a3271b;background:#fdecea}
table.alg-matrix td.warn{color:#8a5a00;font-weight:600}
#psa-print{display:none}
@media print{
  body.print-allergens > *:not(#psa-print){display:none!important}
  body.print-allergens #psa-print{display:block!important;font-size:10pt}
  body.print-allergens #psa-print h1{font-size:16pt;margin:0 0 4px}
  body.print-allergens table.alg-matrix{font-size:9pt}
  body.print-allergens table.alg-matrix td.y{background:none;color:#000}
  body.print-allergens table.alg-matrix th.rot{height:130px}
  body.print-allergens .alg-wrap{overflow:visible}
  body.print-allergens table.alg-matrix tr{break-inside:avoid}
}
/* v1.5 price-rise and GP alerts */
.ps-alerts .alert-banner{border-left:4px solid var(--copper-hot,#E8A86A);background:var(--bg3,#2A312B);padding:10px 12px;border-radius:8px;margin:0 0 8px}
.ps-alerts .alert-h{font-weight:700;margin:0 0 4px;font-size:1.02rem}
.ps-alerts table.alert-dishes tr.below td:nth-child(3){color:var(--copper-hot,#E8A86A)}
.ps-alerts table.alert-dishes tr.ok td{color:var(--muted,#666)}
.ps-alerts .linkbtn{background:none;border:0;padding:0;color:var(--text,#EDE7DA);text-decoration:underline;cursor:pointer;font:inherit;text-align:left}
.ps-alerts input.alert-gp{width:4.5em;min-width:0}
.ps-alerts .alert-hist h3{margin:12px 0 6px;font-size:1rem}
.ps-alerts details.alert-item{border-top:1px solid var(--line,#e5e5e5);padding:6px 0}
.ps-alerts details.alert-item summary{cursor:pointer}
.ps-alerts .actions{margin-top:6px}
@media (max-width:560px){.ps-alerts table.alert-dishes td:nth-child(5),.ps-alerts table.alert-dishes th:nth-child(5){display:none}}

/* item 7: trial win-back card (above the account panel) */
.plus-winback{margin:10px 0 12px;padding:14px 16px;border:2px solid var(--ps-green,#16382c);border-radius:12px;background:#fff}
.plus-winback p{margin:4px 0}
.plus-winback .plus-winback-h{font-weight:700;font-size:1.05rem}
.plus-winback .plus-winback-sub{font-weight:600}
.plus-winback .plus-winback-cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;margin:8px 0}
.plus-winback .plus-winback-lh{font-weight:700;font-size:.95rem;margin-top:6px}
.plus-winback ul{margin:4px 0 0;padding-left:1.2em}
.plus-winback li{margin:2px 0;font-size:.95rem}
.plus-winback .plus-upsell-founding{margin-top:8px;padding:6px 10px;border-radius:8px;background:#fff7e6;border-left:3px solid #c98a2b}
.plus-winback .actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 4px}
.plus-winback .hint{font-size:.85rem}
@media (max-width:560px){.plus-winback{padding:12px}.plus-winback .plus-winback-cols{grid-template-columns:1fr}.plus-winback .actions .btn{flex:1 1 100%;text-align:center}}
@media print{.plus-winback{display:none!important}}
