/* ============================================================
   Meal Train — responsive styles (mobile-first)
   ============================================================ */
:root{
  --green:#2f6f4f; --green-d:#255a40; --green-l:#e8f1ec;
  --ink:#1f2933; --muted:#6b7480; --line:#e3e6ea;
  --bg:#f5f6f8; --card:#ffffff; --amber:#b7791f; --red:#c0392b;
  --radius:14px; --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.55; font-size:16px;
}
a{color:var(--green); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{width:100%; max-width:860px; margin:0 auto; padding:0 16px}

/* Top bar */
.topbar{background:var(--green); color:#fff}
.topbar a{color:#fff}
.topbar-inner{display:flex; align-items:center; justify-content:space-between; height:56px}
.brand{font-weight:700; font-size:19px; text-decoration:none}
.topnav{display:flex; align-items:center; gap:14px; font-size:14px}
.topnav .who{opacity:.85}
.btn-link{border:1px solid rgba(255,255,255,.5); padding:5px 11px; border-radius:8px}

.main{padding:22px 16px 60px}

/* Cards */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:20px; margin-bottom:18px}
.card h2{margin:0 0 4px; font-size:20px}
.card h3{margin:0 0 10px; font-size:17px}
.muted{color:var(--muted)}
.small{font-size:13px}
.center{text-align:center}

/* Headings / hero */
.page-head{margin:6px 0 18px}
.page-head h1{font-size:27px; margin:0 0 4px}
.page-head p{margin:0; color:var(--muted)}
.subnav{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px}
.subnav a{background:#fff; border:1px solid var(--line); padding:7px 13px; border-radius:999px;
  font-size:14px; color:var(--ink)}
.subnav a.active{background:var(--green); color:#fff; border-color:var(--green)}
.subnav a:hover{text-decoration:none; border-color:var(--green)}

/* Buttons */
.btn{display:inline-block; background:var(--green); color:#fff; border:0; border-radius:10px;
  padding:11px 18px; font-size:15px; font-weight:600; cursor:pointer; text-align:center}
.btn:hover{background:var(--green-d); text-decoration:none}
.btn.full{display:block; width:100%}
.btn.secondary{background:#fff; color:var(--green); border:1px solid var(--green)}
.btn.ghost{background:transparent; color:var(--muted); border:1px solid var(--line)}
.btn.danger{background:var(--red)}
.btn.sm{padding:7px 12px; font-size:13px; border-radius:8px}

/* Forms */
.field{margin-bottom:15px}
.field label{display:block; font-weight:600; font-size:14px; margin-bottom:5px}
.field .hint{font-weight:400; color:var(--muted); font-size:13px}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],
input[type=time],input[type=password],textarea,select{
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:10px;
  font-size:16px; font-family:inherit; background:#fff; color:var(--ink)}
textarea{min-height:90px; resize:vertical}
input:focus,textarea:focus,select:focus{outline:none; border-color:var(--green);
  box-shadow:0 0 0 3px var(--green-l)}
.row{display:flex; gap:12px; flex-wrap:wrap}
.row .field{flex:1; min-width:140px}
.actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:6px}
.inline-form{display:inline}

/* Flash */
.flash{padding:12px 15px; border-radius:10px; margin-bottom:16px; font-size:15px}
.flash-success{background:#e6f4ea; color:#1e7e45; border:1px solid #bfe3cb}
.flash-error{background:#fdecea; color:#b03028; border:1px solid #f5c6c2}
.flash-info{background:#eaf2fb; color:#235b9e; border:1px solid #c6dbf5}

/* Updates feed */
.update{border-left:3px solid var(--green); padding:4px 0 4px 14px; margin-bottom:18px}
.update .when{font-size:13px; color:var(--muted)}
.update h3{margin:2px 0 6px}
.update .body{white-space:pre-wrap}

/* Meal day list */
.day{border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin-bottom:14px; background:#fff}
.day.full{background:#fbfdfb}
.day-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap}
.day-date{font-size:18px; font-weight:700}
.day-meta{font-size:14px; color:var(--muted); margin-top:2px}
.badge{display:inline-block; font-size:12px; font-weight:600; padding:3px 9px; border-radius:999px}
.badge.need{background:#fff4e0; color:var(--amber)}
.badge.ok{background:var(--green-l); color:var(--green-d)}
.badge.closed{background:#eee; color:#777}
.signups{margin:12px 0 0; padding:0; list-style:none}
.signups li{padding:8px 0; border-top:1px dashed var(--line); font-size:15px}
.signups li:first-child{border-top:0}
.signups .who{font-weight:600}
.signups .dish{color:var(--muted)}

/* Admin tables */
.table{width:100%; border-collapse:collapse; font-size:14px}
.table th,.table td{text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top}
.table th{font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted)}
.table .nowrap{white-space:nowrap}
.contact-actions a{display:inline-block; margin-right:8px}

.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; margin-bottom:18px}
.stat{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:14px; text-align:center}
.stat .n{font-size:26px; font-weight:700; color:var(--green-d)}
.stat .l{font-size:13px; color:var(--muted)}

.notice{background:var(--green-l); border:1px solid #cfe5d8; border-radius:10px; padding:12px 14px; margin-bottom:16px}

hr.sep{border:0; border-top:1px solid var(--line); margin:18px 0}

/* repeatable rows (add meal days, etc.) */
.repeat-row{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; border:1px solid var(--line);
  border-radius:10px; padding:12px; margin-bottom:10px; background:#fafbfc}
.repeat-row .field{margin-bottom:0}

@media (max-width:620px){
  .page-head h1{font-size:23px}
  .topnav .who{display:none}
  .row{flex-direction:column; gap:0}
  .table thead{display:none}
  .table, .table tbody, .table tr, .table td{display:block; width:100%}
  .table tr{border:1px solid var(--line); border-radius:10px; margin-bottom:12px; padding:6px 10px}
  .table td{border:0; padding:5px 0}
  .table td::before{content:attr(data-label); font-weight:600; display:block; font-size:12px; color:var(--muted)}
}
