
body { min-width: 1240px; } 
.popup_page { min-width: 1300px; } 
.map_box > div { height: 1107.8px; width: 313px; margin:76px auto 0; } 
.map_box > div > ul { transform: scale(2); } 
.map_box > .korea-map > ul { transform: scale(1.9); } 
.map_box .map_txt { transform: scale(0.7); } 

.map_box .gyeong-gi-map { height: 1000px; } 
.map_box .incheon-map , .map_box .daejeon-map { height: 800px; } 
.map_box .incheon-map ,.map_box .gang-won-map , .map_box .gyeongbug-map , .map_box .daegu-map, .map_box .ulsan-map , .map_box .busan-map ,.map_box .gyeongnam-map { height: 700px; } 
.map_box .seoul-map ,.map_box .chungnam-map, .map_box .chungbug-map { height: 600px; margin-top: 120px; } 
.map_box .jeonbug-map , .map_box .gwangju-map ,.map_box .jeonnam-map { height: 500px; margin-top: 120px; } 
/* 서울 */
.junggoo02 a .map_txt { left: -10px; top: -19px; } 
.yongsangoo a .map_txt { left: 0px; top: 8px; } 
.dongdeamoongoo a .map_txt { left: 12px; top: 16px; } 
.sudeamoongu a .map_txt { left: -4px; top: 15px; } 
.sungdonggoo a .map_txt { left: -10px; top: 20px; } 
.kangdonggoo a .map_txt { left: 28px; top: 0px; } 
.songpagoo a .map_txt { left: 20px; top: 9px; } 
.kangnamgoo a .map_txt { left: 21px; top: 22px; } 
.suchogoo a .map_txt { left: 10px; top: 23px; } 
.dongjackgoo a .map_txt { left: 24px; top: 16px; } 
.youngdpho a .map_txt { left: 0px; top: 3px; } 
.maphogoo a .map_txt { left:-13px; top: -3px; } 
.kangsugoo02 a .map_txt { left: 0; top: 0; } 
.yangchugoo a .map_txt { left: 0; top: 0; } 
.gurogoo a .map_txt { left: -24px; top: 0; } 
.gchungoo a .map_txt { left: -32px; top: 0; } 
.gwanakgoo a .map_txt { left: -14px; top: 0; } 

/* 경기 */
.boochen a .map_txt { left: -43px; top: -11.5px; } 
.gwangmyung a .map_txt { left: -14px; top: -43px; } 
.gwachun a .map_txt { left: -4px; top: -42px; } 
.goyang a .map_txt { top: -10px; } 
.ansan a .map_txt { left: -35px; top: 15px; } 
.wang a .map_txt { left: 8px; top: 0px; } 
.sungnam a .map_txt { left: 27px; top: -5px; } 
.soowon a .map_txt { left: -8px; top: 29px; } 
.osan a .map_txt { left: 20px; top: -22px; } 
.sih a .map_txt { left: 7.5px; top: 2.1px; } 
.gpho a .map_txt { left: -34.55px; top: 14.1px; } 
.anyang a .map_txt { left: -34px; top: -11px; } 
.youngin a .map_txt { left: 60%; top: 20px; } 
.gwangjoo a .map_txt { left: 41.5px; } 
.ansung a .map_txt { top: 57%; } 

/* 충남 */
.booye a .map_txt { left: 34px; } 
.nonesan a .map_txt { left:18.4px } 
.suchun a .map_txt { left: 20px; top: 20px; } 

/* 경북 */
.chungdo a .map_txt { left: 38.9px; top: 36px; } 
.deagoogwang a .map_txt { left: 2px; top: 53px; } 
.goryoung a .map_txt { left: -10px; top: 29px; } 
.goomi a .map_txt { left: -2.9px; top: -28.5px; } 
.chilgog a .map_txt { left: -26px; top: -19px; } 
.sungjoo a .map_txt { left: px; top: px; } 

/* 전남 */
.sinan a .map_txt { left:-32px; } 
.mpho a .map_txt { left:-37px; } 
.mooan a .map_txt { left:5px; } 
.youngarm a .map_txt { left: 33px; top: 0; } 
.naju a .map_txt { left: 52px; top: 16px; } 
.bosung a .map_txt { left: 24px; top: -5px; } 
.yeosoo a .map_txt { top: -24px; } 
.jindo a .map_txt { left: -32px; top: 0; } 
.heanam a .map_txt { left: 0; top: 30px; } 
.kangjin a .map_txt { left: -19px; top: 18px; } 
.wando a .map_txt { left: 0; top: 0; } 
.jangh a .map_txt { left: 0; top: 33px; } 
.goh a .map_txt { left: 0; top: 19px; } 

/* 부산 */
.sanggoo a .map_txt { left: 32px; top:34px; } 
.junggoo a .map_txt { left: -37px; top: -18px; } 
.youngdogoo a .map_txt { left: -8.2px; top: 25.7px; } 
.sugoo04 a .map_txt { left: -29px; top: 56px; } 
.sasang a .map_txt { left: -24px; top: 0; } 
.book a .map_txt { top: -21px; } 
.dongreagoo a .map_txt { left: 8px; top: -46px; } 
.suhagoo a .map_txt { left: -35px; } 
.donggoo02 a .map_txt { left: 5px; top: 5px; } 
.busanjingoo a .map_txt { left: -15px; top: -30px; } 
.heayoondea a .map_txt { left: 24px; top: -24px; } 
.yunje a .map_txt { left: 23px; top: -24px; } 
.sooyounggoo a .map_txt { left: 14px; top: 8px; } 
asdas { left: px; top: px; } 


/* ========================== WRAP BOX ======================== */
.inner { display: block; position: relative; max-width: 1240px; margin: 0 auto 120px; padding: 0 20px; } 
.inner.pat70 { padding-top: 35px; }   /* 70→35 (2026-09-20 사용자 지시, common.css .pat70 과 같은 축) */ 
.ininner { display: block; position: relative; max-width: 1240px; margin: 0 auto; padding: 0 20px; } 
.hinner { display: block; position: relative; max-width: 1240px; margin: 0 auto; padding: 0 20px; } 
.finner { display: block; position: relative; max-width: 1240px; margin: 0 auto; padding: 30px 20px; } 
.inner.full { max-width: 100%; } 

.inner_pop { min-width: 1000px; margin: 0 auto; padding: 50px; } 
.layout_header.popup .inner_pop { position: relative; background-color: #1c293f; padding: 44px 50px 15px; } 

/* ========================== 헤더 ======================== */
.layout_header .hinner { padding: 18px 20px; } 
.layout_header .hinner .left_header { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); } 
.right_header { float: right; }
.right_header .top_menu { text-align: right; font-size: 0; }
/* 헤더 통합검색: GNB(입찰정보·낙찰정보·공동도급…) 바로 위 줄에 로그인 버튼과 나란히 배치 */
.right_header .header_top { display: flex; align-items: center; justify-content: space-between; }
.right_header .header_top .top_menu { flex: 0 0 auto; margin: 0; white-space: nowrap; }
.header_serch { position: relative; flex: 0 0 auto; width: 360px; margin-right: 20px; }
.header_serch .header_serch_input { display: block; width: 100%; height: 40px; padding: 0 44px 0 20px; border: 1px solid #dfe1f0; border-radius: 20px; background-color: #fff; font-size: 15px; line-height: 38px; color: #313131; }
.header_serch .header_serch_input::placeholder { color: #a7abc2; }
.header_serch .header_serch_input::-webkit-input-placeholder { color: #a7abc2; }
.header_serch .header_serch_input:focus { border-color: #fa448c; outline: none; }
.header_serch .header_serch_btn { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; padding: 0; border: 0; background: url(../images/design/search_icon_gray.svg) no-repeat center; }
.gnb_list { margin-top: 18px; }
.gnb_list li { position: relative; display: inline-block; padding: 0 20px; margin: 0 5px; } 
.gnb_list li > a { display: block; line-height: 34px; font-size: 16px; color: #313131; } 
.gnb_list li a.on , .gnb_list li a:hover { color: #fa448c; font-weight: 500; } 
.gnb_list li:last-child { padding-right: 0; margin-right: 0; } 
.gnb_list li .gnb_sub { position: absolute; left: -62px; top: 100%; background-color: red; z-index: 100; box-shadow: 3px 3px 15px rgba(0,0,0,0.1); text-align: center; } 
.gnb_list li .gnb_sub.long { left: -52px; } 
.gnb_list li .gnb_sub { display: none; } 
.gnb_list li .gnb_sub a { display: block; width: 218px; line-height: 50px; color: #1c293f; background-color: #fff; } 
.gnb_list li .gnb_sub a:hover , .gnb_list li .gnb_sub a.on { background-color: #fa448c; color: #fff; }

/* 관리자(super) 전용 "기획 및 개발" 메뉴 — 일반 메뉴와 구분되도록 포인트컬러 배지형 */
.gnb_list li.gnb_plan { padding: 0 12px; }
.gnb_list li.gnb_plan > a { padding: 0 12px; border: 1px solid #1c293f; border-radius: 17px; color: #1c293f; font-weight: 500; }
.gnb_list li.gnb_plan > a:hover { background-color: #1c293f; color: #fff; }
/* 핀셋 3메뉴(서류함·입찰·낙찰) ↔ 그 뒤 메뉴 사이만 조금 더 띄운다(2026-09-19 요청). 기본 li margin 0 5px 위에 얹는다.
   ★ 여백은 「서류함」이 아니라 **핀셋 그룹의 마지막 항목**에 건다 — 2026-09-20 에 서류함을 맨 앞으로 옮겼더니
     .gnb_cabinet 에 걸려 있던 이 40px 이 따라가서 「서류함↔입찰」만 벌어지고 「낙찰↔맞춤분석」은 붙어 버렸다.
     순서를 또 바꾸면 header.php 의 .gnb_pinset_end 클래스를 마지막 핀셋 메뉴로 옮기면 된다. */
.gnb_list li.gnb_pinset_end { margin-right: 40px; }
/* 「맞춤공고」(.gnb_cabinet) 메뉴 글자는 마이페이지 버튼(.fillpink #fa448c)과 같은 분홍 — 2026-09-28 사용자 지시 */
.gnb_list li.gnb_cabinet > a { color: #fa448c; font-weight: 500; }
/* 다른 메뉴가 선택(a.on, header.php $__gnb_on)되면 「맞춤공고」는 원래 색으로 — 2026-09-28 사용자 지시 */
.gnb_list:has(> li > a.on) > li.gnb_cabinet > a:not(.on):not(:hover) { color: #313131; font-weight: 400; }

/* ========================== 푸터 ======================== */
.layout_footer { background-color: #1e1e1e; } 
.layout_footer * { color: #fff; } 
.layout_footer a.bold { font-weight: 900; } 
.layout_footer .inner { padding: 30px 0; } 
.foot_nav a { display: inline-block; padding: 0 13px; margin:0 5px; } 
.foot_nav a:first-child { padding-left:0; margin-left: 0; } 
.footlog { margin: 65px 0 13px; } 
.compay_info li { float: left; line-height: 20px; padding: 2px 20px 2px 0; color: #959595; } 
.compay_info .ad { clear: both; } 
.compay_info li address { color: #959595; } 
.sign { padding: 11px 0 20px; color:#959595 } 
.sns_box { position: absolute; right: 20px; top: 30px; } 
.sns_box a { margin-left: 30px; } 

/* ========================== 메인 ======================== */
.layout_body { min-height: 50vh; } 
.main_section { padding: 90px 0; background-repeat: no-repeat; background-position: center; background-size: cover; } 
.main_banner_swiper li { height: 600px; } 
.main_banner_swiper li .ininner { background: url(../images/banner/mainimg.svg) no-repeat right top 20px; height: 100%; } 
.main_banner_swiper li .banner_txtbox { position: absolute; left: 0; top: 90px; } 
.main_banner_swiper li .banner_txtbox .banner_desc { color: #fff; } 
.main_banner_swiper li .banner_txtbox .banner_title { color: #fff; font-size: 28px; padding-top: 22px; line-height: 42px; } 
.main_banner_swiper li .banner_txtbox a { margin-top: 42px; } 

/* 메인배너 스와이프 */
.main_banner_swiper .swiper-button-next, .main_banner_swiper .swiper-rtl .swiper-button-next { right: auto !important; left: calc(50% - 566px) !important; bottom: 80px !important; top: auto !important; color: #fff !important; height: 24px !important; width: 24px !important; z-index: 10; } 
.main_banner_swiper .swiper-button-next:after,.main_banner_swiper .swiper-button-prev:after , .main_banner_swiper .main_banner_swiper .swiper-button-prev, .main_banner_swiper .swiper-rtl .swiper-button-prev { font-size: 18px !important; } 
.main_banner_swiper .swiper-button-prev, .main_banner_swiper .swiper-rtl .swiper-button-prev { left:calc(50% - 600px); bottom: 80px !important; top: auto !important; font-size: 24px !important; color: #fff !important; height: 24px !important; width: 24px !important; z-index: 10; } 
.main_banner_swiper .swiper-pagination { width: auto; left: calc(50% - 528px); bottom: 80px !important; color:#9d9abc; } 
.main_banner_swiper .swiper-pagination .swiper-pagination-current { font-size: 20px; color: #fff; } 
.main_banner_swiper .swiper-pagination .swiper-pagination-total { color:#9d9abc; } 


/* 서치 / 입찰기원*/
.section1 { position: relative; padding: 130px 0 80px; } 
.section1 .swiper_wrap { margin: 60px 0 0; } 
.swiper_title { font-size: 24px; font-weight: 500; margin:0 0 40px; } 
.imgbox_list { font-size: 24px; color: #10231d; line-height: 26px; font-weight: 500; text-align: center; } 
.imgbox_list .com_box { position: relative; display: inline-block; width: 200px; height: 250px; border-radius: 10px; background: no-repeat center; padding: 20px; margin-right: 30px; vertical-align: top; text-align: left; transform: scale(1); transition: transform 0.3s; } 
.imgbox_list .com_box:hover { transform: scale(1.05); } 
.imgbox_list .com_box:last-child { margin-right: 0; } 
.imgbox_list .box1 { background-image: url(../images/banner/bg_01.png); } 
.imgbox_list .box2 { background-image: url(../images/banner/bg_02.png); } 
.imgbox_list .box3 { background-image: url(../images/banner/bg_03.png); } 
.imgbox_list .box4 { background-image: url(../images/banner/bg_04.png); } 
.imgbox_list .topline_txt { display: block; padding: 12px 0; border-top:1px solid #fff; color: #fff; font-size: 16px;; } 
.imgbox_list .com_box dd { position: absolute; left: 20px; bottom: 20px; font-size: 50px; color: #fff; line-height: 70px; } 
.imgbox_list .com_box dd P { font-size: 20px; color: #fff; line-height: 32px; } 
.map_box .map_txt { padding: 10px 0; } 
.map_box ul li:hover .map_txt, .map_box ul li a.on .map_txt { transform: scale(0.8) } 

/* 낙착기원스와이퍼 */
.main_vid_swiper .swiper-wrapper { padding-bottom: 84px; } 
.main_vid_swiper .swiper-button-next, .main_vid_swiper .swiper-rtl .swiper-button-next { right: auto !important; left: calc(50% + 15px) !important; bottom: 0 !important; top: auto !important; color: #1c293f !important; height: 30px !important; width: 30px !important; border-radius: 4px; z-index: 10; background-color: #fff; } 
.main_vid_swiper .swiper-button-next:after,.main_vid_swiper .swiper-button-prev:after , .main_vid_swiper .swiper-button-prev, .main_vid_swiper .swiper-rtl .swiper-button-prev { font-size: 14px !important; } 
.main_vid_swiper .swiper-button-prev, .main_vid_swiper .swiper-rtl .swiper-button-prev { left:calc(50% - 45px) !important; bottom: 0 !important; top: auto !important; font-size: 24px !important; color: #1c293f !important; height: 30px !important; width: 30px !important; border-radius: 4px; z-index: 10; background-color: #fff; } 
.main_vid_swiper .swiper-pagination { width: auto; left:50%; bottom: 80px; color:#1c293f; } 
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled { opacity: 1 !important; } 
.main_vid_swiper .swiper-pagination .swiper-pagination-current { font-size: 20px; color: #fff; } 
.main_vid_swiper .swiper-pagination .swiper-pagination-total { color:#9d9abc; } 


/* 전자입찰의 서비스 */
.serview_section { position: relative; background: url(../images/banner/bg_main_bn.png) no-repeat center; background-size: cover; text-align: center; } 
.serview_section::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: #000; opacity: 0.7; z-index: 1; } 
.serview_section .ininner { position: relative; z-index: 3; } 
.serview_section .sec_desc { font-size: 18px; line-height: 30px; letter-spacing: -0.54px; color: #cecece; text-align: center; padding: 30px 0 58px; } 
.serview_section .disinblock .auto { width: 200px; padding: 100px 0 0; background: no-repeat top center; color: #fff; height: 156px; transition: padding 0.3s; } 
.serview_section .disinblock .auto:hover , .serview_section .disinblock .auto.on { padding: 114px 0 0; background-size: 100px auto; } 
.serview_section .disinblock .auto:nth-child(1) { background-image: url(../images/design/1-icon-off.svg); } 
.serview_section .disinblock .auto:nth-child(2) { background-image: url(../images/design/2-icon-off.svg); } 
.serview_section .disinblock .auto:nth-child(3) { background-image: url(../images/design/3-icon-off.svg); } 
.serview_section .disinblock .auto:nth-child(4) { background-image: url(../images/design/4-icon-off.svg); } 
.serview_section .disinblock .auto:nth-child(5) { background-image: url(../images/design/5-icon-off.svg); } 
.serview_section .disinblock .auto:nth-child(1):hover , .serview_section .disinblock .auto.on:nth-child(1) { background-image: url(../images/design/1-icon-on.svg); } 
.serview_section .disinblock .auto:nth-child(2):hover , .serview_section .disinblock .auto.on:nth-child(2) { background-image: url(../images/design/2-icon-on.svg); } 
.serview_section .disinblock .auto:nth-child(3):hover , .serview_section .disinblock .auto.on:nth-child(3) { background-image: url(../images/design/3-icon-on.svg); } 
.serview_section .disinblock .auto:nth-child(4):hover , .serview_section .disinblock .auto.on:nth-child(4) { background-image: url(../images/design/4-icon-on.svg); } 
.serview_section .disinblock .auto:nth-child(5):hover , .serview_section .disinblock .auto.on:nth-child(5) { background-image: url(../images/design/5-icon-on.svg); } 

/* 탭부분 */
.line_content { border: 2px solid #e6e6e6; border-radius: 5px; padding: 40px; } 
.tab_box { border: 2px solid #e6e6e6; border-radius: 5px; padding: 40px 40px 0; height: 310px; } 
.tab_box ul { padding: 0 0 40px; } 
.tab_box .tab_title { position: relative; font-size: 22px; font-weight: bold; line-height: 34px; padding-bottom: 8px; } 
.tab_box .btn_more { position: absolute; right: 0; top:0 } 
.tab_box li >a { display: block; margin: 20px 0; overflow: hidden; } 
.tab_box li >a .notic_title { float: left; font-size: 15px; line-height: 21px; width: calc(100% - 110px); text-overflow: ellipsis; white-space: nowrap; overflow: hidden; color: #1e1e1e; } 
.tab_box li >a .notic_title:hover { text-decoration: underline; } 
.tab_box li >a .date { float: right; width: 100px; font-size: 12px; line-height: 15px; color: #959595; } 
.nolink a , .nolink .notic_title { text-decoration: unset !important; } 

.tab_box.type2 { border-color: #1e286d; background-color: #1e286d; } 
.tab_box.type2 .tab_title { color: #fff; border-bottom: 1px solid #fff; padding: 0 0 20px; } 
.tab_box.type2 .tab_info { padding: 30px 0 68px; } 
.tab_box.type2 .tab_info .tit { font-size: 16px; padding-bottom: 20px; color: #fff; } 
.tab_box.type2 .tab_info .pric { font-size: 22px; color: #fff; } 
.tab_box.type2 .tab_info .posi { position: absolute; right: 0; bottom: 15px; width: 100%; text-align: right; color: #fff; overflow: hidden; } 
.tab_box.type2 .tab_info .posi span { display: inline-block; font-size: 15px; line-height: 15px; width: calc(100% - 110px); text-overflow: ellipsis; white-space: nowrap; overflow: hidden; color: #fff; } 
.tab_box.type2 .tab_info .posi span:last-child { display: inline-block; width: 100px; font-size: 12px; line-height: 15px; color: #959595; } 
/* 탭스와이퍼 */
.tab_box .swiper-horizontal>.swiper-pagination-bullets,.tab_box .swiper-pagination-bullets.swiper-pagination-horizontal,.tab_box .swiper-pagination-custom, .swiper-pagination-fraction { width: auto !important; bottom: 25px !important; } 
.tab_box .swiper-pagination-bullet { width: 8px !important; background-color:#1e286d !important; border-radius: 2px !important; opacity: 1 !important; transition: width 0.3s; } 
.tab_box .swiper-pagination-bullet-active { width: 28px !important; background-color:#fa448c !important; } 
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { margin:0 8px 0 0 !important } 

.tab_box.type2 .swiper-pagination-bullet { width: 8px !important; background-color:#fff !important; border-radius: 2px !important; opacity: 1 !important; transition: width 0.3s; } 
.tab_box.type2 .swiper-pagination-bullet-active { width: 28px !important; background-color:#fa448c !important; } 

.outimg_box { position: relative; height: 310px; } 
.outimg_box::before { content: ""; position: absolute; right: 0; bottom: 0; width: 310px; height: 310px; background: url(../images/design/phoneimg.png) no-repeat top right; z-index: 5; background-size: 487px auto; } 
.outimg_box .text_box { position: absolute; left: 0; bottom: 0; width: 100%; padding: 30px 56px; border-radius:5px; background-color: #f2f4ff; } 
.outimg_box .text_box .sbn_title { font-size: 26px; color: #1c293f; padding-bottom: 14px; } 
.outimg_box .text_box .desc { font-size: 16px; line-height: 24px; color: #1e1e1e; } 
.outimg_box .text_box .disinblock { margin-top: 26px; } 
.outimg_box .text_box .disinblock .auto { margin-right: 24px; } 
/* 중간배너 */
.sub_banner { position: relative; background-color: #fa448c; padding: 30px 0; margin: 90px 0; } 
.sub_banner .ininner::before { content: ""; position: absolute; right: 0; top: -150%; height: 348px; width: 474px; background: url(../images/banner/bannerimg.svg) no-repeat right center; } 
.sub_banner .ininner * { color: #fff; } 
.sub_banner .ininner .sbn_title { font-size: 26px; font-family: 'GmarketSansMedium'; } 
.sub_banner .ininner .desc { padding: 14px 0 0; font-weight: 400; font-size: 16px; line-height: 24px; } 

/* 탭 위,아래 있는부분 */
.btwlist.secon { margin-top: 20px; } 
.btwlist.secon .con:nth-child(1) { width: calc(70% - 10px); margin-right: 10px; } 
.btwlist.secon .tab_box { width: 30%; height: 310px; } 
.btwlist.secon .customal { padding: 34px; } 
.btwlist.secon .btwposi:first-of-type { margin: 56px 0 0; padding-bottom: 24px; border-bottom: 1px solid #959595; } 
.btwlist.secon .btwposi + .btwposi { margin-top: 20px; } 
.btwlist.secon .btwposi .posi { line-height: 18px; } 
.btwlist.secon .btwposi .con p:first-child { font-size: 30px; color: #fa448c; font-weight: bold; } 
.btwlist.secon .btwposi .con p:last-child { font-size: 12px; color: #959595; font-weight: normal; line-height: 18px; } 

/* ========================== 통합검색 ======================== */
.sectiont40 { padding: 40px 0 0; } 
.sectionbt40 { padding: 40px 0; } 
/* ★ 조건설정 화면(PC 6개: 통합·공사·용역·물품·구매…)의 「그룹이름 ↔ 업종(필수) ↔ 지역(필수) ↔ 고급설정」 간격 좁히기 — 2026-09-20 사용자 지시.
   줄마다 위아래 40px 이 붙어 **줄 사이가 80px** 이던 것 → 36px. 구분선이 없는 흰 여백이라 넓을수록 한 묶음으로 안 읽힌다.
   ★ `.sectionbt40` 자체를 줄이지 말 것 — 회원가입·마이페이지·게시판 등 20여 화면이 같이 쓴다.
     그래서 「그룹이름 상자를 가진 줄」과 **그 뒤의 형제 줄**로만 좁혀 건다(조건설정 폼 안에서만 성립하는 모양). */
.sectionbt40:has(> .group_nema_box) , .sectionbt40:has(> .group_nema_box) ~ .sectionbt40 { padding: 18px 0; }
/* ★ 공고 상세 PC(입찰 /bid/detail · 낙찰 /success_bid/suc_detail)의 「제목 ↔ 기본정보 ↔ 입찰일정/투찰결과 ↔ 기타정보」 간격 좁히기 — 2026-09-24 사용자 지시.
   섹션마다 위아래 40px 이라 **섹션 사이 흰 여백이 80px**(제목선 아래 40px) → 36px(18px). 위 조건설정 선례와 같은 값.
   ★ 두 화면의 `.inner` 에 붙인 `detail_gap` 으로만 건다(`.sectionbt40` 은 20여 화면 공용).
   ★ `section.` 으로 한정 — 같은 화면 안 입찰결과 보고서 팝업의 `div.sectionbt40` 은 인쇄 양식이라 건드리지 않는다. */
.detail_gap section.sectionbt40 { padding: 18px 0; }
.detail_gap section.mat40 { margin-top: 18px; }
/* 낙찰 상세 「분포도 ↔ 기타정보」 75px → 약 40px (2026-09-24 사용자 지시). 쌓여 있던 것 두 가지:
   ①두 번째 그래프 표도 `table:first-child` 라 그래프 사이용 16px 을 **맨 아래에서도** 받았다 → 마지막 것만 0.
   ②기타정보 머리줄(`.btn_center_wrap`, 버튼 줄 공용 padding-top 20px)이 섹션 여백 위에 또 20px → 0. */
.detail_gap .right_table > .tagtable:last-child > table { margin-bottom: 0; }
.detail_gap section.sectionbt40 > .btn_center_wrap { padding-top: 0; }
/* 남색 띠(홈 > 메뉴) — 2026-10-24 사용자 지시: 높이 50→33(2/3), 띠 위·아래 여백 반으로.
   위 = 헤더 .hinner 아래 패딩 18→9(띠가 있는 화면만), 아래 = 띠 바로 뒤 첫 여백(.pat70/.patb70 35→18, .page_title 위 28→14, 기획 게시판 16+6→8+3). */
.page_nav_wrap { background-color: #1c293f; } 
.page_nav_list li { float: left; position: relative; line-height:33px; } 
.page_nav_list li::after { content: ""; display: inline-block; height: 33px; width: 24px; background: url(../images/design/arr_right_withe.svg) no-repeat center; background-size: 16px auto; vertical-align: top; margin: 0 2px; } 
.page_nav_list li a { color: #fff; } 
.page_nav_list li:last-child:after { display: none; } 
body:has(.layout_body > .page_nav_wrap) .layout_header .hinner { padding-bottom: 9px; }
.layout_body > .page_nav_wrap ~ :is(.pat70, .patb70) ,
.layout_body > .page_nav_wrap ~ * > :is(.pat70, .patb70):first-child { padding-top: 18px; }
.layout_body:has(> .page_nav_wrap) .page_title { padding-top: 14px; }
.layout_body > .page_nav_wrap ~ .sectionbt40.plan_sec { padding-top: 8px; }
.layout_body:has(> .page_nav_wrap) .plan_sec .page_title { padding-top: 3px; }
.table_list ul .flex_container .flex { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; word-break:keep-all; } 
/* 통합검색분리페이지 */
/* 리스트 넘버 */
/* .firnum tbody { counter-reset: number 0; } 
.firnum tbody tr { counter-increment:number; } 
.firnum tbody tr td:first-child::before { content:counter(number); } 
.secnum tbody { counter-reset: number 0; } 
.secnum tbody tr { counter-increment:number; } 
.secnum tbody tr td:nth-child(2)::before { content:counter(number); } 
.secnum tbody tr td:nth-child(2)::before { content:counter(number); } */

/* ========================== 입찰 ======================== */
.select_wrap { margin:0 0 15px; } 
.select_wrap strong { display: inline-block; line-height: 30px; margin-right: 16px; font-size: 18px; vertical-align: middle; } 
.select_wrap select { margin-right: 8px; } 
.select_wrap .btn_text { margin-left: 16px; line-height: 24px; vertical-align: middle; } 
.select_wrap .change_text_map::before { content: "지도보기"; padding: 0 0 0 26px; background: url(../images/design/map-pin-line-light.svg) no-repeat left center; } 
.select_wrap .change_text_map.on::before { content: "리스트보기"; padding: 0 0 0 26px; background: url(../images/design/map_list_pin.svg) no-repeat left center; } 
.select_wrap .con.r button { margin-left: 4px; } 
.btw_flex.btm .disflex a , .btw_flex.btm .disflex button { margin-left: 6px; } 
.sebu_box { display: none; } 
.table_list_type tr td .selec_wrap { min-width: 140px; } 
.table_list_type tr td .price_input label input { width: 180px; } 
.tab_table_list .map_from { display: none; } 
.tab_table_list .map_from .main_section { padding: 15px 0; } 
.tab_table_list .map_from .map_box { margin: 34px auto; } 
.map_btm_info { text-align: center; } 
.info_box { max-width: 904px; margin: 50px auto; padding: 20px; text-align: center; line-height: 22px; } 
.info_box.pink { background-color: #fa448c; color: #fff; } 


/* 상세필터 */
.group_nema_box .font14blue { padding: 10px 0 0 98px; } 
.category_box .con:nth-child(1) { width: calc(70% - 20px); } 
.category_box .con:nth-child(2) { width: 30%; } 
.contentline { border-top: 1px solid #000; border-bottom: 1px solid #dedede; } 
.category_box .con.table_list.serch { height: 750px; padding-bottom: 0; } 
.category_box .con.table_list.serch.heightauto { height: auto; }
.category_box .con.table_list.serch.heightover { height: auto; }
.category_box .con.table_list.serch.heightover .hori_list { max-height: 738px; height: auto; overflow: auto; border-bottom: 1px solid #dedede; padding: 30px 0; }
.category_box .con.table_list.serch .holist_wrap { height:666px; border-bottom: 1px solid #dedede; } 
.category_box .con.r { width: 30%; } 
.category_box .heightover .hori_list > div { height: 100%; overflow: auto; padding: 0 30px; } 
.category_box .heightover .hori_list ul { font-size: 0; } 
.category_box .heightover .hori_list li { display: inline-block; vertical-align: top; margin:0 8px 8px 0 } 

.filt_btw_box { display: flex; align-items: center; } 
.filt_btw_box .left { border-right:1px solid #dedede; } 
.filt_btw_box .right { padding: 0 0 0 30px; } 

.category_box .table_title.p30 { padding: 0 30px; } 
.category_box .table_title .left { text-align: center; width: 290px; border-right: 1px solid #fff; } 
.category_box .table_title .right { position: static; transform: translate(0,0); width: calc(100% - 290px); } 
 .fil_wrap1 .serch_wrap.type3 .serch_box { width: 100%; } 
.fil_wrap2 { display: none; } 
.basic_set_wrap.filt_btw_box { height: 738px; overflow: hidden; border-bottom: 1px solid #dedede; } 
.basic_set_wrap.filt_btw_box .left { width: 320px; } 
.basic_set_wrap.filt_btw_box .right { width: calc(100% - 320px); } 
.basic_set_wrap.filt_btw_box .left , .basic_set_wrap.filt_btw_box .right { padding: 30px 0; height: 100%; } 
.fil_list { height: 100%; overflow: auto; } 
.fil_list li { padding: 0 30px; line-height: 30px; cursor: pointer; color: #585858; } 
.fil_list li:hover { background-color: #fffcf0; font-weight: bold; } 
.fil_list li.on { text-decoration: underline; } 
.emp_txt { font-size: 16px; color: #a0a0a0; font-weight: 500; text-align: center; } 
.emp_txt::before { background-image: url(../images/design/arr_gray.svg); vertical-align: -6px; } 

.filter_chkbox { padding: 30px 20px; } 
.filter_chkbox li { width: 11.111%; margin: 8px 0; } 
.filter_chkbox.col4 li { width: 25%; margin: 8px 0; } 
.detal_setting_wrap { background-color: #f2f4ff; padding: 60px 30px; } 
.title_white_box + .title_white_box { margin: 60px 0 0; } 
.detal_setting_wrap .dot_title { display: inline-block; line-height: 30px; } 
.detal_setting_wrap .tab_content2 { display: none; } 
.detal_setting_wrap .tab_content2:first-child { display: block; } 
.white_box { background-color: #fff; padding: 40px 30px; } 
.white_box.pa2530 { padding: 25px 30px; } 
.graylist_btnbox .auto button { width: 100%; background-color: #f4f4f4; } 
.graylist_btnbox .auto button:hover , .graylist_btnbox .auto.on button { width: 100%; background-color: #e8e8e8; } 
.gwannae_wrap { padding-top: 20px; } 
.gwannae_wrap ul { border: 1px solid #707070; min-height: 50px; padding: 14px 20px 8px; font-size: 0; } 
.gwannae_wrap ul li { display: inline-block; vertical-align: middle; margin-right: 6px; margin-bottom: 6px; } 
.gwannae_wrap ul li:last-child { margin-right: 0; } 

.search_set_wrap , .basicbtn_set { display: none; } 
.basicbtn_set { left: 30px; } 
/* ========================== 입찰상세페이지 ======================== */
.bidpage_title .select_wrap >div:not(.disflex) { width: 58%; } 
.bidpage_title .title { line-height: 24px; padding: 8px 0; font-size: 18px; font-weight: 500; } 
.bidpage_title .disflex.center a , .bidpage_title .disflex.center button { margin-left: 8px; } 
.bid_detail_wrap { padding-right: 286px; } 
.table_list_type.sebu_box .right_box { padding-left: 0; } 
.table_flex_list.flex_container { width: 100%; padding: 0; flex-direction: row; flex-wrap:wrap; } 
.table_flex_list dl { border-bottom: 1px solid #dedede; width: 100%; } 
.table_flex_list dl:last-child { border-bottom:0 } 
.table_flex_list dl dt { background-color: #f2f4ff; min-height: 50px; padding: 15px; } 
.table_flex_list dl .tit { width: 168px; } 
.table_flex_list dl dt span { display: block; width: 100%; font-size: 16px; line-height: 24px; padding: 0 15px; font-weight: 500; } 
.table_flex_list dl dd { min-height: 50px; padding: 13px 30px; font-size: 14px; } 
.table_flex_list.flex_container dd.flex:last-child { min-height: 50px; padding: 13px 30px; font-size: 14px; } 
.bgnone { background-color: transparent !important; } 

.table_flex_list.sm .tit { width: 102px; } 
.table_flex_list.sm dl dt { min-height: 40px; padding: 10px; } 
.table_flex_list.sm dl dt span { padding:0 10px; } 
.table_flex_list.sm dl dd { min-height: 40px; padding: 11px 10px; } 
.table_flex_list.flex_container dd.flex:last-child { min-height: 40px; padding: 10px; font-size: 14px; } 


.table_flex_list.gray dt { background-color: #f4f4f4; } 

.right_con { position: absolute; right: 0; top: 0; width: 266px; height: 100%; padding-top: 78px; } 
.sticky { position: sticky; top: 50px; } 
.article { padding: 20px 0; } 
.article.box1 .grayline_box { padding: 0 } 
.line_list li { line-height: 40px; padding: 0 12px; } 
.line_list li + li { border-top: 1px solid #dedede; } 

.sectionbt40 .grayline_box.white { padding: 0; } 
.sectionbt40 .grayline_box.white .white_box { padding: 0; border-top: 1px solid #1e1e1e; border-bottom: 1px solid #dedede; min-height: 136px; } 
.sectionbt40 .grayline_box.title { padding: 0; } 
.grayline_box.title { background-color:transparent; border-top: 1px solid #000; padding:0; border-bottom: 1px solid #dedede; } 
.grayline_box.title .tit { background-color:#f4f4f4; padding: 0 40px; line-height: 50px; } 
.grayline_box.title.nograp .txtbox { padding: 15px 40px; } 

.sectionbt40 .grayline_box { padding: 34px; } 
.nomal_list { margin: 6px 0 0; } 
.nomal_list li { line-height: 28px; } 
.file_box a { display: block; color: #374ec9; text-decoration: underline; } 
a[download]:hover { text-decoration: underline; } 

.opuser_info { padding: 0 50px; display: flex; border-bottom: 1px solid #dedede; } 
.opuser_info .name { display: block; line-height: 50px; font-size: 16px; font-weight: 500; width: 160px; } 
.opuser_info .right_box { line-height: 50px; } 

.opinion_view { padding: 30px 24px; border-bottom: 1px solid #dedede; } 
.opinion_view li { overflow: hidden; padding: 8px 0; } 
.opinion_view li strong { float: left; width: 160px; } 
.opinion_view li p { float: left; width: calc(100% - 160px); } 

/* ========================== 입찰/용역 ======================== */
.full_inner { padding: 0 5%; max-width: unset; transition: padding 0.3s; } 
@media (max-width:1350px) { 
 .full_inner { padding: 0 2%; } 
}
.po_relative { display: inline-block; position: relative; } 
.suc_li_height th:nth-child(n+7):nth-child(-n+9) { 
 line-height: 1.38; padding: 12px 0; 
}
.small_modal .layout_contain.small_pop.width800 { width:800px } 
.small_modal .layout_contain.small_pop { position:absolute; width:700px; left: unset; top:unset; transform: translate(0); box-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.16); } 
.small_modal .layout_contain.small_pop h3 { font-size: 14px; } 
.small_modal .layout_contain.small_pop li p { line-height: 34px; } 
.small_modal { display: block; position: absolute; left: 15px; bottom: 7px; transform: translate(0px, 0px); z-index: 100; } 
.small_modal .layout_contain.small_pop .pop_header { padding:0 40px; } 
.small_modal .layout_contain.small_pop .pop_body { padding: 40px; } 
/* ========================== 낙찰 ======================== */
/* .success_option .table_list.type3 li .right_box { display: flex; align-items: center; } */
.success_option .dropdownbox { min-width:119px; } 
.congrats p>span { margin-left:10px } 
.current { font-weight: bold; display: flex; } 
.current::before { background: url(../images/design/cir_arr_rightBlack.svg) no-repeat; } 

/* ========================== 예가산출팝업 ======================== */
.tab_content .table_flex_list .row .won_box { width: 100%; } 
.tab_content .table_flex_list .row .won_box input { width: 100%; } 
.tab_content .table_flex_list .row .input_group label { margin-right: 50px; } 
.tab_content .table_flex_list .row .input_group label:last-child { margin-right: 0; } 
.bgtable_wrap { position:relative; margin: 15px 0 0; padding: 40px; background-color: #f2f4ff; } 
.bgtable_wrap .box1 , .bgtable_wrap .box3 { width: 464px; } 
.bgtable_wrap .box2 { width: calc(100% - 928px); } 
.bgtable_wrap table { width: 100%; } 
.bgtable_wrap table th,.bgtable_wrap table td { text-align: center; } 
.bgtable_wrap table tr th { background-color: #1e286d; color: #fff; line-height: 50px; } 
.bgtable_wrap table tr th + th { border-left: 1px solid #dedede; } 
.bgtable_wrap table tr td { background-color: #fff; border-right: 1px solid #dedede; border-bottom: 1px solid #dedede; } 
.bgtable_wrap table tr td:last-child { border-radius: 0; } 
.bgtable_wrap table tr td input { width: auto; } 
.bgtable_wrap table tr td:first-child input { width: 92px; } 
.bgtable_wrap table tr td:nth-child(2) input { width: 92px; } 
.bgtable_wrap table tr td:last-child input { width: 180px; } 
.bgtable_wrap table tr td { padding: 10px; } 

/* 예가산출 */
.price_calc_num { display: flex; align-items: flex-end; justify-content: center; } 
.price_calc_num li { display: inline-block; vertical-align: bottom; font-size: 20px; } 
.price_calc_num li:not(.num) { padding: 0 4px; } 
.price_calc_num .num { width: 38px; line-height: 62px; border-radius: 4px; background-color: #1c293f; color: #fff; text-align: center; margin: 0 1px; } 
.tagtable .cir_num span { margin-left: 4px; } 
.tagtable .cir_num .blue { font-weight: bold; } 
.tagtable.tablep0 table tr { border: 0; } 
.tagtable.tablep0 table tr:last-child { border-bottom: 1px solid #e8e8e8; } 
.tagtable.tablep0 table td { padding: 5px; border: 0; } 
.num_col5 li { width: 20%; } 
/* 적격심사 계산기 */
/* .pop_body .table_list_type .tit { width: 120px; padding: 0 20px; } 
.pop_body .table_list_type tr td { width: 120px; padding: 13px 20px; } */
.pop_body .table_list_type tr td { padding: 13px 20px; } 
.pop_body .table_list_type tr td.tit { width: 136px; } 
.two_table .btwlist.two > .con:first-child { width: calc(60% - 20px); margin-right: 20px; } 
.two_table .btwlist.two > .con:last-child { width: 40%; } 
.btm_white { border: 1px solid #fff; } 
/* ========================== 협정라운지 공고 ======================== */
.table_drop_down { display: none; } 
 
.count_box { text-align: center; padding: 24px; } 
.count_box .time { font-size: 20px; } 
.count_box p { padding: 2px 0 0; } 

.stap_tag li { position: relative; background-color: #f4f4f4; text-align: center; line-height: 34px; margin: 0 0 24px; border-radius: 4px; color: #1e1e1e; } 
.stap_tag li::before { content: "▼"; position: absolute; left: 0; bottom: -24px; width: 100%; text-align: center; line-height: 24px; font-size: 12px; } 
.stap_tag li.on { background-color: #1c293f; color: #fff; } 
.stap_tag li:last-child::before { display: none; } 
.layout_popup.agreement_lounge_popup .layout_contain { width: 600px; } 

.gonhdong_table .ralative { padding-right: 116px; } 
.gonhdong_table .ralative .btn_gonview { position: absolute; right: 12px; bottom: 12px; } 

/* ========================== 협정라운지관리 ======================== */
.agree_empty_box { padding: 40px; text-align: center; } 
.layout_popup[data-popup="agree_regist_popup"] { left: 50%; top: 0; bottom: auto; } 
.layout_popup[data-popup="agree_regist_popup"] .layout_contain { width: 480px; } 
.layout_popup[data-popup="agree_regist_popup"] .layout_contain.small_pop h3 { text-align: left; } 
.line_inpbox { padding: 15px; border: 1px solid #1e1e1e; } 
.line_inpbox label { line-height: 30px; } 
.btn_certificate { margin: 30px 0 0; } 

.table_list_type .row_chk_list td + td { vertical-align: top; } 
.table_list_type .row_chk_list td:not(.tit) + td { border-left: 1px solid #dedede; } 
.table_list_type .row_chk_list dl dt { color: #1c293f; font-weight: 500; padding-bottom: 10px; } 
.table_list_type .row_chk_list dl + dl { margin-top: 32px; } 
/* ========================== 나의서류함 ======================== */
.calenda_wrap .miri_view li { margin: 0 0 0 16px; } 
.calenda_wrap .miri_view li em { display: inline-block; width: 16px; height: 16px; vertical-align: -2px; margin-right: 2px; } 
.moninfo_box { font-size:22px; font-weight: bold; margin-right:20px } 
.ico { display: inline-block; width: 24px; height: 24px; background: no-repeat center; vertical-align: middle; } 
.ico_learr { background-image: url(../images/design/arr_left_black.svg); margin-right: 20px; } 
.ico_riarr { background-image: url(../images/design/arr_right_black.svg); margin-left: 20px; } 
.calenda_table table { table-layout: fixed; width: 100%; } 
.calenda_table tr th { font-weight: 500; } 
.calenda_table tr th:first-child { color: #ff0202; } 
.calenda_table tr td { min-height: 152px; padding: 8px; background-color: #fff; } 
.calenda_table tr td.on , .calenda_table tr td:hover { background-color: #f2f4ff; } 
.calenda_table tr td.on .calend_num , .calenda_table tr td:hover .calend_num { color: #3f5add; } 
.calenda_table tr td .calend_num { text-align: right; margin-bottom: 20px; } 
.calenda_table tr td .cld_tag { display: block; width: 100%; } 
.calenda_table tr td .cld_tag + .cld_tag { margin-top: 5px; } 
.weekcld { display: none; } 
.cld_pink { display: block; line-height: 20px; border-radius: 4px; background-color: #ea8db2; color: #fff; } 
.cld_blue { display: block; line-height: 20px; border-radius: 4px; background-color: #3f5add; color: #fff; } 
.cld_gray { display: block; line-height: 20px; border-radius: 4px; background-color: #959595; color: #fff; } 
.cld_green { display: block; line-height: 20px; border-radius: 4px; background-color: #41c79a; color: #fff; } 

.data_find_box { display: inline-block; width: 465px; border: 1px solid #909090; background-color: #fff; padding: 9px 36px; vertical-align: middle; margin-right: 20px; border-radius: 4px; } 
.data_find_box .calenda_input { margin: 0; } 
.data_find_box .calenda_input input { border: 0; width: 120px; padding: 0 10px; } 
/* .table_list_type tr td .price_input { margin-right: 0; } */
/* 업체정보 변경요청팝업 */
.file_upload { text-align: center; } 
.file_upload label { display: block; } 
.file_upload label::before { content: ""; display: block; width: 100%; height: 24px; background: url(../images/design/plus-circle-fill-blue.svg) no-repeat center top; margin-bottom: 10px; } 

/* ========================== 적격심사자료 ======================== */
.btn_list_box { border-right: 1px solid #dedede; border-top: 1px solid #dedede; margin-bottom: 20px; } 
.btn_list_box > li { float: left; width: 20%; padding: 10px 0; border-left: 1px solid #dedede; border-bottom: 1px solid #dedede; text-align: center; background-color: #fff; } 
.btn_list_box > li >button { width: 100%; line-height: 30px; } 
.btn_list_box >li:hover { background-color: #1e286d; } 
.btn_list_box >li:hover button { color: #fff; font-weight: bold; } 

/* 업체수정요청 딤모달 */
.company_modify_pop .bggray { padding: 40px; text-align:center; } 
.company_modify_pop .bggray strong { font-size: 28px; } 
.company_modify_pop .bggray .desc { font-size: 16px; line-height: 24px; color: #646464; padding: 10px 0 0; } 
.company_modify_pop .pop_body .box1 { font-size: 16px; line-height: 30px; } 
.company_modify_pop .pop_body .box2 { margin: 30px 0; text-align: center; } 
.company_modify_pop .pop_body .box3 { text-align: center; margin-bottom: 60px; } 
.company_modify_pop .pop_body .box3 a { width: 170px; padding: 0; text-align: center; } 
.company_modify_pop .pop_body .box3 a + a { margin-left: 8px; } 

/* ========================== 고객센터 ======================== */
.service_tab_box { max-height: 390px; height: auto; } 
.service_faq li a { margin: 0 0; } 
.service_faq .question::after { display: none; } 
.service_faq_tit { margin-bottom: 20px; } 
.service_faq li:not(.service_faq_tit) { border-bottom:1px solid #dedede } 
.service_faq li:last-child { border: none; } 

/* ========================== 서비스소개 ======================== */
.intro_con { padding-left: 32px; border-bottom:1px solid #dedede } 
.intro_box .intro_con div { margin-bottom: 20px; } 
.intro_box .intro_con div>h4 { font-weight: 500; line-height: 2; } 
.intro_box .intro_con div li { line-height: 2; margin-left:10px } 
.intro_box .intro_con div ul.title_none li { margin:0 } 

.program_box h6.sub_tit { margin-bottom: 14px; padding:13px 0; text-align: center; } 
.pro_con { border-bottom:1px solid #dedede } 

.pro_con .program_explain ul:not(.pro_con.differ .program_explain ul) { display: flex; height: calc(100% - 64px); align-items: end; } 
.pro_con.normal .program_explain li { padding:0 30px 20px 45px; text-align: right; font-weight: normal!important; } 
.pro_con.normal .graph_box { margin: 0; } 
.letter7 { letter-spacing: -0.7px; } 
.graph_box+p { padding-bottom: 34px; margin-top: 10px; } 
.graph_box { min-height:440px; min-width: 703px; border:1px solid #dedede; margin-right: 30px; } 

.program_explain ul { margin-bottom: 28px; } 
.program_explain ul:last-child { margin:0 } 
.program_explain ul li { line-height: 2; } 
.program_explain ul li:first-child { font-weight: 500; } 
.btn_list { display: flex; } 
/* .btn_list>button { margin-right: 8px; } */
.end_search { position: relative; bottom:70px; font-size: 0; } 
.end_search .selec_wrap { margin-right:30px } 

.one_btn_center { margin: 20px auto; display:block!important } 
.fee_sub { margin-bottom:17px; } 
.fee_info li { line-height: 2.14; text-align: left; } 
.fee_info { padding-left: 40px; } 
.tagtable.fee_table tbody tr td { vertical-align: inherit; } 

/* ========================== 메일문의 ======================== */
form { width: 100%; } 
.persnal_agree { padding:13px 15px 0!important; } 
.radio_box { max-width:300px; width:100%; margin-right: 17px; } 
.radio_box>ul li:first-child { width:60% } 

.inquiry_wrap .table_flex_list dl dt span { padding: 13px 15px } 
.inquiry_wrap .table_flex_list dl dt { padding: 0; } 
.inquiry_wrap .table_flex_list dl dd { padding: 10px 0 10px 30px; } 
.inquiry_wrap input[type=text] { border:1px solid #dedede; line-height: 30px; min-width: 336px; padding: 0 10px; } 
.inquiry_wrap .phone_box input[type=text] { min-width: 80px; width: 95px; } 
.inquiry_wrap .table_flex_list dl:last-child dd { padding:10px 30px } 
.inquiry_wrap textarea { resize: none; border: 1px solid #dedede; } 



.office_search ul { border-bottom:1px solid #dedede; line-height: 50px; } 
.office_search ul li { display: flex; align-items: center; } 
.office_search ul { padding-left: 22px; } 
.office_search ul .dropdownbox { min-width: unset; } 
.small_modal .layout_contain.small_pop .office_search li p { line-height: 29px; } 
.office_search ul li label { margin-left:10px } 
.office_search ul li input[type=text] { max-width:162px } 
 .tagtable .office_search thead tr th:first-child { width:76% } 
 .tagtable .office_search thead tr th:last-child { width:24% } 

 
 .left_table_con { width:calc(100% - 95px) } 
 .right_table_con { width:auto; padding-left:8.9px; border-bottom:1px solid #dedede } 

 /* ========================== 맞춤분석 ======================== */
 .fix_btn_wrap { text-align: center; height: 50px; } 
 .tucha_btn_fix.fix { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 50; } 
 .tucha_btn_fix.btn50 { border-radius: 4px 4px 0 0; } 

 /* ========================== 마이페이지 ======================== */
.mypage_wrap.form_box td > input { min-width: 336px; } 
.mypage_wrap .btw_flex_box .leftbox { width: 200px; } 
.mypage_wrap .btw_flex_box .rightbox { width: calc(100% - 220px); margin-top: 42px; } 

.lnb_box .tit { font-size: 18px; font-weight: 500; padding: 0 0 16px; } 
.lnb_list { border-top: 1px solid #1e1e1e; } 
.lnb_list li { border-bottom: 1px solid #dedede; } 
.lnb_list li a { display: block; line-height: 50px; padding: 0 16px; } 
.lnb_list li a.on { background-color: #1c293f; color: #fff; }

/* 관리자(super) 전용 관리페이지 버튼 — 헤더 상단(마이페이지 좌측) + 마이페이지 LNB 공용 */
.btn_admin_page { background-color: #1c293f; color: #fff; }
.btn_admin_page:hover { background-color: #2b3d5c; color: #fff; }
.lnb_admin_box { margin-bottom: 24px; }
.lnb_admin_box .btn_admin_page { display: block; line-height: 48px; text-align: center; border-radius: 4px; font-weight: 500; }

/* 관리자(super) 전용 마케팅 검색 버튼 — 헤더 상단, 관리페이지 좌측 */
.btn_marketing_search { background-color: #4a5d7e; color: #fff; }
.btn_marketing_search:hover { background-color: #5d739a; color: #fff; }

/* 관리자(super) 전용 버튼 묶음 — 헤더 검색창 왼쪽(2026-10-05 사용자 지시: 상단 버튼 줄에서 옮김).
   ★ .header_admin_tools 는 super 관리자에게만 그려진다(header.php) — 아래 배치 규칙은 전부 이 div 를 앵커로 걸어
     일반 회원 헤더에는 한 줄도 닿지 않게 한다. */
.header_admin_tools { display: flex; align-items: center; flex: 0 0 auto; margin-right: 12px; font-size: 0; }
.header_admin_tools .btn { margin-right: 6px; }
.header_admin_tools .btn:last-child { margin-right: 0; }
/* 버튼 3개가 앞에 붙었으니 검색창은 묶음 바로 옆에 두고, 남는 폭은 오른쪽 버튼줄 앞으로 보낸다
   (space-between 그대로면 항목 3개라 검색창이 가운데로 떠 버린다) */
.header_admin_tools ~ .top_menu { margin-left: auto; }

/* 「관리자」 토글 — 타원 On/Off 스위치. 꺼짐=회색, 켜짐(.on)=차분한 초록(2026-10-05 사용자 지시: 덜 튀게). 켜야 관리자 전용 메뉴(.vbid_admin_only)가 보인다.
   ★ 높이 34px = 옆 검색도구·관리페이지(.btn_w100 line-height 34)와 맞춘다 — 바깥 고리(box-shadow)를 두르면 보이는 높이가 커지니 쓰지 않는다.
   숨김 스위치는 html.vbid_admin_menu_off (views/vibid_pc/common/header.php 가 첫 렌더에 붙인다) */
.btn_admin_toggle { flex: 0 0 auto; width: 58px; height: 34px; margin-right: 10px; padding: 0; border: 1px solid #c3cad6; border-radius: 50%;
    background-color: #eef1f5; color: #8a96aa; font-family: inherit; font-size: 12px; font-weight: 700; letter-spacing: -0.5px; line-height: 1; cursor: pointer;
    transition: background-color .15s, border-color .15s; }
.btn_admin_toggle:hover { border-color: #9aa5b8; color: #5d6b82; }
.btn_admin_toggle.on { background-color: #5f9c7a; border-color: #528a6b; color: #fff; }
.btn_admin_toggle.on:hover { background-color: #568f6f; }
html.vbid_admin_menu_off .vbid_admin_only { display: none !important; }
/* 관리자 모드 On 이면 검색도구·관리페이지 버튼까지 헤더 한 줄에 서서 검색창(360px)이 V.BID 로고를 덮는다(헤더 폭 1240 고정) — 그때만 줄인다 */
html.vbid_admin_menu_on .header_serch { width: 280px; }

/* 결제관리 — 헤더 상단 로그아웃 오른쪽 버튼 + 마우스 오버 드롭다운(옛 GNB 하위메뉴와 같은 모양) */
.right_header .top_menu .top_pay_menu { position: relative; display: inline-block; vertical-align: top; }
.right_header .top_menu .top_pay_menu .btn_top_pay { margin-right: 0; }
.top_pay_menu .top_pay_sub { display: none; position: absolute; right: 0; top: 100%; padding-top: 6px; z-index: 110; text-align: center; }
.top_pay_menu:hover .top_pay_sub, .top_pay_menu:focus-within .top_pay_sub { display: block; }
.top_pay_menu .top_pay_sub a { display: block; width: 160px; line-height: 44px; font-size: 14px; color: #1c293f; background-color: #fff; box-shadow: 3px 3px 15px rgba(0,0,0,0.1); }
.top_pay_menu .top_pay_sub a:hover { background-color: #fa448c; color: #fff; }

/* 회원수정 */
.alram_txt { position: relative; width: 588px; margin: 0 auto; padding: 11px 0 11px 100px; line-height: 28px; } 
.alram_txt::before { content: ""; position: absolute; left: 0; top: 0; width: 70px; height: 70px; border-radius: 50em; background: #f4f4f4 url(../images/design/bell-icon.svg) no-repeat center; vertical-align: middle; } 
.password_change ul li { margin: 8px 0; } 
.password_change ul li input { line-height: 40px; width: 100%; } 
.mypage_wrap .table_list_type .calenda_input { margin-right: 10px; } 
.mypage_wrap .table_list_type .emali_box .calenda_input label:first-child input { width: 160px; } 
.mypage_wrap .table_list_type .emali_box .calenda_input label:last-child input { width: 140px; } 
.adr_list { border-top: 1px solid #1e1e1e; } 
.adr_list li { display: flex; justify-content: space-between; align-items: center; padding: 17px 20px; border-bottom: 1px solid #dedede; } 
.adr_list li .left span { display: block; line-height: 20px; margin: 3px 0; } 
.adr_list li .left span em { display: inline-block; line-height: 20px; font-size: 12px; color: #fff; background-color: #b1b3b8; margin-right: 8px; width: 46px; text-align: center; border-radius: 4px; } 



/* 결제내역 */

.pay_step_info .white_box { padding: 10px 5px; } 
.pay_step_info .disflex li { padding: 11px 30px; } 
.pay_step_info .disflex li + li { border-left: 1px solid #dedede; } 
.radio_wrap { font-size: 0; } 
.radio_wrap li { display: inline-block; width: 25%; } 
.radio_wrap li.w50p { width: 50%; } 

/* sms알리미서비스 */
.sms_wrap { position: relative; height: 210px; background: url(../images/banner/bg_sms.png) no-repeat center; background-size: cover; padding: 54px 80px; } 
.sms_wrap::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-image: linear-gradient(to right, #00052b 19%, rgba(104, 104, 104, 0)); opacity: 0.7; z-index: 1; } 
.sms_wrap .text_box { position: relative; z-index: 2; } 
.sms_wrap .sbn_title { font-size:28px; margin-bottom: 20px; line-height: 1; color: #fff } 
.sms_wrap .desc { font-size: 16px; font-weight: 300; line-height: 26px; color: #fff } 

/* ========================== 결제관리 ======================== */
.table_bg { display: flex; align-items: flex-end; } 
.table_bg::before { content: ""; display: inline-block; width: 263px; height: 163px; background: url(../images/banner/pay_bg.png) no-repeat center; background-size: cover; } 
.table_bg .text { margin-left: 10px; } 
.table_bg .sbn_title { display: block; font-size: 26px; font-weight: 500; padding-bottom: 15px; } 







/* ========================== 공용사용 ======================== */


/* pc 버전 공용사용 */

.table_list .flex_container .flex { display: inline-block; line-height: 50px; } 
.flex_container { border-bottom: 1px solid #dedede; } 
.flex_container .flex:last-child { font-size: 12px; color: #959595; } 
.more_list_box ul { padding: 0 0 0 220px; margin-top: 20px; } 
.more_list_box .box_btn_more { width: 200px; } 



/* ========================== 테이블 ======================== */


.tagtable.blue_header thead tr th { background-color: #f2f4ff; } 
.tagtable.blue_header tbody tr td { vertical-align:inherit; } 
.table_list { padding: 0 0 70px; } 
.table_list .table_title { padding: 0 20px; } 
.table_list { position: relative; padding: 0 0 70px; } 
/* .table_list .table_title { position: relative; background-color: #f4f4f4; padding: 0 20px; border-top: 1px solid #1c293f; } 
.table_list .table_title .title { font-size: 16px; line-height: 49px; } 
.table_list .table_title .title .count { color: #959595; padding-left: 6px; } 
.table_list .table_title .title .desc { color: #959595; font-size: 12px; padding-left: 6px; } 
.table_list .table_title .poRcen { right: 20px; } */

.table_list .dept2 p { font-size: 16px; line-height: 24px; } 
.table_list .dept2 .two_c { font-size: 0 } 
.table_list .dept2 .two_c span { display: inline-block; width: 50%; font-size: 16px; line-height: 24px; } 
.table_list th.dept2 p + p { border-top: 1px solid #fff; } 
.table_list th.dept2 p span + span { text-align: center; border-left: 1px solid #fff; } 
.table_list td.dept2 { padding: 0; } 
.table_list td.dept2 .one_c { padding: 6px 28px; } 
.table_list td.dept2 .one_c input { width: 100%; } 
.table_list td.dept2 .two_c span { padding: 6px 12px; } 
.table_list td.dept2 p + p { border-top: 1px solid #dedede; } 
.table_list td.dept2 p span + span { text-align: center; border-left: 1px solid #dedede; } 

.table_list.type2 { } 
.table_list.type2 >.more_list_box { position: static; } 
.table_list.type2 >.more_list_box .listOfassignment { display: none; min-height: 400px; } 
.table_list.type2 >.more_list_box .sld-btn { display: none; position: absolute; left: 0; bottom:0; text-align: center; width: 100%; } 
.table_list.type2 >.more_list_box:nth-of-type(2) .listOfassignment,
.table_list.type2 >.more_list_box:nth-of-type(2) .sld-btn { display: block; } 
.table_list.type2 >.more_list_box:nth-of-type(2) .sld-btn .pagenation { padding: 0; } 
/* .listOfassignment li { display: none; } 
.listOfassignment li.active { display: block; } */
.table_list.type2 .more_list_box .box_btn_more { top: 70px; height: 50px; line-height: 50px; } 
.table_list.type2 .more_list_box .box_btn_more .btn_more { background-image: none; padding: 0 10px; } 
.table_list.type2 .more_list_box:nth-of-type(3) .box_btn_more { top: 128px; } 
.table_list.type2 .more_list_box:nth-of-type(4) .box_btn_more { top: 186px; } 
.table_list.type2 .more_list_box:nth-of-type(5) .box_btn_more { top: 244px; } 
.table_list.type2 .more_list_box:nth-of-type(6) .box_btn_more { top: 302px; } 
.table_list.type2 .more_list_box:nth-of-type(7) .box_btn_more { top: 566px; } 
.table_list.type2 .more_list_box:nth-of-type(8) .box_btn_more { top: 624px; } 

/* .table_list.type3 li { position: relative; border-bottom: 1px solid #dedede; } */
/* .table_list.type3 li .left_label { position: absolute; left: 0; top: 0; height: 100%; width: 150px; background-color: #f2f4ff; padding: 8px 24px; font-weight: 500; font-size: 16px; } 
.table_list.type3 li .left_label input { position: absolute; right: 24px; top:16px; } 
.table_list.type3 li .left_label label { display: block; line-height: 34px; } */
/* .right_box { padding: 8px 0 8px 180px; } 
.right_box::after { content: ""; display: block; clear: both; } 
.right_box dd { float: left; min-width: 132px; line-height: 34px; } 
.right_box dt { clear: both; width: 100%; background-color: #f4f4f4; line-height: 38px; padding: 0 26px; border-radius: 4px; } 
.right_box dt strong + strong { margin-left: 20px; } */

.table_list.type3.tran .left_label { background-color: transparent; } 
/* 
.table_list.type3.titblue { padding: 0; } 
.table_list.type3.titblue .left_label { background-color: #1e286d; } 
.table_list.type3.titblue .left_label * { color: #fff; } */
/* .table_list.type3.titblue .right_box { background-color: #fff; } 
.table_list.type3.titblue .right_box dd { width: 20%; } */

.table_list.serch .table_title { height: 86px; line-height: 86px; } 
.table_list.serch .table_title .title { line-height: 86px; } 

.table_list.posi { padding: 0; } 
.table_list.posi dl { position: relative; } 
.table_list.posi .left_label { position: absolute; left: 0; top: 0; width: 25%; height: 100%; background-color: #f2f4ff; } 
.table_list.posi .potit { text-align: center; } 
.table_list.posi .potit strong { display: inline-block; margin-bottom: 6px; } 
.table_list.posi .potit p input { width: 88%; margin-right: 8px; } 
.table_list.posi .potit button { margin-top: 20px; } 
.table_list.posi .right_box { position: relative; padding: 50px; margin-left: 25%; } 
.table_list.posi .right_box.posicen { width: 100%; } 
.table_list.posi .right_box ul { display: flex; align-items: center; } 
.table_list.posi .right_box ul li { overflow: hidden; width: 25%; } 
.table_list.posi .right_box ul li:last-child { padding-bottom: 0px; } 
.table_list.posi .right_box ul li * { float: left; display: block; } 
.table_list.posi .right_box ul li b { width: 30px; min-height: 1px; } 
.table_list.posi .right_box ul li strong { display: block; width: 100%; padding-left:45px; margin-bottom: 6px; } 
.table_list.posi .right_box ul li strong.repa { padding-left: 39px; } 
.table_list.posi .right_box ul li span { display: flex; align-items: center; line-height: 26px; } 
.table_list.posi .right_box ul li span input { width: 70%; margin-right:8px; } 
.table_list.posi .right_box ul li span b { display: block; width: 20%; text-align: right; margin-top: 3px; } 
.table_list.posi .right_box ul.row2 { position: relative; margin-top: 20px; } 
.table_list.posi .right_box ul.row2 li.relative { width: 50%; padding: 0 50px; } 
.table_list.posi.pop .right_box ul.row2 li.relative { padding: 0 40px; } 
.table_list.posi .right_box ul.row2 li.relative::before { content: ""; position: absolute; left: 0; top: 0; width: 14px; height: 14px; border-left: 2px solid #1e286d; border-bottom: 2px solid #1e286d; } 
.table_list.posi .right_box ul.row2 li.relative::after { content: ""; position: absolute; right: 9.5%; top: 0; width: 14px; height: 14px; border-right: 2px solid #1e286d; border-bottom: 2px solid #1e286d; } 
.table_list.posi .right_box ul.row2 li.relative label { display: flex; justify-content: center; align-items: center; } 
.table_list.posi .right_box ul.row2 li.relative strong { padding-left: 0; width: 130px; padding-right: 10px; } 
.table_list.posi .right_box ul.row2 li.posichk { position: absolute; left: 90px; bottom: -30px; } 

/* 세로리스트 */
.hori_list_wrap.flex_container .col4 { float: left; width: 25%; padding-right: 50px; } 
.hori_list { padding: 32px 0; } 
.hori_list dd { padding: 0 0 0 14px; } 
.hori_list dd button , .hori_list dd a { display: block; width: 100%; font-size: 14px; line-height: 30px; text-align: left; color: #585858; } 
.hori_list dd button:hover , .hori_list dd a:hover { text-decoration: underline; } 
.hori_list dd button.on , .hori_list dd a.on { background-color: #f4f4f4; } 
.bordergry_top { border-top: 1px solid #dedede; } 

.hori_list_wrap.type2 { padding: 0 30px; overflow: auto; max-height: 738px; height: auto; resize: none; }
.hori_list_wrap.type2 .flex { width: 100%; } 
.hori_list_wrap.type2 .hori_list { display: flex; align-items: flex-start; } 
.hori_list_wrap.type2 .hori_list + .hori_list { border-top: 1px solid #dedede; } 
.hori_list_wrap.type2 .hori_list .dot_title { width: 140px; } 
.hori_list_wrap.type2 .hori_list dd { width: calc(100% - 140px); } 
.hori_list_wrap.type2 .hori_list dd button, .hori_list_wrap.type2 .hori_list dd a { width: auto; } 
.hori_list dd .desc { line-height: 20px; margin-bottom: 10px; } 
/* 버튼리스트 */
/* 탭 줄 — 한 줄에 최대한 담는다(2026-09-20 사용자 지시: 자동5+수동2=7개가 2줄로 갈라졌다).
   고정 190px(7×190+여백 = 1378 > 컨테이너 1200)이라 넘쳤다 → flex 로 **남는 폭에 맞춰 줄어들게** 한다.
   ★ max-width 190 는 유지(넓은 화면에서 탭만 커지지 않게), min-width 120 아래로는 줄이지 않고 줄바꿈한다. */
.tab_table_btwlist { margin-bottom: 20px; }
/* ★ 아래 flex 는 **맞춤그룹 탭 줄에만** 건다 — 같은 클래스를 모바일 스와이퍼 메뉴(.rid_btn_swiper·.secrch_swiper)도 쓴다. */
.table_list > .tab_table_btwlist , .inner > .tab_table_btwlist , .ininner > .tab_table_btwlist {
    display: flex; flex-wrap: wrap; gap: 8px; }
.tab_table_btwlist::after { content: ""; display: block; clear: both; } 
/* ★ 2026-10-22 사용자 지시 — 탭 버튼 크기 축소(맞춤 공고함·나의투찰성향 등 PC 탭 전부 같은 크기): 폭 190→160px · 높이 58→46px.
   2줄 이름(14px×1.25×2 + 위아래 4px = 43px)도 46px 안에 들어간다. 모바일은 user.css 를 안 읽어 대상 아님. */
.tab_table_btwlist > li { float: left; max-width: 160px; width: 100%; margin-right: 8px; border: 0 !important; }
.table_list > .tab_table_btwlist > li , .inner > .tab_table_btwlist > li , .ininner > .tab_table_btwlist > li {
    float: none; flex: 1 1 0; min-width: 120px; width: auto; margin-right: 0; }
/* 탭 버튼 — 자동공고 탭이 "회사이름 / (자동)" 2줄이라, 1줄 탭과 높이가 달라지면 float 줄바꿈이
   어긋난다. 높이를 min-height 로 고정하고 flex 로 세로 가운데 정렬해 1줄·2줄이 같은 크기가 된다.
   (종전 line-height:50px 단일행 방식은 2줄이 들어오면 100px 로 늘어났다) */
.tab_table_btwlist > li > button , .tab_table_btwlist > li > a { display: flex; flex-wrap: wrap; align-items: center; align-content: center; justify-content: center; min-height: 46px; line-height: 1.25; padding: 4px 6px; box-sizing: border-box; width: 100%; text-align: center; border-radius: 4px; background-color: #f4f4f4; } 
.tab_table_btwlist > li > button:hover , .tab_table_btwlist > li.on > button , .tab_table_btwlist > li > a:hover , .tab_table_btwlist > li.on > a { background-color: #fa448c; color: #fff; } 
/* 자동공고 탭 — 마이페이지 종목·주소로 자동 생성되는 읽기전용 그룹.
   비자동 탭을 고르면 자동공고+슬롯5+설정변경 = 7개가 되어 164px×7+8px×6 = 1196px 로
   컨테이너(1200급)에 겨우 들어간다. 자동공고만 좁혀 여유를 만든다. */
/* "(자동 없음)" 접미사는 항상 다음 줄. 회사이름이 길어도 접미사가 이름에 붙어 읽히지 않게 한다. */
/* flex-basis 100% 로 강제 줄바꿈 — flex 컨테이너 안에서는 <br> 이 무시된다.
   ★ flex-direction:column 으로 하면 안 된다: 아이콘(.fronticon ::before)도 flex 아이템이라
     '설정변경' 탭의 톱니바퀴가 글자 위로 올라간다. */
.tab_table_btwlist .auto_sfx { flex: 0 0 100%; font-size: 12px; font-weight: 400; opacity: .85; }
/* ★ 2026-09-20 사용자 지시 — 자동공고 탭의 파란 배경/글자(#eef4ff·#2563eb)를 없애고 수동 탭과 **똑같이** 둔다.
   구분은 색이 아니라 라벨 앞 아이콘(핀셋/서류함, vbid_group_tab_icon_html)이 한다.
   접미사 "(자동)" 을 떼면서 2줄이 아니게 돼 max-width:120px 제한도 뗐다(수동 탭과 같은 164px). */
.tab_table_btwlist .grp_tab_ico { display: inline-flex; align-items: center; flex: 0 0 auto; margin-right: 4px; }
/* ★ color:inherit 필수 — 전역 리셋 `* { color:#1e1e1e }` 가 span 색을 고정해서, 선택된 탭(분홍 배경·흰 글자)에서
   이름과 아이콘만 **검은색**으로 남는다(2026-09-20 사용자 신고 「선택하면 글자가 안 보인다」). 아이콘은 stroke=currentColor 라 같이 따라온다. */
.tab_table_btwlist .grp_tab_ico , .tab_table_btwlist .grp_tab_nm , .tab_table_btwlist .auto_sfx { color: inherit; }
/* ★ svg 에도 따로 걸어야 한다 — 전역 리셋의 `*` 가 **svg 자체**에도 적용돼 상속(흰색)을 이긴다(span 만 고치면 아이콘만 검게 남는다). */
.tab_table_btwlist .grp_tab_ico svg , .tab_table_btwlist .grp_tab_ico svg * { color: inherit; }
/* ★★ `svg *` 까지 필요하다 — 전역 리셋의 `*` 는 svg **안의 path·rect** 에도 적용돼, svg 를 흰색으로 만들어도
   자식이 자기 color(#1e1e1e)로 stroke=currentColor 를 풀어 **선만 검게** 그려진다(2026-09-20 사용자 재신고). */
/* 이름은 **최대 2줄**, 넘치면 말줄임(…) — 「주식회사 이엔에프(ENF Co.,Ltd.)」 가 3줄이 되던 것(2026-09-20 사용자 지시).
   탭 너비도 164→190px 로 넓혀 두 줄에 들어가게 했다(한 줄에 6개, 컨테이너 1200급). */
.tab_table_btwlist .grp_tab_nm { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; word-break: break-all; flex: 1 1 0; min-width: 0; }
/* ★ flex-basis **0**(`flex:1 1 0`) — 아이콘(24px)과 같은 줄에 남아 **span 안에서** 줄바꿈한다.
   `flex:1 1 auto` 로는 안 된다: flex-wrap:wrap 이라 **줄어들기 전에 다음 줄로 넘어가** 이름이 아이콘 아래로 가고
   그 탭만 높아진다(실측 58 → 67px). */
/* "(자동 없음)" — 그 회사에 이 업무구분의 등록 업종·물품이 없는 축(migrations/075).
   탭 자리는 남겨 두되 링크가 아니라 <span> 이라 클릭이 안 된다(비활성이 눈에도 보여야 한다). */
.tab_table_btwlist > li.auto_group.is_off > span { display: flex; flex-wrap: wrap; align-items: center; align-content: center;
    justify-content: center; min-height: 46px; line-height: 1.25; padding: 4px 6px; box-sizing: border-box; width: 100%;
    text-align: center; border-radius: 4px; background-color: #f4f4f4; color: #aaa; font-weight: 400; cursor: default; }

/* 목록 설정 패널 접기 토글 — 기본 접힘(서버가 인라인 style 로 렌더). common.js 참조 */
/* ★ 왼쪽에 붙인다(가운데 정렬 X) + 앞에 네모 아이콘: 닫힘=「+」(설정 열기) / 열림(.on)=「−」(설정 닫기).
   아이콘은 글꼴 문자가 아니라 배경 막대 2개로 그린다 — 글꼴마다 +/− 굵기·높이가 달라 네모 안에서 치우친다.
   문구는 common.js 가 .text() 로 갈아 끼우므로 아이콘은 ::before 에 둔다(마크업에 넣으면 .text() 가 지운다). */
.bid_filter_toggle { display: flex; align-items: center; margin: 12px 0 0; padding: 0 14px 0 10px; height: 36px;
    border: 1px solid #d5d8de; border-radius: 4px; background-color: #fff; color: #555; font-size: 14px; cursor: pointer; }
.bid_filter_toggle::before { content: ''; flex: 0 0 auto; width: 16px; height: 16px; margin-right: 7px; box-sizing: border-box;
    border: 1px solid currentColor; border-radius: 3px;
    background: linear-gradient(currentColor, currentColor) center / 8px 2px no-repeat,
                linear-gradient(currentColor, currentColor) center / 2px 8px no-repeat; }
.bid_filter_toggle.on::before { background: linear-gradient(currentColor, currentColor) center / 8px 2px no-repeat; }
.bid_filter_toggle:hover { border-color: #fa448c; color: #fa448c; }
.bid_filter_toggle.on { border-color: #fa448c; color: #fa448c; }
.bid_filter_panel { margin-top: 12px; }
/* 탭안에 탭 */
.tab_table_btwlist2 { margin-bottom: 20px; } 
.tab_table_btwlist2::after { content: ""; display: block; clear: both; } 
.tab_table_btwlist2 li { float: left; max-width: 164px; width: 100%; margin-right: 8px; border: 0 !important; } 
.tab_table_btwlist2 li:nth-child(7n) { margin-right: 0; } 
.tab_table_btwlist2 li:last-child { margin-right: 0; } 
.tab_table_btwlist2 li button , .tab_table_btwlist2 li a { display: block; line-height: 50px; width: 100%; text-align: center; border-radius: 4px; background-color: #f4f4f4; } 
.tab_table_btwlist2 li button:hover , .tab_table_btwlist2 li.on button , .tab_table_btwlist2 li a:hover , .tab_table_btwlist2 li.on a { background-color: #fa448c; color: #fff; } 

.tab_table_btwlist.headtab { position: absolute; left: 200px; bottom: 0; width: 50%; margin: 0; padding: 0 } 
.tab_table_btwlist.headtab > li button { border-radius: 4px 4px 0 0; } 
.tab_table_btwlist.addselect > li { margin-bottom: 8px; } 
.tab_table_btwlist.addselect > li:nth-last-child(-n+3) { margin-bottom: 0; } 
.tab_table_btwlist.addselect > li.select { background-color: #f4f4f4; padding: 10px 0; border-radius: 4px; text-align: center; } 
.tab_table_btwlist.addselect > li.select > .selec_wrap { text-align: left; margin: 0; } 
.tab_table_btwlist.addselect > li.select > .selec_wrap .sel_menu li { padding: 0 10px; margin: 0; } 

.tab_table_btwlist2.type2 { display: inline-block; margin-bottom: 0; vertical-align: middle; } 
.tab_table_btwlist2.type2 li { width: 108px; display: inline-block; vertical-align: top; margin-bottom: 8px; } 
.tab_table_btwlist2.type2 li button, .tab_table_btwlist2.type2 li a { line-height: 30px; background-color: #fff; border: 1px solid #e8e8e8; color: #1e1e1e; } 
.tab_table_btwlist2.type2 li.on button, .tab_table_btwlist2.type2 li.on a { background-color: #f4f4f4; } 

.two_dept_wrap { padding: 0; } 
.two_dept_wrap .two_btn_wrap { padding: 10px 0; height: 750px; overflow: auto; margin: 0; } 
.two_dept_wrap .two_btn_wrap.dep2_box { display: none; } 
.two_dept_wrap .two_btn_wrap.dep2_box.show { display: block; } 
.two_dept_wrap .two_btn_wrap li { width: 100%; max-width: 100%; margin-right: 0; } 
.two_dept_wrap .two_btn_wrap li button { width: 100%; line-height: 40px; background-color: #fff; text-align: left; padding: 0 20px; background: url(../images/design/nv_right_1.svg) no-repeat right 20px center; } 
.two_dept_wrap .two_btn_wrap li button:hover , 
.two_dept_wrap .two_btn_wrap li.on button { color: #374ec9; background-color: #f2f4ff; background-image: url(../images/design/caret-right_blue.svg) } 
.two_dept_wrap .line { border-left: 1px solid #dedede; } 
.two_dept_wrap .dept_box { display: none; } 
.two_dept_wrap .dept_box ul { padding: 0 20px; height: 750px; overflow: auto; } 
.two_dept_wrap .dept_box ul li { float:left; width: 33.3333%; } 
.two_dept_wrap .dept_box ul li:hover button , .two_dept_wrap .dept_box ul li.on button { color: #374ec9; font-weight: bold; } 


/* 달력태그 */

.canlen_pink { display: block; line-height: 20px; border-radius:4px; color: #fff; text-align: center; background-color:#ea8db2; margin-bottom: 6px; } 
.canlen_blue { display: block; line-height: 20px; border-radius:4px; color: #fff; text-align: center; background-color:#3f5add; margin-bottom: 6px; } 
.canlen_gray { display: block; line-height: 20px; border-radius:4px; color: #fff; text-align: center; background-color:#959595; margin-bottom: 6px; } 
.canlen_green { display: block; line-height: 20px; border-radius:4px; color: #fff; text-align: center; background-color:#41c79a; margin-bottom: 6px; } 


/* .selec_wrap { position: relative; display: inline-block; margin-right: 6px; vertical-align: middle; } */
/* .dropdownbox { position: relative; min-width: 130px; margin: 0 auto; padding:0 36px 0 18px; background: #FFF; cursor: pointer; border: 1px solid #1c293f; border-radius: 4px; } 
.dropdownbox::after { content: ""; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; background: url(../images/design/selec_arr_down.svg) no-repeat center; transition: transform 0.3s; } 
.dropdownbox.on::after { transform: translateY(-50%) rotate(180deg); } 
.dropdownbox > p { line-height: 28px; user-select: none; -moz-user-select:none; -khtml-user-select: none; } 
ul.sel_menu { position: absolute; left: 0; top: 22px; height: 110px; margin: 0 auto; width: 100%; overflow: auto; height: 0; margin-top: 10px; -webkit-transition: all 0.3s ease-in; -moz-transition: all 0.3s ease-in; -o-transition: all 0.3s ease-in; transition: all 0.3s ease-in; background:#fff; cursor: pointer; user-select: none; -moz-user-select:none; -khtml-user-select: none; box-shadow: 0 3px 15px rgba(0,0,0,0.16); z-index: 10; border-radius: 8px; } 
ul.sel_menu li { padding: 0 20px; line-height: 30px; -webkit-transition: all 0.3s ease-in; -moz-transition: all 0.3s ease-in; -o-transition: all 0.3s ease-in; transition: all 0.3s ease-in; } 
 ul.sel_menu li:hover { background: #f2f2f2; } */

/* ========================== 검색창 ======================== */
.serch_wrap { position: absolute; left: 50%; transform: translateX(-50%); top: -35px; z-index: 100; } 
.serch_box { position: relative; padding: 28px 40px; width: 700px; background-color: #fff; border-radius: 4px; box-shadow: 3px 3px 15px rgba(0,0,0,0.16); } 
.serch_box input { line-height: 24px; font-size: 16px; width: 95%; } 
.serch_box .btn_serch { position: absolute; right: 25px; top: 50%; transform: translateY(-50%); } 

.serch_wrap.type2 { position: static; transform: translate(0,0); } 
.serch_wrap.type2 .serch_box { padding: 16px 40px; margin: 0 auto; box-shadow: none; border: 2px solid #dedede; } 

.serch_wrap.type3 { left: 50%; top: calc(50% - 1px); transform: translate(-50% , -50%); } 
.serch_wrap.type3 .serch_box { width: 480px; padding: 0 40px; margin: 0 auto; box-shadow: none; height: 50px; line-height: 48px; } 
/* 검색창 왼쪽 안내 라벨(2026-09-20) — 통합입찰 맞춤설정 「업종 (필수)」의 「업종(코드)검색」.
   ★ article 이 left:50% + translate(-50%) 로 가운데 정렬돼 있으므로, 라벨을 article **안에** 넣고
     flex 로 묶어야 라벨+입력칸이 한 덩어리로 가운데에 선다(바깥에 두면 입력칸만 가운데라 라벨이 겹친다). */
.serch_wrap.type3.with_lead { display: flex; align-items: center; gap: 14px; }
.serch_wrap.type3.with_lead .serch_lead { white-space: nowrap; font-size: 15px; font-weight: 500; color: #1c293f; }

/* 검색 띠 — 회색 배경이 화면 좌우 끝까지 가서 목록과 단절돼 보이던 것(2026-09-20 사용자 지시).
   배경을 바깥 상자에서 떼고 **목록과 같은 폭**(.ininner.full_inner = 좌우 5%, 1350px 이하 2%)의 안쪽 상자에만 준다.
   ★ 목록이 5% 여백을 쓰므로 여기도 %로 맞춘다 — 고정 px(1240 등)로 맞추면 창 폭이 바뀔 때 어긋난다. */
/* 목록 업종 칸 — 폭 상한(2026-09-20). 낙찰 목록은 상한이 없어 238px 까지 벌어지고 그만큼 예가범위·지역 칸이 눌렸다
   (입찰 167px 과 비교). 입찰이 쓰던 인라인 style 을 클래스 하나로 모은다. */
.list_indstry_cell { max-width: 160px; word-break: keep-all; white-space: normal; }
.mid_search_box { padding: 20px 5%; background-color: transparent; }
.mid_search_box > .serch_static_wrap { padding: 20px; border-radius: 6px; background-color: #f4f4f4; }
@media (max-width:1350px) { .mid_search_box { padding: 20px 2%; } }
/* ★ 목록 화면(입찰·낙찰 × 통합/공사/용역/물품 8개) 세로 간격 좁히기 — 2026-09-20 사용자 지시.
   세 곳 모두 공용 여백이 그대로 걸려 있던 자리다(실측: 설정열기↔검색창 90 / 검색창↔목록 100 / 목록↔페이징 90px).
   ① 설정 패널이 접히면서 `.table_list` 공용 padding-bottom 70 만 남았다 ② `.pat80` ③ 목록 표의 같은 70 + mat20.
   ★ 공용 규칙(.table_list·.pat80)을 직접 줄이지 말 것 — 맞춤설정·서류함 등 다른 화면이 같이 줄어든다.
     그래서 「설정 토글이 있는 상자」「검색 띠 뒤의 목록」으로 좁혀 건다. */
/* ★ 아래 두 값은 위 `.mid_search_box` 의 세로 padding 20px 과 **더해져서** 보이는 간격이 된다(4+20 = 24px, 탭↔설정버튼 20px 과 같은 급).
     검색 띠의 세로 padding 을 바꾸면 여기도 같이 본다 — 회색 상자가 안쪽(.serch_static_wrap)으로 옮겨져 바깥 padding 이 전부 흰 여백이다. */
.table_list.type3:has(> .bid_filter_toggle) { padding-bottom: 4px; }
.mid_search_box ~ section.tab_table_list.pat80 { padding-top: 4px; }
/* ★위 규칙은 「검색 띠 **바로 뒤** 목록」을 붙이려는 것인데, 일반형제(~) 라 **그 뒤 모든 목록**에 걸렸다.
   서류함처럼 목록 블록이 여러 개인 화면은 블록 사이 간격까지 4px 이 되어 제목이 앞 목록에 붙었다
   (2026-09-20 사용자 지적: 「…의 투찰마감공고」 목록과 「…이후 투찰마감공고」 제목 사이). 
   → 두 번째 이후 블록은 제 여백을 돌려준다. 첫 블록(검색 띠 바로 뒤)은 위 4px 그대로. */
.mid_search_box ~ section.tab_table_list.pat80 ~ section.tab_table_list.pat80 { padding-top: 40px; }
.mid_search_box ~ section.tab_table_list .list_from .table_list { padding-bottom: 0; }
.serch_static_wrap { text-align: center; } 
.serch_static_wrap .static_box { position: relative; display: inline-block; max-width: 614px; width: 100%; border-radius: 4px; overflow: hidden; vertical-align: middle; } 
.serch_static_wrap .static_box input { display: block; width: 100%; line-height: 48px; font-size: 16px; border: 1px solid #1c293f; padding: 0 210px 0 14px; border-radius: 4px; } 
.serch_static_wrap .static_box button { position: absolute; right: 0; top: 0; min-width: 150px; } 
.serch_static_wrap .btn50 { margin-left: 16px; } 

/* ========================== 레이아웃 팝업 ======================== */
.layout_popup { display: none; } 
.layout_popup .dim { position: fixed; left: 0; top: 0; background-color: rgba(0, 0, 0, 0.5); width: 100%; height: 100%; z-index: 101; max-height: 100vh; } 
.layout_popup .layout_contain { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); background-color: #fff; width: 100%; z-index: 102; min-height: 100px; max-height: 95vh; overflow: auto; width: 1180px; } 
.layout_popup .layout_box { background-color: #fff; } 
.pop_header { position: relative; background-color: #1c293f; padding: 0 50px; } 
.pop_header .title_modal { color: #fff; line-height: 58px; } 
.pop_header .close { right: 50px; } 
.pop_body { padding: 50px; } 
.layout_popup .layout_contain .pop_foot { display: flex; justify-content: center; align-items: center; margin-bottom: 50px; } 

.small_modal.w500 .layout_contain.small_pop { width: 500px; } 
/* .small_modal .layout_contain.small_pop .pop_body.pa40 { padding: 40px; } */
.layout_popup.address_modal .layout_contain { width: 800px; } 
.layout_popup.address_modal .layout_contain .serch_wrap { position: static; transform:translateX(0) } 
.layout_popup.address_modal .layout_contain .serch_wrap .serch_box { box-shadow: 3px 3px 15px 0 rgba(0, 0, 0, 0.08); } 
.layout_popup.address_modal .layout_contain .serch_wrap .serch_box input { padding-right: 40px; } 
.layout_popup.menu_popup .layout_contain { min-width: 848px; max-width: 848px; } 
.layout_popup.menu_popup .layout_contain .pop_body { padding:40px 65px 20px; } 
.layout_popup.menu_popup .layout_contain .pop_foot { margin-bottom:40px; } 
.layout_popup.menu_popup .layout_contain textarea { border-color: #1e1e1e; } 
.layout_popup[data-popup="my_buyer_pop"] .layout_contain.small_pop .pop_body { padding: 40px; } 
.layout_popup[data-popup="company_info_modify_pop"] .layout_contain.small_pop .pop_body { padding: 40px; } 
.layout_popup.small_modal { text-align: left; } 
.layout_popup.small_modal tr td.relative button { margin: 0; } 
.layout_popup.small_modal.le100top-50 { left: -100%; top: -50%; bottom: auto; right: auto; } 
.layout_popup.small_modal.le50top-50 { left: 50%; top: -50%; bottom: auto; right: auto; } 
.layout_popup.small_modal.le30top0 { left: 30%; top:0; bottom: auto; } 
.layout_popup.small_modal.le30bo0 { left: 0; top: -50%; } 
.layout_popup.small_modal.paycomfirm { left: 29%; top: -336px; } 
.layout_popup.small_modal.setfiler_pop .layout_contain.small_pop { width: 500px; } 
.layout_popup.alert_modal .layout_contain { top: 0; transform: translate(-50%,0); width: 550px; padding: 30px 40px; box-shadow: 3px 3px 15px 0 rgba(0, 0, 0, 0.08); border-radius: 4px; } 
.layout_popup.small_tit .table_list_type .tit { width: 140px; } 

.filter_wrap > .con { width: 50%; } 
.filter_wrap .filter_list { width: 348px; border: 1px solid #1e1e1e; background-color: #f4f4f4; padding: 25px; } 
.filter_wrap .filter_list .tit { font-weight: 500; font-size: 20px; padding-bottom: 25px; text-align: center; } 
.filter_wrap .filter_list > ul { border: 1px solid #1e1e1e; background-color: #fff; padding: 20px; max-height: 520px; min-height: 520px; overflow: auto; } 
.filter_wrap .filter_list > ul li label { color:#1e1e1e; line-height: 26px; font-size: 16px; width: 100%; padding: 2px 5px; } 
.filter_wrap .filter_list > ul li label input { display: none; } 
.filter_wrap .filter_list > ul li label.on { color: #1c1c1c; background-color: #d0e3ff; border-radius: 4px; }
/*.filter_wrap .filter_list > ul li:hover label { background-color: #fffcf0; } */
.use_box ul li label.on.bg { background-color: #d0e3ff; }
.filter_wrap .filter_list > ul li.disabled label { color: #c0c0c0; cursor: default; }
.filter_wrap .filter_list > ul li.disabled { pointer-events: none; opacity: 0.5; }
.filter_wrap .filter_btn_list { width: calc(100% - 348px); padding: 0 14px; } 
.filter_wrap .filter_btn_list .pbtn { margin: 5px 0; width: 164px; } 
.filter_wrap .filter_btn_list .pbtn.btn_list_minu { margin-top: 40px; } 
.filter_wrap .use_box .filter_list > ul li label { color: #1e1e1e; } 
.pop_foot .chk_label { margin-left: 18px; color: #1e286d; } 
.pop_tit_text { padding: 13px 0; } 


.my_list .right_box { padding: 8px 0 8px 20px; } 
.side_border { border:1px solid #dedede; border-width: 0 1px; } 
.chk_content_box { display: flex; flex-flow: wrap; border-bottom: 1px solid #dedede; border-left: 1px solid #dedede; } 
.my_list .chk_content_box:first-child { border-left: 0; } 
.my_list:last-child .chk_content_box:nth-last-child(-n+2) { border-bottom: 0; } 
.chk_content_box dl { } 
.chk_content_box dd { line-height: 34px; } 
.list_detail { padding: 0 14px; color:#1e1e1e; font-size: 14px; margin-right: 10px; border: 1px solid #e8e8e8; border-radius: 50em; background-color: #fff; text-align: center; height: 34px; line-height: 32px; font-weight: 500; } 
.list_detail.on { background-color: #1c293f; color: #fff; } 
div.fronticon.current { margin:30px 0 17px 0 } 

/* 업체정보 */
.busi_banner { width:100%; background: url(../images/banner/bg_con2.png) no-repeat center center; background-size: cover; position:relative; padding: 28px 0; } 
.busi_banner>div:first-child { position: absolute; width:100%; height:100%; top:0; } 
.busi_txt01,.busi_txt02 div { position: relative; display: flex; flex-flow: column; } 
.busi_txt01 { justify-items: flex-end; margin-left: auto; } 
.busi_txt01>span { color:#ffffff; font-size: 16PX; font-weight: 300; font-family: 'GmarketSansLight';; } 
.busi_txt01 span+span { font-family: 'GmarketSansMedium'; font-size: 28px; font-weight: 500; line-height: 1.5; margin-top: 23px; } 

.busi_txt02 { width:50%; justify-items: flex-end; margin-left: auto; margin-right: 60px; } 
.busi_txt02 div { width:calc(50% - 40px); margin-left: 40px; } 
.busi_txt02 div h6 { display: block; padding: 7px 0; text-align: center; border-radius: 4px; background-color: #1e286d; width:100px; color: #fff; } 
.busi_txt02 div p { background-color: #fff; text-align: center; padding: 20px 0; } 
.busi_txt02 div p .txthide2 { padding: 0 30px; } 
.busi_txt02 div strong { display: block; margin-bottom: 8px; font-size: 22px; } 
.new { background: url(../images/design/new_flag.svg) no-repeat; width:20px; height:20px; margin-left: 4px; } 
.fronticon.current+ul.selection_option_box .select_0:first-child { width: 130px!important; } 
.fronticon.current+ul.selection_option_box input[type=number],.fronticon.current+ul.selection_option_box input[type=text] { height:34px } 
.table_list.type3 li .align_flex+div .right_box { padding: 8px 0 8px 20px; border-bottom: 1px solid #dedede; } 
.table_list.type3 li .right_box dt.list_detail { padding:0 10px; width:auto; } 

/* 공고페이지 */
.dark_btn { padding: 5px 22px; text-align: center; border-radius: 50em; background-color: #1c293f; color:#fff; margin: 0!important; } 
.subp_table { width:100% } 
.subp_table tbody tr td { vertical-align: inherit; height: 50px; padding: 0; } 

.left_table.tagtable thead tr th:last-child { border-bottom: 1px solid #ffff; } 
.sub_table_wrap { display:flex; align-items:flex-start; gap:18px; }
.left_table { width:363px; flex-shrink:0; }
.right_table { flex:1; min-width:0; margin-left:0; }
.right_table table:first-child { margin-bottom: 16px; } /* 2026-09-24 40→16 — user2.css 에 같은 규칙(뒤에 로드돼 이김), 같이 고칠 것 */
.right_table tbody { min-height: 500px; } 
.right_table .suc_li_height th { padding-left: 30px; } 
tr.pink td { color:#fa448c } 
.select_wrap .all_about_btn::before { content: "전체"; display: block; padding-top: 4px; } 
.search_box { border:1px solid #dedede; padding: 4px 0 4px 14px!important; min-width:272px; color:#767676 } 

/* 맞춤분석 */
.bg_lightB { background: #fafbff; } 
.bg_lightP { background: #fff5fa } 
input[type=text].star_orpart_lineder { max-width: 676px; width:100% } 
.table_flex_list dl .stit { width:151px } 
.table_flex_list dl .stit+dd .price_input { margin:6px 0 0 0 } 
.partice_input i { display: inline-block; padding: 0 8px; } 
.large_tit { padding-left: 20px; } 
.part_line::after { content: "|"; display: inline-block; margin:0 16px } 
.part_line+li.select_wrap button { margin:0 } 
.firnum tbody tr td.none::before { content: ""; } 
.layout_contain.wMidium { max-width: 693px; } 
div[data-popup=buyer_research_pop] table tbody tr td:first-child:not(.none) { padding-left: 30px; } 
.boksu_num td { font-weight: 500; } 
.table_flex_list .bottom_floor dd { padding:8px 30px; } 
.bottom_floor dd div:first-child { min-width:119px } 
.bottom_floor dd div:last-child { width:calc(100% - 125px) } 
.bottom_floor dd { display: flex; align-items: center; } 

/* 온라인결제 */
.lineH26 { line-height: 26Px; } 
div[data-popup=pay_type_popup] .layout_contain { max-width:889px; } 
div[data-popup=pay_type_popup] .grayline_box>div { line-height: 26px; } 
div[data-popup=pay_type_popup] table tr td { text-align: left; line-height: 26px; padding-left:20px; vertical-align: top; } 
div[data-popup=pay_type_popup] table tr td p:not(:last-child) { margin-bottom: 40px; } 

.explain_box { padding: 22px 0 30px 66px; } 
.explain_box li { line-height: 26px; } 

.coupon_box .dropdownbox { min-width:360px; } 
.coupon_box div>p { margin-right:10px } 
.coupon_box div:nth-child(2)>p strong { vertical-align: -6px; } 
.coupon_num { font-size: 0px; display: flex; flex-wrap:wrap; justify-content:flex-start; max-width: 360px; } 
.coupon_num>label { width:calc(100% - 78px) } 

.consulting_pop .layout_contain { max-width:600px } 
.consult_phone .dropdownbox { min-width:86px; } 
.consult_phone td i { margin:0 7px } 
.consulting_pop textarea { max-height: 200px; border-radius: 4px; } 
.capcha_input input:nth-of-type(1) { width:39%; max-width: 120px; min-width:120px } 
.capcha_input input:nth-of-type(2) { width:calc(100% - 126px); margin-left: 6px; max-width:200px; min-width:165px; } 

.deposit_box input.deposit { max-width: 500px; } 
.selec_fee tr td { vertical-align: middle; } 
.free_addition { margin-left: 38px; } 
.free_addition li { text-align: left; line-height: 30px; } 
.inq_content>div { padding: 15px 30px 15px 0; } 
.inq_content>div textarea { border-radius: 4px; } 
.radio_list li { margin-bottom: 10px; } 
.radio_list li:last-child { margin-bottom: 0; } 
.phone_box input { width: 100px; margin-right: 0; } 
.phone_box i { padding: 0 7px; } 
.busi_box input { width: 100px; } 

/* .bid-prtcpt-btn(참가등록 미참가↔참가)·.doc_src_btn(서류함 「원문」, 2026-09-19) 이 같은 모양을 공유한다 — 사용자 지시(일관성). 글자는 각자(투찰은 ::before, 참가는 텍스트). */
/* ★ 목록 표 안 알약 버튼 높이 단일소스(2026-09-25 사용자 지시: 미투찰·원문·참가·금액산출을 「금액산출」 높이 26px 로 통일,
 *   맞춤입찰·맞춤낙찰 목록·서류함 전부). 26 = 줄높이 24 + 테두리 위아래 1px. 테두리 없는 버튼은 +2 해서 쓴다.
 *   쓰는 곳: 아래 공유 규칙 / doc_list_extras.css .doc_calc_btn / user2.css 목록 「투찰금액산출」(btn30_rid). */
:root { --vbid-row-btn-lh: 24px; --vbid-row-btn-w: 70px; }   /* 폭도 한 벌 — 미참가·미투찰·원문·금액산출/재산출 70×26 */
.btn_tuchal, .bid-prtcpt-btn, .doc_copy_btn.doc_src_btn { line-height: var(--vbid-row-btn-lh); border: 1px solid #1c293f; width: var(--vbid-row-btn-w); text-align: center; color: #1c293f; background-color: #fff; border-radius: 50em; font-weight: 500; } 
.btn_tuchal::before { content: "\bbf8\d22c\cc30"; } 
.btn_tuchal:not(.on):hover, .bid-prtcpt-btn:not(.on):hover, .doc_copy_btn.doc_src_btn:hover { background-color: #f4f4f4; } 
.btn_tuchal.on, .bid-prtcpt-btn.on { background-color: #1c293f; color: #fff; } 
.btn_tuchal.on::before { content: "\d22c\cc30"; } 

/* tvboard */
.tv_container { background-color: #001333; width: 100%; height: 100vh; padding: 40px 64px; } 
.w_logo { width: 107px; height: 44px; background: url(../images/design/white_logo.svg) no-repeat center; background-size: cover; } 
.tv_head .logo_wrap { text-align: center; font-size: 30px; line-height: 50px; font-weight: bold; color: #fff; } 
.tv_clenda .moninfo_box , .tv_table_wrap .moninfo_box { font-size: 20px; } 
.tv_clenda .calenda_table tr td { padding: 5px 8px; } 
.tv_clenda .calenda_table tr td .calend_num { margin-bottom: 18px; } 
.calenda_wrap ul { margin: 10px 0; } 
.tv_body .calenda_wrap ul li span ,.tv_body .moninfo_box { color: #f2f4ff; font-weight: 500; } 
.moninfo_box .ch_title { color: #fff; font-size:20px; padding: 0 5px; font-weight: 500; } 
.tv_clenda .calenda_table table th { position: relative; } 
.tv_clenda .calenda_table table th.on { background-color: #fff; } 
.tv_clenda .calenda_table table th.on::before { content: ""; position: absolute; left: 50%; top: 9px; transform: translateX(-50%); width: 6px; height: 6px; border-radius: 100%; background-color: #374ec9; } 
.border20 { border-radius: 20px; overflow: hidden; } 
.calenda_wrap .miri_view li em { vertical-align: -3px; } 
.tv_table td { word-break: keep-all; } 
.tv_table th { text-align: center; } 
.tv_table td:nth-child(2),
.tv_table td:nth-child(3),
.tv_table td:nth-child(10) { text-align: left; } 
.tv_swiper_wrap .swiper-horizontal>.swiper-pagination-bullets,.tv_swiper_wrap .swiper-pagination-bullets.swiper-pagination-horizontal,.tv_swiper_wrap .swiper-pagination-custom, .swiper-pagination-fraction { bottom: -30px; } 
.tv_swiper_wrap .swiper-pagination-bullet { background-color: #374ec9; opacity: 1; } 
.tv_swiper_wrap .swiper-pagination-bullet-active { background-color: #fff; } 


/*=========== 2022.08.26 ===========*/
.graph_wrap { padding: 20px; 
 overflow-x: auto; } 
.mypage_wrap .btn_g2bab { min-width: 281px; } 
.swiper_today { font-size: 20px; padding-bottom: 25px; } 
.swiper_today span { font-size: 20px; padding-left: 10px; } 
.filt_btw_box .fil_step1 li { line-height: 34px; } 
.filt_btw_box .fil_step2 li {display: flex;align-items: center;justify-content: space-between;    padding: 8px 30px;} 
.filt_btw_box .right { position: relative; }


.tagtable.small_font th{font-size:12px}
.tagtable.small_font tr td,.tagtable.small_font tr td span ,.tagtable.small_font tr td a,.tagtable.small_font tr td button{font-size:12px}
.tagtable.small_font tr td {
  padding : 3px 3px;
}

/* 서류함 구분 아이콘 — 자동(파랑)/수동(주황). 그림은 vbid_doc_src_icon_svg() 한 곳.
   ★ 쓰는 곳이 **서류함만이 아니다** — 입찰 목록 체크 칸의 「서류함 보관중」(.mark_in_cabinet)과
     「맞춤 서류함에 담김」(.mark_auto_doc)도 같은 그림·같은 색이라, 규칙이 전 화면 CSS 에 있어야 한다.
     종전엔 doc_list_extras.css(서류함 전용)에만 있어 입찰 목록에서 흑백으로 나왔다(2026-09-21 사용자 지적).
   ★★ color:inherit 줄이 핵심 — 전역 리셋 `* { color:#1e1e1e }` 가 svg **안의 path·rect** 까지 검게 만들어
     stroke=currentColor 가 칸 색 대신 검정으로 풀린다. 지우면 아이콘이 조용히 흑백이 된다. */
.doc_src_ico { display:inline-flex; vertical-align:middle; }
.doc_src_ico.doc_src_auto   { color:#1e54c7; }
.doc_src_ico.doc_src_manual { color:#c26a00; }
.doc_src_both { display:inline-flex; align-items:center; gap:2px; white-space:nowrap; }
.doc_src_ico svg , .doc_src_ico svg * , .mark_auto_doc svg , .mark_auto_doc svg * { color: inherit; }

/* 목록 표 「공고명/공고번호」·「발주기관」 칸의 **바닥 폭** (2026-09-21 사용자 지시)
   ★ %(constants.php BID_LIST_COL_WIDTH_PCT)만으로는 화면마다 칸 수·내용이 달라 같은 폭이 안 나온다
     (실측: 같은 1427px 표에서 공고명 통합입찰 272px / 서류함 223px). % 는 낮게 주고 **여기 px 바닥**으로
     양쪽을 같은 자리에 세운다 — 「둘이 동일하게 맞춰줘」의 실제 장치는 이 두 줄이다.
   ★ max 는 못 건다 — 표 칸에서 max-width 는 무시된다. 그래서 상한은 % 를 낮춰서 잡는다.
   ★ th 에만 걸어도 칸 전체가 따라온다(열 너비는 열의 모든 칸 중 최대값). */
.tagtable th.lcol_bidNtceNm { min-width: 245px; }
.tagtable th.lcol_ntceInsttNm { min-width: 78px; }

/* 나의서류함 목록 글자크기 (2026-09-21 사용자 지시)
   입낙찰 목록(.small_font 12px)은 작고 서류함 기본(전역 14px)은 커서 **그 중간 13px**.
   ★ 값을 여기 한 곳에만 둔다 — 뷰에 style 로 박으면 PC 목록·이후마감·인쇄가 따로 논다.
   ★ 패딩도 함께 내린다(10px → 6px) — 공고명 칸이 2줄이 되면서 행이 높아진 만큼만 되돌리는 것이고,
     글자만 줄이고 패딩을 그대로 두면 「글자는 작은데 표는 더 성기다」가 된다. */
.tagtable.mid_font th{font-size:13px}
.tagtable.mid_font tr td,.tagtable.mid_font tr td span ,.tagtable.mid_font tr td a,.tagtable.mid_font tr td button{font-size:13px}
.tagtable.mid_font tr td {
  padding : 6px 5px;
}
/* 공고상세 업종 칸 — 접속 관계 표시 (vbid_indstryty_cond_html)
   "모두 필요"(AND) / "이 중 하나"(OR) 를 라벨 칩으로 구분한다.
   ★ 업종 값 셀은 4칸 테이블의 한 칸이라 좁다 — 블록으로 쌓되 라벨은 inline-block 으로 붙여
     한 줄에 라벨+값이 오도록 한다(줄 수가 늘면 행 높이가 그대로 밀린다). */
.indsty_cond_grp { line-height: 1.6; }
.indsty_cond_grp + .indsty_cond_grp { margin-top: 4px; }
.indsty_cond_lb {
    display: inline-block; margin-right: 6px; padding: 0 6px;
    font-size: 11px; font-weight: 700; line-height: 18px; white-space: nowrap;
    color: #fff; background: #4b5563; border-radius: 3px; vertical-align: 1px;
}
.indsty_cond_lb.indsty_cond_or { background: #0d6efd; }
/* AND/OR 수식 연산자 (2026-08-27) — 「모두 필요/이 중 하나」 라벨을 대신한다.
   ★ 업종명과 시각적으로 구분돼야 수식으로 읽힌다(업종명은 검정, 연산자는 파랑 소문자).
     굵게+색만 주고 배경은 넣지 않는다 — 좁은 셀에서 칩이 여러 개면 줄바꿈이 지저분해진다. */
.indsty_cond_expr { word-break: keep-all; }
.ic_op { color: #0d6efd; font-weight: 700; }
.ic_op_or { color: #d97706; }
/* ★ or 뒤에서 줄을 바꾼다 (2026-09-04 요청) — 선택지가 길면 한 줄 수식이 어디서 갈리는지
   안 보인다(실측 R26BK01704245-002 「토목건축공사업 or (건축공사업 and 토목공사업)」).
   and 는 그대로 이어 쓴다 — 한 선택지 안의 결합이라 붙어 있어야 한 덩어리로 읽힌다.
   ★ HTML 이 아니라 CSS 로 끊는다(<br> 를 넣으면 목록 셀·인쇄·근거 패널에 전부 딸려간다). */
.indsty_cond_expr .ic_op_or::after { content: "\A"; white-space: pre; }
.indsty_cond_more { display: inline; }
/* 접기/펼치기 토글 — 체크박스 hack(JS 없음).
   ★ <details>/<summary> 를 쓰면 ① 펼친 뒤에도 "… 외 N개" 가 남고(다 보이는데 더 있는 것처럼 읽힘)
     ② summary 가 내용보다 앞이라 토글이 목록 한가운데 낀다. 그래서 꼬리(.ic_more_tail) 뒤에
     label 을 두고, 열림/닫힘 라벨을 상태에 따라 하나만 노출한다. */
.indsty_cond_more .ic_more_cb { display: none; }
.indsty_cond_more .ic_more_tail { display: none; }
.indsty_cond_more .ic_more_btn { cursor: pointer; color: #0d6efd; margin-left: 4px; }
/* ★ 라벨 색을 자식 span 에도 명시 — 전역 span 규칙이 상속을 덮어써 링크색이 죽는다(실측 rgb(30,30,30)). */
.indsty_cond_more .ic_more_btn > span { color: #0d6efd; }
/* 공고요약(사이드 sticky 박스) 안의 업종 칸 — 폭이 164px 뿐이라 선택지를 다 펼치면 박스가 세로로 폭발한다.
   ★ 이 박스는 position:sticky 라 **뷰포트보다 커지면 아래쪽(기초금액 등)에 영원히 도달할 수 없다**
     (실측: 접힘 605px → 펼침 1098px). 그래서 셀 자체에 상한을 두고 안에서 스크롤시킨다.
     닫힌 상태 높이(약 166px)보다 크게 잡아 평소엔 스크롤바가 안 생긴다. */
.indsty_cond_cell .indsty_cond_grp { max-height: 200px; overflow-y: auto; }
.indsty_cond_more .ic_more_close { display: none; }
.indsty_cond_more .ic_more_cb:checked ~ .ic_more_tail { display: inline; }
.indsty_cond_more .ic_more_cb:checked ~ .ic_more_btn .ic_more_open { display: none; }
.indsty_cond_more .ic_more_cb:checked ~ .ic_more_btn .ic_more_close { display: inline; }

/* 업종 칸 안의 「공고문 업종 / 상세업종」 줄 — 종전 별도 행을 이 칸으로 합쳤다(2026-08-21).
   ★ 값을 합치지 않고 **줄과 라벨로 가른다** — 발주처가 공고한 업종과 우리가 공고문에서 뽑은
     값이 구분되지 않으면 "어디서 온 값인지" 를 화면에서 알 수 없다. */
.indsty_src_row { margin-top: 5px; line-height: 1.6; }
.indsty_src_lb {
    display: inline-block; margin-right: 6px; padding: 0 6px;
    font-size: 11px; font-weight: 700; line-height: 18px; white-space: nowrap;
    color: #4b5563; background: #eef1f5; border: 1px solid #d9dee6;
    border-radius: 3px; vertical-align: 1px;
}

/* 「물품」 칸 (공고상세 기본정보) — 세부품명. 2026-08-27 신설.
   ★ 업종 칸과 같은 규약: 값을 합치지 않고 **출처를 배지로 가른다**
     (발주처가 등록한 것 vs 우리가 공고문에서 읽은 것).
   ★ 조건식(A and B and C)은 업종 칸과 같은 연산자 표기를 쓴다. */
.prdct_row { line-height: 1.6; }
.prdct_row + .prdct_row { margin-top: 5px; }
.prdct_item { white-space: nowrap; }
.prdct_no { margin-left: 3px; color: #8a94a0; font-size: 12px; }
.prdct_cond { font-weight: 600; color: #1b3a57; word-break: keep-all; }
.prdct_src {
    display: inline-block; margin-left: 6px; padding: 0 6px;
    font-size: 11px; font-weight: 700; line-height: 18px; white-space: nowrap;
    color: #4b5563; background: #eef1f5; border: 1px solid #d9dee6;
    border-radius: 3px; vertical-align: 1px;
}

/* 공고명 뒤 보조 노출축 사유 배지 — **관리자 전용**(헬퍼가 권한을 본다).
   원본이 물품·용역인 공고가 공사 목록에 뜨는 이유를 그 자리에서 밝힌다. */
.bsnsdiv_why {
    display: inline-block; margin-left: 8px; padding: 2px 8px; vertical-align: middle;
    font-size: 12px; font-weight: 600; line-height: 1.5; white-space: nowrap;
    color: #7c4a03; background: #fff6e5; border: 1px solid #f0d6a8; border-radius: 12px;
}
.bsnsdiv_why.bsnsdiv_why_off { color: #6b7280; background: #f3f4f6; border-color: #dcdfe4; }
/* 규칙 전문 — 배지 옆에 회색 작은 글씨로 항상 보인다(툴팁만이면 마우스를 올려야 알 수 있다). */
.bsnsdiv_why_desc {
    display: inline; margin-left: 6px; font-style: normal; font-weight: 400;
    font-size: 11px; color: #9a8a72; white-space: normal;
}

/* 자동공고(읽기전용) 설정변경 화면 — '설정저장' 비활성 표시.
   실제 차단은 서버(Bid::filter_setting_update 등 3곳의 auto_yn 가드)이고 이건 표시 전용이다. */
.btn_settgin_save.is_off { background: #c9c9c9 !important; border-color: #c9c9c9 !important; color: #fff !important; cursor: not-allowed; opacity: .75; }

/* 나의서류함 탭 8개(입찰·낙찰·투찰성향·최근조회 + 자동 2 + 임시 자동 2).
   기본 164px 로는 164*8 + 8*7 = 1368px 라 1200급 컨테이너를 넘어 줄이 깨진다.
   140px 로 좁히면 140*8 + 8*7 = 1176px 로 한 줄에 들어간다(라벨 최장 "최근 조회한 공고" 기준 여유 있음).
   views/my_cabinet/_tabs_pc.php 단일소스. */
.tab_table_btwlist.cabinet_tabs8 > li { max-width: 140px; }
.tab_table_btwlist.cabinet_tabs8 > li > a { font-size: 15px; }
/* ★ 공통 규칙의 :nth-child(7n){margin-right:0} 은 한 줄 7개(자동공고+슬롯5+설정변경) 시절 것이라,
   탭이 8개가 되면 7번째("임시 자동 입찰")만 간격이 사라져 8번째와 붙어 보인다.
   여기서만 되돌린다 — 줄 끝은 :last-child 가 이미 처리한다. */
.tab_table_btwlist.cabinet_tabs8 > li:nth-child(7n) { margin-right: 8px; }
.tab_table_btwlist.cabinet_tabs8 > li:last-child { margin-right: 0; }

/* 나의서류함 기간 빠른선택(오늘/1·3·6·12개월) — 날짜 두 칸 오른쪽.
   views/my_cabinet/* 3벌 공용, 목록은 vbid_doc_quick_ranges() 단일소스. */
.doc_quick_range { display: inline-flex; gap: 4px; margin-left: 8px; vertical-align: middle; }
.doc_quick_range .doc_qr_btn { height: 40px; padding: 0 12px; border: 1px solid #d5d8de; border-radius: 4px;
    background-color: #fff; color: #555; font-size: 14px; white-space: nowrap; cursor: pointer; }
.doc_quick_range .doc_qr_btn:hover { border-color: #fa448c; color: #fa448c; }
.doc_quick_range .doc_qr_btn.on { border-color: #fa448c; background-color: #fa448c; color: #fff; }

/* 자동 서류함 회사 선택 버튼 — 본인 + 자회사1~5 (views/my_cabinet/_auto_company_buttons.php) */
.auto_co_tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0 18px;}
.auto_co_label{font-size:14px;font-weight:600;color:#444;margin-right:4px;}
.auto_co_btn{display:inline-block;padding:7px 14px;border:1px solid #d5d9e0;border-radius:16px;
    background:#fff;color:#555;font-size:14px;line-height:1.2;text-decoration:none;white-space:nowrap;}
.auto_co_btn:hover{border-color:#2b57c1;color:#2b57c1;}
.auto_co_btn.on{background:#2b57c1;border-color:#2b57c1;color:#fff;font-weight:600;}
/* "(자동 없음)" — 등록 업종·물품이 없는 회사(migrations/075). <a> 가 아니라 <span> 이라 클릭 자체가 안 된다.
   ★ :hover 규칙보다 뒤에 와야 회색이 파랑으로 되돌아가지 않는다. */
.auto_co_btn.is_off , .auto_co_btn.is_off:hover{background:#f4f4f4;border-color:#e3e5e9;color:#aaa;cursor:default;}
/* 핀셋 서류함 다중 선택(2026-09-19) — 회사 버튼이 <button> 이라 글꼴·커서를 맞추고, 수동서류·모두는 회사와 칸을 띄운다 */
button.auto_co_btn{cursor:pointer;font-family:inherit;}
.auto_co_tabs.is_multi .auto_co_manual{margin-left:10px;}
/* 「수동서류」·「모두」는 회사 버튼(파랑)과 색을 나눈다(2026-09-19 사용자 지시).
   수동서류 = 목록 구분 칸의 수동(서류함) 아이콘과 같은 주황(doc_list_extras.css .doc_src_manual), 모두 = 헤더 남색.
   ★ .is_off 처럼 기본 .auto_co_btn:hover/.on 보다 **뒤에** 와야 파랑으로 되돌아가지 않는다. */
.auto_co_btn.auto_co_manual{border-color:#e9c9a0;color:#c26a00;}
.auto_co_btn.auto_co_manual:hover{border-color:#c26a00;color:#c26a00;}
.auto_co_btn.auto_co_manual.on{background:#c26a00;border-color:#c26a00;color:#fff;}
.auto_co_btn.auto_co_all{border-color:#b9c0cc;color:#1c293f;}
.auto_co_btn.auto_co_all:hover{border-color:#1c293f;color:#1c293f;}
.auto_co_btn.auto_co_all.on{background:#1c293f;border-color:#1c293f;color:#fff;}
@media (max-width:768px){
    .auto_co_tabs{margin:10px 0 14px;}
    .auto_co_btn{padding:6px 10px;font-size:13px;}
}

/* 마이페이지 "등록 물품"(나라장터 OP4) — 읽기전용 요약. 회사(본인+자회사)마다 한 줄.
   ★ 입력칸이 아니라 칩 목록이다 — 회원이 고칠 수 있는 값이 아니라 폼 컨트롤을 두지 않았다. */
.mv_prdct { line-height: 1.5; }
.mv_prdct .mv_prdct_none { color: #999; font-size: 13px; }
.mv_prdct .mv_prdct_cnt { display: inline-block; margin-right: 8px; padding: 2px 8px; border-radius: 10px;
    background: #eef4ff; color: #2563eb; font-size: 12px; font-weight: 600; vertical-align: middle; }
.mv_prdct .mv_prdct_list { display: inline-flex; flex-wrap: wrap; gap: 4px; vertical-align: middle; max-width: 640px; }
.mv_prdct .mv_prdct_i { display: inline-block; padding: 2px 8px; border: 1px solid #e3e5e9; border-radius: 3px;
    background: #fafafa; color: #555; font-size: 12px; }
.mv_prdct .mv_prdct_i.is_rep { border-color: #2563eb; color: #2563eb; font-weight: 600; }   /* 대표물품 */
.mv_prdct .mv_prdct_i > i { margin-left: 4px; color: #aaa; font-style: normal; font-size: 11px; }
.mv_prdct .mv_prdct_more { align-self: center; color: #999; font-size: 12px; }

/* 서류제출마감(docSbmsnClseDate) 병기 꼬리말.
   참가등록마감과 값이 같을 때 그 줄 뒤에 "(공고문: 입찰서류 방문접수)" 로 정체를 밝힌다.
   값이 다르면 별도 행으로 나오므로 이 스타일은 안 쓰인다. — helpers/doc_sbmsn_helper.php */
.doc_sbmsn_note { color: #2563eb; font-size: 12px; white-space: nowrap; }

/* ── 업종 추정 배지 (migrations/087, 2026-08-17) ─────────────────────────────
   발주처가 업종을 공개하지 않아 공고명으로 추정한 값임을 구분해 보여준다.
   ★ 실제 값과 시각적으로 반드시 달라야 한다 — 같아 보이면 추정이 사실로 읽힌다.
   PC/모바일 공용(모바일 CSS 는 user.css 를 함께 로드). */
.indstry_guess { color: #555; }
.indstry_guess_badge {
    display: inline-block;
    margin-left: 4px;
    padding: 0 5px;
    font-style: normal;
    font-size: 0.85em;
    line-height: 1.5;
    color: #b26a00;
    background: #fff4e0;
    border: 1px solid #f0c98a;
    border-radius: 3px;
    cursor: help;
    vertical-align: middle;
}

/* 업체명 → 회사정보 팝업 링크 (관리자에게만 렌더된다 — vbid_company_info_html) */
.cmp_info_link {
    color: #1a6fd4;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.cmp_info_link:hover { color: #0d4c99; }

/* 현장설명회 참석 의무 배지 (2026-08-24, migrations/116)
   ★'필수'만 눈에 띄게 한다 — 불참 시 입찰 자체가 불가라 손실이 확정적인 쪽이다.
   ★'모름'(발주처 미표기)은 헬퍼가 아무것도 안 그린다. 회색 배지로라도 그리면
     '임의'와 섞여 보인다. */
.presnatn_mndtry {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 700;
    vertical-align: middle;
    white-space: nowrap;
}
.presnatn_mndtry_y { background: #d32f2f; color: #fff; }
.presnatn_mndtry_n { background: #eceff1; color: #546e7a; font-weight: 500; }

/* ── 통합 맞춤설정 업종 선택판 (total_filter_setting) ────────────────────────
   ★ 기존 .hori_list* / .fil_step1,2 / .detail_sector / .allcat_src* 규칙은 다른 화면과
     공유하므로 **고치지 않고 재사용**한다. 여기 있는 것은 전부 신규 클래스다. */
.tfs_acc { border: 1px solid #e2e5ea; border-radius: 6px; margin-bottom: 10px; background: #fff; }
.tfs_acc + .tfs_acc { margin-top: 0; }
.tfs_acc_h { display: flex; align-items: center; gap: 8px; width: 100%; padding: 12px 16px; background: #f7f8fa; border: 0; border-radius: 6px; cursor: pointer; font-size: 15px; font-weight: 500; text-align: left; }
.tfs_acc.open > .tfs_acc_h { border-radius: 6px 6px 0 0; border-bottom: 1px solid #e2e5ea; }
.tfs_acc_h .tfs_acc_n { flex: 1 1 auto; }
.tfs_acc_h .tfs_cnt { min-width: 22px; height: 22px; line-height: 22px; padding: 0 7px; border-radius: 11px; background: #d8dce3; color: #444; font-size: 12px; text-align: center; }
.tfs_acc_h .tfs_cnt:not(:empty) { }
.tfs_acc_h .tfs_arr { width: 10px; height: 10px; margin-left: 4px; border-right: 2px solid #666; border-bottom: 2px solid #666; transform: rotate(45deg); transition: transform .15s; }
.tfs_acc.open > .tfs_acc_h .tfs_arr { transform: rotate(-135deg); }
.tfs_acc_b { display: none; padding: 14px 16px; }
.tfs_acc.open > .tfs_acc_b { display: block; }

.tfs_blk + .tfs_blk { margin-top: 18px; padding-top: 14px; border-top: 1px solid #eceef2; }
.tfs_blk_t { margin-bottom: 8px; font-size: 14px; font-weight: 600; color: #333; }
.tfs_blk_d { margin-left: 6px; font-size: 12px; font-weight: 400; color: #8a8f98; }
/* ★ 블록마다 자기 안에서만 다단 — 이래야 한 섹션이 컬럼 경계를 넘어 이어지지 않는다. */
.tfs_cols { column-count: 4; column-gap: 28px; }
.tfs_cols > button, .tfs_cols > div { break-inside: avoid; -webkit-column-break-inside: avoid; }
.tfs_cols > button { display: block; width: 100%; line-height: 30px; text-align: left; background: none; border: 0; cursor: pointer; }
.tfs_cols > button.on { color: #1a63d8; font-weight: 600; }
.tfs_cols_lg { column-count: 3; }

.tfs_lg { margin-bottom: 2px; }
.cat_row { display: flex; align-items: center; gap: 4px; }
.cat_row > .cat_large { flex: 1 1 auto; display: block; line-height: 30px; text-align: left; background: none; border: 0; cursor: pointer; }
.cat_row > .cat_large.on { color: #1a63d8; font-weight: 600; }
/* ★ 폭 고정 금지 — 개수가 3자리(용역 「문화,공보」 123)면 화살표가 밀려 사라진다. */
.cat_toggle { flex: 0 0 auto; min-width: 34px; padding: 0 6px; height: 22px; border: 1px solid #d4d8de; border-radius: 11px; background: #fff; color: #6b7280; font-size: 11px; cursor: pointer; white-space: nowrap; }
.cat_toggle::after { content: '▾'; margin-left: 2px; }
.cat_toggle[aria-expanded="true"] { background: #eef3fd; border-color: #b9cdf3; color: #1a63d8; }
.cat_toggle[aria-expanded="true"]::after { content: '▴'; }
.cat_subs { padding: 2px 0 6px 10px; border-left: 2px solid #e6eaf1; margin-left: 4px; }
.cat_subs > button { display: block; width: 100%; line-height: 26px; text-align: left; background: none; border: 0; color: #555; font-size: 13px; cursor: pointer; }
.cat_subs > button::before { content: '└ '; color: #b6bcc6; }
.cat_subs > button.on { color: #1a63d8; font-weight: 600; }

/* 용역 3단계 트리 — 전문건설 대업종과 같은 인라인 펼침(좌우 2단 패널 폐기). */
/* ★ 트리는 **1열**이다 — 전문건설(하위 최대 5개)과 달리 용역 상세업종은 71개까지 간다.
     다열로 흘리면 한 컬럼만 3,600px 로 늘어나 판이 통째로 기운다(실측 폐기물(재활용) 71개). */
.tfs_svc_tree { column-count: 1; }
.tfs_svc_g1 > .cat_row > .cat_large { font-weight: 600; }
.svc_g2_box > .tfs_lg > .cat_row > .cat_sub::before { content: '└ '; color: #b6bcc6; }
.svc_g2_box > .tfs_lg > .cat_row > .cat_sub { flex: 1 1 auto; display: block; line-height: 26px; text-align: left; background: none; border: 0; color: #555; font-size: 13px; cursor: pointer; }
.svc_g2_box > .tfs_lg > .cat_row > .cat_sub.on { color: #1a63d8; font-weight: 600; }
/* 상세업종은 개수가 들쭉날쭉(2~71)이라 그 안에서만 2열+스크롤로 가둔다 —
   안 가두면 한 번 펼치는 것으로 화면이 통째로 잠긴다. */
/* ★ 다열은 `column-count` 가 아니라 **grid** 로 — column-count 에 고정 높이를 주면
     브라우저가 넘치는 만큼 **가로로 컬럼을 계속 만들어** 가로 스크롤이 생긴다(실측). */
.svc_g3_box { padding-left: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; max-height: 300px; overflow-y: auto; }
.svc_g3_box > button.cat_sub2 { display: block; width: 100%; line-height: 24px; text-align: left; background: none; border: 0; color: #6b7280; font-size: 12.5px; cursor: pointer; }
.svc_g3_box > button.cat_sub2.on { color: #1a63d8; font-weight: 600; }
.tfs_svc_note { margin: 8px 0 0; font-size: 12px; color: #8a8f98; }
.tfs_empty { display: block; padding: 6px 4px; color: #8a8f98; font-size: 12.5px; }

/* 물품 — 한 판 칩 그리드 + 즉시 필터 */
.tfs_goods_q_wrap { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.tfs_goods_q { width: 280px; height: 32px; padding: 0 10px; border: 1px solid #d4d8de; border-radius: 4px; }
.tfs_goods_q_n { font-size: 12px; color: #8a8f98; }
.tfs_goods_grid { column-count: 4; column-gap: 28px; }

/* ★ `hidden` 속성이 display 규칙에 지는 것을 막는다 — 접기 상태에서 display:flex/block 을
     주면 UA 의 `[hidden]{display:none}` 이 특이도에서 밀려 **접힘이 통째로 무력**해진다
     (실측 2026-09-03 모바일: 주력분야 27개가 전부 펼쳐진 채 렌더). */
.cat_subs[hidden] { display: none !important; }

/* 물품 패널 안 품목 검색 결과 */
.tfs_prdct_box:empty { display: none; }
.tfs_prdct_box { margin-top: 12px; padding-top: 10px; border-top: 1px dashed #dfe3e9; }
.tfs_prdct_t { margin-bottom: 6px; font-size: 12.5px; font-weight: 600; color: #555; }
.tfs_prdct_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; max-height: 300px; overflow-y: auto; }
.tfs_prdct_grid > button.tfs_prdct_btn { display: block; width: 100%; line-height: 26px; text-align: left; background: none; border: 0; font-size: 12.5px; cursor: pointer; }
.tfs_prdct_grid > button.tfs_prdct_btn.on { color: #1a63d8; font-weight: 600; }

/* 공고 「참가등록」 미참가↔참가 토글 — 참가등록마감일 칸 아래 (common/javascript/bid_prtcpt.js, 2026-09-19) */
/* ★모양은 위 .btn_tuchal(「미투찰」) 규칙을 **같은 선택자로 공유**한다(사용자 지시: 일관성) — 여기는 자리만.
 *   .btn_tuchal 클래스를 그대로 붙이지 않는 이유: 글자가 ::before content("미투찰/투찰")로 박혀 있고
 *   common.js 가 .btn_tuchal 전부에 투찰 저장 클릭을 건다 → 섞으면 이 버튼이 투찰 상태를 바꾼다. */
.bid-prtcpt-btn { display:block; margin:6px auto 0; padding:0; cursor:pointer; white-space:nowrap; }
.bid-prtcpt-btn:disabled { opacity:.6; cursor:wait; }
/* 서류함 발주처 칸 「원문」 — 모양은 위 공유 규칙. 여기는 자리·글자 크기만.
   ★ 선택자를 .doc_copy_btn.doc_src_btn(클래스 2개)로 잡아 doc_list_extras.css 의 소형 버튼 규칙(.doc_copy_btn)을 이긴다. */
.doc_copy_btn.doc_src_btn { display:block; margin:6px auto 0; padding:0; font-size:14px; white-space:nowrap; cursor:pointer; }

/* 조건설정 그룹이름 줄 오른쪽 끝 「취소」「설정저장」 — 아래 버튼 쌍과 같은 모양·같은 순서, 줄 맨 끝에 붙인다(2026-09-20).
   ★ 버튼을 하나씩 absolute 로 띄우지 않고 묶음(.group_name_btns)을 띄운다 — 하나씩 띄우면 옆 버튼 너비(164px)를
     right 값으로 또 적어야 해서, 버튼 너비가 바뀌는 날 둘이 겹친다. */
.group_nema_box { position: relative; }
.group_nema_box .group_name_btns { position: absolute; right: 0; top: 0; display: flex; gap: 8px; }

/* 업체명 한 줄 말줄임(낙찰 상세 등 PC 표) — 껍데기는 vbid_company_info_html()·JS 짝 cmpInfoHtml() 이 씌운다.
   ★ width:0 + min-width:100% — 자동 배치 표에서 긴 이름이 칸을 넓히지 못하게(최소폭 기여 0) 하면서 칸 폭은 다 쓴다.
   잘린 때만 마우스를 올리면 전체 이름 팝업(common.js #cmp_nm_pop). 모바일 표는 .subp_table 이 아니라 그대로 줄바꿈. */
.subp_table .cmp_nm_1l { display: block; width: 0; min-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
#cmp_nm_pop { position: absolute; z-index: 10000; max-width: 360px; padding: 6px 10px; background: #333; color: #fff;
    font-size: 13px; line-height: 1.4; border-radius: 4px; white-space: normal; word-break: keep-all; pointer-events: none;
    box-shadow: 0 2px 6px rgba(0,0,0,.25); }
