/* 관리자 화면 — 2026-10-08 관리자 개편 grilling R1~R7(docs/설계결정_AI1회제한_관리자UX_grilling_20261008.md §4)
   🔴 common.css 를 걷어 내지 않는다(포털이 같이 쓴다). 관리자 화면에서만 이 파일이 그 위에 덮는다 — 색값은 site.css 토큰과 같은 값.
   머리(.gtop)는 frame.css. 버튼 동작·API 는 바꾸지 않았다(D6) — 이 파일은 모양만. */
:root{--navy:#171214;--blue:#A8134A;--blue-light:#FBEEF3;--crimson:#A8134A;--bg:#FBF6F7;--line:#E7DCE0;--gray:#5B5155;
  --ink:#171214;--taupe:#5B5155;--silver:#C9BCC1;--paper:#FBF6F7;--maroon:#6E0B2E;--tint:rgba(168,19,74,.07)}
body{font-family:"Pretendard","Malgun Gothic","맑은 고딕",system-ui,sans-serif;color:var(--ink);background:var(--paper);word-break:keep-all}
a{color:var(--crimson)}
:focus-visible{outline:2px solid var(--crimson);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-9999px;top:8px;z-index:40;background:#fff;color:var(--crimson);padding:8px 12px;border:1px solid var(--crimson)}
.skip:focus{left:8px}
.wrap{max-width:1120px;padding:0 20px 80px}

/* 머리 — 공개 화면 틀 + 「관리자」 표시(R5) */
.gtop .brand .nm .adm{font-style:normal;font-size:11.5px;font-weight:700;color:#fff;background:var(--crimson);border-radius:4px;padding:2px 7px;margin-left:6px;vertical-align:2px}
.gtop .adnav{margin-left:auto;display:flex;gap:10px;align-items:center}
.gtop .adnav a{font-size:13.5px;color:var(--taupe);text-decoration:none}
.gtop .adnav a:hover{color:var(--crimson)}
#meBar .btn{padding:6px 12px;font-size:12.5px}

/* 관리자 탭 6(R5) — 밑줄형 */
.tabs{gap:0;margin-top:18px;border-bottom:1px solid var(--silver);overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:11px 16px;font-size:14px;font-weight:600;color:var(--taupe);white-space:nowrap;transition:color .15s,border-color .15s}
.tabs button:hover{color:var(--crimson)}
.tabs button.on{background:none;color:var(--crimson);border-bottom-color:var(--crimson)}
.tabs .cnt{display:inline-block;min-width:18px;height:18px;border-radius:9px;background:var(--crimson);color:#fff;font-size:11px;line-height:18px;text-align:center;padding:0 5px;margin-left:4px;font-weight:700}

/* 카드·제목 — C코드는 작게만(D6) */
.card{border:1px solid var(--line);border-radius:10px;box-shadow:none}
.card h2{color:var(--ink);font-size:18px;letter-spacing:-.01em}
.card h2 .num{order:2;background:none;color:#A79CA0;font-size:11px;font-weight:600;min-width:0;height:auto;padding:0;border-radius:0}
.manual{border-left:3px solid var(--crimson)} .auto{border-left:3px solid #2563eb}
.btn{border-radius:7px;transition:background .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--crimson)} .btn-primary:hover{background:var(--maroon)}
.btn-ghost{color:var(--ink);border-color:var(--silver)}
table.t th{background:#F7F1F3;color:var(--taupe);font-weight:600}
table.t tr:hover td{background:#FDF8FA}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--crimson);box-shadow:0 0 0 3px var(--tint)}

/* 오늘 할 일(R1) — 카드 5장 고정 순서 · 0건은 흐리게 · 자리 고정 */
.dash-h{font-size:18px;margin:22px 0 12px;letter-spacing:-.01em}
.dash-h .muted{font-size:12px;font-weight:400;margin-left:6px}
.dash{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.dcard{background:#fff;border:1px solid var(--line);border-top:3px solid var(--silver);border-radius:8px;padding:14px 16px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s;min-height:150px}
.dcard:hover{border-color:var(--crimson);box-shadow:0 2px 10px rgba(110,11,46,.08)}
.dcard.hot{border-top-color:var(--crimson)} .dcard.bad{border-top-color:#b45309}
.dcard.rounds{cursor:default} .dcard.rounds:hover{border-color:var(--line);box-shadow:none}
.dcard.zero{opacity:.55} .dcard.zero .dn{color:var(--taupe)}
.dcard .dn{font-size:32px;font-weight:800;line-height:1.1;color:var(--ink);letter-spacing:-.02em}
.dcard.hot .dn{color:var(--crimson)} .dcard.bad .dn{color:#b45309}
.dcard .dt{font-weight:700;font-size:14px;margin-top:4px}
.dcard .ds{font-size:12px;color:var(--taupe);margin-top:2px}
.dcard .dl{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.7}
.dcard .dl a{color:var(--ink);text-decoration:none} .dcard .dl a:hover{color:var(--crimson);text-decoration:underline}
.dcard .dd{font-size:11.5px;font-weight:700;color:var(--crimson);margin-left:4px;white-space:nowrap}

/* 접수 관리 목록(R3) — 6열 · 행 클릭 */
#qfBar .qf{display:inline-flex;align-items:center;gap:6px;background:var(--tint);color:var(--maroon);border-radius:6px;padding:4px 6px 4px 10px;font-size:12.5px;font-weight:600;margin-bottom:10px}
#qfBar .qf button{border:none;background:none;cursor:pointer;color:var(--maroon);font-size:13px;padding:0 4px}
.lt td{vertical-align:middle}
.lt .sub{font-size:12px;color:var(--taupe);margin-top:2px}
.lt .c-no{white-space:nowrap}
.lt tr.rowlink{cursor:pointer}
.lt tr.rowlink:focus-visible td{background:var(--tint)}
.lt .empty{text-align:center;color:var(--taupe);padding:28px}
.sync{display:inline-block;font-size:11px;font-weight:700;border-radius:4px;padding:1px 6px;margin-right:3px;background:#E8F5EC;color:#166534}
.sync.off{background:#F3EEF0;color:#A79CA0}
.sync.bad{background:#FDE7E7;color:#991b1b;position:relative}
.sync.bad::after{content:"";position:absolute;top:-3px;right:-3px;width:7px;height:7px;border-radius:50%;background:#dc2626}
.stsel{border-color:var(--silver);background:#fff}

/* 접수 관리 T6~T8 — 상태 칩 · 한 줄 거르기 · 열 설정 · 정렬 · 촘촘히 · 머리 고정 */
.stchips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.stchip{border:1px solid var(--silver);background:#fff;border-radius:6px;padding:5px 11px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.stchip .num{color:var(--taupe);font-weight:700;margin-left:2px}
.stchip:hover{border-color:var(--crimson)}
.stchip.on{background:var(--crimson);border-color:var(--crimson);color:#fff} .stchip.on .num{color:#fff}
.lfil{align-items:flex-end}
.lfil .f.grow{flex:1;min-width:200px}
.lfil .f select{min-width:220px}
.ltools{display:flex;gap:8px;align-items:center;margin-left:auto}
.tog{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--taupe);cursor:pointer;white-space:nowrap}
.colmenu{display:flex;flex-wrap:wrap;gap:6px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:-2px 0 10px;font-size:13.5px}
.colmenu .cm-h{width:100%;font-weight:700;font-size:13px}
.colmenu label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.ltwrap{overflow:auto;max-height:calc(100dvh - 300px);min-height:240px;border:1px solid var(--line);border-radius:6px}
.ltwrap table.t{border:none}
.ltwrap table.t th{position:sticky;top:0;z-index:1;box-shadow:inset 0 -1px 0 var(--line)}
.thsort{border:none;background:none;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer;white-space:nowrap}
.thsort:hover,.thsort.on{color:var(--crimson)}
.lt .c-x{font-size:12.5px}
.lt.dense .sub{display:none}
.lt.dense td{padding-top:4px;padding-bottom:4px}
.lt.dense .stsel{padding:2px 4px}

/* 상세 소탭(R4) */
.detail .dtabs{display:flex;gap:0;border-bottom:1px solid var(--silver);margin:12px 0 4px;position:sticky;top:-22px;background:#fff;z-index:2}
.detail .dtabs button{border:none;border-bottom:2px solid transparent;background:none;padding:9px 14px;font:inherit;font-size:13.5px;font-weight:600;color:var(--taupe);cursor:pointer}
.detail .dtabs button.on{color:var(--crimson);border-bottom-color:var(--crimson)}
.detail .dtabs .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--crimson);vertical-align:2px}
.detail h3{color:var(--ink)}

/* 상태 변경 확인 창(R2) — 상세 창 위에 */
.overlay.cfm{z-index:120}
.overlay.cfm .modal{max-width:460px}
#cfmBody h3{margin:0 0 8px;font-size:17px}
#cfmBody .cfm-st{font-size:15px;margin:8px 0}
#cfmBody ul{margin:10px 0 0;padding-left:18px;font-size:13.5px;line-height:1.8}
#cfmBody li.warn{color:#9a3412}

/* 연동 보류·여러 건 처리(접수 관리 T1~T5 · 2026-10-09) */
.sync.hold{background:#FEF3C7;color:#92400E}
.stchip.hold{border-style:dashed}
.lt th.c-ck,.lt td.c-ck{width:30px;padding-right:0;text-align:center}
.lt td.c-ck input,.lt th.c-ck input{width:16px;height:16px;cursor:pointer;vertical-align:middle}
.bulkbar{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:10px;padding:10px 14px;background:#fff;border:1px solid var(--crimson);border-radius:8px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}
.bulkbar .bk-g{display:inline-flex;gap:6px;align-items:center}
.bulkbar select{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--silver);border-radius:6px}
.bk-list{max-height:180px;overflow:auto;margin-top:10px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13px;line-height:1.9}
.overlay.cfm .modal.bkres{max-width:720px}
.bk-tbl{max-height:55vh;overflow:auto}
.holdsw{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.holdsw input{width:16px;height:16px}

/* PC 전용 안내(D7) — 휴대전화에서만 보인다 */
.pcnote{display:none;background:#FFF7ED;border:1px solid #FED7AA;color:#9A3412;border-radius:8px;padding:10px 12px;font-size:13px;margin:8px 0}

@media (max-width:1000px){ .dash{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:640px){
  .wrap{padding:0 12px 60px}
  .gtop .adnav a{display:none}
  .gtop nav.adnav{width:auto;margin-left:auto}
  .gtop .brand .eb{display:none} .gtop .brand img{height:22px;width:auto} .gtop .brand .t{padding-left:10px}
  .dash{grid-template-columns:1fr 1fr} .dcard{min-height:0} .dcard.rounds{grid-column:1/-1}
  .ltwrap{max-height:none;border:none;overflow:visible}
  #btnCols,.tog,.colmenu{display:none!important}
  .lfil .f select{min-width:0}
  .stchips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
  .stchip{white-space:nowrap}
  /* 목록 = 카드: 기업명·접수번호·상태·보고서만(R3) */
  .lt thead{display:none}
  .lt,.lt tbody{display:block}
  .lt tr{display:grid;grid-template-columns:1fr auto;gap:4px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px;margin-bottom:8px}
  table.t.lt td{display:block;border:none;padding:0;background:none}
  table.t.lt tr:hover td{background:none}
  #tab-list{padding:16px 12px}
  .lt .c-rp:has(> .muted:only-child){display:none}
  .lt .c-co{grid-column:1/-1;order:-1} .lt .c-co .sub{display:none}
  .lt .c-no .sub{display:none}
  table.t.lt td.c-sy,table.t.lt td.c-up,table.t.lt td.c-x{display:none}
  .lt .c-rp{grid-column:1/-1}
  /* 여러 건 처리는 PC 전용(T5) — 체크박스·작업 막대를 숨긴다 */
  table.t.lt td.c-ck,.bulkbar{display:none!important}
  /* 상세 = 전체 화면 */
  #overlay{padding:0} #overlay .modal{max-width:none!important;max-height:none;height:100dvh;border-radius:0}
  .detail .dtabs{overflow-x:auto} .detail .dtabs button{white-space:nowrap;padding:9px 10px}
  /* PC 전용 작업은 안내만(D7) */
  .pcnote{display:block}
  #tab-window > :not(h2):not(.pcnote),#tab-integ > :not(h2):not(.pcnote){display:none}
  #modalBody .card.manual{display:none}
}

/* 서브 관리자(2026-10-09) — 종합관리자 전용 요소를 숨긴다. 🔴 막는 것은 서버다(이건 화면 정리) */
.role-sub .mo{display:none!important}
