.dc-tabs { margin-bottom: 0; border-bottom: 2px solid #2c3e50; }
.dc-tabs > li > a { color: #2c3e50; font-weight: bold; border-radius: 4px 4px 0 0; font-size: 13px; padding: 8px 14px; }
.dc-tabs > li.active > a,
.dc-tabs > li.active > a:hover,
.dc-tabs > li.active > a:focus { background: #2c3e50; color: #fff; border-color: #2c3e50; }
.dc-tabs > li > a:hover { background: #ecf0f1; }
.dc-tab-content { border: 1px solid #ddd; border-top: none; border-radius: 0 0 4px 4px; padding: 20px; background: #fff; }

.dc-section { margin-bottom: 0; padding: 24px 0; border-bottom: 1px solid #e9ecef; }
.dc-section:first-child { padding-top: 0; }
.dc-section:last-child { border-bottom: none; padding-bottom: 0; }
.dc-section-title { font-weight: bold; font-size: 14px; border-left: 3px solid #2c3e50; padding-left: 8px; margin-bottom: 12px; }
.dc-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.dc-row > label { font-weight: bold; min-width: 100px; font-size: 13px; }
.dc-input-date { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.dc-input-date input[type="number"] { width: 80px; }
.dc-input-date input.dc-month,
.dc-input-date input.dc-day { width: 70px; }
.dc-input-date span { font-size: 13px; }
.dc-input-date select { width: auto; }
.dc-btn-today { font-size: 11px; }
.dc-radio-group { display: flex; gap: 20px; align-items: center; flex-shrink: 0; margin-left: 20px; }
.dc-radio-group label { font-weight: normal; margin: 0; cursor: pointer; font-size: 13px; display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.dc-select-op { width: 80px; flex-shrink: 0; }
.dc-result { margin-top: 14px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 14px; }
.dc-result table { width: 100%; border-collapse: collapse; font-size: 13px; }
.dc-result table th { width: 180px; text-align: left; padding: 5px 8px; color: #555; font-weight: bold; white-space: nowrap; }
.dc-result table td { padding: 5px 8px; font-weight: bold; font-size: 15px; }
.dc-result table tr + tr th,
.dc-result table tr + tr td { border-top: 1px solid #e9ecef; }
.dc-note { font-size: 12px; color: #888; margin-top: 6px; }
.dc-error { color: #e74c3c; font-size: 13px; margin-top: 8px; display: none; }

/* 周期表 */
.dc-cycle-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 10px; }
.dc-cycle-table th { background: #2c3e50; color: #fff; padding: 6px 10px; text-align: left; }
.dc-cycle-table td { padding: 5px 10px; border-bottom: 1px solid #dee2e6; }
.dc-cycle-table tr:nth-child(even) td { background: #f8f9fa; }

/* 和暦・西暦 */
.dc-era-select { width: 110px; }
.dc-era-break { flex-basis: 100%; height: 0; }
.dc-era-year  { width: 65px; }
.dc-arrow { font-size: 20px; color: #2c3e50; margin: 0 6px; }

/* うるう年 */
.dc-leap-result { font-size: 18px; font-weight: bold; margin-top: 10px; }
.dc-leap-yes { color: #27ae60; }
.dc-leap-no  { color: #7f8c8d; }

/* 年齢 */
.dc-age-table td:first-child { color: #555; font-size: 13px; }
.dc-age-val { font-size: 16px !important; }
.dc-birthday-msg { color: #e74c3c; font-weight: bold; font-size: 13px; margin-top: 6px; }

@media (max-width: 767px) {
	.dc-tabs > li > a { font-size: 12px; padding: 6px 8px; }
	.dc-tab-content { padding: 14px; }
	.dc-result table th { width: auto; display: block; padding-bottom: 0; border-top: none; }
	.dc-result table td { display: block; padding-top: 0; }
}
