:root{
  /* 화면 색: 기본은 '눈 편한' (따뜻한 회색 바탕). 오른쪽 위 [화면색]에서 기본(흰색)·어두운 으로 바꿀 수 있음 */
  --bg:#e7e4dc; --card:#f5f3ee; --field:#fffdf8; --line:#cdc7bb; --field-line:#8c867b; --th:#ebe7de;
  --txt:#26251f; --mute:#6a665d; --hover:#e9e5dc; --top:#f1eee7;
  --blue:#1d5fd1; --blue-bg:#dfe8f8; --green:#1a7f37; --green-bg:#e0efe2;
  --red:#c62828; --red-bg:#f8e3e0; --amber:#9a6700; --amber-bg:#f8edcf;
}
:root[data-theme="basic"]{
  --bg:#f4f5f7; --card:#fff; --field:#fff; --line:#d5dae1; --field-line:#8a929c; --th:#f8f9fb;
  --txt:#1f2328; --mute:#6b7280; --hover:#f0f2f5; --top:#fff;
  --blue-bg:#e8f0fe; --green-bg:#e6f4ea; --red-bg:#fdecea; --amber-bg:#fff4d6;
}
:root[data-theme="dark"]{
  --bg:#1c1f24; --card:#252930; --field:#1d2026; --line:#3a4049; --field-line:#6f7884; --th:#2c3139;
  --txt:#e4e7eb; --mute:#a0a8b3; --hover:#2f353d; --top:#22262c;
  --blue:#7aa7ff; --blue-bg:#263450; --green:#6fcf8a; --green-bg:#1f3a29;
  --red:#ff8a80; --red-bg:#4a2523; --amber:#f0c060; --amber-bg:#46391b;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--txt);
  font-family:"Malgun Gothic","맑은 고딕","Apple SD Gothic Neo",system-ui,sans-serif;font-size:15px}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}

.top{display:flex;align-items:center;gap:6px 18px;background:var(--top);border-bottom:1px solid var(--line);
  padding:6px 16px;min-height:52px;position:sticky;top:0;z-index:5;flex-wrap:wrap}
.brand{font-weight:800;font-size:18px;color:var(--txt)}
.top nav{display:flex;gap:4px}
.top nav a{padding:6px 10px;border-radius:6px;color:var(--txt)}
.top nav a.on,.top nav a:hover{background:var(--blue-bg);color:var(--blue);text-decoration:none}
.who{margin-left:auto;display:flex;gap:12px;align-items:center;color:var(--mute);font-size:13px}
.tag{background:var(--blue);color:#fff;font-size:11px;padding:1px 6px;border-radius:4px;font-weight:600}

.wrap{max-width:none;margin:0 auto;padding:16px 24px}
.card.narrow,.narrow{max-width:420px}
.foot{text-align:center;color:var(--mute);font-size:12px;padding:24px}

h1{font-size:20px;margin:4px 0 14px}
h2{font-size:16px;margin:18px 0 8px}
.sub{color:var(--mute);font-size:13px}

.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px}
.narrow{max-width:420px;margin:40px auto}

.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:14px}
.flash.ok{background:var(--green-bg);color:var(--green)}
.flash.error{background:var(--red-bg);color:var(--red)}
.flash.warn{background:var(--amber-bg);color:var(--amber)}

label{display:block;font-size:13px;color:var(--mute);margin:10px 0 4px}
input[type=text],input[type=password],input[type=number],input[type=datetime-local],input[type=file],select,textarea{
  width:100%;padding:9px 10px;border:1.5px solid var(--field-line);border-radius:7px;font-size:15px;background:var(--field);color:var(--txt)}
input[type=date],input[type=time]{border:1.5px solid var(--field-line);border-radius:7px;padding:7px 8px;background:var(--field);color:var(--txt);font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-bg)}
input::placeholder,textarea::placeholder{color:#9b968c}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}

.btn{display:inline-block;padding:8px 14px;border-radius:7px;border:1.5px solid var(--field-line);background:var(--field);
  color:var(--txt);font-size:14px;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--hover);text-decoration:none}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:#174db0}
.btn.danger{color:var(--red);border-color:#f3b8b8}
.btn.sm{padding:4px 9px;font-size:13px}
.btn.wide{width:100%;padding:11px;font-size:16px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.mt{margin-top:14px}
form.inline{display:inline}

.tbl{width:100%;border-collapse:collapse;background:var(--card);font-size:14px}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:8px 8px;text-align:left;vertical-align:middle}
.tbl th{background:var(--th);font-weight:600;color:var(--mute);font-size:13px;white-space:nowrap}
.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tr:hover td{background:#fafbfd}
.tbl .amt{font-weight:700;font-size:15px;color:#0b3d91}
.tbl input[type=text],.tbl input[type=number]{padding:6px 8px;font-size:14px}
.tbl input.amt-in{text-align:right;min-width:150px}
.tbl input.short{width:78px;font-size:13px !important;padding:5px 6px !important}
.tbl input.bad-rate{border-color:#d32f2f !important;background:#fff0f0;box-shadow:0 0 0 2px #f8c9c4}
.tblwrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:10px}
.tblwrap .tbl{border:0}
.dead{color:var(--red);font-weight:600}
.soon{color:var(--amber);font-weight:600}
.muted{color:var(--mute)}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}
.pill.pending{background:var(--amber-bg);color:var(--amber)}
.pill.approved{background:var(--green-bg);color:var(--green)}
.pill.suspended{background:var(--red-bg);color:var(--red)}

/* 투찰완료 네모칸: 한 번 클릭으로 완료/취소 */
.chk{display:inline-block;width:26px;height:26px;border:2px solid #9aa4b2;border-radius:6px;
  cursor:pointer;background:#fff;text-align:center;line-height:22px;font-weight:800;color:#fff;user-select:none}
.chk.on{background:var(--green);border-color:var(--green)}
.chk.on::after{content:"✓"}
tr.done td{color:var(--mute);text-decoration:line-through}
tr.done td .amt{color:var(--mute)}
tr.done td .btn,tr.done td .doneat{text-decoration:none}

.tabs{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.tabs a{padding:6px 12px;color:var(--txt);font-size:13px}
.tabs a.on{background:var(--blue);color:#fff}
.tabs a:hover{text-decoration:none}

/* 폰 화면 */
@media (max-width:700px){
  .top{height:auto;padding:8px 12px;gap:8px}
  .who{width:100%;margin-left:0}
  .wrap{padding:10px}
  .tbl{font-size:13px}
  .tbl th,.tbl td{padding:7px 6px}
  .hide-m{display:none}
}

/* 공고 목록 필터 */
table.filter{border-collapse:collapse;width:100%}
table.filter th{text-align:left;color:var(--mute);font-size:13px;font-weight:600;padding:6px 14px 6px 0;width:60px;white-space:nowrap;vertical-align:middle}
table.filter td{padding:5px 0}
.chk-lbl{display:inline-flex;gap:5px;align-items:center;margin:0;font-size:14px;white-space:nowrap}
.chk-lbl input{width:17px;height:17px}

/* 투찰완료 버튼 */
.donebtn{border-color:#f3b8b8;color:var(--red);font-weight:700;min-width:84px}
.donebtn.on{background:var(--green);border-color:var(--green);color:#fff}
tr.done td{color:var(--mute);text-decoration:line-through}
tr.done td .amt{color:var(--mute)}
tr.done td .btn,tr.done td .doneat{text-decoration:none}
table.status th{background:var(--th);vertical-align:top}
.tblwrap.tall{overflow:visible}
table.status tr.todo td:first-child{border-left:3px solid var(--red)}

/* 복사 알림 */
.toast{position:fixed;left:50%;bottom:36px;transform:translateX(-50%) translateY(20px);background:#1f2328;color:#fff;padding:10px 18px;border-radius:8px;font-size:14px;opacity:0;pointer-events:none;transition:all .2s;z-index:50;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
a.copy{color:inherit;border-bottom:1px dashed #9aa4b2;cursor:copy}
a.copy:hover{text-decoration:none}
a.copy.amt{font-weight:700;font-size:15px;color:#0b3d91}
/* 우측 상단 시계 */
.clock{font-size:13px;color:var(--mute);white-space:nowrap}
.clock b{color:var(--txt)}
/* 투찰현황 알림 */
.alert{background:var(--red-bg);border:1px solid #f3b8b8;color:var(--red);border-radius:10px;padding:12px 16px;margin-bottom:14px;font-size:15px}
.alert b{font-size:16px}
table.perf td,table.perf th{padding:4px 6px}
table.perf tfoot tr.sumrow th,table.perf tfoot tr.sumrow td{background:#f3f6fa;border-top:2px solid #cfd6e0}
table.perf tfoot b{font-size:14px}

.good{color:var(--green)}
code.uid{font-size:14px;font-weight:700;background:#eef2f7;padding:2px 6px;border-radius:4px}
.idbox{margin-bottom:4px}
.pwform{display:flex;align-items:center;gap:4px;margin:0}
details.more{display:inline-block;position:relative}
details.more summary{list-style:none;cursor:pointer;display:inline-block}
details.more summary::-webkit-details-marker{display:none}
details.more .menu{position:absolute;right:0;top:110%;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:170px}
details.more .menu form{margin:0}
details.more .menu .btn{width:100%;text-align:left}

.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;display:flex;align-items:center;justify-content:center}
.modal{background:var(--card);border-radius:12px;padding:20px 24px;max-width:720px;width:92%;max-height:85vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal h2{margin-top:0}
input.uid{font-family:monospace;font-size:14px;font-weight:700}

tr.closed td{background:var(--th);color:var(--mute)}
tr.closed td a{color:var(--mute)}

input.bad-date{border-color:var(--red) !important;background:#fff0f0}

/* 실적 3년 합 = 파랑, 5년 합 = 빨강 */
.perf td.s3 b,.perf3{color:#1565c0}
.perf td.s5 b,.perf5{color:#d32f2f}

/* 공사명에 '취소' 가 들어간 공고 */
tr.cancelled td{background:#fff1f1}
tr.cancelled td a,.cancel-t,.cancel-t a{color:#d32f2f!important}

.pill.jt{background:#fff3e0;color:#e65100;border:1px solid #ffb74d}
.pill.diff{background:#d32f2f;color:#fff;border:1px solid #b71c1c}
.diff-t{color:#d32f2f}

/* 화면색 고르기 (오른쪽 위) */
.theme-pick{display:inline-flex;gap:2px;border:1.5px solid var(--field-line);border-radius:7px;overflow:hidden}
.theme-pick button{border:0;background:var(--field);color:var(--mute);font-size:12px;padding:3px 7px;cursor:pointer;font-family:inherit}
.theme-pick button.on{background:var(--blue);color:#fff}
/* 어두운 화면: 하얗게 뜨던 줄(마우스 올린 줄·노랑/초록으로 칠한 줄)을 어두운 색으로 — 글씨는 밝게 */
:root[data-theme="dark"] .tbl tr:hover td{background:#33405a !important;color:var(--txt)}
:root[data-theme="dark"] tr[style*="background"],:root[data-theme="dark"] tr[style*="background"] td{background:#3a3424 !important;color:var(--txt) !important}
:root[data-theme="dark"] tr[style*="#e6f4ea"],:root[data-theme="dark"] tr[style*="#e6f4ea"] td{background:#1f3a29 !important}
:root[data-theme="dark"] tr[style*="#eef4ff"],:root[data-theme="dark"] tr[style*="#eef4ff"] td{background:#263450 !important}
:root[data-theme="dark"] [style*="background:#f3f4f6"],:root[data-theme="dark"] [style*="background:#f4f5f7"],:root[data-theme="dark"] [style*="background:#fafbfd"],:root[data-theme="dark"] [style*="background:#e5e7eb"]{background:var(--th) !important;color:var(--txt) !important}
:root[data-theme="dark"] [style*="background:#fff8e1"],:root[data-theme="dark"] [style*="background:#fff8dc"],:root[data-theme="dark"] div[style*="background:#fff4d6"]{background:#3a3424 !important;color:var(--txt) !important}
:root[data-theme="dark"] tr.closed td{color:#8f98a3}
:root[data-theme="dark"] tr.closed td a{color:#9dbcf5}
:root[data-theme="dark"] tr.cancelled td{background:#3a2626}
:root[data-theme="dark"] .pill.jt{background:#4a3215;color:#ffb74d}
:root[data-theme="dark"] input.bad-date{background:#4a2523 !important}
.region-red{color:#d32f2f;font-weight:800}
:root[data-theme="dark"] .region-red{color:#ff8a80}
/* 투찰금액은 빨간색 (공고 상세 회원사별 투찰금액·회원사 내 투찰금액) */
b.amt,a.amt,.amt{color:#d32f2f !important;font-weight:800}
:root[data-theme="dark"] b.amt,:root[data-theme="dark"] a.amt{color:#ff8a80 !important}
tr.done td .amt{color:var(--mute) !important}

/* 필수 입력 */
.req-star{color:#d32f2f}
#pf .req-empty{border:2px solid #d32f2f !important;background:#fff6f5}
:root[data-theme="dark"] #pf .req-empty{background:#3a2626}
#pf .req-box-empty{outline:2px solid #d32f2f;outline-offset:4px;border-radius:6px}
.perf th.req-th-empty{color:#d32f2f;box-shadow:inset 0 -3px 0 #d32f2f}
/* 드롭박스(체크 목록) */
details.dropbox{position:relative;display:inline-block;min-width:320px;max-width:100%}
details.dropbox>summary{list-style:none;cursor:pointer;border:1.5px solid var(--field-line);border-radius:7px;padding:8px 10px;background:var(--field);color:var(--txt)}
details.dropbox>summary::-webkit-details-marker{display:none}
details.dropbox .dropbox-menu{position:absolute;z-index:30;left:0;top:105%;min-width:100%;max-height:340px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.15);padding:6px 10px}
details.dropbox .dropbox-h{font-weight:700;font-size:13px;color:var(--blue);margin:8px 0 2px;border-bottom:1px solid var(--line)}
details.dropbox label{display:flex;gap:6px;align-items:center;margin:3px 0;color:var(--txt);font-size:14px;white-space:nowrap}
details.dropbox label input{width:16px;height:16px}

/* 숫자로 치는 날짜 칸 + 달력 버튼 */
.datein-wrap{display:inline-flex;align-items:center;gap:3px;position:relative}
.datein-wrap input.datein{width:130px}
.datein-btn{padding:4px 6px !important;line-height:1}
.datein-pick{position:absolute;right:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}
input.datein.bad-date{border-color:#d32f2f !important;background:#fff0f0}

/* 여러 회사 투찰금액: 회사별 머리줄 */
.tbl tr.co-head td{background:var(--blue-bg);border-top:3px solid var(--blue);font-size:15px;padding:10px 10px}
.tbl tr.co-head td b{color:var(--blue);font-size:16px}
.adm-done{border-color:#f3b8b8;color:var(--red);font-weight:700}
.adm-done.on{background:var(--green);border-color:var(--green);color:#fff}
.k-name.req-empty{border:2px solid #d32f2f !important}
/* 회사정보 입력: 칸 폭을 내용 길이에 맞춤 */
#pf .fl{display:flex;flex-wrap:wrap;gap:2px 18px;align-items:flex-start;margin-bottom:4px}
#pf .fl>div{flex:0 0 auto;max-width:100%}
#pf .fl>.full{flex-basis:100%}
#pf .fl input[type=text],#pf .fl select{width:100%}
#pf .fl .row input[type=text]{width:auto;flex:1;min-width:0}
#pf .w1{width:130px}#pf .w2{width:180px}#pf .w3{width:240px}#pf .w4{width:320px}#pf .w6{width:460px}#pf .w8{width:640px}
#pf .hint{font-size:12px;color:var(--muted,#777);margin-top:2px}
#pf #perf_table{width:auto}
#pf #perf_table th,#pf #perf_table td{padding-left:14px;padding-right:14px}
.k-mail.req-empty{border:2px solid #d32f2f !important}
tr.direct-row td{background:rgba(178,106,0,.07)}
tr.direct-row td.num,tr.direct-row .amt-in{opacity:.45}
tr.direct-row td:nth-child(2)::after{content:"직투 (업체가 직접)";display:inline-block;margin-top:2px;padding:1px 7px;border-radius:9px;font-size:11px;font-weight:700;color:#b26a00;border:1px solid #e3a54a}
/* ── 회원사 화면: 요약 카드 + 공고 카드 줄 ── */
.top nav a .nb{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:var(--blue);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.top nav a .nb.warn{background:#d97706}
.top nav a .nb.dot{background:#16a34a}
.sumcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.sumcards .sc{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:var(--txt);text-decoration:none}
.sumcards .sc b{font-size:26px;line-height:1.1}
.sumcards .sc span{font-size:13px;color:var(--mute)}
.sumcards .sc.red b{color:var(--red)} .sumcards .sc.amber b{color:var(--amber)} .sumcards .sc.blue b{color:var(--blue)}
a.sc:hover{border-color:var(--blue)}
.bidlist{display:flex;flex-direction:column;gap:8px}
.bl-co{margin:14px 0 2px;font-weight:800;padding:6px 2px;border-bottom:2px solid var(--blue)}
.bl-co .co-name{font-size:18px;color:var(--blue)}
.wrap.narrow{max-width:1280px}
.bl-head,.bl-row{display:grid;grid-template-columns:26px 86px 76px 168px minmax(0,1fr) 56px 124px 64px 132px 96px 36px;gap:10px;align-items:center}
.bl-head{position:sticky;top:0;z-index:2;padding:7px 12px 7px 18px;background:var(--th);border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:700;color:var(--mute)}
.bl-head .r{text-align:right}
.bl-row{padding:9px 12px;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--line);border-radius:10px}
.bl-row.st-today{border-left-color:var(--red)} .bl-row.st-soon{border-left-color:#d97706} .bl-row.st-mo{border-left-color:#7c3aed} .bl-row.st-dday{border-left-color:var(--blue)}
.bl-row.st-today{background:color-mix(in srgb,var(--red) 7%,var(--card))} .bl-row.st-soon{background:color-mix(in srgb,#d97706 7%,var(--card))} .bl-row.st-mo{background:color-mix(in srgb,#7c3aed 6%,var(--card))}
.bl-row.st-done{border-left-color:var(--green)} .bl-row.st-past{opacity:.55} .bl-row.st-ex{opacity:.5;border-left-style:dashed}
.bl-state .stp{display:inline-block;font-weight:800;font-size:14px}
.st-today .stp{color:var(--red)} .st-soon .stp{color:#d97706} .st-mo .stp{color:#7c3aed} .st-dday .stp{color:var(--blue)} .st-done .stp{color:var(--green)} .st-past .stp,.st-ex .stp{color:var(--mute)}
[data-theme=dark] .st-mo .stp{color:#a78bfa} [data-theme=dark] .bl-row.st-mo{border-left-color:#a78bfa}
.bl-site .chip{display:inline-block;padding:1px 8px;border-radius:9px;background:var(--th);border:1px solid var(--line);font-size:13px;white-space:nowrap}
.bl-no{font-size:15px;font-weight:600;word-break:break-all}
.bl-num{text-align:right;font-weight:800;font-size:15px;color:var(--mute)}
.bl-title{font-weight:700;margin-bottom:2px}
.bl-meta{display:flex;flex-wrap:wrap;gap:3px 8px;font-size:12px;align-items:center}
.bl-meta:empty{display:none}
.bl-reg{font-size:13px}
.bl-base{text-align:right;font-size:15px}
a.basewarn{color:var(--mute);text-decoration:none;cursor:help}
a.basewarn:hover{color:var(--red)}
.bl-rate{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}
.bl-amt{text-align:right}
.amt.big{font-size:17px}
.bl-act{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.bl-ex{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--mute);margin:0;cursor:pointer}
.bl-ex input{width:20px;height:20px}
.bl-ex .m-only{display:none}
.bl-row.is-done .bl-title a{text-decoration:line-through;color:var(--mute)}
.sumcards .sc.zero{opacity:.55;cursor:default}
.toast.warn{background:#c62828;font-weight:800;font-size:16px}
.top nav a .nb.gray{background:#6b7280}
a.copy:hover{background:#fff4d6;color:#1f2328}
[data-theme=dark] a.copy:hover{background:#3b4a66;color:#fff}
[data-theme=dark] a.copy.amt{color:#8ab4ff}
.bl-row.simple{grid-template-columns:96px minmax(0,1fr) 150px 120px}
@media (max-width:1100px){
  .bl-head{display:none}
  .bl-row{grid-template-columns:80px minmax(0,1fr) auto 40px;grid-template-areas:"st main main ex" "st site no no" "base base rate rate" "amt amt act act";row-gap:6px}
  .bl-state{grid-area:st} .bl-main{grid-area:main} .bl-ex{grid-area:ex} .bl-site{grid-area:site} .bl-no{grid-area:no}
  .bl-reg{display:none} .bl-base{grid-area:base;text-align:left} .bl-rate{grid-area:rate} .bl-amt{grid-area:amt;text-align:left} .bl-act{grid-area:act;flex-direction:row;justify-content:flex-end;align-items:center}
  .bl-rate::before{content:"사정률 ";color:var(--mute)} .bl-base::before{content:"기초 ";color:var(--mute)}
  .bl-ex .m-only{display:inline}
  .bl-row.simple{grid-template-columns:80px minmax(0,1fr);grid-template-areas:"st main" "amt act"}
  .bl-row.simple .bl-amt{grid-area:amt;text-align:left}
}
@media (max-width:900px){
  .sumcards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .my-filter input[type=search]{width:100% !important}
}
@media print{ .top,.sumcards,.my-filter,.bl-ex,.bl-act,.foot{display:none !important} .bl-row{break-inside:avoid} }
/* 휴대폰: 메뉴는 한 줄로 옆으로 밀어서, 시계·화면색은 숨김 (설정 화면에 있음) */
@media (max-width:700px){
  .top nav{flex-wrap:nowrap;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
  .top nav a{white-space:nowrap;flex:0 0 auto}
  .who{flex-wrap:wrap;gap:4px 10px;font-size:12px}
  .who .clock,.who .theme-pick{display:none}
  .my-filter{width:100%}
  .sumcards .sc{padding:8px 10px} .sumcards .sc b{font-size:20px}
}
.bl-act .btn{white-space:nowrap}

/* 투찰완료 = 한 줄로 접힘 + 복사 막힘 */
.bl-row{transition:padding .25s, opacity .25s}
.bl-row.is-done{padding-top:4px;padding-bottom:4px;opacity:.75}
.bl-row.is-done .bl-meta,.bl-row.is-done .bl-state .sub,.bl-row.is-done .gobid,.bl-row.is-done .doneat{display:none}
.bl-row.is-done .bl-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;font-weight:500}
.bl-row.is-done .bl-act{flex-direction:row;align-items:center}
.bl-row.is-done a.copy{cursor:not-allowed;border-bottom-style:solid;border-bottom-color:transparent}
.bl-row.is-done .amt.big{font-size:14px;text-decoration:line-through}
.toast.orange{background:#ea580c;font-weight:800;font-size:16px}
.live-cnt{color:var(--red);font-size:16px}
.who .idle-left{font-size:12px;color:var(--mute);white-space:nowrap}
.who .idle-left b{font-variant-numeric:tabular-nums;color:var(--txt)}
.who .idle-left.warn b{color:var(--red)}
.sumcards.tabs4{grid-template-columns:repeat(4,minmax(0,1fr))}
.sumcards .sc em{font-style:normal;font-size:12px;color:var(--mute)}
.sumcards .sc.on{border:2px solid var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)}
.sumcards .sc.on span{color:var(--txt);font-weight:800}
@media (max-width:1100px){ .bl-num{display:none} .bl-row.is-done .bl-base,.bl-row.is-done .bl-rate,.bl-row.is-done .bl-site,.bl-row.is-done .bl-no{display:none} }
@media (max-width:700px){ .sumcards.tabs4{grid-template-columns:repeat(2,minmax(0,1fr))} .who .idle-left{display:inline} }

/* 개찰 순위: 바탕 없이 글자색만 · 1순위는 금색으로 반짝 */
.rk{font-weight:600;font-size:15px;color:#e00000;white-space:nowrap;font-variant-numeric:tabular-nums}
.rk.rk1{display:inline-block;padding:2px 10px;border-radius:8px;color:#7a4b00;background:linear-gradient(90deg,#ffd54f,#fff3b0,#ffd54f);background-size:200% 100%;
  animation:rk1shine 1.6s linear infinite, rk1pulse 1s ease-in-out infinite;box-shadow:0 0 10px #ffc107}
@keyframes rk1shine{from{background-position:0 0}to{background-position:200% 0}}
@keyframes rk1pulse{0%,100%{transform:scale(1);box-shadow:0 0 6px #ffc107}50%{transform:scale(1.08);box-shadow:0 0 18px #ffb300}}
@media (prefers-reduced-motion:reduce){.rk.rk1{animation:none}}
.rkw{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.sumcards.tabs3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){ .sumcards.tabs3{grid-template-columns:repeat(3,minmax(0,1fr))} }
.perf td.s10 b{color:#2e7d32}
.perf td.sall{font-weight:700}
:root[data-theme="dark"] table.perf tfoot tr.sumrow th,:root[data-theme="dark"] table.perf tfoot tr.sumrow td{background:#2a3140;border-top-color:#3d4656;color:var(--txt)}
:root[data-theme="dark"] .perf td.s3 b{color:#7cb4ff} :root[data-theme="dark"] .perf td.s5 b{color:#ff8a80} :root[data-theme="dark"] .perf td.s10 b{color:#6ee7a0}
:root[data-theme="dark"] table.perf input.auto{background:#2a3140 !important;color:#c9d1d9 !important}
.rkw{font-weight:400}
:root[data-theme="dark"] .rk{color:#ff3b30}
:root[data-theme="dark"] .rk.rk1{color:#7a4b00}
.rk.rk1{font-weight:700}
:root[data-theme="dark"] code.uid{background:#33405a;color:#fff}
:root[data-theme="dark"] input.uid{background:#1f2430 !important;color:#fff !important;border-color:#4b5567}
details.nbk{position:relative;display:inline-block}
details.nbk summary{list-style:none;cursor:pointer}
details.nbk summary::-webkit-details-marker{display:none}
.nbk-box{position:absolute;right:0;top:110%;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;box-shadow:0 6px 20px rgba(0,0,0,.25);min-width:190px}
.wl-day{margin:16px 0 6px;font-weight:800;font-size:16px;border-bottom:2px solid var(--line);padding-bottom:4px}
.wl-item{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:10px;padding:10px 14px;margin:6px 0}
.wl-item .wl-who{font-weight:700}
.wl-item .wl-body{white-space:pre-wrap;margin-top:6px;line-height:1.6}
.nbk-row{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;margin:0 auto}
.nbk-chip{display:flex;align-items:center;gap:4px;margin:0;cursor:pointer;font-size:13px}
.nbk-chip input{width:16px;height:16px}
.nbk-chip span{padding:1px 8px;border-radius:4px;font-weight:700}
.top nav a .nb.wl-new{background:#e00000;margin-left:4px;animation:wlblink 1s ease-in-out infinite}
@keyframes wlblink{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(224,0,0,.7)}50%{opacity:.35;box-shadow:0 0 0 6px rgba(224,0,0,0)}}
/* 관리자 등급 색: Master 보라 · 관리자A 파랑 · 관리자B 초록 */
.lv{display:inline-block;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;color:#fff;white-space:nowrap}
.lv.lv-M{background:#7c3aed}
.lv.lv-A{background:#2563eb}
.lv.lv-B{background:#059669}
.top nav .nav-sep{font-size:11px;color:var(--mute);padding:2px 6px;border-left:1px solid var(--line);margin-left:6px;align-self:center}
/* 관리자 메뉴: 위 = 업무 묶음, 아래 줄 = 화면 */
.top nav a.grp{font-weight:700;font-size:15px;padding:6px 14px}
.subnav{display:flex;gap:4px;flex-wrap:wrap;padding:6px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.subnav a{padding:5px 12px;border-radius:6px;color:var(--txt);font-size:14px}
.subnav a.on,.subnav a:hover{background:var(--blue-bg);color:var(--blue);text-decoration:none}
.subnav a .nb{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:var(--blue);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;margin-left:3px}
.subnav a .nb.gray{background:#6b7280} .subnav a .nb.dot{background:#16a34a}
.subnav a .nb.wl-new{background:#e00000;animation:wlblink 1s ease-in-out infinite}
@media (max-width:700px){ .subnav{flex-wrap:nowrap;overflow-x:auto;padding:4px 8px} .subnav a{white-space:nowrap} }
/* 일자리창출 */
.ok{color:#16a34a} .planok{color:#d97706}
table.jobs td.curm, table.jobs th.curm{background:color-mix(in srgb,var(--blue) 10%,transparent)}
table.jobs .jcell .need{color:var(--red);font-size:12px;line-height:1.3}
.jgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.jbox{border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--card)}
.jbox.ok{border-left-color:#16a34a} .jbox.planok{border-left-color:#d97706} .jbox.curm{box-shadow:0 0 0 2px var(--blue)}
.jbox table.mini{width:100%;margin-top:6px;font-size:13px} .jbox table.mini td{padding:2px 4px}
/* 저장 완료 팝업 */
.savepop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);animation:spfade .2s ease-out;transition:opacity .4s}
.savepop.bye{opacity:0}
.savepop-box{background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:14px;padding:22px 30px;min-width:260px;max-width:min(520px,90vw);text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.savepop-box b{display:block;font-size:20px;margin:4px 0 6px}
.savepop-ic{width:46px;height:46px;margin:0 auto;border-radius:50%;background:#16a34a;color:#fff;font-size:26px;line-height:46px}
@keyframes spfade{from{opacity:0}to{opacity:1}}
.jbox table.mini td{white-space:nowrap}
.jbox table.mini{table-layout:auto;font-size:12.5px}
/* 위 메뉴 고정 */
.stickyhead{position:sticky;top:0;z-index:40;background:var(--bg)}
.bl-head{top:var(--headh,0px)}
@media print{ .stickyhead{position:static} }
.who .who-co{font-size:17px;font-weight:800;color:var(--txt);margin:0 4px 0 6px;white-space:nowrap}
@media (max-width:700px){ .who .who-co{font-size:15px} }
.jbox .jline{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin-top:6px;font-size:13px}
.jbox .jline .jl{min-width:42px;color:var(--mute)}
.jbox .jline .jr{margin-left:auto;font-weight:700}
.jgrid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.top .brand{padding:4px 12px;border-radius:8px;font-weight:800}
.top .brand.on,.top .brand:hover{background:var(--blue-bg);color:var(--blue);text-decoration:none}
.top nav .nav-sep:empty{padding:0;margin:0 6px;height:22px}
/* 공고번호·투찰금액 크게 */
.bl-no{font-size:18px}
.amt.big{font-size:20px}
.bl-head,.bl-row{grid-template-columns:26px 86px 76px 190px minmax(0,1fr) 56px 124px 64px 150px 96px 36px}
.homegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
.who .topitems{display:inline-flex;gap:4px;margin-right:8px}
.who a.topitem{padding:5px 10px;border-radius:6px;color:var(--txt);font-weight:600;font-size:14px;white-space:nowrap}
.who a.topitem.on,.who a.topitem:hover{background:var(--blue-bg);color:var(--blue);text-decoration:none}
.who a.topitem .nb{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;color:#fff;font-size:11px;font-weight:700;line-height:18px;margin-left:3px}
.who a.topitem .nb.wl-new{background:#e00000;animation:wlblink 1s ease-in-out infinite}
/* 제출용 인쇄 */
@media print{
  .noprint,.stickyhead,.foot,.flash,.savepop{display:none !important}
  body{background:#fff !important;color:#000 !important}
  .card.printarea{border:none;box-shadow:none;padding:0;background:#fff}
  .printarea .tbl th,.printarea .tbl td{color:#000 !important;background:#fff !important;border-color:#999 !important}
  .printarea a{color:#000;text-decoration:none}
  .wrap{padding:0;max-width:none}
}
@media print{ .printarea .sub{color:#333 !important} .printarea h2,.printarea h3,.printarea b{color:#000 !important} }

/* 한전 무정전 동시보유 띠그래프 */
.tl{position:relative;margin:8px 0 16px;border:1px solid var(--line);border-radius:8px;padding:4px 10px 8px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tl-row{display:flex;align-items:center;min-height:34px;border-bottom:1px dashed var(--line)}
.tl-row:last-child{border-bottom:0}
.tl-name{width:150px;flex:none;font-size:13px;padding-right:8px;line-height:1.2}
.tl-name .sub{font-size:11px}
.tl-track{position:relative;flex:1;height:16px}
.tl-axis{min-height:22px;border-bottom:1px solid var(--line)}
.tl-sum .tl-track{height:20px}
.tl-cnt{min-height:70px}.tl-cnt .tl-track{height:60px;border-bottom:1px solid #94a3b8}
.tl-track>i{position:absolute;top:0;bottom:0;border-radius:2px}
.tl-cnt .tl-track>i{top:auto;bottom:0;border-radius:0;background:#93c5fd}
.tl-cnt .tl-track>i.ok{background:#16a34a}
.tl-need{position:absolute;left:0;right:0;border-top:2px dashed #dc2626;z-index:2}
.tl-need span{position:absolute;right:0;top:-16px;font-size:11px;color:#dc2626;font-weight:700}
i.tl-k2{background:#2563eb}
i.tl-k1{background:repeating-linear-gradient(45deg,#fdba74 0 4px,#fff7ed 4px 8px);border:1px solid #fb923c}
i.tl-ok{background:#16a34a}
i.tl-5{background:none;border-left:2px dashed #dc2626}
.tl-grid{position:absolute;top:0;bottom:0;left:160px;right:10px;pointer-events:none}
.tl-tick{position:absolute;top:0;bottom:0;border-left:1px solid rgba(148,163,184,.35)}
.tl-tick span{position:absolute;top:4px;left:3px;font-size:11px;white-space:nowrap;color:var(--mute)}
.tl-five{position:absolute;top:0;bottom:0;border-left:2px dashed #dc2626;z-index:3}
.tl-five span{position:absolute;bottom:2px;left:4px;font-size:11px;color:#dc2626;font-weight:700;white-space:nowrap;background:var(--card);padding:0 3px}
.tl-legend{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0}
.tl-legend i{display:inline-block;width:22px;height:11px;margin-right:5px;vertical-align:-1px;border-radius:2px}
.tl-legend i.tl-5{width:0;height:12px}
@media print{.tl-five span{background:#fff}.tl{break-inside:auto}.tl-row{break-inside:avoid}.tl-tick span,.tl-name .sub{color:#555}}
.tl-tick.major{border-left:1px solid rgba(100,116,139,.6)}
.tl-tick:not(.major) span{font-size:10px;opacity:.75}
.tl-lab{min-height:42px}.tl-lab.two{min-height:74px}
.tl-lab .tl-track{height:38px;align-self:flex-start;margin-top:3px}
.tl-lab .tl-track>i.tl-blk{top:0;bottom:auto;height:4px;background:#16a34a;border-radius:2px}
.tl-lab .tl-track>span{position:absolute;top:7px;transform:translateX(-50%);font-size:11px;line-height:1.25;text-align:center;white-space:nowrap;color:var(--green);background:var(--card);padding:0 3px;border-radius:3px}
.tl-lab .tl-track>span b{font-size:13px}
.tl-lab .tl-track>span.alt{top:39px}
@media print{.tl-lab .tl-track>span{background:#fff;color:#166534}}
.lv.lv-U{background:#d97706}
.mperm-list{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 2px;max-height:220px;overflow:auto}
/* 프린트: 띠그래프 세로를 줄임 */
.tl-legend{-webkit-print-color-adjust:exact;print-color-adjust:exact}
@media print{
  .tl{padding:2px 8px 4px;margin:4px 0 10px}
  .tl-row{min-height:17px}
  .tl-name{font-size:11px;line-height:1.1;white-space:nowrap}
  .tl-name .sub{display:inline;font-size:10px;margin-left:4px}
  .tl-name .sub::before{content:"· "}
  .tl-track{height:9px}
  .tl-axis{min-height:16px}
  .tl-tick span{top:2px;font-size:9px}
  .tl-cnt{min-height:44px}.tl-cnt .tl-track{height:38px}
  .tl-lab{min-height:34px}.tl-lab.two{min-height:60px}
  .tl-lab .tl-track{height:30px}
  .tl-lab .tl-track>span{font-size:9px;top:6px}.tl-lab .tl-track>span b{font-size:11px}
  .tl-lab .tl-track>span.alt{top:32px}
  .tl-need span{font-size:9px;top:-12px}
  .tl-legend{font-size:10px;margin:2px 0}
  .printarea h3{margin:10px 0 4px}
}
.redcnt,.redcnt b{color:#dc2626 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tl-no{display:inline-block;min-width:18px;color:var(--mute);font-size:11px;text-align:right;margin-right:5px}
/* 그래프 바로 아래 기간표 (조금만 띄움) · 프린트 줄 간격 */
.tl{margin-bottom:0}
.tl-after{margin-top:8px}
@media print{
  .tl{margin-bottom:0}
  .tl-after{margin-top:6px}
  .tl-row{min-height:23px}
  .tl-track{height:11px}
  .tl-name{font-size:12px}
  .tl-name .sub{font-size:10.5px}
}
@media print{.printarea h3.gap-top{margin-top:30px}}
details.al-edu{display:inline-block;vertical-align:top;margin-right:4px}
details.al-edu>summary{list-style:none;cursor:pointer}
details.al-edu>summary::-webkit-details-marker{display:none}
details.al-edu[open]{display:block;margin-bottom:6px}
.mq{font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums;margin-left:2px}
.mq em{font-style:normal;font-size:11px;margin-left:3px}
.mq em.up{color:#c62828}.mq em.dn{color:#1565c0}
.upprog{margin-top:12px}
.upbar{height:14px;border-radius:7px;background:var(--th);border:1px solid var(--line);overflow:hidden}
.upbar i{display:block;height:100%;width:0;background:var(--blue);transition:width .3s}
.upbar i.busy{background:repeating-linear-gradient(45deg,var(--blue) 0 10px,#5b8def 10px 20px);background-size:28px 28px;animation:upmove 1s linear infinite}
@keyframes upmove{from{background-position:0 0}to{background-position:28px 0}}
.upprog .sub{margin-top:6px}
.trade-big{display:inline-block;vertical-align:2px;margin-right:6px;padding:2px 10px;border-radius:6px;background:#7c3aed;color:#fff;font-weight:800;font-size:14px;letter-spacing:.3px}
.trade-big.none{background:#9ca3af}
.trade-txt{color:#7c3aed}
[data-theme="dark"] .trade-txt{color:#c4b5fd}
.sentf{margin-top:2px}
.sentbtn{border:1px solid var(--line);background:var(--card);color:var(--mute);border-radius:6px;font-size:11px;padding:1px 6px;cursor:pointer}
.sentbtn.on{color:var(--green);border-color:var(--green);font-weight:700}
.sentbtn.part{color:var(--amber);border-color:var(--amber)}
.sentbtn:hover{background:var(--hover)}
.exp-pop{position:absolute;right:0;top:46px;z-index:50;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:14px 16px;max-width:420px}
/* 보냄 단추 크게 */
.sentbtn{font-size:12.5px;padding:3px 9px;font-weight:600;color:var(--txt);border-color:var(--field-line)}
.sentbtn.on{background:var(--green-bg)}
.sentbtn.part{background:var(--amber-bg)}
.hid-row td{opacity:.5}
/* 종목 색 (은은하게) */
.tc{display:inline-block;padding:0 6px;border-radius:4px;font-weight:600;line-height:1.5}
.tc-elec{color:#1d4ed8;background:#e8effd}
.tc-tel{color:#047857;background:#e3f5ee}
.tc-fire{color:#c2410c;background:#fdeee6}
.tc-mech{color:#7c3aed;background:#f1eafd}
.tc-land{color:#4d7c0f;background:#eef5e2}
.tc-etc{color:var(--mute);background:var(--th)}
[data-theme="dark"] .tc-elec{color:#93b4ff;background:#1f2b45}
[data-theme="dark"] .tc-tel{color:#6fd3a8;background:#183a2e}
[data-theme="dark"] .tc-fire{color:#ffad80;background:#422619}
[data-theme="dark"] .tc-mech{color:#c4a8ff;background:#2e2346}
[data-theme="dark"] .tc-land{color:#b5db7a;background:#2a3519}
.trade-big.tc-elec{background:#2563eb;color:#fff}.trade-big.tc-tel{background:#059669;color:#fff}.trade-big.tc-fire{background:#ea580c;color:#fff}
.trade-big.tc-mech{background:#7c3aed;color:#fff}.trade-big.tc-land{background:#65a30d;color:#fff}.trade-big.tc-etc{background:#6b7280;color:#fff}
/* 글꼴 고르기 (오른쪽 위) */
html[data-font="dongle"] body, html[data-font="dongle"] :is(input,select,textarea,button){font-family:"Dongle","Malgun Gothic",sans-serif}
html[data-font="singleday"] body, html[data-font="singleday"] :is(input,select,textarea,button){font-family:"Single Day","Malgun Gothic",sans-serif}
html[data-font="poor"] body, html[data-font="poor"] :is(input,select,textarea,button){font-family:"Poor Story","Malgun Gothic",sans-serif}
html[data-font="dongle"] body{font-size:1.45em;line-height:1.1}
html[data-font="singleday"] body, html[data-font="poor"] body{font-size:1.06em}
.font-pick{width:92px !important;padding:2px 4px;font-size:12px;height:auto;border-radius:6px;margin-left:4px}
/* 종목 아이콘: 전기 ⚡ · 소방 🧯 · 통신 📡 · 기계설비 ⚙️ · 조경 🌳 */
.tc-elec::before,.trade-big.tc-elec::before{content:"⚡ "}
.tc-fire::before,.trade-big.tc-fire::before{content:"🧯 "}
.tc-tel::before,.trade-big.tc-tel::before{content:"📡 "}
.tc-mech::before,.trade-big.tc-mech::before{content:"🚜 "}
.tc-land::before,.trade-big.tc-land::before{content:"🌳 "}
/* 오늘 마감: 허겁지겁 달려가는 사람 */
@keyframes hurry{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-2px) rotate(-6deg)}50%{transform:translateX(2px) translateY(-2px) rotate(4deg)}75%{transform:translateX(-1px) rotate(-3deg)}}
.hurry{display:inline-block;animation:hurry .55s ease-in-out infinite;color:var(--red);font-weight:800;font-size:12px;white-space:nowrap}
.st-today .stp::before{content:"🏃💨 ";display:inline-block;animation:hurry .55s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.hurry,.st-today .stp::before{animation:none}}
/* 업무일지: Master 글 번쩍번쩍 */
@keyframes wlglow{0%,100%{box-shadow:0 0 0 2px #f59e0b,0 0 10px rgba(245,158,11,.35)}50%{box-shadow:0 0 0 2px #fbbf24,0 0 18px rgba(251,191,36,.85)}}
.wl-item.wl-master{border:1px solid #f59e0b;border-radius:10px;background:linear-gradient(90deg,rgba(251,191,36,.16),rgba(251,191,36,.04));animation:wlglow 1.4s ease-in-out infinite;padding:10px 12px;margin:8px 0}
.wl-item.wl-master .wl-who{color:#b45309;font-weight:800}
[data-theme="dark"] .wl-item.wl-master .wl-who{color:#fbbf24}
@media print{.tc::before,.trade-big::before{content:""}}
@keyframes crown{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-3px) rotate(8deg)}}
.crown{display:inline-block;margin-right:3px;animation:crown 1.2s ease-in-out infinite;filter:drop-shadow(0 0 3px rgba(251,191,36,.9))}
.dl-urgent{color:#dc2626 !important;font-weight:900;font-size:15px}

/* 일자리창출 ②: 이번 달·다음 달·합계 눈에 띄게 (v1.0.149) */
table.jobs th.hot{font-size:15px;font-weight:800;white-space:nowrap}
table.jobs th.hot1, table.jobs td.hot1{background:color-mix(in srgb,#f5b400 20%,transparent)}
table.jobs th.hot2, table.jobs td.hot2{background:color-mix(in srgb,#f08a4b 18%,transparent)}
table.jobs th.hotsum, table.jobs td.hotsum{background:color-mix(in srgb,var(--blue) 12%,transparent);border-right:3px solid color-mix(in srgb,var(--blue) 45%,transparent)}
table.jobs th.hot1{border-left:3px solid color-mix(in srgb,#f5b400 60%,transparent)}
table.jobs td.hot1{border-left:3px solid color-mix(in srgb,#f5b400 60%,transparent)}
table.jobs td.hot{text-align:center;min-width:86px}
table.jobs th.hot{text-align:center}
.jb{display:inline-block;min-width:44px;padding:3px 8px;border-radius:999px;font-weight:800;font-size:15px;text-align:center}
.jb.ok{background:#16a34a;color:#fff}
.jb.no{background:#fde2e1;color:#c62828;border:1px solid #f5b5b1}
.jb.plan{background:#fff1d6;color:#b45309;border:1px solid #f3c77a;font-size:13px}
.jneed{font-size:11px;color:#c62828;margin-top:3px;line-height:1.3}
.jsum{display:inline-block;min-width:44px;padding:3px 8px;border-radius:8px;font-weight:800;font-size:16px}
.jsum.ok{color:#14532d;background:color-mix(in srgb,#16a34a 22%,transparent)}
.jsum.part{color:#92400e;background:color-mix(in srgb,#f59e0b 22%,transparent)}
.jsum.no{color:#c62828}
table.jobs td.curm2, table.jobs th.curm2{background:color-mix(in srgb,#f08a4b 10%,transparent)}
table.jobs td:first-child{min-width:250px}
table.jobs td:first-child .sub[title="본사 관리번호"]{white-space:nowrap}
table.jobs th.hot2, table.jobs td.hot2{border-right:3px solid color-mix(in srgb,#f08a4b 55%,transparent)}
