/* --- フロントエンドフォーム --- */
#gcp-form-wrapper { max-width: 720px; margin: 20px auto; padding: 25px; border: 1px solid #ddd; border-radius: 5px; background-color: #f9f9f9; }
.gcp-section { border-bottom: 1px dashed #ccc; padding-bottom: 20px; margin-bottom: 20px; }
.gcp-section:last-of-type { border-bottom: none; padding-bottom: 0; }
.gcp-section h3 { margin-top: 0; border-left: 5px solid #4CAF50; padding-left: 10px; }
.gcp-member-section { border: 1px solid #eee; padding: 15px; margin-bottom: 15px; border-radius: 4px; background: #fff; }
.gcp-member-section h4 { margin: 0 0 10px 0; font-size: 1em; }
.gcp-form-field { margin-bottom: 15px; }
.gcp-form-field label { display: block; font-weight: bold; margin-bottom: 5px; }
.gcp-form-field label.gcp-radio { display: inline-block; font-weight: normal; margin-right: 20px; }
.gcp-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.gcp-form-field input[type="text"], .gcp-form-field input[type="email"], .gcp-form-field input[type="tel"], .gcp-form-field input[type="date"], .gcp-form-field textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 3px; box-sizing: border-box; }
.gcp-form-field .gcp-required { color: #d9534f; margin-left: 5px; font-weight: normal; }
.gcp-form-submit input { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; width: 100%; }
.gcp-form-submit input:hover { background-color: #45a049; }
.gcp-notice { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; text-align: center; }
.gcp-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; }
.gcp-error { color: #a94442; background-color: #f2dede; border-color: #ebccd1; }

/* --- 大会選択フォーム --- */
#gcp-form-wrapper .gcp-event-selection-form { text-align: center; }
#gcp-form-wrapper .gcp-event-selection-form h3 { margin-bottom: 20px; }
#gcp-form-wrapper .gcp-event-selection-form select { margin-bottom: 15px; }
.gcp-deadline-notice { color: #a94442; font-weight: bold; margin-top: 10px; height: 1.5em; }

/* --- 公開用 組合せ表 --- */
.gcp-pairings-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin-bottom: 40px; font-size: 14px; }
.gcp-pairings-table th, .gcp-pairings-table td { border: 1px solid #ccc; padding: 10px; text-align: left; vertical-align: top; }
.gcp-pairings-table th { background-color: #f2f2f2; text-align: center; font-size: 1em; }
.gcp-pairings-table td.gcp-group-num, .gcp-pairings-table td.gcp-group-time { text-align: center; font-weight: bold; }
.gcp-pairings-table td.gcp-group-members ul { list-style: none; margin: 0; padding: 0; }
.gcp-pairings-table td.gcp-group-members li { padding: 2px 0; }

/* --- 公開用 詳細情報 --- */
.gcp-event-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    line-height: 1.8;
}
.gcp-detail-block {
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 20px;
}
.gcp-detail-block h3 {
    margin-top: 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    font-size: 1.2em;
}
.gcp-detail-block p {
    margin-bottom: 0;
}