/* SMD Dashboard — smd-dashboard.css v2.1 */

.smd-dashboard {
    max-width: 860px;
    margin: 0 auto;
    padding: 8px 0 40px;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Meiryo", sans-serif;
    color: #1a1a2e;
    line-height: 1.7;
}
.smd-section {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0,0,0,.07);
    padding: 24px 28px;
    margin-bottom: 24px;
}
.smd-section__title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 18px;
    padding-bottom: 10px;
    border-bottom: 2px solid #f0f0f5;
    color: #222;
}
.smd-section__subtitle { font-size:1rem; font-weight:700; margin:20px 0 10px; color:#444; }
.smd-table { width:100%; border-collapse:collapse; font-size:.9rem; }
.smd-table th, .smd-table td { padding:8px 12px; border-bottom:1px solid #eee; text-align:left; vertical-align:top; }
.smd-table th { background:#f7f8fa; font-weight:600; white-space:nowrap; }
.smd-badge { display:inline-block; padding:2px 10px; border-radius:999px; font-size:.78rem; font-weight:700; }
.smd-badge--level  { background:#e8f0fe; color:#3c5fcc; }
.smd-badge--active { background:#e6f4ea; color:#2e7d32; }
.smd-badge--done   { background:#f0f0f0; color:#777; }
.smd-badge--type   { background:#fff3e0; color:#e65100; }
.smd-login-notice  { padding:20px; background:#fff8e1; border-left:4px solid #ffc107; border-radius:6px; }
.smd-notice-card   { padding:14px 16px; background:#f0f7ff; border-left:4px solid #4f8cff; border-radius:6px; margin-bottom:12px; }
.smd-notice-card__body { margin-top:6px; font-size:.9rem; }
.smd-info-grid { display:grid; grid-template-columns:auto 1fr; gap:6px 20px; margin:0; }
.smd-info-grid dt { font-weight:600; color:#666; white-space:nowrap; }
.smd-empty, .smd-no-logs, .smd-no-plan { color:#999; font-size:.9rem; padding:8px 0; }

/* 次回予約 */
.smd-next-session {
    display:flex; align-items:center; gap:12px; flex-wrap:wrap;
    padding:14px 18px; border-radius:10px;
    background:linear-gradient(135deg,#e3f2fd 0%,#e8eaf6 100%);
    border:1px solid #bbdefb; margin-bottom:20px;
}
.smd-next-session--none { background:#fafafa; border-color:#e0e0e0; color:#9e9e9e; font-size:.9rem; }
.smd-next-session__badge { background:#1565c0; color:#fff; font-size:.72rem; font-weight:700; padding:2px 10px; border-radius:999px; white-space:nowrap; }
.smd-next-session__date  { font-size:1.1rem; font-weight:700; color:#1a237e; }
.smd-next-session__time  { font-size:1rem; font-weight:600; color:#283593; background:rgba(255,255,255,.6); padding:1px 10px; border-radius:6px; }
.smd-next-session__type  { font-size:.82rem; color:#5c6bc0; background:rgba(255,255,255,.5); padding:1px 8px; border-radius:999px; border:1px solid #9fa8da; }

/* プランサマリー */
.smd-plan-summary    { margin-bottom:20px; }
.smd-plan-card       { background:#f9fafb; border:1px solid #e0e0e0; border-radius:10px; padding:16px 20px; margin-bottom:12px; }
.smd-plan-card--active { background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 100%); border-color:#a7f3d0; }
.smd-plan-card__label { font-size:.74rem; font-weight:700; color:#2e7d32; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.smd-plan-card__name  { font-size:1.05rem; font-weight:700; color:#1b5e20; margin-bottom:8px; }
.smd-plan-card__progress { display:flex; align-items:baseline; gap:2px; margin-bottom:8px; }
.smd-plan-card__used  { font-size:2rem; font-weight:800; color:#2e7d32; line-height:1; }
.smd-plan-card__sep   { font-size:1.3rem; color:#888; }
.smd-plan-card__total { font-size:1.3rem; color:#555; }
.smd-plan-card__unit  { font-size:.9rem; color:#777; margin-left:4px; }
.smd-plan-card__bar-wrap { background:#d1fae5; border-radius:999px; height:8px; margin-bottom:8px; overflow:hidden; }
.smd-plan-card__bar   { height:100%; background:linear-gradient(90deg,#34d399,#10b981); border-radius:999px; min-width:4px; }
.smd-plan-card__expire { font-size:.82rem; color:#6b7280; }
.smd-plan-history summary { cursor:pointer; color:#555; padding:4px 0; font-size:.88rem; }
.smd-plan-history__table  { margin-top:8px; }

/* 申込ボタン */
.smd-apply-area      { margin-bottom:24px; }
.smd-apply-area__lead { font-size:.88rem; color:#666; margin-bottom:10px; }
.smd-apply-area__buttons { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.smd-btn {
    display:inline-flex; align-items:center; gap:6px;
    padding:11px 22px; border-radius:8px; font-size:.93rem; font-weight:700;
    border:none; cursor:pointer; text-decoration:none;
    transition:filter .18s ease, transform .1s ease; white-space:nowrap;
}
.smd-btn:hover  { filter:brightness(1.07); text-decoration:none; }
.smd-btn:active { transform:scale(.97); }
.smd-btn--stripe  { background:linear-gradient(135deg,#635bff 0%,#4f46e5 100%); color:#fff; }
.smd-btn--bank    { background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%); color:#fff; }
.smd-btn--primary { background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%); color:#fff; }
.smd-btn--danger  { background:#fff; color:#dc2626; border:2px solid #fecaca; }
.smd-btn--danger:hover { background:#fef2f2; }

/* 銀行振込フォーム */
.smd-bank-form { background:#fffbeb; border:1px solid #fde68a; border-radius:10px; padding:20px 24px; margin-top:4px; }
.smd-bank-form__info h4 { margin:0 0 8px; font-size:.9rem; font-weight:700; color:#92400e; }
.smd-bank-form__info pre { background:#fff; border:1px solid #fde68a; border-radius:6px; padding:12px 16px; font-size:.88rem; white-space:pre-wrap; word-break:break-all; margin:0; }
.smd-bank-form__fields label { display:block; font-size:.88rem; font-weight:600; color:#555; margin-bottom:14px; }
.smd-bank-form__fields label select,
.smd-bank-form__fields label textarea { display:block; width:100%; margin-top:4px; padding:8px 12px; border:1px solid #d1d5db; border-radius:6px; font-size:.92rem; background:#fff; box-sizing:border-box; }
.smd-bank-form__note   { font-size:.8rem; color:#78716c; margin-top:10px; line-height:1.6; }
.smd-bank-form__result { margin-top:14px; padding:12px 16px; border-radius:7px; font-size:.9rem; font-weight:600; }
.smd-bank-form__result--success { background:#d1fae5; color:#065f46; border:1px solid #a7f3d0; }
.smd-bank-form__result--error   { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }

/* セッションログ */
.smd-session-logs__list { display:flex; flex-direction:column; gap:14px; }
.smd-log-card { border:1px solid #e5e7eb; border-radius:10px; padding:16px 20px; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.05); }
.smd-log-card__header { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.smd-log-card__date   { font-weight:700; font-size:.95rem; color:#1e3a5f; }
.smd-log-card__plan   { font-size:.78rem; color:#888; margin-left:auto; }
.smd-log-card__summary, .smd-log-card__homework { font-size:.88rem; color:#444; margin-bottom:8px; }
.smd-log-card__summary strong, .smd-log-card__homework strong { display:block; font-weight:700; color:#333; margin-bottom:3px; }
.smd-log-card__homework { background:#fffbeb; border-left:3px solid #fbbf24; padding:8px 12px; border-radius:0 6px 6px 0; }
.smd-log-card__next { font-size:.82rem; color:#1565c0; background:#e3f2fd; padding:4px 10px; border-radius:5px; display:inline-block; margin-top:4px; }

/* 解約・レーダー */
.smd-section--cancel { border:1px solid #fee2e2; }
.smd-cancel__lead    { font-size:.88rem; color:#666; margin-bottom:14px; }
.smd-cancel__form label { display:block; font-size:.88rem; font-weight:600; color:#555; margin-bottom:6px; }
.smd-cancel__form textarea { width:100%; padding:8px 12px; border:1px solid #fca5a5; border-radius:6px; font-size:.9rem; box-sizing:border-box; margin-bottom:12px; }
.smd-radar-wrap { max-width:320px; margin:0 auto 12px; }
.smd-radar__tested { text-align:center; font-size:.82rem; color:#999; }

@media (max-width:600px) {
    .smd-section { padding:18px 16px; }
    .smd-apply-area__buttons { flex-direction:column; }
    .smd-btn { width:100%; justify-content:center; }
    .smd-info-grid { grid-template-columns:1fr; }
    .smd-plan-card__used { font-size:1.6rem; }
}

/* =========================================================
   v2.3 追加 — 講座購入確認セクション
   ========================================================= */
.smd-course-list { margin-bottom: 20px; }
.smd-course-list__lead { font-size: .88rem; color: #555; margin-bottom: 12px; }

.smd-course-card {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 12px;
    background: #fff;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}
.smd-course-card--owned {
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
    border-color: #a7f3d0;
}
.smd-course-card__info   { flex: 1; min-width: 0; }
.smd-course-card__name   { display: block; font-weight: 700; font-size: 1rem; color: #1a1a2e; margin-bottom: 4px; }
.smd-course-card__desc   { display: block; font-size: .84rem; color: #777; }

.smd-badge--pending { background: #fff3e0; color: #e65100; }

.smd-course-apply-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 220px;
}
.smd-course-pw,
.smd-course-note {
    padding: 7px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: .88rem;
    width: 100%;
    box-sizing: border-box;
}
.smd-course-apply-result {
    font-size: .85rem;
    font-weight: 600;
    padding: 8px 12px;
    border-radius: 6px;
    margin-top: 4px;
}
.smd-course-apply-result--success { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
.smd-course-apply-result--error   { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }

.smd-btn--watch { background: linear-gradient(135deg,#059669 0%,#047857 100%); color:#fff; padding:8px 18px; font-size:.88rem; }
.smd-btn--apply { background: linear-gradient(135deg,#7c3aed 0%,#6d28d9 100%); color:#fff; padding:9px 18px; font-size:.88rem; }

/* =========================================================
   v2.3 追加 — 動画視聴ログ・完了ボタン
   ========================================================= */
.smd-video-wrap      { margin-bottom: 20px; }
.smd-video-embed     { margin-bottom: 12px; border-radius: 8px; overflow: hidden; }
.smd-video-embed iframe,
.smd-video-embed video { display: block; width: 100%; border-radius: 8px; }
.smd-video-title     { font-weight: 700; color: #1a1a2e; margin-bottom: 8px; }

.smd-video-complete-area { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.smd-video-complete-msg  { font-size: .88rem; font-weight: 600; color: #065f46; background: #d1fae5; padding: 6px 14px; border-radius: 20px; }

.smd-btn--complete { background: linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%); color:#fff; }

.smd-video-manual       { background: #f0f7ff; border: 1px solid #bfdbfe; border-radius: 10px; padding: 16px 20px; margin-bottom: 20px; }
.smd-video-manual__lead { font-size: .88rem; color: #1e40af; margin-bottom: 10px; }
.smd-video-manual__form { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.smd-video-manual__input {
    flex: 1; min-width: 200px; padding: 9px 12px;
    border: 1px solid #93c5fd; border-radius: 7px; font-size: .9rem;
    box-sizing: border-box;
}
.smd-video-manual__input:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,.2); }

@media (max-width: 600px) {
    .smd-course-card    { flex-direction: column; }
    .smd-video-manual__form { flex-direction: column; }
    .smd-btn--complete,
    .smd-btn--apply,
    .smd-btn--watch     { width: 100%; justify-content: center; }
}
