/* Sacred Journal ― シンクロ日記（SHE Center の色） */
.sj-wrap{
  --sj-night:#211E38; --sj-night-deep:#15132A; --sj-pearl:#EDEAE3; --sj-pearl-deep:#E3DED3;
  --sj-ink:#2A2740; --sj-moon:#F3EFE6; --sj-gold:#C9A961; --sj-gold-soft:#DCC98A;
  --sj-rose:#C98BA0; --sj-mist:#9099AC; --sj-accent:#8E4A6A;
  max-width:720px; margin:0 auto; padding:8px 0 40px; color:var(--sj-ink); line-height:1.9;
}
.sj-wrap *{ box-sizing:border-box; }
.sj-head{ text-align:center; margin-bottom:28px; }
.sj-kicker{ margin:0; font-size:.78rem; letter-spacing:.2em; color:var(--sj-accent); }
.sj-title{ margin:4px 0 0; font-size:1.5rem; font-weight:500; letter-spacing:.08em; color:var(--sj-ink); border:none; padding:0; background:none; }
.sj-title::before,.sj-title::after{ display:none; }
.sj-note{ text-align:center; color:#57536b; }
.sj-flash{ background:#F3EFE6; border-left:3px solid var(--sj-gold); padding:10px 16px; border-radius:6px; margin:0 0 20px; font-size:.92rem; }
.sj-flash-warn{ border-left-color:var(--sj-rose); }

.sj-btn{ display:inline-block; background:var(--sj-night); color:var(--sj-moon)!important; border:1px solid var(--sj-night); border-radius:999px; padding:10px 28px; font-size:.92rem; letter-spacing:.06em; text-decoration:none!important; cursor:pointer; transition:background .25s,color .25s; }
.sj-btn:hover{ background:var(--sj-gold); border-color:var(--sj-gold); color:var(--sj-night)!important; }
.sj-link{ background:none; border:none; padding:0; color:var(--sj-ink)!important; font-size:.88rem; text-decoration:none!important; border-bottom:1px solid var(--sj-gold)!important; cursor:pointer; font-family:inherit; line-height:1.6; }
.sj-link:hover{ color:var(--sj-accent)!important; border-color:var(--sj-accent)!important; }

.sj-toolbar{ display:flex!important; flex-wrap:wrap; align-items:center; justify-content:space-between!important; gap:12px 24px; margin-bottom:18px; }
.sj-filter{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:22px; }
.sj-filter a{ display:inline-flex; align-items:center; gap:4px; padding:4px 10px; border:1px solid #d8d2c4; border-radius:999px; font-size:.78rem; color:var(--sj-ink)!important; text-decoration:none!important; background:#fff; }
.sj-filter a .sj-moon{ width:16px; height:16px; }
.sj-filter a.is-on{ background:var(--sj-night); border-color:var(--sj-night); color:var(--sj-moon)!important; }
.sj-moon{ display:inline-block; flex:none; }

.sj-count{ font-size:.82rem; color:var(--sj-mist); margin:0 0 10px; }
.sj-empty{ text-align:center; color:#57536b; padding:30px 0; }
.sj-list{ list-style:none!important; margin:0!important; padding:0!important; }
.sj-entry{ background:#fff; border:1px solid #e6e0d4; border-radius:14px; padding:20px 22px; margin:0 0 14px!important; list-style:none!important; }
.sj-entry-head{ display:flex; align-items:center; gap:12px; }
.sj-entry-head .sj-moon{ width:32px; height:32px; }
.sj-entry-date{ margin:0; font-size:1rem; letter-spacing:.04em; }
.sj-entry-moon{ margin:0; font-size:.78rem; color:var(--sj-mist); }
.sj-chip{ display:inline-block; margin:12px 0 0; padding:2px 12px; border-radius:999px; background:var(--sj-pearl); font-size:.8rem; }
.sj-entry-label{ margin:14px 0 2px; font-size:.75rem; letter-spacing:.1em; color:var(--sj-accent); }
.sj-entry-text{ font-size:.95rem; white-space:normal; word-break:break-word; }
.sj-entry-actions{ display:flex; gap:18px; justify-content:flex-end; margin-top:14px; }
.sj-entry-actions form{ margin:0; }
.sj-del{ border-bottom-color:#d8d2c4!important; color:#8a8597!important; }

.sj-form{ background:#fff; border:1px solid #e6e0d4; border-radius:16px; padding:26px 24px; }
.sj-today{ display:flex; align-items:center; gap:12px; justify-content:center; margin-bottom:10px; }
.sj-today .sj-moon{ width:40px; height:40px; }
.sj-today span{ font-size:1.05rem; letter-spacing:.06em; }
.sj-today small{ display:block; font-size:.75rem; color:var(--sj-mist); }
.sj-label{ display:block; margin:18px 0 6px; font-size:.85rem; letter-spacing:.06em; }
.sj-input{ width:100%; padding:10px 12px; border:1px solid #d8d2c4; border-radius:8px; font-size:1rem; font-family:inherit; background:#fdfcf9; color:var(--sj-ink); }
.sj-input:focus{ outline:none; border-color:var(--sj-gold); box-shadow:0 0 0 3px rgba(201,169,97,.18); }
.sj-date{ max-width:220px; }
.sj-help{ margin:4px 0 0; font-size:.75rem; color:var(--sj-mist); }
.sj-row{ display:grid; grid-template-columns:1fr 1.4fr; gap:14px; }
.sj-actions{ display:flex; align-items:center; gap:22px; justify-content:center; margin-top:26px; }
.sj-pager{ display:flex; justify-content:center; gap:8px; margin-top:20px; }
.sj-pager a,.sj-pager span{ min-width:34px; text-align:center; padding:4px 8px; border-radius:6px; border:1px solid #d8d2c4; font-size:.85rem; text-decoration:none!important; color:var(--sj-ink)!important; }
.sj-pager .is-on{ background:var(--sj-night); color:var(--sj-moon)!important; border-color:var(--sj-night); }
.sj-guide{ margin:0 0 22px; border:1px solid #e6e0d4; border-radius:12px; background:#fdfcf9; }
.sj-form .sj-guide{ margin:6px 0 4px; }
.sj-guide summary{ cursor:pointer; padding:10px 16px; font-size:.85rem; letter-spacing:.06em; color:var(--sj-accent); list-style:none; }
.sj-guide summary::-webkit-details-marker{ display:none; }
.sj-guide summary::before{ content:"＋"; display:inline-block; width:1.4em; color:var(--sj-gold); }
.sj-guide[open] summary::before{ content:"−"; }
.sj-guide ul{ list-style:none!important; margin:0!important; padding:0 16px 12px!important; }
.sj-guide li{ display:flex!important; flex-direction:row!important; gap:12px; align-items:flex-start; padding:10px 8px; border-top:1px solid #eee8dc; list-style:none!important; margin:0!important; border-radius:8px; }
.sj-guide li.is-on{ background:var(--sj-pearl); }
.sj-guide li .sj-moon{ width:28px; height:28px; margin-top:2px; }
.sj-guide-name{ margin:0!important; font-size:.92rem; letter-spacing:.04em; }
.sj-guide-name small{ margin-left:10px; font-size:.72rem; color:var(--sj-mist); }
.sj-guide-text{ margin:2px 0 0!important; font-size:.85rem; color:#57536b; line-height:1.8; }
.sj-cal{ background:#fff; border:1px solid #e6e0d4; border-radius:16px; padding:18px 16px 14px; margin:0 0 24px; }
.sj-cal-next{ margin:0 0 12px!important; text-align:center; font-size:.92rem; }
.sj-cal-next strong{ color:var(--sj-accent); font-weight:500; }
.sj-cal-head{ display:flex!important; align-items:center; justify-content:center; gap:18px; margin-bottom:10px; }
.sj-cal-title{ margin:0!important; font-size:1.05rem; letter-spacing:.08em; min-width:8em; text-align:center; }
.sj-cal-nav{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:1px solid #d8d2c4; color:var(--sj-ink)!important; text-decoration:none!important; font-size:1.2rem; line-height:1; }
.sj-cal-nav:hover{ background:var(--sj-pearl); }
.sj-cal-grid{ display:grid!important; grid-template-columns:repeat(7,minmax(0,1fr))!important; gap:4px; }
.sj-cal-wd{ text-align:center; font-size:.72rem; color:var(--sj-mist); padding:2px 0; }
.sj-cal-wd.is-sun{ color:var(--sj-rose); }
.sj-cal-wd.is-sat{ color:#6f86b0; }
.sj-cal-day{ min-height:66px; border-radius:8px; padding:4px 2px; display:flex!important; flex-direction:column!important; align-items:center!important; gap:2px; background:#fdfcf9; line-height:1.2; }
.sj-cal-day.is-blank{ background:none; }
.sj-cal-num{ font-size:.78rem; color:#57536b; }
.sj-cal-day .sj-moon{ width:20px; height:20px; }
.sj-cal-name{ font-size:.6rem; color:var(--sj-mist); white-space:nowrap; }
.sj-cal-day.is-new,.sj-cal-day.is-full{ background:var(--sj-night); }
.sj-cal-day.is-new .sj-cal-num,.sj-cal-day.is-full .sj-cal-num,.sj-cal-day.is-new .sj-cal-name,.sj-cal-day.is-full .sj-cal-name{ color:var(--sj-gold-soft); }
.sj-cal-day.is-new .sj-moon,.sj-cal-day.is-full .sj-moon{ width:26px; height:26px; }
.sj-cal-star{ font-size:.58rem; color:var(--sj-gold); white-space:nowrap; }
.sj-cal-day.is-today{ box-shadow:inset 0 0 0 2px var(--sj-gold); }
.sj-cal-note{ margin:10px 0 0!important; font-size:.75rem; color:var(--sj-mist); text-align:center; }
.sj-cal-wrap{ margin:0 0 8px; }
.sj-mtoday{ display:flex!important; align-items:center; justify-content:center; gap:10px; margin:0 0 20px; padding:10px 16px; border:1px solid #e6e0d4; border-radius:999px; background:#fff; width:fit-content; max-width:100%; margin-left:auto; margin-right:auto; }
.sj-mtoday .sj-moon{ width:28px; height:28px; }
.sj-mtoday-text{ font-size:.92rem; letter-spacing:.04em; }
.sj-mtoday-text strong{ color:var(--sj-accent); font-weight:500; margin-right:8px; }
.sj-mtoday-text small{ color:var(--sj-mist); font-size:.78rem; }
.sj-mtoday > p{ display:contents!important; }
/* テーマが中身を <p> で包んでも、並びがくずれないようにする */
.sj-cal-day > p,.sj-cal-head > p,.sj-toolbar > p,.sj-guide li > p,.sj-entry-head > p,.sj-entry-actions > p,.sj-actions > p,.sj-today > p{ display:contents!important; }
.sj-wrap br{ display:none!important; }
.sj-wrap p:empty{ display:none!important; }
/* テーマが中身を <code> で包んでも、並び・文字がくずれないようにする */
.sj-wrap code{ display:contents!important; font:inherit!important; color:inherit!important; background:none!important; padding:0!important; border:0!important; white-space:normal!important; }
.sj-wrap.sj-jbtn-wrap{ max-width:none; padding:12px 0; text-align:center; }
.sj-jbtn-prompt{ margin:0 0 10px!important; font-size:.92rem; }
.sj-prompt{ margin:14px 0 4px; padding:12px 16px; border-left:3px solid var(--sj-gold); background:var(--sj-pearl); border-radius:6px; }
.sj-prompt-label{ margin:0!important; font-size:.75rem; letter-spacing:.1em; color:var(--sj-accent); }
.sj-prompt-text{ margin:2px 0 0!important; font-size:.98rem; }
.sj-entry-prompt{ color:#57536b; }
@media (max-width:640px){
  .sj-row{ grid-template-columns:1fr; gap:0; }
  .sj-entry{ padding:18px 16px; }
  .sj-form{ padding:22px 16px; }
  .sj-filter a span{ display:none; }
  .sj-filter a{ padding:5px 8px; }
  .sj-filter a:first-child span{ display:inline; }
}
@media (max-width:640px){
  .sj-cal{ padding:14px 6px 10px; }
  .sj-cal-grid{ gap:3px; }
  .sj-cal-day{ min-height:54px; }
  .sj-cal-day:not(.is-new):not(.is-full) .sj-cal-name{ display:none; }
  .sj-cal-star{ font-size:.5rem; }
}
