:root{
  --bg:#f6f3ea;
  --bg2:#eef2e6;
  --card:#fffdf8;
  --ink:#4a5240;
  --sub:#8a9078;
  --accent:#8fae72;
  --accent-dark:#6f8f55;
  --rice:#e8c66b;
  --wheat:#d89a6a;
  --line:#e6e2d4;
  --shadow:0 6px 28px rgba(120,130,100,.13);
}
*{box-sizing:border-box}
body{
  margin:0;font-family:"Zen Maru Gothic",-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  background:linear-gradient(165deg,var(--bg) 0%,var(--bg2) 100%);
  color:var(--ink);line-height:1.7;min-height:100vh;
}
a{color:var(--accent-dark);text-decoration:none}
a:hover{text-decoration:underline}

/* header */
.site-header{background:rgba(255,253,248,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-inner{max-width:960px;margin:0 auto;padding:.9rem 1.2rem}
.brand{display:flex;align-items:center;gap:.9rem}
.avatar{width:60px;height:60px;border-radius:50%;object-fit:cover;background:#e0ebd6;border:2px solid #fff;box-shadow:var(--shadow)}
.brand-text h1{margin:0;font-size:1.35rem}
.tagline{margin:.15rem 0 0;font-size:.82rem;color:var(--sub)}
.nav{display:flex;gap:.4rem;margin-top:.8rem;flex-wrap:wrap}
.nav-link{padding:.4rem .8rem;border-radius:999px;font-size:.85rem;color:var(--sub);background:transparent;transition:.2s}
.nav-link:hover{text-decoration:none;background:#eef2e6}
.nav-link.active{background:var(--accent);color:#fff;font-weight:500}

.container{max-width:960px;margin:0 auto;padding:1.6rem 1.2rem 3rem}
.tab-panel{display:none;animation:fade .3s}
.tab-panel.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.section-head h2{font-size:1.3rem;margin:0}
.lead{color:var(--sub);margin-top:0}

/* calendar */
.cal-controls{display:flex;align-items:center;gap:.6rem}
.cal-btn{border:none;background:var(--card);box-shadow:var(--shadow);width:34px;height:34px;border-radius:50%;font-size:1.1rem;color:var(--accent-dark);cursor:pointer}
.cal-btn:hover{background:var(--accent);color:#fff}
.cal-label{font-weight:700;min-width:110px;text-align:center}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:2rem}
.cal-cell{aspect-ratio:1;background:var(--card);border-radius:12px;padding:.3rem;font-size:.75rem;position:relative;box-shadow:0 2px 8px rgba(120,130,100,.07)}
.cal-cell.empty{background:transparent;box-shadow:none}
.cal-dow{text-align:center;font-size:.72rem;color:var(--sub);padding:.2rem 0;font-weight:700}
.cal-daynum{color:var(--sub)}
.cal-dot{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);display:flex;gap:3px}
.dot{width:7px;height:7px;border-radius:50%}
.dot.rice{background:var(--rice)}
.dot.wheat{background:var(--wheat)}
.cal-cell.has-meal{cursor:pointer;outline:2px solid transparent;transition:.15s}
.cal-cell.has-meal:hover{outline-color:var(--accent)}

/* meal list */
.list-title{font-size:1.05rem;margin:1.5rem 0 .8rem;border-left:4px solid var(--accent);padding-left:.6rem}
.meal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.meal-card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:.2s}
.meal-card:hover{transform:translateY(-3px)}
.meal-photo{height:150px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:2.4rem;background-color:#eef2e6}
.meal-body{padding:.9rem 1rem 1.1rem}
.meal-meta{font-size:.75rem;color:var(--sub);display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.grain-badge{padding:.1rem .5rem;border-radius:999px;font-size:.7rem;font-weight:700;color:#fff}
.grain-badge.rice{background:var(--rice)}
.grain-badge.wheat{background:var(--wheat)}
.meal-shop{font-weight:700;margin:.35rem 0 .1rem;font-size:1rem}
.meal-dish{color:var(--ink);font-size:.9rem;margin:0}
.stars{margin-top:.5rem;font-size:.78rem;color:var(--sub);display:grid;gap:2px}
.stars .star-row{display:flex;gap:.4rem;align-items:center}
.star-fill{color:#e8b84b;letter-spacing:1px}
.star-empty{color:#dcd8c8;letter-spacing:1px}

/* health */
.health-list{display:grid;gap:1.2rem}
.health-card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:1.2rem 1.3rem}
.health-year{font-size:1.2rem;font-weight:700;color:var(--accent-dark)}
.health-note{color:var(--sub);font-size:.88rem;margin:.3rem 0 .9rem}
.health-table{width:100%;border-collapse:collapse;font-size:.88rem}
.health-table th,.health-table td{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--line)}
.health-table th{color:var(--sub);font-weight:500;font-size:.8rem}
.val-status{padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;color:#fff}
.val-status.high{background:#e08b8b}
.val-status.watch{background:#e8b84b}
.val-status.ok{background:var(--accent)}
.disclaimer{margin-top:1.2rem;font-size:.78rem;color:var(--sub);background:#f0ece0;padding:.8rem 1rem;border-radius:12px}

/* about */
.about-card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:1.4rem 1.5rem}
.about-points{list-style:none;padding:0;margin:1rem 0}
.about-points li{padding:.5rem 0;border-bottom:1px dashed var(--line)}
.note{font-size:.78rem;color:var(--sub);margin-top:1rem}

/* footer */
.site-footer{text-align:center;padding:2rem 1rem;color:var(--sub);font-size:.85rem;border-top:1px solid var(--line)}
.foot-links{margin:.4rem 0}
.pr-note{font-size:.72rem;opacity:.8}

/* modal */
.modal{display:none;position:fixed;inset:0;background:rgba(74,82,64,.5);z-index:100;align-items:center;justify-content:center;padding:1rem}
.modal.open{display:flex}
.modal-inner{background:var(--card);border-radius:20px;max-width:460px;width:100%;max-height:88vh;overflow:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-close{position:absolute;top:.6rem;right:.8rem;border:none;background:#0002;color:#fff;width:32px;height:32px;border-radius:50%;font-size:1.2rem;cursor:pointer;z-index:2}
.modal-photo{height:220px;background-size:cover;background-position:center;background-color:#eef2e6;display:flex;align-items:center;justify-content:center;font-size:3rem;border-radius:20px 20px 0 0}
.modal-content{padding:1.3rem 1.5rem 1.6rem}
.modal-content h3{margin:.2rem 0}
.modal-links{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.modal-links a{background:var(--accent);color:#fff;padding:.45rem .9rem;border-radius:999px;font-size:.82rem}
.modal-links a:hover{background:var(--accent-dark);text-decoration:none}
.modal-comment{background:#f0ece0;border-radius:12px;padding:.8rem 1rem;margin-top:1rem;font-size:.9rem}

@media(max-width:520px){
  .calendar-grid{gap:3px}
  .cal-cell{border-radius:8px;font-size:.68rem}
  .meal-list{grid-template-columns:1fr}
}
