@charset "utf-8";
/* ============================================================
   master 공통 스타일 (색상·폰트·버튼·탭·상태색)
   - 2026 리뉴얼: user(블루) 톤 재사용, Noto Sans 14px
   - 기능 보존: 클래스/구조 변경 없음, 색·여백·모양만 현대화
   ============================================================ */

/* ---------- Noto Sans 임베드 (master/fonts/Noto_Sans) ---------- */
@font-face { font-family:'Noto Sans'; font-weight:700; font-display:swap;
  src:local('Noto Sans Bold'), url('../fonts/Noto_Sans/NotoSans-Bold.woff') format('woff'); }
@font-face { font-family:'Noto Sans'; font-weight:600; font-display:swap;
  src:local('Noto Sans SemiBold'), url('../fonts/Noto_Sans/NotoSans-SemiBold.woff') format('woff'); }
@font-face { font-family:'Noto Sans'; font-weight:500; font-display:swap;
  src:local('Noto Sans Medium'), url('../fonts/Noto_Sans/NotoSans-Medium.woff') format('woff'); }
@font-face { font-family:'Noto Sans'; font-weight:400; font-display:swap;
  src:local('Noto Sans Regular'), url('../fonts/Noto_Sans/NotoSans-Regular.woff') format('woff'); }
@font-face { font-family:'Noto Sans'; font-weight:300; font-display:swap;
  src:local('Noto Sans Light'), url('../fonts/Noto_Sans/NotoSans-Light.woff') format('woff'); }

/* ---------- 디자인 토큰 ---------- */
:root{
  --m-primary:#20569A;        /* master 네이비블루(--popup 계열)로 통일 */
  --m-primary-dark:#184577;
  --m-primary-soft:#EAF3F8;   /* user --help-bg */
  --m-nav:#2383C8;            /* user --side-nav */
  --m-nav-dark:#1F6DA5;       /* user --side-nav-point */
  --m-popup:#20569A;
  --m-text:#2B2B2B;           /* user --gray-text700 */
  --m-text-sub:#6B6B6B;
  --m-text-mute:#888888;
  --m-border:#D4D4D4;
  --m-border-soft:#E5E8EC;
  --m-bg:#f5f7fa;
  --m-surface:#ffffff;
  --m-radius:8px;
  --m-radius-lg:10px;
  --m-shadow:0 1px 3px rgba(0,0,0,.08);
  --m-shadow-md:0 2px 10px rgba(0,0,0,.08);
  --m-font:'Noto Sans','맑은 고딕',sans-serif;
  --m-fs:14px;
}

/* ---------- 태그 기본 ---------- */
body,th,td,div,form,textarea,center,option,pre,blockquote,select,input,p,h1,h2,h3,h4,h5,h6,li,a,span,dt,dd,label,button{
  font-family:var(--m-font);
}
body{ font-size:var(--m-fs); line-height:1.6; color:var(--m-text); text-align:left;
  -webkit-font-smoothing:antialiased; }
th{ color:var(--m-text-sub); font-size:var(--m-fs); }
td{ color:var(--m-text); font-size:var(--m-fs); }
div,form{ color:var(--m-text-sub); font-size:var(--m-fs); }
textarea,pre,blockquote,option,center{ font-size:13px; color:var(--m-text-sub); }

caption{ position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; visibility:hidden; }
legend{ position:absolute; width:0; height:0; overflow:hidden; font-size:0; visibility:hidden; }
fieldset{ border:0; margin:0; padding:0; }
li{ list-style:none; }
table{ border-collapse:collapse; }

/* 입력 요소 */
select{ height:32px; padding:0 10px; color:var(--m-text); background:#fff;
  border:1px solid var(--m-border); border-radius:var(--m-radius); font-size:13px; }
input{ border:1px solid var(--m-border); border-radius:var(--m-radius);
  font-size:13px; color:var(--m-text); padding:0 10px; }
input[type=checkbox],input[type=radio]{ padding:0; vertical-align:middle; }
input::placeholder, textarea::placeholder{ color:#a7afb8; }
textarea{ border:1px solid var(--m-border); border-radius:var(--m-radius);
  background:#fff; color:var(--m-text); padding:8px 10px; }
select:focus,input:focus,textarea:focus{ outline:none; border-color:var(--m-primary);
  box-shadow:0 0 0 2px rgba(32,86,154,.18); }
label{ padding:0 3px; }

/* 링크 */
a{ text-decoration:none; color:var(--m-text); }
a:hover{ color:var(--m-primary); }

/* ---------- 의미(semantic) 색상 — 유지 ---------- */
.f_blue { color:#1E75E0 !important;}
.f_red { color:#e02323 !important;}
.f_black { color:#000 !important;}
.f_gray { color:#808080 !important;}
.underline { text-decoration:underline;}
.f11Dotum { font-size:12px; line-height:1.5; color:var(--m-text-sub);}

/* 공고/입찰/심사 상태색 (의미 보존) */
.ns_P20001,.ps_P20001 {color:#1E75E0; font-weight:bold;}
.ns_P20002,.ps_P20002 {color:#e02323; font-weight:bold;}
.es_P20001 {color:#4D4D4D; font-weight:bold;}
.es_P20002 {color:#1E75E0; font-weight:bold;}
.es_P20003 {color:#e02323; font-weight:bold;}

textarea.agree { width:96%; padding:15px 13px; color:var(--m-text-sub); font-size:13px;}

/* ============================================================
   버튼 — 레거시 .btn_pack + Bootstrap(.btn*) 톤 통일
   (bootstrap.min.css 보다 뒤에 로드되어 색/모양 override)
   ============================================================ */
.btn_pack, .btn{
  display:inline-block; cursor:pointer; margin-right:5px; white-space:nowrap;
  vertical-align:middle; border:1px solid var(--m-border); background:#fff;
  color:var(--m-text); font-size:14px; font-weight:600; line-height:1.2;
  padding:9px 20px; border-radius:var(--m-radius); text-decoration:none;
  transition:background .15s, border-color .15s, color .15s;
}
.btn_pack:hover, .btn:hover{ background:#f0f3f7; border-color:#bcc4cd; color:var(--m-text); }
.btn_pack A{ text-decoration:none; color:inherit; padding:0; }
.btn_pack.strong{ font-weight:700 !important; }
.btn_pack.small,.btn-xs{ font-size:13px; padding:6px 12px; }
.btn-sm{ font-size:14px; padding:9px 18px; }
.btn_pack.big,.btn-lg{ font-size:15px; padding:11px 24px; }
.btn b{ font-weight:700; }

/* 네이티브 버튼(input[type=button/submit], button) — 보조 톤 통일 */
input[type=button], input[type=submit], button.btnY, .board_write input[type=button]{
  display:inline-block; cursor:pointer; vertical-align:middle; height:34px; padding:0 14px;
  background:#e9eef6; border:1px solid #b6c6de; border-radius:var(--m-radius);
  color:#20569A; font-size:13px; font-weight:600; line-height:1; }
input[type=button]:hover, input[type=submit]:hover{ background:#d8e2f0; border-color:#9bb1d2; }

/* primary(파랑) */
.btn_pack.blue, .btn-primary{ background:var(--m-primary); border-color:var(--m-primary); color:#fff !important; }
.btn_pack.blue:hover, .btn-primary:hover{ background:var(--m-primary-dark); border-color:var(--m-primary-dark); color:#fff !important; }
.btn_pack.blue A, .btn-primary A{ color:#fff !important; }
.btn-primary .color_white, .btn-primary b{ color:#fff !important; }

/* default(연한 네이비 톤 — 목록/수정 등 보조 액션) */
.btn-default{ background:#e9eef6; border-color:#b6c6de; color:#20569A; }
.btn-default b{ color:#20569A; }
.btn-default:hover{ background:#d8e2f0; border-color:#9bb1d2; color:#184577; }

/* green / 보조 */
.btn_pack.green, .btn-success{ background:#2e9e57; border-color:#2e9e57; color:#fff !important; }
.btn_pack.green:hover, .btn-success:hover{ background:#268049; border-color:#268049; color:#fff !important; }
.btn_pack.green A{ color:#fff !important; }
.btn-danger{ background:#e02323; border-color:#e02323; color:#fff !important; }
.btn-danger:hover{ background:#c01d1d; border-color:#c01d1d; color:#fff !important; }

.btn_pack.new{ border-color:var(--m-primary) !important; }
.btn_pack.new A{ color:var(--m-primary) !important; }

/* ---------- 안내 박스 ---------- */
/* 도움말: 좌우를 콘텐츠 카드(.right padding 32px)만큼 안으로 → 표와 좌우 폭 일치.
   배경은 심사위원정보 안내행과 동일(#F6FBFF) */
.advice{ clear:both; float:left; width:calc(100% - 64px); max-width:1116px; margin:24px 0 0 32px;
  padding:16px 22px; font-size:13px;
  background:#F6FBFF; border:1px solid #d7e7f5; border-radius:var(--m-radius);
  box-sizing:border-box; }
.advice dt{ height:auto; padding:0 0 6px 0; color:var(--m-primary); font-weight:700; font-size:14px;
  background:none; overflow:visible; }
.advice dd{ padding-left:14px; color:var(--m-text-sub); background:none; position:relative; }
.advice dd:before{ content:''; position:absolute; left:2px; top:9px; width:4px; height:4px;
  border-radius:50%; background:var(--m-nav); }
/* 도움말 내용 없으면 박스 자체 숨김 (item6) */
.advice dd:empty{ display:none; }
.advice:not(:has(dd:not(:empty))){ display:none; }

/* ---------- 탭 ---------- */
.tab{ float:left; width:100%; border-bottom:2px solid var(--m-primary); }
.tab li{ display:block; float:left; margin-right:4px; font-size:13px; }
.tab li a{ display:block; height:auto; padding:9px 26px; color:var(--m-text-sub); background:#f1f4f8;
  border:1px solid var(--m-border-soft); border-bottom:none; border-radius:var(--m-radius) var(--m-radius) 0 0; }
.tab li a.on{ color:#fff; font-weight:700; background:var(--m-primary); border-color:var(--m-primary); }

#contents .tab{ height:auto; padding-top:10px; }
#contents .tab .on{ background:var(--m-primary); color:#fff; border-color:var(--m-primary); }
