/* ===== 그누보드 폼 공통 스타일 ===== */

/* 메인 컨테이너 - PC에서 너무 늘어나지 않도록 제한 */
#wrapper, .wrapper { 
    max-width: 1200px; 
    margin: 0 auto; 
    padding: 0 1rem; 
}

#container, .container { 
    max-width: 800px; 
    margin: 0 auto; 
    padding: 2rem 1rem; 
}

/* 폼 관련 컨테이너 */
.glass-card, .register, .mbskin, .login, .mbskin_box, #fregisterform, #flogin, 
.tbl_frm01, .form_01, .local_desc, #bo_v, .bo_v, .cnt_cmt, #bo_w, .write_div, #fwrite {
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(20px);
    border-radius: 1.5rem !important;
    padding: 2rem !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    margin: 1rem auto !important;
    border: none !important;
    max-width: 640px;
}

/* 게시판 전체 래퍼 */
#bo_list, #bo_v, #bo_w, .bo_vc_w {
    max-width: 900px;
    margin: 0 auto;
}

/* 게시판 목록/상세 테이블 */
.tbl_head01, .bo_list, .tbl_wrap {
    max-width: 900px;
    margin: 0 auto;
}

/* 제목 */
h1, h2, h3, .cnt_tit, legend, .mbskin h1, .register h2, .tbl_frm01 h2, .form_01 h2, #register_form h2, .register_form_inner h2 {
    font-size: 1.75rem !important; font-weight: 800 !important; text-align: center !important;
    color: #1F2937 !important; margin-bottom: 1.5rem !important; padding: 0 !important;
    border: none !important; background: none !important;
}

/* 라벨 */
label, .frm_label, th, .register_form_inner label {
    display: block; font-size: 0.875rem; font-weight: 600; color: #374151; margin-bottom: 0.5rem;
}

/* 입력 필드 */
input[type="text"], input[type="password"], input[type="email"], input[type="tel"],
input[type="number"], input[type="date"], input[type="url"], input[type="search"],
textarea, select, .frm_input, .frm_file, .full_input, .twopart_input, .frm_address {
    width: 100% !important; padding: 0.875rem 1rem !important;
    border: 1px solid #E5E7EB !important; border-radius: 0.75rem !important;
    font-size: 1rem !important; transition: all 0.2s !important;
    box-sizing: border-box !important; margin-bottom: 0.75rem !important;
    background: white !important; color: #1F2937 !important;
}

input:focus, textarea:focus, select:focus, .frm_input:focus {
    outline: none !important; border-color: var(--primary, #6366F1) !important;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1) !important;
}

/* 버튼 */
button, input[type="submit"], input[type="button"], .btn, .btn_submit, .btn_confirm,
.btn_cancel, .btn_close, .btn01, .btn02, .btn_b01, .btn_frmline {
    display: inline-block; padding: 0.875rem 1.5rem !important;
    border-radius: 0.75rem !important; font-size: 1rem !important;
    font-weight: 700 !important; cursor: pointer; transition: all 0.2s !important;
    border: none !important; text-decoration: none !important; text-align: center;
}

button[type="submit"], input[type="submit"], .btn_submit, .btn_confirm, .btn01 {
    background: linear-gradient(135deg, var(--primary, #6366F1), var(--primary-dark, #4F46E5)) !important;
    color: white !important; width: 100%;
}

button[type="submit"]:hover, input[type="submit"]:hover, .btn_submit:hover {
    transform: translateY(-2px); box-shadow: 0 10px 20px rgba(99, 102, 241, 0.3);
}

.btn_cancel, .btn_close, .btn02, .btn_frmline {
    background: #E5E7EB !important; color: #374151 !important;
}

/* 버튼 컨테이너 */
.btn_confirm, .btn_confirm_reg {
    display: flex !important; gap: 0.75rem !important; margin-top: 1.5rem !important;
    padding: 0 !important; background: none !important; border-radius: 0 !important; box-shadow: none !important;
    max-width: 640px; margin-left: auto; margin-right: auto;
}

.btn_confirm .btn_close, .btn_confirm .btn_submit { flex: 1 !important; height: auto !important; margin: 0 !important; }

/* 체크박스/라디오 */
input[type="checkbox"], input[type="radio"] {
    width: 1.25rem !important; height: 1.25rem !important; margin-right: 0.5rem !important; accent-color: var(--primary, #6366F1);
}

.chk_box, .reg_mb, .reg_mb2, .consent-line {
    display: flex !important; align-items: center !important; margin: 0.75rem 0 !important; flex-wrap: wrap;
}

/* 테이블 폼 */
.tbl_frm01 th, .tbl_frm01 td { padding: 0.75rem 0 !important; vertical-align: top !important; border: none !important; background: none !important; }
.tbl_frm01 tr { border-bottom: 1px solid #F3F4F6; }

/* 회원가입 폼 섹션 */
.register_form_inner {
    background: #F9FAFB !important; border: 1px solid #E5E7EB !important;
    border-radius: 1rem !important; padding: 1.5rem !important; margin-bottom: 1.5rem !important;
}

.register_form_inner ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.register_form_inner li { margin-bottom: 1rem !important; }

/* 약관 박스 */
.frm_info, .agree_box, #stipulation, #privacy, .frm_box, textarea[readonly], #fregister section, #fregister textarea {
    background: #F9FAFB !important; border: 1px solid #E5E7EB !important;
    border-radius: 0.75rem !important; padding: 1rem !important;
    max-height: 150px; overflow-y: auto; font-size: 0.875rem !important;
    color: #6B7280 !important; margin-bottom: 1rem !important;
}

/* 링크 */
a { color: var(--primary, #6366F1); text-decoration: none; }
a:hover { color: var(--primary-dark, #4F46E5); text-decoration: underline; }

/* 알림 */
.alert, .caution, .msg, #msg { padding: 0.75rem !important; border-radius: 0.75rem !important; margin: 0.5rem 0 !important; font-size: 0.875rem !important; }
.alert-danger, .caution { background: #FEE2E2 !important; color: #991B1B !important; }

fieldset { border: none !important; padding: 0 !important; margin: 0 !important; }

/* 페이지네이션 */
.pg_wrap { text-align: center; margin: 2rem 0; max-width: 900px; margin-left: auto; margin-right: auto; }
.pg_wrap a, .pg_wrap strong, .pg_page, .pg_current {
    display: inline-block !important; padding: 0.5rem 1rem !important;
    margin: 0.25rem !important; border-radius: 0.5rem !important;
    background: rgba(255, 255, 255, 0.9) !important; color: #374151 !important; text-decoration: none !important;
}
.pg_wrap .pg_current, .pg_wrap strong { background: var(--primary, #6366F1) !important; color: white !important; }

/* 게시판 목록 */
.tbl_head01, .bo_list { 
    width: 100%; 
    border-collapse: collapse; 
    background: rgba(255, 255, 255, 0.95); 
    border-radius: 1rem; 
    overflow: hidden; 
}
.tbl_head01 th, .bo_list th { background: #F3F4F6 !important; padding: 1rem !important; font-weight: 600 !important; color: #374151 !important; }
.tbl_head01 td, .bo_list td { padding: 1rem !important; border-bottom: 1px solid #E5E7EB !important; }
.bo_list tr:hover { background: #F9FAFB; }

/* 게시글 보기 */
.view_content, #bo_v_con { 
    background: rgba(255, 255, 255, 0.95) !important; 
    padding: 2rem !important; 
    border-radius: 1rem !important; 
    margin: 1rem auto !important; 
    max-width: 900px;
}
.view_content img { max-width: 100%; height: auto; }

.sound_only { position: absolute; left: -9999px; }

/* 회원 스킨 특화 */
.mbskin { max-width: 480px !important; width: 100% !important; margin: 2rem auto !important; }
#flogin, .login_box { max-width: 400px !important; margin: 2rem auto !important; }
#fregister { max-width: 640px; margin: 0 auto; }

/* 게시판 검색/버튼 영역 */
#bo_btn_top, .bo_fx, #bo_sch, .bo_sch_wrap {
    max-width: 900px;
    margin: 0 auto 1rem;
}

/* 댓글 영역 */
#bo_vc, .bo_vc {
    max-width: 900px;
    margin: 0 auto;
}

/* 반응형 */
@media (max-width: 768px) {
    #wrapper, .wrapper { padding: 0 0.5rem; }
    #container, .container { padding: 1rem 0.5rem; }
    .tbl_frm01 th, .tbl_frm01 td { display: block !important; width: 100% !important; }
    .btn_confirm { flex-direction: column !important; }
    .btn_confirm .btn_close, .btn_confirm .btn_submit { width: 100% !important; }
}
/* ===== 그누보드 폼 공통 스타일 끝 ===== */
