:root{
  --bg:#f4f6f8; --card:#fff; --ink:#1c2733; --muted:#7a8794;
  --brand:#1f7a5c; --brand-d:#155e46; --line:#e3e8ed;
  --yes:#2e9b6f; --no:#d9534f; --tot:#3b6ea5;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Segoe UI","Tahoma",system-ui,sans-serif; line-height:1.6;
}
.container{max-width:760px; margin:0 auto; padding:16px}
.site-header{padding:14px 0}
.brand{font-size:1.25rem; font-weight:700; color:var(--brand); text-decoration:none}
.card{background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:20px; margin-bottom:18px; box-shadow:0 1px 3px rgba(0,0,0,.04)}
.card.center{text-align:center}
.card.narrow{max-width:360px; margin-inline:auto}
h1{font-size:1.45rem; margin:.2em 0 .6em}
h2{font-size:1.15rem; margin:1em 0 .5em}
.poll-title{font-weight:700; font-size:1.1rem}
.muted{color:var(--muted)}
.small{font-size:.85rem}

label{display:block; margin:10px 0; font-weight:600}
label.inline,label.choice{font-weight:500}
input[type=text],input[type=password],input[type=number],select,textarea{
  width:100%; padding:10px 12px; margin-top:6px; border:1px solid var(--line);
  border-radius:9px; font-size:1rem; font-family:inherit; background:#fff}
textarea{resize:vertical}

fieldset{border:1px solid var(--line); border-radius:11px; padding:12px 14px; margin:14px 0}
legend{font-weight:700; padding:0 6px}
.choice{display:flex; align-items:center; gap:10px; padding:10px 12px;
  border:1px solid var(--line); border-radius:9px; margin:8px 0; cursor:pointer}
.choice input{width:auto; margin:0}
.choice:hover{background:#f0f7f4}

.btn{display:inline-block; background:#eef2f5; color:var(--ink); border:none;
  padding:10px 16px; border-radius:9px; font-size:1rem; font-family:inherit;
  cursor:pointer; text-decoration:none; transition:.15s}
.btn:hover{background:#e2e8ed}
.btn.primary{background:var(--brand); color:#fff}
.btn.primary:hover{background:var(--brand-d)}
.btn.danger{background:#fbe9e8; color:var(--no)}
.btn.small{padding:6px 12px; font-size:.88rem}
.btn.tiny{padding:5px 10px; font-size:.8rem}

.saved{background:#e6f6ee; color:var(--brand-d); padding:10px 14px;
  border-radius:9px; margin-bottom:12px}
.flash{background:#fdeceb; color:var(--no); padding:10px 14px; border-radius:9px; margin-bottom:12px}
.flash p{margin:.2em 0}

.badge{display:inline-block; font-size:.72rem; padding:2px 8px; border-radius:20px; margin-inline-start:6px}
.badge.open{background:#e6f6ee; color:var(--brand-d)}
.badge.closed{background:#eef0f2; color:var(--muted)}
.badge.weekly{background:#e9f0fa; color:var(--tot)}

.tally{display:flex; gap:12px; margin:16px 0; flex-wrap:wrap}
.tally-box{flex:1; min-width:90px; text-align:center; border-radius:12px; padding:14px; color:#fff}
.tally-box .n{font-size:1.8rem; font-weight:800}
.tally-box.yes{background:var(--yes)} .tally-box.no{background:var(--no)} .tally-box.tot{background:var(--tot)}

.meal-list{list-style:none; padding:0; margin:0}
.meal-list li{display:flex; justify-content:space-between; padding:8px 12px;
  border:1px solid var(--line); border-radius:8px; margin:6px 0}

table{width:100%; border-collapse:collapse; margin-top:8px}
th,td{text-align:right; padding:8px 10px; border-bottom:1px solid var(--line)}
td.center,th.center{text-align:center}
table input[type=text]{padding:6px 8px; margin:0}

.admin-head{display:flex; justify-content:space-between; align-items:center}
.poll-row{display:flex; justify-content:space-between; align-items:center;
  gap:12px; padding:12px 0; border-bottom:1px solid var(--line); flex-wrap:wrap}
.poll-actions,.actions{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.poll-actions form,.actions form{margin:0}
.row-form{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px}
.row-form input{flex:1; margin-top:0}
