
.sem-public-wrap{max-width:980px;margin:0 auto;padding:20px 14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#1d2a38}
.sem-public-hero{background:linear-gradient(135deg,#0f3155,#1f4e78);color:#fff;border-radius:18px;padding:28px;margin-bottom:22px}
.sem-public-hero h2{font-size:clamp(28px,5vw,48px);margin:6px 0 20px}
.sem-eyebrow{color:#d9b300;font-weight:700}
.sem-public-hero dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}
.sem-public-hero dl div{background:#ffffff17;border:1px solid #ffffff25;border-radius:12px;padding:12px}
.sem-public-hero dt{font-size:12px;opacity:.8}.sem-public-hero dd{margin:4px 0 0;font-weight:700}
.sem-public-form section{background:#fff;border:1px solid #dfe4ea;border-radius:14px;padding:22px;margin:16px 0;box-shadow:0 3px 12px #0000000a}
.sem-public-form h3{margin:0 0 16px;color:#1f4e78}
.sem-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sem-public-form label span{display:block;font-weight:700;margin-bottom:6px}.sem-public-form em{color:#b42318;font-style:normal;font-size:12px}
.sem-public-form input[type=text],.sem-public-form input[type=tel],.sem-public-form input[type=email],.sem-public-form select,.sem-public-form textarea{width:100%;box-sizing:border-box;border:1px solid #cfd7df;border-radius:9px;padding:12px;font-size:16px}
.sem-slot-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sem-slot-course{border-top:5px solid #2873b9;background:#f8fafc;border-radius:10px;padding:12px}.sem-slot-course-中{border-color:#238b57}.sem-slot-course-西{border-color:#d77b25}
.sem-slot-course h4{margin:0 0 10px}
.sem-slot-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
/* v1.1.10: slot styles must not reach the member form moved into this grid. */
.sem-slot-buttons > label{margin:0}.sem-slot-buttons > label > input[type=radio]{position:absolute;opacity:0}
.sem-slot-buttons > label > span{display:block;text-align:center;border:1px solid #cfd7df;background:#fff;border-radius:8px;padding:10px;cursor:pointer}
.sem-slot-buttons > label > input[type=radio]:checked+span{background:#1f4e78;color:#fff;border-color:#1f4e78}
.sem-public-players details{border-top:1px solid #e4e8ec;padding:12px 0}.sem-public-players summary{font-weight:700;cursor:pointer}
.sem-agree{display:flex;gap:8px;align-items:flex-start;margin-top:14px}.sem-agree span{font-weight:400!important}
.sem-submit{width:100%;border:0;border-radius:12px;background:#d9b300;color:#14243a;font-size:20px;font-weight:800;padding:16px;cursor:pointer}
.sem-public-error{background:#fee4e2;color:#912018;padding:14px;border-radius:10px;margin:14px 0}
.sem-public-success{text-align:center;background:#ecfdf3;border:1px solid #a6f4c5;border-radius:16px;padding:34px}.sem-public-success strong{font-size:30px;color:#176737}
@media(max-width:760px){
 .sem-public-hero dl,.sem-public-grid,.sem-slot-groups{grid-template-columns:1fr}
 .sem-public-wrap{padding:10px}
 .sem-public-form section{padding:16px}
 .sem-slot-buttons{grid-template-columns:repeat(3,1fr)}
}


/* v0.5.2 スタート枠の空き・受付済み表示 */
.sem-slot-buttons > label.sem-slot-unavailable > span{
    background:#d9dde3;
    color:#6b7280;
    border-color:#c7ccd3;
    cursor:not-allowed;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.03);
}
.sem-slot-buttons > label.sem-slot-unavailable > span b{
    text-decoration:line-through;
    opacity:.85;
}
.sem-slot-buttons > label.sem-slot-unavailable > span small{
    display:block;
    margin-top:2px;
    font-size:11px;
    font-weight:700;
    color:#9b2424;
    text-decoration:none;
}
.sem-slot-buttons > label.sem-slot-available > span:hover{
    border-color:#1f4e78;
    box-shadow:0 0 0 2px rgba(31,78,120,.10);
}
.sem-slot-buttons > label > input[type=radio]:disabled+span{
    pointer-events:none;
}

.sem-cancel-policy{
    margin-top:16px;
    padding:16px 18px;
    border:2px solid #d9b300;
    border-radius:10px;
    background:#fff9dc;
}
.sem-cancel-policy h4{
    margin:0 0 8px;
    color:#7a5b00;
    font-size:18px;
}
.sem-cancel-policy p{
    margin:5px 0;
    line-height:1.6;
}


.sem-current-selections{
    margin:20px 0;
    padding:18px;
    border:2px solid #153b63;
    border-radius:12px;
    background:#f6f9fc;
}
.sem-current-selections h3{
    margin:0 0 12px;
    color:#153b63;
    font-size:20px;
}
.sem-current-selection-row{
    display:flex;
    align-items:center;
    gap:14px;
    padding:8px 0;
    border-top:1px solid #d9e1e8;
}
.sem-current-selection-row:first-child{
    border-top:0;
}
.sem-current-selection-group{
    min-width:68px;
    font-weight:700;
}
.sem-current-selection-value{
    color:#6b7280;
}
.sem-current-selection-value.is-selected{
    color:#126b3a;
    font-weight:700;
}
.sem-slot-selected-other{
    opacity:.58;
    background:#eceff2 !important;
    cursor:not-allowed !important;
}
.sem-slot-selected-other input{
    cursor:not-allowed !important;
}
.sem-slot-selected-own{
    border-color:#2e8b57 !important;
    background:#edf9f1 !important;
}
.sem-selected-note,
.sem-own-selected-note{
    display:block;
    margin-top:4px;
    font-size:12px;
    font-weight:700;
}
.sem-selected-note{
    color:#6b7280;
}
.sem-own-selected-note{
    color:#126b3a;
}
@media (max-width:640px){
    .sem-current-selection-row{
        align-items:flex-start;
        flex-direction:column;
        gap:3px;
    }
}


/* v1.0.2 スマートフォン表示安定化 */
.sem-public-wrap,
.sem-public-form,
.sem-public-form section,
.sem-slot-groups,
.sem-slot-course,
.sem-slot-buttons,
.sem-current-selections{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
}
.sem-public-wrap{
    overflow-x:hidden;
}
.sem-slot-buttons > label,
.sem-slot-buttons > label > span{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
}
@media(max-width:760px){
    .sem-slot-buttons{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:420px){
    .sem-slot-buttons{
        grid-template-columns:1fr;
    }
    .sem-public-hero{
        padding:20px 16px;
    }
}


.sem-birthdate-selects{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr;
    gap:8px;
}
.sem-birthdate-selects select{
    width:100%;
    min-width:0;
}
@media(max-width:520px){
    .sem-birthdate-field{
        grid-column:1 / -1;
    }
    .sem-birthdate-selects{
        grid-template-columns:1.35fr 1fr 1fr;
        gap:6px;
    }
}


.sem-player-birthdate{
    grid-column:1 / -1;
}
.sem-player-table .sem-birthdate-selects{
    min-width:270px;
}
@media(max-width:760px){
    .sem-player-table{
        min-width:980px;
    }
}

.sem-download-section{margin:24px 0 30px;padding:24px;border:1px solid #d7e0e8;border-radius:16px;background:#f8fbfd}
.sem-download-heading{text-align:center;margin-bottom:18px}
.sem-download-kicker{display:inline-block;margin-bottom:4px;color:#b18400;font-size:13px;font-weight:800;letter-spacing:.08em}
.sem-download-heading h2{margin:0 0 8px;color:#153b63;font-size:26px}
.sem-download-heading p{margin:0;color:#5f6b76;line-height:1.7}
.sem-download-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sem-download-card{display:flex;align-items:center;gap:12px;min-width:0;padding:16px;border:2px solid #153b63;border-radius:12px;background:#fff;color:#153b63;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.sem-download-card:hover,.sem-download-card:focus{transform:translateY(-2px);box-shadow:0 6px 18px rgba(21,59,99,.15);background:#f4f8fc}
.sem-download-card-web{border-color:#2e7d4f;color:#21633e}
.sem-download-card-web:hover,.sem-download-card-web:focus{background:#f0faf4}
.sem-download-icon{display:flex;align-items:center;justify-content:center;flex:0 0 48px;height:48px;border-radius:10px;background:#153b63;color:#fff;font-size:13px;font-weight:900}
.sem-download-card-web .sem-download-icon{background:#2e7d4f}
.sem-download-text{min-width:0}
.sem-download-text strong{display:block;margin-bottom:3px;font-size:18px}
.sem-download-text small{display:block;color:#6b7280;line-height:1.45}
#sem-public-form{scroll-margin-top:80px}
@media(max-width:760px){
.sem-download-section{padding:18px}
.sem-download-heading h2{font-size:22px}
.sem-download-actions{grid-template-columns:1fr}
}

/* v1.1.5: start time -> members flow, especially for smartphone entry */
.sem-player-entry-guide{
    margin-top:16px;
    padding:12px 14px;
    border:1px dashed #9caabd;
    border-radius:10px;
    background:#f7f9fb;
    color:#52606d;
    font-size:14px;
    line-height:1.6;
}
.sem-public-players{
    margin-top:16px;
    padding:16px;
    border:2px solid #d7e2ec;
    border-radius:12px;
    background:#fbfdff;
}
.sem-public-players[hidden],.sem-player-entry-guide[hidden]{display:none!important}
.sem-public-players-title{
    margin:0 0 8px;
    color:#153b63;
    font-size:18px;
}
@media(max-width:760px){
    .sem-public-group{padding:14px!important}
    .sem-public-players{padding:12px;margin-top:12px}
    .sem-player-entry-guide{margin-top:12px}
    .sem-public-players details{padding:10px 0}
    .sem-public-players summary{font-size:17px;padding:4px 0}
}

/* v1.1.6: when moved into the slot grid, member entry spans the full row */
.sem-slot-buttons > .sem-public-players{
    grid-column:1 / -1;
    width:100%;
    box-sizing:border-box;
    margin:4px 0 8px;
}
.sem-assignment-choice label{display:block;margin:10px 0;padding:12px;border:1px solid #d7e0e8;border-radius:10px;background:#fff;font-weight:700}
.sem-assignment-choice p{color:#52606d}
.sem-public-group.sem-waiting-mode .sem-slot-groups{display:none}
.sem-public-group.sem-waiting-mode .sem-public-players{display:block!important;margin-top:0}
@media(max-width:420px){
    .sem-slot-buttons > .sem-public-players{
        margin-top:6px;
    }
}

/* Dormant single-booking fields retain values without being displayed. */
.sem-public-players details[hidden],.sem-single-note[hidden]{display:none!important}
