@charset "utf-8";
/*
 * Quantum Editorial Shell — 회원·약관·사이드바·댓글·팝업 프로필 공통 톤
 * 로드: /static/css/quantum_editorial_shell.css (v6/static 기준)
 */

body.theme-dark-spring {
  --qe-bg-deep: #060e20;
  --qe-surface: #0f1729;
  --qe-surface-high: #161f35;
  --qe-border-ghost: rgba(34, 211, 238, 0.22);
  --qe-primary: #8aebff;
  --qe-primary-dim: rgba(138, 235, 255, 0.14);
  --qe-accent: #ffd700;
  --qe-on-surface: #dbe2fc;
  --qe-muted: #8aa3b8;
  --qe-focus: rgba(138, 235, 255, 0.95);
  --qe-radius-sm: 4px;
}

/* ---------- 회원가입 약관 · 폼 래퍼 (.register.sp-register-tech) ---------- */
body.theme-dark-spring .register.sp-register-tech,
body.theme-dark-spring .register {
  color: var(--qe-on-surface);
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  margin: 0 0 20px;
  border-radius: var(--qe-radius-sm);
  background: linear-gradient(180deg, rgba(12, 22, 42, 0.9), rgba(8, 14, 28, 0.95));
  border: 1px solid var(--qe-border-ghost);
  box-shadow: 0 0 0 1px rgba(138, 235, 255, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  color: var(--qe-on-surface);
  font-size: 1.35rem;
  line-height: 1.55;
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-notice i {
  color: var(--qe-primary);
  margin-top: 2px;
}

body.theme-dark-spring .register.sp-register-tech #fregister_term,
body.theme-dark-spring .register.sp-register-tech #fregister_private {
  margin-bottom: 22px;
  padding: 18px 18px 16px;
  border-radius: var(--qe-radius-sm);
  background: linear-gradient(180deg, rgba(14, 20, 38, 0.92), rgba(8, 12, 24, 0.96));
  border: 1px solid var(--qe-border-ghost);
  box-shadow: 0 0 20px rgba(34, 211, 238, 0.08);
}

body.theme-dark-spring .register.sp-register-tech #fregister_term h2,
body.theme-dark-spring .register.sp-register-tech #fregister_private h2 {
  margin: 0 0 12px;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--qe-primary);
  letter-spacing: 0.02em;
  text-shadow: 0 0 14px rgba(34, 211, 238, 0.25);
}

body.theme-dark-spring .register.sp-register-tech #fregister_term textarea {
  width: 100%;
  min-height: 180px;
  box-sizing: border-box;
  padding: 12px 14px;
  margin: 0 0 14px;
  font-size: 1.25rem;
  line-height: 1.55;
  color: var(--qe-on-surface);
  background: var(--qe-bg-deep);
  border: 1px solid var(--qe-border-ghost);
  border-radius: var(--qe-radius-sm);
  resize: vertical;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

body.theme-dark-spring .register.sp-register-tech #fregister_term textarea:focus {
  border-color: rgba(138, 235, 255, 0.55);
  box-shadow: 0 0 0 2px var(--qe-primary-dim);
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap {
  overflow-x: auto;
  margin: 0 0 14px;
  border-radius: var(--qe-radius-sm);
  border: 1px solid var(--qe-border-ghost);
  background: var(--qe-bg-deep);
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.25rem;
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap th,
body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid rgba(34, 211, 238, 0.12);
  color: var(--qe-on-surface);
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap thead th {
  background: rgba(34, 211, 238, 0.1);
  color: var(--qe-primary);
  font-weight: 700;
}

body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap tbody tr:last-child th,
body.theme-dark-spring .register.sp-register-tech .sp-reg-table-wrap tbody tr:last-child td {
  border-bottom: none;
}

body.theme-dark-spring .register.sp-register-tech #fregister_chkall {
  margin: 18px 0;
  padding: 12px 14px;
  border-radius: var(--qe-radius-sm);
  background: rgba(7, 14, 30, 0.85);
  border: 1px dashed rgba(138, 235, 255, 0.28);
}

/* ---------- 회원가입/정보수정 폼 (#register_form, .form_01) ---------- */
body.theme-dark-spring .register .register_form_inner > h2,
body.theme-dark-spring .register .tbl_frm01 h2 {
  margin: 24px 0 14px;
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--qe-primary);
  letter-spacing: 0.02em;
}

body.theme-dark-spring .register .register_form_inner > h2:first-child,
body.theme-dark-spring .register .tbl_frm01 h2:first-child {
  margin-top: 0;
}

body.theme-dark-spring .register .form_01 > ul > li,
body.theme-dark-spring .register .tbl_frm01 ul li {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(34, 211, 238, 0.1);
}

body.theme-dark-spring .register .form_01 > ul > li:last-child,
body.theme-dark-spring .register .tbl_frm01 ul li:last-child {
  border-bottom: none;
}

body.theme-dark-spring .register label.text_input,
body.theme-dark-spring .register .sound_only {
  color: var(--qe-on-surface);
}

body.theme-dark-spring .sp-content-wrap .frm_input,
body.theme-dark-spring .register .frm_input,
body.theme-dark-spring .bo_comment_write .frm_input,
body.theme-dark-spring .bo_write .frm_input {
  background: var(--qe-bg-deep) !important;
  color: var(--qe-on-surface) !important;
  border: 1px solid var(--qe-border-ghost) !important;
  border-radius: var(--qe-radius-sm) !important;
  padding: 10px 12px !important;
  font-size: 1.35rem !important;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

body.theme-dark-spring .sp-content-wrap .frm_input:focus,
body.theme-dark-spring .register .frm_input:focus,
body.theme-dark-spring .bo_comment_write .frm_input:focus,
body.theme-dark-spring .bo_write .frm_input:focus,
body.theme-dark-spring .bo_comment_write textarea:focus {
  border-color: rgba(138, 235, 255, 0.55) !important;
  box-shadow: 0 0 0 2px var(--qe-primary-dim) !important;
}

body.theme-dark-spring .register .frm_info {
  display: block;
  margin-top: 6px;
  font-size: 1.15rem;
  color: var(--qe-muted);
  line-height: 1.5;
}

body.theme-dark-spring .register .tooltip {
  background: var(--qe-surface-high);
  border: 1px solid var(--qe-border-ghost);
  color: var(--qe-on-surface);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

/* ---------- 버튼 공통 ---------- */
body.theme-dark-spring .sp-content-wrap .btn_submit,
body.theme-dark-spring .register .btn_submit,
body.theme-dark-spring .btn_confirm .btn_submit {
  background: linear-gradient(90deg, rgba(34, 211, 238, 0.85), rgba(138, 235, 255, 0.88)) !important;
  color: #05101e !important;
  border: 1px solid rgba(138, 235, 255, 0.75) !important;
  border-radius: var(--qe-radius-sm) !important;
  font-weight: 800 !important;
  box-shadow: 0 0 16px rgba(34, 211, 238, 0.22);
  transition: filter 0.2s, box-shadow 0.2s;
}

body.theme-dark-spring .sp-content-wrap .btn_submit:hover,
body.theme-dark-spring .register .btn_submit:hover {
  filter: brightness(1.05);
  box-shadow: 0 0 22px rgba(34, 211, 238, 0.35);
}

body.theme-dark-spring .sp-content-wrap .btn_close,
body.theme-dark-spring .sp-content-wrap .btn_cancel,
body.theme-dark-spring .register .btn_close,
body.theme-dark-spring .bo_comment_write .btn_cancel {
  background: rgba(12, 20, 40, 0.9) !important;
  color: var(--qe-on-surface) !important;
  border: 1px solid var(--qe-border-ghost) !important;
  border-radius: var(--qe-radius-sm) !important;
  text-decoration: none !important;
}

body.theme-dark-spring .sp-content-wrap .btn_close:hover,
body.theme-dark-spring .sp-content-wrap .btn_cancel:hover,
body.theme-dark-spring .register .btn_close:hover {
  border-color: rgba(255, 215, 0, 0.45) !important;
  color: #fff6cc !important;
}

body.theme-dark-spring .register .btn_confirm,
body.theme-dark-spring #fregister .btn_confirm {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  align-items: center;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(34, 211, 238, 0.15);
}

/* ---------- 테이블 래퍼 (아이디/비번 찾기 등) ---------- */
body.theme-dark-spring .sp-content-wrap .tbl_wrap table,
body.theme-dark-spring .sp-content-wrap .tbl_frm01 table {
  border: 1px solid var(--qe-border-ghost);
  border-radius: var(--qe-radius-sm);
  overflow: hidden;
  background: rgba(8, 14, 28, 0.75);
}

body.theme-dark-spring .sp-content-wrap .tbl_wrap th,
body.theme-dark-spring .sp-content-wrap .tbl_wrap td,
body.theme-dark-spring .sp-content-wrap .tbl_frm01 th,
body.theme-dark-spring .sp-content-wrap .tbl_frm01 td {
  border-color: rgba(34, 211, 238, 0.12) !important;
  color: var(--qe-on-surface) !important;
}

body.theme-dark-spring .sp-content-wrap .tbl_head01 th,
body.theme-dark-spring .sp-content-wrap .tbl_head02 th {
  background: rgba(34, 211, 238, 0.08) !important;
  color: var(--qe-primary) !important;
}

/* ---------- 댓글 영역 (.bo_view 안·스킨 직접 배치 모두) ---------- */
body.theme-dark-spring .bo_view .comment_opener,
body.theme-dark-spring .comment_opener {
  margin-top: 28px;
  padding: 12px 14px 14px;
  border-radius: var(--qe-radius-sm);
  border: 1px solid var(--qe-border-ghost) !important;
  border-bottom: 1px solid var(--qe-border-ghost) !important;
  background: linear-gradient(180deg, rgba(10, 18, 36, 0.85), rgba(6, 12, 24, 0.92)) !important;
  box-shadow: 0 0 18px rgba(34, 211, 238, 0.08);
}

body.theme-dark-spring .bo_view .comment_opener b,
body.theme-dark-spring .comment_opener b {
  color: var(--qe-primary) !important;
  text-shadow: 0 0 12px rgba(34, 211, 238, 0.35) !important;
  font-size: 1.45rem !important;
}

body.theme-dark-spring .bo_view .comment_opener span.total,
body.theme-dark-spring .comment_opener span.total {
  color: var(--qe-accent) !important;
}

body.theme-dark-spring .bo_view .comment_opener span.total:after,
body.theme-dark-spring .comment_opener span.total:after {
  background: linear-gradient(90deg, var(--qe-primary), var(--qe-accent)) !important;
  height: 2px !important;
}

body.theme-dark-spring .bo_comment {
  margin-top: 8px;
  padding: 4px 0 8px;
}

body.theme-dark-spring .bo_comment .comment {
  margin: 16px 0;
  padding: 14px 14px 12px;
  border-bottom: 1px solid rgba(34, 211, 238, 0.14) !important;
  border-radius: var(--qe-radius-sm);
  background: linear-gradient(180deg, rgba(12, 20, 38, 0.45), rgba(6, 10, 22, 0.55));
  box-shadow: inset 0 0 0 1px rgba(138, 235, 255, 0.05);
}

body.theme-dark-spring .bo_comment .comment_info,
body.theme-dark-spring .bo_comment .comment_info .member,
body.theme-dark-spring .bo_comment .comment_info .guest,
body.theme-dark-spring .bo_comment .comment_info .sv_member {
  color: var(--qe-on-surface) !important;
}

body.theme-dark-spring .bo_comment .comment .datetime {
  color: var(--qe-muted) !important;
}

body.theme-dark-spring .bo_comment .comment_contents {
  color: var(--qe-on-surface) !important;
  line-height: 1.65 !important;
}

body.theme-dark-spring .bo_comment .comment_contents .contents_info {
  margin-bottom: 8px !important;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(34, 211, 238, 0.08);
  font-size: 1.2rem;
  color: var(--qe-muted);
}

body.theme-dark-spring .bo_comment .comment_contents .contents a {
  color: var(--qe-primary) !important;
}

body.theme-dark-spring .bo_comment .empty {
  color: var(--qe-muted) !important;
  background: rgba(6, 12, 24, 0.5);
  border-radius: var(--qe-radius-sm);
  border: 1px dashed rgba(138, 235, 255, 0.2);
}

body.theme-dark-spring .bo_comment_write {
  margin-top: 18px;
  padding: 16px 16px 14px;
  border-radius: var(--qe-radius-sm);
  background: linear-gradient(180deg, rgba(10, 18, 36, 0.9), rgba(6, 12, 24, 0.95));
  border: 1px solid var(--qe-border-ghost);
  box-shadow: 0 0 22px rgba(34, 211, 238, 0.1);
}

body.theme-dark-spring .bo_comment_write textarea,
body.theme-dark-spring .bo_comment_write #wr_content {
  background: var(--qe-bg-deep) !important;
  color: var(--qe-on-surface) !important;
  border: 1px solid var(--qe-border-ghost) !important;
  border-radius: var(--qe-radius-sm) !important;
  min-height: 120px;
  padding: 10px 12px !important;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

body.theme-dark-spring .bo_comment_write textarea:focus {
  border-color: rgba(138, 235, 255, 0.55) !important;
  box-shadow: 0 0 0 2px var(--qe-primary-dim) !important;
}

body.theme-dark-spring .bo_comment_write #contents_length,
body.theme-dark-spring .bo_comment_write .bo_vc_w {
  color: var(--qe-muted) !important;
}

body.theme-dark-spring .bo_comment_write .btn_confirm {
  margin-top: 14px;
}

body.theme-dark-spring .bo_comment .more_modify {
  border-color: rgba(34, 211, 238, 0.4) !important;
  background: rgba(10, 24, 44, 0.92) !important;
  color: var(--qe-primary) !important;
  border-radius: var(--qe-radius-sm) !important;
}

body.theme-dark-spring .bo_comment .more_delete {
  border-color: rgba(248, 113, 113, 0.45) !important;
  background: rgba(48, 16, 24, 0.88) !important;
  color: #fecaca !important;
  border-radius: var(--qe-radius-sm) !important;
}

body.theme-dark-spring .bo_comment .btn_b01,
body.theme-dark-spring .bo_comment .more_opener {
  border: 1px solid var(--qe-border-ghost) !important;
  background: rgba(12, 20, 38, 0.9) !important;
  color: var(--qe-on-surface) !important;
  border-radius: var(--qe-radius-sm) !important;
}

/* ---------- 메인 사이드바 (로그인 카드 · 포인트) ---------- */
body.theme-dark-spring .sb-sidebar-card {
  border-top: 2px solid rgba(34, 211, 238, 0.45) !important;
  box-shadow: 0 0 24px rgba(34, 211, 238, 0.1), inset 0 0 18px rgba(138, 235, 255, 0.04) !important;
}

body.theme-dark-spring .sb-sidebar-login .sb-sidebar-title {
  color: var(--qe-primary) !important;
  text-shadow: 0 0 12px rgba(34, 211, 238, 0.25);
}

body.theme-dark-spring .sb-sidebar-nick {
  color: var(--qe-on-surface) !important;
}

body.theme-dark-spring .sb-sidebar-welcome-text {
  color: var(--qe-muted) !important;
}

body.theme-dark-spring .sb-sidebar-user-icon-wrap {
  background: linear-gradient(135deg, rgba(34, 211, 238, 0.35), rgba(8, 24, 48, 0.95)) !important;
  border: 1px solid var(--qe-border-ghost);
}

body.theme-dark-spring .sb-sidebar-point-wrap {
  animation: none !important;
  background: linear-gradient(135deg, rgba(9, 20, 44, 0.95), rgba(14, 32, 58, 0.92)) !important;
  background-size: 100% 100% !important;
  border: 1px solid rgba(34, 211, 238, 0.32) !important;
  box-shadow: inset 0 0 22px rgba(138, 235, 255, 0.06), 0 4px 14px rgba(0, 0, 0, 0.25) !important;
}

body.theme-dark-spring .sb-sidebar-point-label,
body.theme-dark-spring .sb-sidebar-point-value {
  color: var(--qe-on-surface) !important;
  text-shadow: none !important;
}

body.theme-dark-spring .sb-input {
  border-radius: var(--qe-radius-sm) !important;
}

body.theme-dark-spring .sb-btn-primary {
  background: linear-gradient(90deg, rgba(34, 211, 238, 0.88), rgba(138, 235, 255, 0.85)) !important;
  color: #05101e !important;
  border: 1px solid rgba(138, 235, 255, 0.6) !important;
  border-radius: var(--qe-radius-sm) !important;
  font-weight: 800 !important;
}

body.theme-dark-spring .sb-btn-secondary {
  background: rgba(22, 32, 52, 0.95) !important;
  color: var(--qe-on-surface) !important;
  border: 1px solid var(--qe-border-ghost) !important;
}

body.theme-dark-spring .sb-btn-join {
  background: rgba(12, 28, 52, 0.95) !important;
  border: 1px solid rgba(138, 235, 255, 0.35) !important;
  color: var(--qe-primary) !important;
}

body.theme-dark-spring .sb-btn-find {
  background: rgba(18, 24, 40, 0.9) !important;
  color: var(--qe-muted) !important;
  border: 1px solid rgba(34, 211, 238, 0.18) !important;
}

body.theme-dark-spring .sb-btn-memo {
  background: rgba(20, 40, 72, 0.95) !important;
  border: 1px solid rgba(34, 211, 238, 0.3) !important;
}

body.theme-dark-spring .sb-btn-admin-rainbow {
  background: linear-gradient(90deg, #0c2238, #153a5c, #0c2238) !important;
  background-size: 200% 100% !important;
  animation: qe-admin-sweep 3.2s ease-in-out infinite !important;
  border: 1px solid rgba(138, 235, 255, 0.45) !important;
  box-shadow: 0 0 20px rgba(34, 211, 238, 0.28) !important;
  color: var(--qe-primary) !important;
}

@keyframes qe-admin-sweep {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

body.theme-dark-spring .sb-tg-btn {
  background: linear-gradient(135deg, rgba(34, 211, 238, 0.75), rgba(12, 40, 72, 0.95)) !important;
  border: 1px solid rgba(138, 235, 255, 0.4) !important;
}

/* ---------- 팝업 프로필 (base_sub, #profile) ---------- */
body.theme-dark-spring #profile.new_win,
body.theme-dark-spring .new_win {
  color: var(--qe-on-surface);
}

body.theme-dark-spring #profile #win_title {
  color: var(--qe-primary);
  font-weight: 800;
  text-shadow: 0 0 14px rgba(34, 211, 238, 0.2);
  border-bottom: 1px solid var(--qe-border-ghost);
  padding-bottom: 12px;
}

body.theme-dark-spring #profile .tbl_wrap table {
  background: rgba(6, 12, 24, 0.6);
}

body.theme-dark-spring #profile .tbl_head02 th {
  background: rgba(34, 211, 238, 0.1) !important;
  color: var(--qe-primary) !important;
}

body.theme-dark-spring #profile .tbl_head02 td {
  color: var(--qe-on-surface) !important;
}

body.theme-dark-spring #profile section h2 {
  color: var(--qe-primary);
  font-size: 1.35rem;
  margin-top: 18px;
}

body.theme-dark-spring #profile section p {
  color: var(--qe-on-surface);
  line-height: 1.65;
}

body.theme-dark-spring .win_btn .btn_close {
  min-width: 120px;
}

/* ---------- 본문 이미지 테크 프레임 ---------- */
body.theme-dark-spring #article_contents img:not([src^="data:"]),
body.theme-dark-spring #freeslot_article_contents img:not([src^="data:"]),
body.theme-dark-spring .bo_view .view_image img,
body.theme-dark-spring .bo_view .view_file img {
  border-radius: var(--qe-radius-sm);
  box-shadow:
    0 0 0 1px rgba(34, 211, 238, 0.25),
    0 0 20px rgba(34, 211, 238, 0.12);
}

body.theme-dark-spring #article_contents img:not([src^="data:"]):hover,
body.theme-dark-spring .bo_view .view_image img:hover {
  box-shadow:
    0 0 0 1px rgba(138, 235, 255, 0.45),
    0 0 28px rgba(34, 211, 238, 0.22);
}

/* ---------- 게시판 글쓰기 보조 ---------- */
body.theme-dark-spring .bo_write > form {
  color: var(--qe-on-surface);
}

body.theme-dark-spring .bo_write .write_select select {
  background: var(--qe-bg-deep) !important;
  color: var(--qe-on-surface) !important;
  border: 1px solid var(--qe-border-ghost) !important;
  border-radius: var(--qe-radius-sm) !important;
}

body.theme-dark-spring .bo_write .write_file {
  background: rgba(8, 14, 28, 0.85) !important;
  border-color: var(--qe-border-ghost) !important;
  color: var(--qe-on-surface) !important;
}

/* ---------- 체크박스 영역 가독성 ---------- */
body.theme-dark-spring .register .chk_box label,
body.theme-dark-spring .register #fregister_chkall label {
  color: var(--qe-on-surface);
  font-size: 1.3rem;
}

/* ---------- base_sub 팝업(메인 #spring-theme-body 없음) ---------- */
body.theme-dark-spring:not(#spring-theme-body) {
  background: #101321 !important;
  color: var(--qe-on-surface) !important;
}

body.theme-dark-spring:not(#spring-theme-body) .sp-header {
  background: linear-gradient(180deg, rgba(5, 12, 24, 0.96), rgba(8, 16, 32, 0.92)) !important;
  border-bottom: 1px solid rgba(34, 211, 238, 0.28) !important;
}

body.theme-dark-spring:not(#spring-theme-body) .sp-logo {
  color: var(--qe-on-surface) !important;
}

body.theme-dark-spring:not(#spring-theme-body) footer {
  background: rgba(8, 12, 24, 0.92) !important;
  color: var(--qe-muted) !important;
  border-top-color: rgba(34, 211, 238, 0.18) !important;
}
