.pqc_desc { color:#6b7280; margin: 4px 0 24px; }

/* 알고리즘 안내문구 박스 */
.pqc_info { background:#eff6ff; border:1px solid #dbeafe; border-radius:10px; padding:22px 26px; margin-bottom:24px; }
.pqc_info[hidden] { display:none; }
.pqc_info .info_title { font-size:15px; font-weight:700; color:#1d4ed8; margin:0 0 8px; }
.pqc_info .info_desc { font-size:14px; color:#334155; line-height:1.7; margin:0 0 18px; }
.pqc_info .info_guide_label { display:flex; align-items:center; gap:7px; font-size:14px; font-weight:700; color:#111827; margin:0 0 8px; }
.pqc_info .info_guide_label .gicon {
    display:inline-flex; align-items:center; justify-content:center; flex:0 0 16px;
    width:16px; height:16px; border-radius:50%; background:#2563eb; color:#fff;
    font-size:11px; font-weight:700; font-style:normal; line-height:1;
}
.pqc_info .info_guide_desc { font-size:14px; color:#334155; line-height:1.7; margin:0 0 8px; }
.pqc_info .info_steps { margin:0; padding:0; list-style:none; }
.pqc_info .info_steps li { font-size:14px; color:#334155; line-height:1.9; }
.pqc_info .info_steps li strong { color:#111827; }

/* 알고리즘 탭 (언더라인 스타일) */
.pqc_tabs { display:flex; gap:28px; margin-bottom:24px; border-bottom:1px solid #e5e7eb; }
.pqc_tab_btn {
    padding:10px 2px; margin-bottom:-1px; border:none; background:transparent; border-radius:0;
    border-bottom:2px solid transparent; cursor:pointer; transition:.15s;
    font-size:15px; font-weight:600; color:#6b7280;
}
.pqc_tab_btn:hover { color:#1d4ed8; }
.pqc_tab_btn.active { color:#1d4ed8; border-bottom-color:#1d4ed8; }

/* 패널 레이아웃 */
.pqc_panel { display:flex; gap:20px; align-items:stretch; }
.pqc_panel[hidden] { display:none; }
.pqc_left { flex:0 0 360px; max-width:360px; border:1px solid #e5e7eb; border-radius:10px; padding:22px; background:#fff; }
.pqc_left h3 { font-size:18px; font-weight:700; margin:0 0 6px; }
.pqc_left .sub { font-size:13px; color:#6b7280; margin:0 0 18px; }
.pqc_left label { display:block; font-size:13px; font-weight:600; color:#374151; margin-bottom:6px; }
.pqc_left textarea {
    width:100%; min-height:120px; resize:vertical; padding:10px 12px; box-sizing:border-box;
    border:1px solid #d1d5db; border-radius:8px; font-size:13px; line-height:1.5; margin-bottom:16px;
}

/* 스텝 버튼 */
.pqc_step {
    display:flex; align-items:center; gap:12px; width:100%; box-sizing:border-box;
    padding:14px 16px; margin-bottom:10px; border:none; border-radius:8px;
    background:#1d4ed8; color:#fff; font-size:14px; font-weight:600; cursor:pointer; transition:.15s;
}
.pqc_step:hover { background:#1e40af; }
.pqc_step:disabled { background:#cbd5e1; cursor:not-allowed; color:#fff; }
.pqc_step .step_no {
    display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
    border-radius:50%; background:rgba(255,255,255,.25); font-size:13px; flex:0 0 24px;
}
.pqc_step.done .step_no { background:#22c55e; }
.pqc_step .step_state { margin-left:auto; font-size:12px; opacity:.9; }
.pqc_btn_reset {
    width:100%; box-sizing:border-box; padding:13px 16px; margin-top:4px;
    border:1px solid #d1d5db; border-radius:8px; background:#f8fafc; color:#475569;
    font-size:14px; font-weight:600; cursor:pointer;
}
.pqc_btn_reset:hover { background:#eef2f7; }

/* 결과 로그 (터미널) */
.pqc_log_wrap { flex:1 1 auto; min-width:0; border-radius:10px; overflow:hidden; border:1px solid #0f1d3a; display:flex; flex-direction:column; }
.pqc_log_head {
    display:flex; align-items:center; justify-content:space-between;
    background:#13294b; color:#fff; padding:14px 18px;
}
.pqc_log_head .title { font-size:16px; font-weight:700; }
.pqc_log_head .badge { font-size:12px; background:#16a34a; color:#fff; padding:3px 10px; border-radius:4px; }
.pqc_log {
    flex:1 1 auto; min-height:520px; max-height:640px; overflow:auto; margin:0;
    background:#0b1220; color:#cbd5e1; padding:18px 20px;
    font-family: 'D2Coding', Consolas, 'Courier New', monospace; font-size:12.5px; line-height:1.6;
    white-space:pre-wrap; word-break:break-all;
}
.pqc_log .l-info  { color:#93c5fd; }
.pqc_log .l-ok    { color:#4ade80; }
.pqc_log .l-err   { color:#f87171; }
.pqc_log .l-key   { color:#7dd3fc; }
.pqc_log .l-muted { color:#64748b; }

@media (max-width: 1100px) {
    .pqc_panel { flex-direction:column; }
    .pqc_left { flex-basis:auto; max-width:none; }
}

/* isValid API 문서 섹션 (플레이그라운드 하단) */
.pqc_api_section { margin-top:48px; }
.pqc_api_section > .cont_title { margin-bottom:8px; }

/* 맨 위로 가기 버튼 */
.pqc_to_top {
    position:fixed; right:32px; bottom:32px; z-index:50;
    width:48px; height:48px; border:none; border-radius:50%;
    background:#1d4ed8; color:#fff; cursor:pointer;
    box-shadow:0 4px 12px rgba(15,29,58,.25);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transform:translateY(8px);
    transition:opacity .2s, transform .2s, visibility .2s, background .15s;
}
.pqc_to_top.show { opacity:1; visibility:visible; transform:translateY(0); }
.pqc_to_top:hover { background:#1e40af; }
.pqc_to_top svg { width:22px; height:22px; }