/**
 * 인증협력기관 — 신청 양식(.kspa) + 목록(.kspl)
 * 프리미엄 톤: 인디고 그라데이션 + 소프트 섀도, KSEPA 문서 톤과 통일
 */

/* ============ 공통 토큰 ============ */
.kspa, .kspl {
    --ink: #0f172a; --slate: #3f4a5c; --mute: #64748b;
    --line: #e6e9f2; --tint: #eef0ff; --ac: #4f46e5;
    --hg: linear-gradient(135deg, #4338ca 0%, #4f46e5 55%, #7c3aed 100%);
    font-family: 'Pretendard', 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
    color: var(--ink); line-height: 1.7; -webkit-font-smoothing: antialiased;
}
.kspa *, .kspl * { box-sizing: border-box; }

/* 와인 톤 변형 — 인증강사 신청([ksepa_instcert_apply]) */
.kspa--wine {
    --ac: #8c2f39; --tint: #f7ecee;
    --hg: linear-gradient(135deg, #6d1f2c 0%, #8c2f39 55%, #b04a54 100%);
}
.kspa--wine .kspa__submit { box-shadow: 0 18px 34px -14px rgba(109, 31, 44, .8); }
.kspa--wine .kspa__submit:hover { box-shadow: 0 26px 44px -16px rgba(109, 31, 44, .9); }
.kspa--wine .kspa__field input:focus, .kspa--wine .kspa__field select:focus, .kspa--wine .kspa__field textarea:focus {
    box-shadow: 0 0 0 4px rgba(140, 47, 57, .12);
}

/* 포레스트 톤 변형 — 파트너십(K-SELP 라이선스) 신청([ksepa_license_apply]) + 목록 */
.kspa--forest, .kspl--forest {
    --ac: #1e6b4f; --tint: #e9f5ef;
    --hg: linear-gradient(135deg, #14503a 0%, #1e6b4f 55%, #2f9b74 100%);
}
.kspa--forest .kspa__submit { box-shadow: 0 18px 34px -14px rgba(20, 80, 58, .8); }
.kspa--forest .kspa__submit:hover { box-shadow: 0 26px 44px -16px rgba(20, 80, 58, .9); }
.kspa--forest .kspa__field input:focus, .kspa--forest .kspa__field select:focus, .kspa--forest .kspa__field textarea:focus {
    box-shadow: 0 0 0 4px rgba(30, 107, 79, .12);
}
.kspl--forest .kspl__chip { color: #14503a; background: var(--tint); }
.kspl__web {
    display: inline-flex; align-items: center; gap: 7px; margin-top: 12px; align-self: flex-start;
    font-size: 13px; font-weight: 800; color: var(--ac); text-decoration: none;
    border: 1px solid var(--line); border-radius: 999px; padding: 7px 15px; transition: all .2s;
}
.kspl__web:hover { border-color: var(--ac); background: var(--tint); color: var(--ac); transform: translateY(-1px); }

/* 틸 톤 변형 — 검사문의([ksepa_assessment_inquiry]) */
.kspa--teal {
    --ac: #128a86; --tint: #e6f6f4;
    --hg: linear-gradient(135deg, #06373a 0%, #0d5c5f 50%, #2fd4c4 100%);
}
.kspa--teal .kspa__submit { box-shadow: 0 18px 34px -14px rgba(6, 55, 58, .8); }
.kspa--teal .kspa__submit:hover { box-shadow: 0 26px 44px -16px rgba(6, 55, 58, .9); }
.kspa--teal .kspa__field input:focus, .kspa--teal .kspa__field select:focus, .kspa--teal .kspa__field textarea:focus {
    box-shadow: 0 0 0 4px rgba(18, 138, 134, .12);
}

/* ============ 신청 양식 ============ */
.kspa { max-width: 880px; margin: 0 auto; }
.kspa__card {
    position: relative; background: #fff; border: 1px solid var(--line); border-radius: 28px;
    padding: 52px 54px 46px; overflow: hidden;
    box-shadow: 0 40px 80px -48px rgba(30, 27, 75, .55);
}
.kspa__head { text-align: center; margin-bottom: 38px; }
.kspa__eyebrow {
    display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 2.4px;
    text-transform: uppercase; color: var(--ac); margin-bottom: 10px;
}
.kspa__title { margin: 0 0 12px; font-size: clamp(24px, 3vw, 32px); font-weight: 900; letter-spacing: -.7px; }
.kspa__lead { margin: 0 auto; max-width: 620px; font-size: 15.5px; color: var(--slate); word-break: keep-all; }

.kspa__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.kspa__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.kspa__field { display: block; }
.kspa__field--full { grid-column: 1 / -1; }
.kspa__label { display: block; font-size: 13.5px; font-weight: 800; color: #334155; margin-bottom: 7px; }
.kspa__label em { font-style: normal; color: #e11d48; }
.kspa__field input, .kspa__field select, .kspa__field textarea {
    width: 100%; padding: 13px 16px; border: 1.5px solid #dbe0ea; border-radius: 13px;
    font-size: 15px; font-family: inherit; color: var(--ink); background: #fbfcfe;
    transition: border-color .2s, box-shadow .2s, background .2s; outline: none; appearance: none;
}
.kspa__field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%2364748b' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px;
}
.kspa__field textarea { resize: vertical; min-height: 120px; }
.kspa__field input:focus, .kspa__field select:focus, .kspa__field textarea:focus {
    border-color: var(--ac); background: #fff; box-shadow: 0 0 0 4px rgba(79, 70, 229, .12);
}
.kspa__field input.is-bad, .kspa__field select.is-bad, .kspa__field textarea.is-bad {
    border-color: #e11d48; box-shadow: 0 0 0 4px rgba(225, 29, 72, .10);
}

.kspa__agree {
    display: flex; gap: 10px; align-items: flex-start; margin-top: 22px;
    background: #f8fafc; border: 1px solid var(--line); border-radius: 14px; padding: 14px 18px;
    font-size: 13.5px; color: var(--slate); cursor: pointer; word-break: keep-all;
}
.kspa__agree input { margin-top: 3px; width: 16px; height: 16px; accent-color: var(--ac); flex: 0 0 auto; }
.kspa__agree.is-bad { border-color: #e11d48; }

.kspa__actions { margin-top: 26px; text-align: center; }
.kspa__submit {
    display: inline-flex; align-items: center; gap: 12px; border: 0; cursor: pointer;
    font-family: inherit; font-size: 16.5px; font-weight: 800; letter-spacing: -.2px; color: #fff;
    background: var(--hg); border-radius: 16px; padding: 17px 42px;
    box-shadow: 0 18px 34px -14px rgba(67, 56, 202, .8);
    transition: transform .22s cubic-bezier(.2,.7,.2,1), box-shadow .22s, opacity .2s;
}
.kspa__submit:hover { transform: translateY(-3px); box-shadow: 0 26px 44px -16px rgba(67, 56, 202, .9); color: #fff; }
.kspa__submit:disabled { opacity: .6; cursor: wait; transform: none; }
.kspa__submit-arrow { transition: transform .25s; }
.kspa__submit:hover .kspa__submit-arrow { transform: translateX(4px); }
.kspa__err { margin: 14px 0 0; min-height: 1.2em; font-size: 14px; font-weight: 700; color: #e11d48; }

.kspa__done { text-align: center; padding: 34px 10px 14px; }
.kspa__done-ic {
    width: 72px; height: 72px; margin: 0 auto 18px; border-radius: 50%; display: grid; place-items: center;
    font-size: 30px; font-weight: 900; color: #fff; background: linear-gradient(135deg, #10b981, #059669);
    box-shadow: 0 20px 36px -14px rgba(5, 150, 105, .7);
}
.kspa__done h4 { margin: 0 0 10px; font-size: 22px; font-weight: 900; letter-spacing: -.5px; }
.kspa__done p { margin: 0; font-size: 15px; color: var(--slate); }

/* ============ 협력기관 목록 ============ */
.kspl { max-width: 1140px; margin: 0 auto; }

.kspl__adminbar {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    background: #101431; border-radius: 16px; padding: 13px 18px; margin-bottom: 18px;
}
.kspl__adminbadge {
    font-size: 12px; font-weight: 900; letter-spacing: 1px; color: #0f172a;
    background: #e2c37c; border-radius: 999px; padding: 4px 13px;
}
.kspl__adminhint { font-size: 12.5px; color: #94a3b8; margin-right: auto; }

.kspl__btn {
    display: inline-flex; align-items: center; gap: 6px; border: 1px solid #cbd3e1; cursor: pointer;
    font-family: inherit; font-size: 13.5px; font-weight: 800; color: #334155; background: #fff;
    border-radius: 10px; padding: 9px 16px; transition: transform .18s, box-shadow .18s, background .18s;
}
.kspl__btn:hover { transform: translateY(-1px); background: #f8fafc; }
.kspl__btn--primary { border: 0; color: #fff; background: var(--hg); box-shadow: 0 10px 20px -10px rgba(67,56,202,.7); }
.kspl__btn--primary:hover { background: var(--hg); color: #fff; }
.kspl__btn--danger { border-color: #fecdd3; color: #be123c; background: #fff1f2; }
.kspl__btn--danger:hover { background: #ffe4e6; }
.kspl__btn--sm { padding: 7px 13px; font-size: 12.5px; }

.kspl__editor {
    background: #fff; border: 1.5px dashed #c7cfe4; border-radius: 20px; padding: 26px 28px; margin-bottom: 22px;
}
.kspl__editor-title { margin: 0 0 16px; font-size: 17px; font-weight: 900; letter-spacing: -.3px; }
.kspl__editor-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 14px; }
.kspl__editor-grid label { display: block; }
.kspl__editor-grid label span { display: block; font-size: 12.5px; font-weight: 800; color: #475569; margin-bottom: 5px; }
.kspl__editor-grid input, .kspl__editor-grid select {
    width: 100%; padding: 10px 12px; border: 1.5px solid #dbe0ea; border-radius: 10px;
    font-size: 14px; font-family: inherit; background: #fbfcfe; outline: none;
}
.kspl__editor-grid input:focus, .kspl__editor-grid select:focus {
    border-color: var(--ac); background: #fff; box-shadow: 0 0 0 3px rgba(79,70,229,.12);
}
.kspl__editor-full { grid-column: 1 / -1; }
.kspl__editor-actions { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.kspl__editor-err { font-size: 13px; font-weight: 700; color: #e11d48; }

.kspl__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.kspl__card {
    position: relative; display: flex; flex-direction: column; background: linear-gradient(180deg, #fff, #fbfcff);
    border: 1px solid var(--line); border-radius: 24px; padding: 28px 26px;
    transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s;
}
.kspl__card:hover { transform: translateY(-7px); box-shadow: 0 32px 56px -30px rgba(30,27,75,.42); border-color: #dfe4f0; }
.kspl__card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.kspl__ini {
    width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center;
    font-size: 20px; font-weight: 900; color: #fff; background: var(--hg);
    box-shadow: 0 14px 24px -10px rgba(67,56,202,.7);
}
.kspl__status {
    display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 800;
    border-radius: 999px; padding: 5px 13px;
}
.kspl__status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: block; }
.kspl__status--active  { color: #047857; background: #ecfdf5; }
.kspl__status--pending { color: #b45309; background: #fffbeb; }
.kspl__status--expired { color: #64748b; background: #f1f5f9; }

.kspl__name { margin: 0 0 8px; font-size: 19px; font-weight: 900; letter-spacing: -.4px; word-break: keep-all; }
.kspl__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.kspl__chip {
    font-size: 12.5px; font-weight: 800; color: #4338ca; background: var(--tint);
    border-radius: 999px; padding: 4px 12px;
}
.kspl__chip--gray { color: var(--mute); background: #f1f5f9; }
.kspl__programs { margin: 0 0 12px; font-size: 14px; color: var(--slate); word-break: keep-all; }
.kspl__period {
    margin: auto 0 0; padding-top: 14px; border-top: 1px dashed var(--line);
    font-size: 13.5px; color: var(--slate); display: flex; align-items: center; gap: 10px;
}
.kspl__period span {
    font-size: 11.5px; font-weight: 900; letter-spacing: 1px; color: var(--mute);
    background: #f1f5f9; border-radius: 6px; padding: 3px 8px; flex: 0 0 auto;
}
.kspl__note { margin: 10px 0 0; font-size: 12.5px; color: #94a3b8; word-break: keep-all; }
.kspl__card-admin { display: flex; gap: 8px; margin-top: 16px; }
.kspl__empty {
    text-align: center; padding: 56px 20px; color: var(--mute); font-size: 15px;
    background: #fff; border: 1px dashed #c7cfe4; border-radius: 20px;
}

/* ============ 반응형 ============ */
@media (max-width: 1020px) {
    .kspl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kspl__editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .kspa__card { padding: 36px 22px 32px; border-radius: 22px; }
    .kspa__grid { grid-template-columns: 1fr; gap: 15px; }
    .kspa__submit { width: 100%; justify-content: center; }
    .kspl__grid { grid-template-columns: 1fr; gap: 16px; }
    .kspl__editor-grid { grid-template-columns: 1fr; }
    .kspl__adminhint { display: none; }
}
