/* 受験計画ページ(宅建・簿記で共通)。色: 紙 #fff / 罫線 #dde3e8 / 墨 #23303b / 藍 #2c4f8f / 蛍光ペン #ffe27a(今日やることだけ) / 達成 #2e7d5b */
.planner-shell { color:#23303b; }
.planner-shell .article-hero h1 { font-size:clamp(1.9rem,4vw,2.9rem); line-height:1.3; letter-spacing:0; word-break:keep-all; overflow-wrap:anywhere; }
.exam-date-box { margin:0 0 28px; padding:16px 20px; border:1px solid #dde3e8; border-left:4px solid #2c4f8f; background:#fff; font-size:.92rem; line-height:1.8; }
.exam-date-box h2 { margin:0 0 6px; font-size:1.02rem; }
.exam-date-box ul { margin:0; padding-left:1.2em; }
.source-line { margin:8px 0 0; color:#51606e; font-size:.78rem; line-height:1.7; }
.planner { margin:0 0 28px; padding:20px; border:1px solid #dde3e8; border-radius:8px; background:#fff; }
.planner h2, .result h2 { margin:0 0 14px; font-size:1.25rem; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; margin-bottom:14px; }
.planner label { display:block; font-size:.86rem; font-weight:700; }
.planner label span { display:block; margin-bottom:5px; }
.planner label em { margin-left:4px; color:#51606e; font-size:.74rem; font-weight:500; font-style:normal; }
.planner input, .planner select { width:100%; padding:10px 12px; border:1px solid #b9c4cf; border-radius:6px; background:#fff; color:#23303b; font:inherit; font-weight:600; font-variant-numeric:tabular-nums; }
.planner input:focus-visible, .planner select:focus-visible, .planner-shell button:focus-visible, .planner-shell a:focus-visible { outline:3px solid #2c4f8f; outline-offset:2px; }
.primary-button { display:block; width:100%; padding:13px 16px; border:0; border-radius:6px; background:#2c4f8f; color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.primary-button:hover { background:#223f73; }
.secondary-button { padding:9px 14px; border:1px solid #2c4f8f; border-radius:6px; background:#fff; color:#2c4f8f; font:inherit; font-weight:700; cursor:pointer; white-space:nowrap; }
.form-note { margin:10px 0 0; color:#51606e; font-size:.78rem; }
.form-error { margin:0 0 12px; color:#a12820; font-size:.86rem; font-weight:700; }
.result { margin:0 0 28px; padding:20px; border:1px solid #dde3e8; border-radius:8px; background:#fff; scroll-margin-top:16px; }
.result h3 { margin:26px 0 10px; font-size:1.08rem; }
.today-box { margin:0 0 16px; padding:16px 18px; border:2px solid #23303b; border-radius:6px; background:#fff; }
.today-label { margin:0 0 6px; font-size:.78rem; font-weight:800; color:#51606e; }
.today-task { display:inline; margin:0; padding:2px 6px; background:#ffe27a; box-decoration-break:clone; -webkit-box-decoration-break:clone; font-size:1.2rem; font-weight:800; line-height:1.9; }
.today-detail { margin:10px 0 0; font-size:.92rem; }
.verdict-box { margin:0 0 16px; padding:14px 16px; border:1px solid #dde3e8; border-left-width:4px; background:#fff; }
.verdict-ok { border-left-color:#2e7d5b; }
.verdict-ng { border-left-color:#a12820; }
.verdict-box strong { display:block; margin-bottom:4px; }
.verdict-box p { margin:0; font-size:.92rem; }
.stat-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 6px; }
.stat { padding:10px 12px; border:1px solid #dde3e8; border-radius:6px; }
.stat span { display:block; color:#51606e; font-size:.74rem; }
.stat strong { display:block; font-size:1.05rem; font-variant-numeric:tabular-nums; }
.share-box { margin:26px 0 0; padding:14px 16px; border:1px solid #dde3e8; border-radius:6px; }
.share-box p { margin:0 0 8px; }
.share-row { display:flex; gap:8px; }
.share-row input { flex:1; min-width:0; padding:9px 10px; border:1px solid #b9c4cf; border-radius:6px; font:inherit; font-size:.82rem; }
.result-note { margin:16px 0 0; color:#51606e; font-size:.8rem; }
.planner-shell .data-table th[scope=row] { width:7.5em; text-align:left; white-space:nowrap; }
.ad-disclosure[hidden], .planner label[hidden], .planner-shell [hidden] { display:none; }
.switch-note { margin:0 0 14px; padding:9px 12px; border:1px solid #e0b866; border-radius:6px; background:#fff8e8; color:#5f4310; font-size:.86rem; font-weight:600; line-height:1.7; }
/* 新デザインへの微調整(site.css と同じ見た目に揃える): 書体、リンク色、角丸(入力欄とボタンだけ)、表、列の幅 */
.planner-shell { font-family:"BIZ UDPGothic","Hiragino Sans","Yu Gothic",sans-serif; font-variant-numeric:tabular-nums; }
.planner-shell a { color:#2c4f8f; }
.planner-shell a:hover { color:#223f73; }
.planner-shell .breadcrumbs a { color:#4a5866; }
.planner-shell .article-layout { display:block; max-width:720px; }
.planner-shell .exam-date-box { max-width:720px; }
.planner-shell .exam-date-box, .planner-shell .planner, .planner-shell .result, .planner-shell .stat, .planner-shell .share-box, .planner-shell .table-wrap, .planner-shell .switch-note { border-radius:0; }
.planner-shell .planner, .planner-shell .result { border-radius:0; }
.planner-shell .table-wrap { border:1px solid #dde3e8; background:#fff; }
.planner-shell table.data-table { width:100%; border-collapse:collapse; font-size:.9rem; }
.planner-shell .data-table th, .planner-shell .data-table td { padding:9px 10px; border:1px solid #dde3e8; text-align:left; vertical-align:top; line-height:1.6; }
.planner-shell .data-table thead th { background:#f4f6f8; color:#23303b; font-weight:700; }
.planner-shell .data-table th[scope=row] { background:#f9fafb; }
.planner-shell #month-table td:nth-child(-n+2), .planner-shell #month-table th:nth-child(-n+2) { white-space:nowrap; }
.planner-shell .scroll-hint { margin:10px 0 -14px; color:#4a5866; font-size:.76rem; }
.planner-shell .data-table th:first-child, .planner-shell .data-table td:first-child { position:sticky; left:0; z-index:1; background:#fff; box-shadow:1px 0 0 #dde3e8; }
.planner-shell .data-table thead th:first-child { background:#f4f6f8; }
.planner-shell .article-body h2 { font-size:1.35rem; letter-spacing:0; line-height:1.4; padding-bottom:8px; border-bottom:1px solid #dde3e8; }
.planner-shell .planner h2, .planner-shell .result h2 { padding-bottom:0; border-bottom:0; }
@media (max-width:640px) { .field-grid { grid-template-columns:1fr; } .stat-row { grid-template-columns:repeat(2,minmax(0,1fr)); } .share-row { flex-direction:column; } .planner, .result { padding:16px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
