/* ============================================================
 * 魔女の恋愛カレンダー — スピカブランドスキン
 *
 * 役割: members.css の上に被せるスピカ専用テーマ。
 *       layout.php は members.css → brand.css の順に読むので、
 *       同じ詳細度のセレクタなら本ファイルが勝つ。
 *
 * 注意: ロジック (calendar.js / api_client.php) は触らない。
 *       JS が参照する data-* 属性 / クラス名は維持する。
 *       ここで書き換えるのは見た目のみ。
 * ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@500;700&family=M+PLUS+Rounded+1c:wght@400;500;700&family=Zen+Maru+Gothic:wght@500;700&display=swap');

:root {
    /* スピカ・ピンクパステル基調 */
    --partner-accent: #ff8baa;

    --spica-bg-base: #FFF4F7;
    --spica-bg-soft: #FFEAF1;
    --spica-pink: #FFB6C8;
    --spica-pink-deep: #FF8BAA;
    --spica-pink-light: #FFD7E2;
    --spica-lavender: #C8B6E0;
    --spica-lavender-light: #E5D9F2;
    --spica-gold: #F0C674;
    --spica-gold-soft: #F8DDA1;
    --spica-cream: #FFF8E7;
    --spica-text: #4A3A50;
    --spica-text-soft: #7A6B82;
    --spica-go: #FF6B8A;
    --spica-prep: #F0C674;
    --spica-wait: #B5A3D1;
    --spica-border: #F5DDE6;
    --spica-shadow-soft: 0 2px 8px rgba(255, 139, 170, 0.12);

    /* members.css の calendar 用 CSS変数を上書き */
    --color-go: #FF6B8A;
    --color-prepare: #B5A3D1;
    --color-wait: #B5A3D1;
    --color-today-border: #F0C674;
    --color-today-bg: linear-gradient(180deg, #FFF8DC 0%, #FFE7C7 100%);
    --color-dice-dot: #FF6B8A;
}

/* ============================================================
 * グローバル: フォント・背景
 * ============================================================ */
body {
    font-family: "Zen Maru Gothic", "M PLUS Rounded 1c", "Yu Mincho",
                 "Hiragino Mincho ProN", -apple-system, BlinkMacSystemFont,
                 "Hiragino Sans", "Yu Gothic", sans-serif;
    /* 修正4: 案v4 のキラキラ星パターン背景 */
    background-color: #FFF4F7;
    background-image:
        url('/brands/spica/skin/icons/bg_main_pattern.png'),
        radial-gradient(circle at 100% 0%, rgba(255, 182, 200, 0.32) 0%, rgba(255, 182, 200, 0) 36%),
        radial-gradient(circle at 0% 30%, rgba(200, 182, 224, 0.28) 0%, rgba(200, 182, 224, 0) 38%),
        linear-gradient(180deg, #FFF4F7 0%, #FFE9F0 100%);
    background-size: cover, auto, auto, auto;
    background-position: center top;
    background-repeat: no-repeat;
    background-attachment: fixed;
    color: var(--spica-text);
}

.members-shell {
    max-width: 480px;
    padding: 16px 12px 32px;
    /* 案v4 のキラキラを透かすためにシェル背景を半透明に */
    background: rgba(255, 244, 247, 0.86);
    border-radius: 0;
    box-shadow: 0 0 24px rgba(255, 139, 170, 0.10);
    position: relative;
    overflow-x: hidden;
}

/* スピカ装飾円（背景） */
.members-shell::before {
    content: "";
    position: absolute;
    top: -60px; right: -60px;
    width: 200px; height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 182, 200, 0.4) 0%, rgba(255, 182, 200, 0) 70%);
    pointer-events: none;
    z-index: 0;
}
.members-shell::after {
    content: "";
    position: absolute;
    top: 480px; left: -80px;
    width: 240px; height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(200, 182, 224, 0.35) 0%, rgba(200, 182, 224, 0) 70%);
    pointer-events: none;
    z-index: 0;
}
.members-shell > * { position: relative; z-index: 1; }

/* ============================================================
 * ヘッダー（ロゴ + ログアウト + メニュー）
 * ============================================================ */
.members-header {
    border-bottom: none;
    padding: 6px 4px 10px;
}

/* カレンダーページではページ独自のヘッダー (.members-calendar-header) を使うので
 * layout.php の共通ヘッダーを非表示にする (案v4 に合わせて) */
.members-shell:has(.members-calendar-page) .members-header {
    display: none;
}

.members-brand img {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: none;
    box-shadow: var(--spica-shadow-soft);
}

.members-brand-name {
    font-family: "Shippori Mincho B1", serif;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: 0.04em;
    color: var(--spica-text);
}

.members-logout button,
.members-top-nav a,
.members-mobile-menu summary {
    font-family: inherit;
}

.members-logout button {
    background: #fff;
    border: 1px solid var(--spica-border);
    border-radius: 12px;
    color: var(--spica-text-soft);
    box-shadow: var(--spica-shadow-soft);
}

/* ============================================================
 * カレンダーページ全体
 * ============================================================ */
.members-calendar-page {
    gap: 10px;
}

/* ヘッダー（タイトルブロック）— 修正8: 星アイコン + 太字タイトル + ベル */
.members-calendar-header {
    border: 1px solid var(--spica-pink-light);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff 0%, #FFF6F9 100%);
    padding: 14px 18px 14px;
    box-shadow: var(--spica-shadow-soft);
    position: relative;
}
.members-calendar-header .spica-eyebrow {
    /* 案v4 では eyebrow なし。視覚的に消すが DOM は残す（互換のため） */
    display: none;
}
.members-calendar-header .spica-header-titlebar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 30px; /* ベル分の余白を確保 */
}
.members-calendar-header .spica-header-titlebar::before {
    content: "✨";
    font-size: 18px;
    line-height: 1;
    color: var(--spica-pink-deep);
}
.members-calendar-header h1 {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    line-height: 1.4;
    color: var(--spica-text);
    letter-spacing: 0.06em;
    font-weight: 700;
    margin: 0;
    text-align: center;
}
.members-calendar-header p {
    /* 案v4 ではヘッダー内に説明文なし。視覚的に消す（DOM 残す） */
    display: none;
}

/* 修正5: 通知ベル + バッジ（ヘッダー右上 absolute） */
.spica-bell {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--spica-pink-light);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
    color: var(--spica-pink-deep);
    box-shadow: var(--spica-shadow-soft);
    cursor: pointer;
    padding: 0;
}
.spica-bell:hover { transform: translateY(-50%) scale(1.05); }
.spica-bell-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: #FF4D6B;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: 0 1px 3px rgba(255, 77, 107, 0.45);
}

/* ============================================================
 * 修正2: ステータスチップ4つ（ヘッダー直下）
 * ============================================================ */
.spica-status-chips {
    list-style: none;
    margin: 0 0 4px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.spica-status-chips > li {
    background: linear-gradient(180deg, #fff 0%, #FFF1F6 100%);
    border: 1px solid var(--spica-pink-light);
    border-radius: 14px;
    padding: 8px 4px 7px;
    text-align: center;
    box-shadow: var(--spica-shadow-soft);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 64px;
}
.spica-status-chip-icon {
    font-size: 18px;
    line-height: 1;
    color: var(--spica-pink-deep);
}
.spica-status-chip-icon img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    display: block;
}
.spica-status-chip-label {
    font-size: 10px;
    color: var(--spica-text-soft);
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.2;
}
.spica-status-chip-value {
    font-family: "Shippori Mincho B1", serif;
    font-size: 12px;
    font-weight: 700;
    color: var(--spica-text);
    line-height: 1.2;
}
.spica-status-chip-value.is-pink {
    color: var(--spica-pink-deep);
}

/* ============================================================
 * 修正6: タイトル帯「今日からはじまる30日間の恋愛カレンダー」
 * ============================================================ */
.spica-section-title {
    margin: 6px -4px 6px;
    padding: 9px 14px 9px 16px;
    background: linear-gradient(90deg, #FFE5EE 0%, #FFD7E2 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    box-shadow: var(--spica-shadow-soft);
    border: 1px solid #FFCBDA;
    position: relative;
}
.spica-section-title::before {
    content: "♥";
    color: #FF6B8A;
    font-size: 13px;
    line-height: 1;
    margin-right: 4px;
}
.spica-section-title h2 {
    font-family: "Shippori Mincho B1", serif;
    font-size: 12.5px;
    font-weight: 700;
    color: #B33B65;
    margin: 0;
    letter-spacing: 0.02em;
    line-height: 1.35;
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.spica-update-note {
    margin: 8px 0 0;
    text-align: center;
    font-size: 11px;
    color: var(--spica-text-soft);
    letter-spacing: 0.04em;
    line-height: 1.5;
}
.spica-update-note::before { content: "♥ "; color: var(--spica-pink-deep); }

.spica-help-btn {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid #FFB6C8;
    background: #fff;
    color: var(--spica-pink-deep);
    font-weight: 700;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ============================================================
 * スピカナビ4ボタン
 * ============================================================ */
.spica-nav-buttons {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    padding: 0;
    margin: 4px 0 6px;
}
.spica-nav-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: linear-gradient(180deg, #fff 0%, var(--spica-pink-light) 100%);
    border: 1px solid var(--spica-border);
    border-radius: 14px;
    padding: 10px 4px 8px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: var(--spica-text);
    text-decoration: none;
    box-shadow: var(--spica-shadow-soft);
    transition: transform 0.2s ease;
    line-height: 1.3;
}
.spica-nav-btn:hover { transform: translateY(-1px); }
.spica-nav-btn:active { transform: scale(0.96); }
.spica-nav-btn img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    display: block;
}
.spica-nav-btn.is-primary {
    background: linear-gradient(180deg, var(--spica-pink) 0%, var(--spica-pink-deep) 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 3px 10px rgba(255, 139, 170, 0.32);
}

/* ============================================================
 * 月コントロール（前月／次月ボタン + 月ラベル）
 * ============================================================ */
.members-calendar-board {
    background: linear-gradient(180deg, #fff 0%, #FFF8FB 100%);
    border: 1px solid var(--spica-pink-light);
    border-radius: 18px;
    padding: 14px 12px 16px;
    box-shadow: var(--spica-shadow-soft);
}

.members-calendar-controls {
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    margin-bottom: 4px;
}

.members-calendar-nav-btn {
    min-height: 36px;
    border-radius: 12px;
    border: 1px solid var(--spica-pink-light);
    background: #fff;
    color: var(--spica-pink-deep);
    font-size: 13px;
    font-weight: 700;
    padding: 6px 12px;
    box-shadow: var(--spica-shadow-soft);
}
.members-calendar-nav-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.members-calendar-month-label {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-align: center;
    color: var(--spica-text);
}

.members-calendar-swipe-help {
    font-size: 11px;
    color: var(--spica-text-soft);
    margin: 6px 0 8px;
    text-align: center;
    line-height: 1.5;
}

/* ============================================================
 * 凡例（既存 + 拡張）
 * ============================================================ */
.members-calendar-legend {
    margin: 6px -12px 8px;
    padding: 10px 12px;
    background: var(--spica-bg-soft);
    border-top: 1px solid var(--spica-border);
    border-bottom: 1px solid var(--spica-border);
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    font-size: 11px;
}
.members-calendar-legend li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--spica-text);
}
.members-calendar-legend-dot {
    width: 14px;
    height: 14px;
    border-radius: 4px;
    border: none;
}
.members-calendar-legend-dot.members-calendar-status-go    { background: var(--spica-go); }
.members-calendar-legend-dot.members-calendar-status-prepare { background: var(--spica-prep); }
.members-calendar-legend-dot.members-calendar-status-wait  { background: var(--spica-wait); }

/* ============================================================
 * 曜日ヘッダ
 * ============================================================ */
.members-calendar-weekdays {
    margin: 4px -12px 0;
    padding: 0;
    background: var(--spica-bg-soft);
    border-top: 1px solid var(--spica-border);
    border-bottom: 1px solid var(--spica-border);
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    font-size: 10px;
    font-weight: 700;
    color: var(--spica-text-soft);
    letter-spacing: 0.04em;
}
.members-calendar-weekdays span {
    background: var(--spica-bg-soft);
    text-align: center;
    padding: 6px 0;
}
/* 日曜・土曜の色分け（CSS擬似クラスでは対応難しいので nth-child） */
.members-calendar-weekdays span:nth-child(1) { color: #E36B85; }
.members-calendar-weekdays span:nth-child(7) { color: #7A8FD1; }

/* ============================================================
 * カレンダー本体グリッド (★最重要 7列幅いっぱい・余白なし)
 * ============================================================ */
.members-calendar-grid {
    margin: 0 -12px;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--spica-border);
    border-bottom: 1px solid var(--spica-border);
    padding: 0;
}

.members-calendar-cell {
    min-height: 76px;
    border-radius: 0;
    border: none;
    background: #fff;
    color: var(--spica-text);
    padding: 3px 3px 4px;
    font-family: inherit;
    font-size: 9.5px;
    line-height: 1.2;
    gap: 2px;
    position: relative;
    overflow: hidden;
}

.members-calendar-cell-top {
    gap: 2px;
}
.members-calendar-day-number {
    font-weight: 700;
    font-size: 12px;
    color: var(--spica-text);
    letter-spacing: -0.02em;
}

/* 月相 / マーカー（ダイス記録あり・予報あり） */
.members-calendar-marker-wrap {
    gap: 2px;
    min-height: 14px;
}
.members-calendar-dice-dot {
    width: 14px;
    height: 14px;
    border-radius: 0;
    background:
        url('/brands/spica/skin/icons/icon_dice_history.png') center / contain no-repeat;
}
.members-calendar-forecast-marker {
    min-width: 14px;
    min-height: 14px;
    border: none;
    background: var(--spica-pink-light);
    color: var(--spica-pink-deep);
    font-size: 10px;
    border-radius: 4px;
    padding: 0 2px;
}

/* スコア表示 */
.members-calendar-cell-score {
    font-size: 10px;
    color: var(--spica-gold);
    letter-spacing: -1px;
    line-height: 1;
    margin: 0;
    font-weight: 700;
}

/* スコアバー（A 案配色のグラデ。0〜100%） */
.spica-cell-bar {
    display: block;
    height: 3px;
    width: 100%;
    background: var(--spica-pink-light);
    border-radius: 2px;
    overflow: hidden;
}
.spica-cell-bar > span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--spica-pink) 0%, var(--spica-pink-deep) 100%);
    border-radius: 2px;
}

/* 修正3: GO / 準備 / WAIT ステータスピルを badge_*.png 画像で置き換え
 *  JS が書く textContent("GO" / "準備" / "WAIT") は color:transparent + text-indent で隠す
 *  背景画像で各ステータスのバッジを表示 */
.members-calendar-status-pill {
    display: block;
    width: 32px;
    height: 16px;
    min-height: 16px;
    margin: 0 auto;
    padding: 0;
    border: none;
    border-radius: 4px;
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    color: transparent;
    text-indent: -9999px;
    overflow: hidden;
    line-height: 0;
    font-size: 0;
    letter-spacing: 0;
}
.members-calendar-status-pill.members-calendar-status-go {
    background-image: url('/brands/spica/skin/icons/badge_go.png');
}
.members-calendar-status-pill.members-calendar-status-prepare {
    background-image: url('/brands/spica/skin/icons/badge_prep.png');
}
.members-calendar-status-pill.members-calendar-status-wait {
    background-image: url('/brands/spica/skin/icons/badge_wait.png');
}

/* セル日付ラベル（短縮文字列） */
.members-calendar-cell-label {
    font-size: 9.5px;
    color: var(--spica-text);
    line-height: 1.2;
    margin-top: auto;
    padding: 0 1px;
    letter-spacing: -0.02em;
    font-weight: 500;
}

/* セル背景: GO / 準備 / WAIT それぞれ淡色トーン */
.members-calendar-cell.members-calendar-status-go {
    background: linear-gradient(180deg, #FFF1F4 0%, #FFE5EC 100%);
    border-color: transparent;
}
.members-calendar-cell.members-calendar-status-prepare {
    background: linear-gradient(180deg, #FFFAEC 0%, #FFF2D1 100%);
    border-color: transparent;
}
.members-calendar-cell.members-calendar-status-wait {
    background: linear-gradient(180deg, #F5EFFC 0%, #ECE2F8 100%);
    border-color: transparent;
}

/* 当日セル */
.members-calendar-cell.is-today {
    background: linear-gradient(180deg, #FFF8DC 0%, #FFE7C7 100%);
    box-shadow: inset 0 0 0 2px var(--spica-gold);
    z-index: 1;
}
.members-calendar-cell.is-today .members-calendar-day-number {
    color: #C77A1A;
}

/* 過去セル */
.members-calendar-cell.is-past {
    background: #FAF6F8;
    opacity: 0.78;
}
.members-calendar-cell.is-past .members-calendar-day-number {
    color: var(--spica-text-soft);
}

/* 月外セル */
.members-calendar-cell.is-outside-month {
    opacity: 0.40;
    background: #FAF6F8;
}

/* 未来30日以降のロックセル */
.members-calendar-cell.is-future-locked,
.members-calendar-cell.is-future-locked:disabled {
    opacity: 0.32;
    background: #F5F1F3;
    color: var(--spica-text-soft);
    filter: grayscale(0.6);
    cursor: not-allowed;
    border: none;
}

/* スケルトン */
.members-calendar-cell-skeleton {
    border: none;
    background:
        linear-gradient(90deg, #FFF4F7 0%, #FFEAF1 45%, #FFF4F7 100%);
    background-size: 200% 100%;
    animation: members-calendar-shimmer 1.1s infinite linear;
}
@keyframes members-calendar-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* フォーカスリング */
.members-calendar-cell:focus-visible,
.members-calendar-nav-btn:focus-visible,
.members-calendar-modal-close:focus-visible,
.members-calendar-detail-dice-button:focus-visible,
.spica-nav-btn:focus-visible {
    outline: 3px solid var(--spica-pink-deep);
    outline-offset: 2px;
}

/* ============================================================
 * モーダル（日別詳細）
 * ============================================================ */
.members-calendar-modal-backdrop {
    background: rgba(74, 58, 80, 0.55);
}

.members-calendar-modal-panel {
    background: linear-gradient(180deg, #fff 0%, #FFF6F9 100%);
    border: 1px solid var(--spica-pink-light);
    border-radius: 18px;
    box-shadow: 0 24px 48px rgba(255, 139, 170, 0.32);
}

.members-calendar-modal-header {
    border-bottom: 1px solid var(--spica-border);
    background: linear-gradient(180deg, #FFEDF3 0%, #fff 100%);
    border-radius: 18px 18px 0 0;
}
.members-calendar-modal-header h2 {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--spica-text);
    letter-spacing: 0.04em;
}
.members-calendar-modal-close {
    border: 1px solid var(--spica-pink-light);
    border-radius: 12px;
    background: #fff;
    color: var(--spica-pink-deep);
    box-shadow: var(--spica-shadow-soft);
}

/* 詳細本文 */
.members-calendar-detail-body {
    padding: 14px;
}
.members-calendar-detail-heading {
    font-family: "Shippori Mincho B1", serif;
    font-size: 18px;
    color: var(--spica-text);
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.6;
    margin: 0;
}
.members-calendar-detail-score {
    margin: 8px 0 0;
    font-size: 14px;
    color: var(--spica-gold);
    font-weight: 700;
    letter-spacing: 0.06em;
}
.members-calendar-detail-day-note {
    margin: 8px 0 0;
    font-size: 12px;
    color: var(--spica-text-soft);
    line-height: 1.6;
}

.members-calendar-detail-main {
    margin-top: 14px;
    border: 1px solid var(--spica-pink-light);
    background: #fff;
    border-radius: 14px;
    padding: 12px 14px;
}
.members-calendar-detail-main p {
    font-size: 13px;
    line-height: 1.85;
    color: var(--spica-text);
}

.members-calendar-detail-separator {
    border-top: 1px dashed var(--spica-pink-light);
    margin: 16px 0;
}

.members-calendar-detail-block {
    border: 1px solid var(--spica-pink-light);
    background: linear-gradient(180deg, #fff 0%, #FFFBFD 100%);
    border-radius: 14px;
    padding: 12px 14px;
}
.members-calendar-detail-block h3 {
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    color: var(--spica-pink-deep);
    font-weight: 700;
    letter-spacing: 0.06em;
}
.members-calendar-detail-block p {
    font-size: 13px;
    line-height: 1.75;
    color: var(--spica-text);
}
.members-calendar-detail-closing {
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.85;
    color: var(--spica-text);
    font-weight: 700;
    text-align: center;
    padding: 0 8px;
}

/* CTA: ダイスボタン */
.members-calendar-detail-dice-cta,
.members-calendar-detail-dice-logs {
    margin-top: 14px;
    border: 1px solid var(--spica-pink-light);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, #FFF6F9 100%);
    padding: 12px 14px;
}

.members-calendar-detail-dice-remaining {
    font-size: 13px;
    color: var(--spica-text);
    font-weight: 700;
    letter-spacing: 0.04em;
    margin: 0 0 10px;
    text-align: center;
}

.members-calendar-detail-dice-button {
    margin-top: 0;
    min-height: 48px;
    border: none;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--spica-pink) 0%, var(--spica-pink-deep) 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.06em;
    box-shadow: 0 4px 12px rgba(255, 139, 170, 0.35);
    font-family: inherit;
}
.members-calendar-detail-dice-button::before {
    content: "🎲 ";
    margin-right: 4px;
}
.members-calendar-detail-dice-button:active {
    transform: translateY(1px);
}

/* 詳細モーダル: 未来日ティーザー */
.members-calendar-detail-future-teaser {
    margin-top: 14px;
    border: 1px dashed var(--spica-pink-light);
    border-radius: 14px;
    padding: 12px 14px;
    background: #FFFBFD;
}
.members-calendar-detail-future-teaser h3 {
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    color: var(--spica-text-soft);
    font-weight: 700;
    margin: 0 0 4px;
}
.members-calendar-detail-future-teaser p {
    font-size: 12px;
    color: var(--spica-text-soft);
    line-height: 1.7;
    margin: 0;
}

/* 詳細モーダル: ダイス履歴 */
.members-calendar-detail-dice-logs h3 {
    font-family: "Shippori Mincho B1", serif;
    font-size: 14px;
    color: var(--spica-pink-deep);
    font-weight: 700;
    letter-spacing: 0.06em;
    margin: 0;
}
.members-calendar-detail-dice-log-item {
    border: 1px solid var(--spica-border);
    background: #fff;
    border-radius: 12px;
    padding: 10px 12px;
}
.members-calendar-detail-dice-log-item p {
    font-size: 12px;
    line-height: 1.7;
    color: var(--spica-text);
}
.members-calendar-detail-dice-log-item strong {
    color: var(--spica-pink-deep);
}

.members-calendar-detail-dice-empty {
    color: var(--spica-text-soft);
    font-size: 12px;
    text-align: center;
}

.members-calendar-detail-error {
    border: 1px solid #E89BAA;
    background: #FFF0F4;
    color: #B33B58;
    border-radius: 10px;
    font-size: 12px;
}

/* ============================================================
 * 修正1: 当日詳細カード（カレンダー直下に固定）
 * ============================================================ */
.spica-today-card {
    margin: 10px 0 6px;
    border: 1px solid var(--spica-pink-light);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff 0%, #FFF6F9 100%);
    padding: 14px 14px 14px;
    box-shadow: var(--spica-shadow-soft);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.spica-today-card-row {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 12px;
    align-items: stretch;
}
.spica-today-card-image {
    background: linear-gradient(180deg, #FFF1F6 0%, #FFE0EC 100%);
    border-radius: 14px;
    border: 1px solid var(--spica-pink-light);
    padding: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 110px;
}
.spica-today-card-image img {
    width: 100%;
    height: auto;
    max-height: 100px;
    object-fit: contain;
    display: block;
}
.spica-today-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.spica-today-card-stars {
    color: #F7B500;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.04em;
}
.spica-today-card-stars-empty {
    color: #E5D9F2;
}
.spica-today-card-date {
    font-size: 11px;
    color: var(--spica-text-soft);
    font-weight: 500;
    letter-spacing: 0.02em;
    margin: 0;
}
.spica-today-card-title {
    font-family: "Shippori Mincho B1", serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--spica-pink-deep);
    margin: 0;
    line-height: 1.4;
    letter-spacing: 0.04em;
}
.spica-today-card-text {
    font-size: 12px;
    line-height: 1.7;
    color: var(--spica-text);
    margin: 0;
}
.spica-today-card-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--spica-pink) 0%, var(--spica-pink-deep) 100%);
    color: #fff;
    font-family: "Shippori Mincho B1", serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(255, 139, 170, 0.35);
    border: none;
    cursor: pointer;
}
.spica-today-card-cta:active { transform: translateY(1px); }
.spica-today-card-cta::before {
    content: "🎲";
    font-size: 18px;
    line-height: 1;
}

/* ============================================================
 * 修正7: 拡張凡例（アイコンの意味コーナー）
 * ============================================================ */
.spica-legend-extended {
    margin: 10px 0 0;
    padding: 12px 14px;
    background: linear-gradient(180deg, #fff 0%, #FFF6F9 100%);
    border: 1px solid var(--spica-pink-light);
    border-radius: 18px;
    box-shadow: var(--spica-shadow-soft);
}
.spica-legend-extended-title {
    font-family: "Shippori Mincho B1", serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--spica-pink-deep);
    letter-spacing: 0.06em;
    margin: 0 0 8px;
    padding-bottom: 6px;
    border-bottom: 1px dashed var(--spica-pink-light);
    display: flex;
    align-items: center;
    gap: 6px;
}
.spica-legend-extended-title::before {
    content: "📖";
    font-size: 14px;
    line-height: 1;
}
.spica-legend-extended-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 10px;
}
.spica-legend-extended-list > li {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--spica-text);
    line-height: 1.3;
}
.spica-legend-icon {
    width: 22px;
    height: 16px;
    flex-shrink: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    display: inline-block;
}
.spica-legend-icon.is-go {
    background-image: url('/brands/spica/skin/icons/badge_go.png');
}
.spica-legend-icon.is-prep {
    background-image: url('/brands/spica/skin/icons/badge_prep.png');
}
.spica-legend-icon.is-wait {
    background-image: url('/brands/spica/skin/icons/badge_wait.png');
}
.spica-legend-icon.is-heart {
    background-image: url('/brands/spica/skin/icons/icon_heart_couple_day.png');
    width: 18px;
    height: 18px;
}
.spica-legend-icon.is-chance {
    background-image: url('/brands/spica/skin/icons/icon_chance_alert.png');
    width: 18px;
    height: 18px;
}
.spica-legend-icon.is-dice {
    background-image: url('/brands/spica/skin/icons/icon_dice_history.png');
    width: 18px;
    height: 18px;
}
/* moon_phase_set.png は8相が横並びの画像 (new→waxing crescent→first quarter→waxing gibbous→full→waning gibbous→last quarter→waning crescent) */
.spica-legend-icon.is-moon-new {
    background-image: url('/brands/spica/skin/icons/moon_phase_set.png');
    background-size: 800% 100%;
    background-position: 0% center; /* 1番目 = 新月 */
    width: 18px;
    height: 18px;
}
.spica-legend-icon.is-moon-full {
    background-image: url('/brands/spica/skin/icons/moon_phase_set.png');
    background-size: 800% 100%;
    background-position: 57.14% center; /* 5番目 = 満月 */
    width: 18px;
    height: 18px;
}
.spica-legend-icon.is-moon-half {
    background-image: url('/brands/spica/skin/icons/moon_phase_set.png');
    background-size: 800% 100%;
    background-position: 28.57% center; /* 3番目 = 上弦 */
    width: 18px;
    height: 18px;
}

/* ============================================================
 * フッタービルド情報（薄く）
 * ============================================================ */
.members-footer-build {
    color: var(--spica-text-soft) !important;
    opacity: 0.6;
}

/* ============================================================
 * 月ナビ要素の非表示
 * 30日ローリング先行表示コンセプトと矛盾するため、
 * 「前月/次月」ボタン・月ラベル・スワイプヘルプを CSS で非表示にする。
 * HTML / JS には触らず、要素は DOM に残す（JS の getElement* が壊れない）。
 * ============================================================ */
.members-calendar-controls,
.members-calendar-swipe-help {
    display: none !important;
}
