:root{
      --bg:#f6f1e7;--card:#fffaf1;--ink:#23332e;--muted:#66756f;--main:#2f6b5b;--main2:#3d806f;--accent:#d48b49;--accent2:#efc27f;--soft:#efe2c8;--line:#dfd1b9;--good:#5a986f;--warn:#c2893a;--shadow:0 18px 45px rgba(45,92,78,.16);--radius:22px
    }
    *{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#fff7dc 0,#f6f1e7 38%,#eef4ed 100%);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;color:var(--ink);line-height:1.75}.wrap{max-width:1120px;margin:0 auto;padding:22px}.hero{padding:34px 26px;border-radius:30px;background:linear-gradient(135deg,#2f6b5b,#71a58e);color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-80px;top:-80px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.16)}h1{font-size:clamp(28px,5vw,48px);margin:0 0 8px}.subtitle{font-size:17px;opacity:.96;max-width:760px}.badge{display:inline-flex;gap:8px;align-items:center;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.18);font-size:13px;margin-bottom:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.card{background:rgba(255,250,241,.92);border:1px solid rgba(223,209,185,.8);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);backdrop-filter:blur(7px)}.full{grid-column:1/-1}h2{font-size:22px;margin:0 0 12px;color:var(--main)}h3{font-size:18px;margin:18px 0 8px;color:#36584f}.mini{font-size:13px;color:var(--muted)}label{display:block;font-weight:700;margin:13px 0 6px}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fffdf8;color:var(--ink);font-size:15px}textarea{min-height:88px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}button{border:0;border-radius:999px;padding:12px 18px;font-weight:800;cursor:pointer;background:var(--main);color:#fff;box-shadow:0 8px 20px rgba(47,107,91,.22)}button.secondary{background:#fff;color:var(--main);border:1px solid var(--line)}button.warn{background:#b96a3b}.pill{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:#f3ead8;border:1px solid var(--line);padding:7px 11px;margin:4px;font-size:13px}.meter{height:15px;background:#eadcc4;border-radius:999px;overflow:hidden}.meter>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--main2),var(--accent2));width:0%;transition:.6s}.scoreBig{font-size:48px;font-weight:900;color:var(--main);letter-spacing:-1px}.resultBox{padding:16px;border-radius:18px;background:#f5ecd8;border:1px solid var(--line);margin-top:12px}.message{background:linear-gradient(135deg,#fffdf8,#eef7ef);border-left:6px solid var(--main);padding:16px;border-radius:18px}.adviceList{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.advice{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:14px}.term{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:14px;margin:10px 0}.logItem{padding:12px;border-bottom:1px solid var(--line)}.logItem:last-child{border-bottom:0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tab{padding:9px 12px;border-radius:999px;background:#f2e6cf;color:var(--main);font-weight:800;cursor:pointer}.tab.active{background:var(--main);color:#fff}.hidden{display:none!important}canvas{width:100%;height:260px;background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:10px}.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kpi>div{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:13px;text-align:center}.kpi b{display:block;font-size:22px;color:var(--main)}.footer{font-size:12px;color:var(--muted);padding:24px 0;text-align:center}.notice{background:#fff4df;border:1px solid #ebc992;border-radius:18px;padding:13px;color:#6c4b20}.quote{font-size:18px;font-weight:800;color:#31584f}.smallBtn{padding:8px 12px;font-size:13px}.profileSummary{display:flex;flex-wrap:wrap;gap:8px}.coachName{font-weight:900;color:var(--accent)}.coachCard{background:linear-gradient(135deg,#fffdf8,#eef7ef);border:1px solid #cfe5d5;border-radius:18px;padding:14px;margin:12px 0}.coachCard b{color:var(--main)}.fortuneBox{background:linear-gradient(135deg,#f8efe0,#fffdf8);border:1px solid #ead7b9;border-radius:18px;padding:14px}.storeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.store{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:13px}.store b{color:var(--main)}.praise{background:#eef7ef;border:1px solid #cfe5d5;border-radius:18px;padding:14px;margin-top:12px}.dailyStamp{display:inline-flex;align-items:center;gap:8px;background:#fff4df;border:1px solid #ebc992;border-radius:999px;padding:8px 12px;font-weight:800;color:#6c4b20}.omamoriBox{background:linear-gradient(135deg,#fff7e8,#eef7ef);border:1px solid #ead7b9;border-radius:20px;padding:16px;margin-top:14px}.omamoriMsg{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:12px}.omamoriBtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.fortuneTip{background:#fffdf8;border:1px solid var(--line);border-radius:15px;padding:12px;margin-top:10px}
.planGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:18px}.priceCard{background:rgba(255,250,241,.96);border:1px solid rgba(223,209,185,.9);border-radius:22px;padding:16px;box-shadow:var(--shadow)}.price{font-size:34px;font-weight:900;color:var(--main);letter-spacing:-1px}.premiumTag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:linear-gradient(135deg,#2f6b5b,#d48b49);color:#fff;padding:6px 10px;font-size:12px;font-weight:900}.freeTag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef7ef;color:#2f6b5b;border:1px solid #cfe5d5;padding:6px 10px;font-size:12px;font-weight:900}.paywall{background:linear-gradient(135deg,#fff4df,#fffdf8);border:1px dashed #d48b49;border-radius:18px;padding:15px;margin:12px 0}.paywall b{color:#8a552c}.lockedFeature{opacity:.92;position:relative}.lockMini{font-size:12px;color:#8a552c;font-weight:800}.planActive{outline:3px solid rgba(47,107,91,.28)}.compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare ul{margin:8px 0 0 20px;padding:0}.compare li{margin:4px 0}.premiumOnly{border-left:5px solid var(--accent)}.premiumLab{background:linear-gradient(135deg,#fff8ea,#eef7ef);border:1px solid #ead7b9;border-radius:20px;padding:16px;margin-top:12px}.forecastGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.forecastItem{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:13px;text-align:center}.forecastItem b{display:block;font-size:24px;color:var(--main)}.forecastTrend{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;padding:9px 15px;border-radius:999px;font-weight:900;font-size:14px;border-width:2px!important;min-width:128px;box-shadow:0 5px 14px rgba(47,107,91,.10)}.forecastTrend.up{background:#eef7ef;color:#2f6b5b;border:2px solid #cfe5d5}.forecastTrend.flat{background:#fff4df;color:#8a552c;border:2px solid #ebc992}.forecastTrend.down{background:#f8e8df;color:#9b4d2f;border:2px solid #e6c0aa}.forecastTrend .arrow{font-size:40px;line-height:1;font-weight:900;display:inline-block;min-width:36px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.08)}.letterBox{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:18px;white-space:pre-line}.healthScore{font-size:42px;font-weight:900;color:var(--main)}.achievementGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.achievement{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:13px}.achievement.locked{filter:grayscale(.2);opacity:.72}.previewBlur{position:relative;max-height:110px;overflow:hidden}.previewBlur:after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(rgba(255,253,248,0),#fffdf8)}
.guideGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}.guideStep{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:13px}.guideStep b{color:var(--main)}.todayInputCard{background:linear-gradient(135deg,#eef7ef,#fffdf8);border:1px solid #cfe5d5;border-radius:18px;padding:14px;margin:12px 0}.todayInputCard ul{margin:8px 0 0 20px;padding:0}.helpBox{background:#fffdf8;border:1px solid var(--line);border-radius:14px;padding:9px 11px;margin:6px 0 10px}.helpBox summary{cursor:pointer;font-weight:800;color:var(--main);font-size:13px}.helpBox p{margin:8px 0 0;font-size:13px;color:var(--muted)}.quickNav{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.quickNav a{display:inline-flex;text-decoration:none;color:var(--main);font-weight:900;background:#fffdf8;border:1px solid var(--line);border-radius:999px;padding:8px 12px}.dailyChecklist{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.dailyChecklist div{background:#fffdf8;border:1px solid var(--line);border-radius:14px;padding:10px;font-size:13px}

.weightPanel{background:linear-gradient(135deg,#fffdf8,#eef7ef);border:1px solid #cfe5d5;border-radius:20px;padding:16px;margin-top:12px}.weightKpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.weightKpis div{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:12px;text-align:center}.weightKpis b{display:block;font-size:22px;color:var(--main)}.voiceBox{background:#f8efe0;border:1px solid #ead7b9;border-radius:16px;padding:12px;margin-top:10px}.voiceStatus{font-size:13px;color:var(--muted);margin-top:8px}.voiceBtn{background:#6f8fb6}.voiceBtn.secondary{background:#fff;color:#6f8fb6;border:1px solid #b9c7de}@media(max-width:760px){.weightKpis{grid-template-columns:1fr 1fr}}

@media(max-width:760px){.guideGrid,.dailyChecklist{grid-template-columns:1fr}}



.quickStartGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:12px}.quickStartBox{background:linear-gradient(135deg,#eef7ef,#fffdf8);border:1px solid #cfe5d5;border-radius:20px;padding:16px}.quickStep{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:#fff4df;border:1px solid #ebc992;color:#6c4b20;padding:6px 10px;font-weight:900;font-size:13px}.bodyVoiceCard{background:linear-gradient(135deg,#fffdf8,#eef7ef);border:1px solid #cfe5d5;border-radius:22px;padding:18px;box-shadow:var(--shadow)}.bodyVoiceTitle{font-size:22px;font-weight:900;color:var(--main);margin:0 0 8px}.bodyVoicePhrase{font-size:24px;font-weight:900;color:#31584f;line-height:1.55;margin:8px 0 12px}.bodyVoiceMiniGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.bodyVoiceMiniGrid div{background:#fffdf8;border:1px solid var(--line);border-radius:15px;padding:12px}.quickAction{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:12px}.quickStartNote{font-size:13px;color:var(--muted);margin-top:8px}
@media(max-width:760px){.quickStartGrid,.bodyVoiceMiniGrid{grid-template-columns:1fr}}

.recipeGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}.recipeCard{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:15px}.recipeCard b{color:var(--main)}.shoppingList{columns:2;column-gap:28px}.shoppingList li{break-inside:avoid;margin:4px 0}.recipeMeta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.recipeStep{margin:6px 0;padding-left:1.1em}.mealSummary{background:#eef7ef;border:1px solid #cfe5d5;border-radius:18px;padding:14px;margin-top:12px}
@media(max-width:760px){.recipeGrid{grid-template-columns:1fr}.shoppingList{columns:1}}
@media(max-width:760px){.storeGrid,.planGrid,.compare,.forecastGrid,.achievementGrid{grid-template-columns:1fr}}@media(max-width:760px){.grid,.row,.row3,.adviceList,.kpi{grid-template-columns:1fr}.wrap{padding:12px}.hero{padding:26px 18px}.card{padding:16px}.scoreBig{font-size:38px}}
  
/* v3.4.5 dashboard / weight readability refinements */
.dashboardSummaryV345{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;margin:14px 0}
.dashboardSummaryV345>div{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:15px}
.dashboardSummaryV345 b{color:var(--main)}
.dashFocusGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.dashFocusGrid>div{background:#f7efdf;border:1px solid #ead7b9;border-radius:14px;padding:11px}
.dashFocusGrid span{display:block;font-size:12px;color:var(--muted)}
.dashFocusGrid b{display:block;color:var(--main);font-size:18px;margin-top:2px}
.dashboardHint{background:#eef7ef;border:1px solid #cfe5d5;border-radius:18px;padding:13px;margin:12px 0}
.weightHeroV345{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.weightHeroV345>div{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:13px;text-align:center}
.weightHeroV345 b{display:block;color:var(--main);font-size:24px;line-height:1.3}
.weightMessageGridV345{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.weightMessageGridV345>div{background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:14px}
.weightMessageGridV345 b{color:var(--main)}
@media(max-width:760px){.dashboardSummaryV345,.dashFocusGrid,.weightHeroV345,.weightMessageGridV345{grid-template-columns:1fr}.weightHeroV345>div{text-align:left}}

  
.legalNav{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.legalNav a{display:inline-flex;text-decoration:none;color:var(--main);font-weight:900;background:#fffdf8;border:1px solid var(--line);border-radius:999px;padding:8px 12px}
.legalSection{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0}
.legalSection h3{margin-top:0}
.legalSection table{width:100%;border-collapse:collapse;background:#fffdf8;border-radius:14px;overflow:hidden}
.legalSection th,.legalSection td{border:1px solid var(--line);padding:10px;vertical-align:top;text-align:left}
.legalSection th{width:28%;background:#f5ecd8;color:var(--main)}
.legalSection ul{margin:8px 0 0 20px;padding:0}
.legalNote{background:#fff4df;border:1px solid #ebc992;border-radius:16px;padding:13px;color:#6c4b20;margin:12px 0}
@media(max-width:760px){.legalSection th,.legalSection td{display:block;width:100%}}


.todayStateLinkBtn{margin-left:8px;padding:7px 12px;font-size:12px;vertical-align:middle;background:#fff;color:var(--main);border:1px solid #cfe5d5;box-shadow:none}.todayStateLinkBtn:hover{background:#eef7ef}.todayStateLinkBtn:focus-visible{outline:3px solid rgba(47,107,91,.28);outline-offset:2px}@media(max-width:560px){.todayStateLinkBtn{display:inline-flex;margin:8px 0 0 0}}
/* Kikyo v4.3 mobile width stability */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
svg,
canvas,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

#kikyoApp,
.container,
section,
.card,
.resultBox,
.premiumLab,
.mealSummary,
.recipeCard,
.diaryPanel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.row,
.grid,
.recipeGrid,
.storeGrid,
.achievementGrid,
.dashFocusGrid,
.bodyVoiceMiniGrid {
  min-width: 0;
}

p,
li,
td,
th,
span,
button,
label {
  overflow-wrap: anywhere;
}

.diaryPanel {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #dfd1b9;
  border-radius: 16px;
  background: #fffdf8;
}

.diaryTagGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.diaryTagGrid label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 9px;
  border: 1px solid #dfd1b9;
  border-radius: 12px;
  background: white;
}

.badgeCollectionHeader {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
}

.badgeProgress {
  width: 100%;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #eee5d7;
}

.badgeProgress > div {
  height: 100%;
  border-radius: inherit;
  background: #2f6b5b;
}

.badgeIcon {
  font-size: 32px;
  margin-bottom: 8px;
}

.badgeState {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
}

.diaryInsightItem {
  margin-top: 12px;
  padding: 12px;
  border-radius: 14px;
  background: #fffaf1;
}

@media (max-width: 640px) {
  body {
    margin: 0;
  }

  #kikyoApp,
  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  .row,
  .grid,
  .storeGrid,
  .dashFocusGrid,
  .bodyVoiceMiniGrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .recipeGrid,
  .achievementGrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .diaryTagGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .btns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .btns button {
    width: 100%;
    min-width: 0;
  }

  canvas {
    width: 100% !important;
  }
}


/* Kikyo v4.3 diary tag mobile fix */
.diaryTagGrid input[type="checkbox"] {
  appearance: auto;
  -webkit-appearance: checkbox;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 18px;
}

.diaryTagGrid label {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  line-height: 1.35;
  cursor: pointer;
  overflow: hidden;
}

.diaryTagGrid label,
.diaryTagGrid label * {
  box-sizing: border-box;
}

@media (max-width: 640px) {
  .diaryTagGrid {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .diaryTagGrid label {
    font-size: 14px;
  }
}

@media (max-width: 390px) {
  .diaryTagGrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}


/* Kikyo v4.3 weekly recipe engine */
.recipeTypeCard {
  display: grid;
  gap: 5px;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid #dfd1b9;
  border-radius: 14px;
  background: #fffdf8;
}

.weeklyMenuGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}

.weeklyDayCard {
  min-width: 0;
  padding: 18px;
  border: 1px solid #dfd1b9;
  border-radius: 18px;
  background: #fffdf8;
}

.weeklyDayCard > h3 {
  margin-top: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #eee5d7;
}

.weeklyDish {
  margin-top: 14px;
  padding: 13px;
  border-radius: 14px;
  background: white;
}

.weeklyDishTitle {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.weeklyDish details {
  margin-top: 8px;
}

.weeklyDish summary {
  cursor: pointer;
  font-weight: 600;
}

.shoppingListGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.shoppingListItem {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 11px;
  border: 1px solid #eee5d7;
  border-radius: 12px;
  background: white;
}

.shoppingListItem small {
  color: #66756f;
}

.recipeAfterActions {
  margin-top: 16px;
}

@media (max-width: 760px) {
  .weeklyMenuGrid {
    grid-template-columns: minmax(0, 1fr);
  }

  .shoppingListGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .shoppingListGrid {
    grid-template-columns: minmax(0, 1fr);
  }

  .weeklyDayCard {
    padding: 13px;
  }

  .weeklyDish {
    padding: 11px;
  }
}


/* Kikyo v4.3 mobile log date layout fix */
#logDate {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 640px) {
  #logDate {
    font-size: 16px !important;
    padding-left: 10px !important;
    padding-right: 8px !important;
  }

  #logDate::-webkit-date-and-time-value {
    min-width: 0 !important;
    text-align: left !important;
  }

  #logDate::-webkit-calendar-picker-indicator {
    margin: 0 !important;
    padding: 2px !important;
  }
}


/* Kikyo v4.3 final mobile date width fix */
.row3,
.row3 > div {
  min-width: 0 !important;
  max-width: 100% !important;
}

#logDate {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 640px) {
  .row3 {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .row3 > div {
    width: 100% !important;
    overflow: hidden !important;
  }

  #logDate {
    display: block !important;
    inline-size: 100% !important;
    font-size: 16px !important;
    padding: 10px 6px !important;
    margin: 0 !important;
    overflow: hidden !important;
    -webkit-appearance: none !important;
    appearance: none !important;
  }

  #logDate::-webkit-datetime-edit {
    display: block !important;
    min-width: 0 !important;
    width: calc(100% - 28px) !important;
    overflow: hidden !important;
    padding: 0 !important;
  }

  #logDate::-webkit-datetime-edit-fields-wrapper {
    min-width: 0 !important;
    padding: 0 !important;
  }

  #logDate::-webkit-calendar-picker-indicator {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* Kikyo FAQ */
.faqCategoryList {
  display: grid;
  gap: 14px;
}

.faqCategory {
  border: 1px solid rgba(80, 105, 80, .18);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.62);
}

.faqCategoryTitle {
  margin: 0 0 10px;
  font-size: 17px;
}

.faqItem {
  border-top: 1px solid rgba(80, 105, 80, .14);
  padding: 4px 0;
}

.faqItem:first-of-type {
  border-top: 0;
}

.faqItem summary {
  cursor: pointer;
  font-weight: 700;
  padding: 12px 4px;
  line-height: 1.6;
}

.faqItem p {
  margin: 0;
  padding: 0 4px 14px;
  line-height: 1.75;
}

.faqEmpty {
  padding: 18px;
  text-align: center;
}


/* Kikyo v4.3.3 Omamori Mode */
.omamoriCard {
  margin-top: 12px;
  padding: 18px;
  border-radius: 20px;
  background:
    linear-gradient(
      145deg,
      rgba(248, 251, 244, .96),
      rgba(238, 245, 232, .90)
    );
  border: 1px solid rgba(91, 122, 81, .16);
  box-shadow: 0 10px 28px rgba(71, 92, 65, .08);
}

.omamoriTitle {
  font-weight: 800;
  letter-spacing: .02em;
  margin-bottom: 10px;
}

.omamoriMessage {
  font-size: 16px;
  line-height: 1.9;
  margin: 0;
  white-space: pre-wrap;
}


/* Kikyo v4.3.3 Badge Collection */
.badgeCollectionHero {
  display: grid;
  grid-template-columns:
    repeat(4,minmax(0,1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.badgeCollectionHero > div {
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(83,111,77,.15);
}

.badgeCollectionHero b {
  display: block;
  margin-top: 5px;
  font-size: 21px;
}

.badgeOverallProgress,
.badgeMiniProgress {
  overflow: hidden;
  border-radius: 999px;
  background: rgba(75,102,69,.12);
}

.badgeOverallProgress {
  height: 12px;
  margin-bottom: 22px;
}

.badgeMiniProgress {
  height: 7px;
  margin-top: 9px;
}

.badgeOverallProgress span,
.badgeMiniProgress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background:
    linear-gradient(
      90deg,
      #7fa878,
      #d6b85d
    );
}

.badgeShelf,
.badgeNextSection,
.badgeAllSection {
  margin-top: 22px;
}

.badgeShelfGrid,
.badgeNextGrid,
.badgeAllGrid {
  display: grid;
  grid-template-columns:
    repeat(3,minmax(0,1fr));
  gap: 12px;
}

.badgeCard {
  display: flex;
  gap: 12px;
  min-width: 0;
  padding: 15px;
  border-radius: 18px;
  border: 1px solid rgba(82,105,76,.15);
  background: rgba(255,255,255,.68);
}

.badgeUnlocked {
  box-shadow:
    0 10px 24px
    rgba(88,109,79,.08);
}

.badgeLocked {
  opacity: .72;
  background: rgba(245,245,242,.75);
}

.badgeIcon {
  flex: 0 0 42px;
  font-size: 29px;
  line-height: 1;
  text-align: center;
}

.badgeCardBody {
  min-width: 0;
  flex: 1;
}

.badgeCardBody b {
  display: block;
  line-height: 1.5;
}

.badgeCardBody p {
  margin: 5px 0;
  font-size: 13px;
  line-height: 1.65;
}

.badgeState {
  display: inline-block;
  margin-top: 7px;
  font-size: 12px;
  font-weight: 700;
}

.badgeCompact {
  align-items: center;
}

.badgeCompact .badgeCardBody p {
  display: none;
}

.badgeCategory {
  margin-bottom: 10px;
  border: 1px solid rgba(82,105,76,.14);
  border-radius: 17px;
  background: rgba(255,255,255,.46);
}

.badgeCategory summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  padding: 15px;
  font-weight: 800;
}

.badgeAllGrid {
  padding: 0 14px 14px;
}

.badgeFootnote {
  margin-top: 18px;
}

@media (max-width: 760px) {
  .badgeCollectionHero {
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .badgeShelfGrid,
  .badgeNextGrid,
  .badgeAllGrid {
    grid-template-columns:
      minmax(0,1fr);
  }
}

/* Kikyo v4.3.3 FAQ Accordion */
.faqCategory {
  overflow: hidden;
  padding: 0;
}

.faqCategorySummary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  cursor: pointer;
  padding: 16px;
  font-weight: 800;
  list-style: none;
}

.faqCategorySummary::-webkit-details-marker {
  display: none;
}

.faqCategorySummary::after {
  content: "＋";
  flex: 0 0 auto;
  font-size: 20px;
  font-weight: 500;
}

.faqCategory[open]
.faqCategorySummary::after {
  content: "−";
}

.faqCategoryCount {
  margin-left: auto;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(83,111,77,.10);
  font-size: 12px;
  font-weight: 700;
}

.faqCategoryBody {
  padding: 0 14px 12px;
}

#faqArea .notice .btns,
#faqArea .notice {
  gap: 10px;
}

#faqArea .notice button {
  margin-top: 8px;
  margin-right: 8px;
}

.todayWordCard{background:linear-gradient(135deg,#fffdf8,#eef7ef);border-color:#cfe5d5;text-align:center;padding:22px}.todayWordLabel{font-size:14px;font-weight:900;color:var(--main);letter-spacing:.04em}.todayWordText{font-size:clamp(20px,3.4vw,28px);font-weight:900;line-height:1.65;color:#31584f;margin-top:8px}.todayWordCard .mini{margin:8px 0 0}
