*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#faf9f6;color:#2d2d2d;line-height:1.6}
.layout{max-width:960px;margin:0 auto;padding:20px}
header{background:#fff;border-bottom:1px solid #eee;padding:16px 20px;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
header h1{margin:0;font-size:1.3rem}
header h1 a{color:#2d2d2d;text-decoration:none}
nav{display:flex;gap:16px;flex-wrap:wrap}
nav a{color:#666;text-decoration:none;font-size:.9rem;padding:4px 0;border-bottom:2px solid transparent}
nav a:hover,nav a.active{border-color:#e07c3c;color:#2d2d2d}
.page-title{font-size:1.8rem;margin:24px 0 16px;font-weight:700}
.card{background:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .2s}
.card-title{font-size:1.15rem;font-weight:600;margin-bottom:4px}
.card-title a{color:#2d2d2d;text-decoration:none}
.card-title a:hover{color:#e07c3c}
.card-meta{color:#888;font-size:.85rem;display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tag{background:#f0ede8;color:#666;padding:2px 10px;border-radius:20px;font-size:.8rem}

/* ── Table: scrollable on mobile ── */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px -4px}
table{width:100%;border-collapse:collapse;min-width:480px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid #eee;white-space:nowrap}
th{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.3px;font-weight:600}
td{font-size:.9rem}
tr.total td{font-weight:700;border-top:2px solid #2d2d2d;border-bottom:none}
tr.per-serving td{border-bottom:none;color:#e07c3c;font-weight:600}

/* ── Amount inputs ── */
.amt-input{width:56px;padding:6px 4px;font-size:.9rem;border:1px solid #ddd;border-radius:6px;text-align:center;outline:none}
.amt-input:focus{border-color:#e07c3c;background:#fffdfa}
.amt-unit{color:#888;font-size:.8rem}
#servings-input:focus{border-color:#e07c3c;outline:none}
.pin-btn{border:2px solid #ddd;border-radius:8px;padding:6px 12px;font-size:.85rem;cursor:pointer;background:#f5f5f5;color:#666;display:flex;align-items:center;gap:6px}
.pin-btn:hover{border-color:#999}
.pin-btn.pinned{background:#fff3e0;border-color:#e07c3c;color:#e07c3c;font-weight:600}

.instructions{margin:16px 0}
.instructions li{margin-bottom:8px;padding-left:8px}
.instructions ol{padding-left:20px}
.meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}
.meta-item{text-align:center;padding:12px 8px;background:#faf9f6;border-radius:8px}
.meta-item .val{font-size:1.1rem;font-weight:600}
.meta-item .lbl{font-size:.75rem;color:#888}
.search-box{width:100%;padding:12px 16px;font-size:1rem;border:2px solid #ddd;border-radius:10px;outline:none;margin-bottom:20px;transition:border-color .2s}
.search-box:focus{border-color:#e07c3c}

/* ── Plan page ── */
.day-card{border-left:4px solid #e07c3c}
.treat-day{border-left-color:#e74c3c;background:linear-gradient(135deg,#fff 0%,#fff5f5 100%)}
.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #eee}
.day-name{font-size:1.1rem;font-weight:700}
.day-total{font-size:1rem;color:#e07c3c;font-weight:600}
.day-meals{display:flex;flex-direction:column;gap:8px}
.meal{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:.9rem}
.meal-big{background:#fef6ee}
.meal-small{background:#eef6ef}
.meal-vsmall{background:#fef0f0}
.meal-free{background:#f0f4ff}
.meal-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:4px;min-width:50px;text-align:center}
.big-badge{background:#e07c3c;color:#fff}
.small-badge{background:#4caf50;color:#fff}
.vs-badge{background:#e74c3c;color:#fff}
.free-badge{background:#5b7db5;color:#fff}
.meal-name{color:#2d2d2d;text-decoration:none;flex:1}
.meal-name:hover{color:#e07c3c}
.meal-kcal{color:#888;font-size:.85rem;white-space:nowrap}
.week-summary{text-align:center;padding:16px;background:#fff;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);color:#666;font-size:.95rem}

footer{text-align:center;padding:32px 0;color:#aaa;font-size:.85rem;border-top:1px solid #eee;margin-top:40px}

/* ── Mobile ── */
@media(max-width:600px){
  .layout{padding:12px}
  .page-title{font-size:1.3rem;margin:16px 0 12px}
  .card{padding:14px;border-radius:10px}
  .meta-grid{grid-template-columns:repeat(2,1fr);gap:6px}
  .meta-item{padding:10px 6px}
  .meta-item .val{font-size:1rem}
  table{min-width:420px}
  th,td{padding:8px 6px;font-size:.8rem}
  .amt-input{width:48px;padding:5px 3px;font-size:.85rem;height:32px}
  header{padding:12px 16px}
  header h1{font-size:1.1rem}
  .card-title{font-size:1rem}
  .card-meta{font-size:.8rem;gap:10px}
  .search-box{padding:10px 14px;font-size:.9rem}
  #servings-input{width:40px!important;font-size:1rem!important}
}