/* ══════════════════════════════════════════════════════════════
   theme.css — 전 페이지 색·위계 단일 진실원천 (2026-07-30 UI 정돈)
   원칙: 색은 "긴급도"에만 쓴다(3단). 분류(유형·출처·종류)는 무채 아웃라인.
   cm.css(레이아웃) 뒤에 로드되어 색 규칙을 덮어쓴다.
   ══════════════════════════════════════════════════════════════ */
/* ── 서체: Pretendard Variable 자체 호스팅 (2026-08-03, D 승인)
   외부 CDN 무의존(폐쇄망 대비). cm.css --sans 체인이 Pretendard 우선·맑은 고딕 폴백.
   숫자는 기존 tabular-nums 선언(--mono·.tally .n 등) 그대로 유지. 라이선스 SIL OFL. */
@font-face{
  font-family:"Pretendard Variable";
  src:url("/static/fonts/PretendardVariable.woff2") format("woff2-variations");
  font-weight:45 920;
  font-style:normal;
  font-display:swap;
}

:root{
  /* 보안 워터마크 — 농도·간격은 이 토큰만 조정(화면/인쇄 분리). 2026-08-13 미레카 이식 */
  --wm-opacity:.06;          /* 화면 농도 — 가독 방해 없는 수준(실측 조정) */
  --wm-print-opacity:.045;   /* 인쇄 농도 — 더 옅게 */
  --wm-tile:340px 200px;     /* 타일 간격(SVG 1타일 크기) */

  /* 긴급도 3단 — 이 세 색 외에는 의미색을 쓰지 않는다 */
  --u-crit:#a32b2b;   /* 도과·오늘~D-3 */
  --u-warn:#a3742b;   /* D-4~D-7 */
  --u-calm:#3f4d5c;   /* 그 외(잉크) */
  --u-crit-bg:#f9ecec;
  --u-warn-bg:#f7efdf;
}

/* ── 분류 뱃지 전면 무채화 — 유형(법원/수사기관/경매/자문) ── */
.badge, .src-court, .src-police, .src-auction, .src-advisory{
  background:#fff !important; color:var(--ink-2) !important;
  border:1px solid var(--rule); font-weight:600;
}
/* 종류 뱃지 — 기타/수집기일/출처는 무채. ★불변·엄수는 종류=긴급도 등급이라 상시 유채 강조
   (긴급도 원칙의 예외가 아니라 적용 — 2026-07-30) */
.dl-badge, .dl-etc, .dl-hearing{
  background:#fff !important; color:var(--ink-2) !important;
  border:1px solid var(--rule);
}
.dl-invariant{font-weight:800 !important; color:#fff !important; background:var(--u-crit) !important;
  border:1px solid var(--u-crit)}
.dl-strict{font-weight:700 !important; color:#fff !important; background:var(--u-warn) !important;
  border:1px solid var(--u-warn)}
.src-tag, .src-tag.manual{border-color:var(--rule); color:var(--ink-3); background:#fff}
.elec{color:var(--ink-3); border-color:var(--rule)}
.cat{color:var(--ink-3)}

/* ── 긴급도 3단 — D-day 칩 ── */
.dday{color:var(--ink-3)}
.dday.warn{color:var(--u-warn)}
.dday.near{color:var(--u-crit)}
.dday.past{color:var(--u-crit); text-decoration:none; font-weight:800}

/* ── 캘린더 항목 ──
   원칙 갱신(2026-07-30): 불변·엄수는 '종류 자체가 긴급도 등급' — 상시 강조(적/호박+볼드)는
   긴급도 원칙의 예외가 아니라 적용이다. 수집 일반 기일 = 무채 + 임박 시 좌측 보더(3단). */
.cal-item, .cal-item.k-hearing{
  background:var(--surface-2); color:var(--ink-2);
  border-left:3px solid transparent; border-radius:2px;
}
.cal-item.k-invariant{font-weight:700;color:var(--u-crit);background:var(--u-crit-bg);
  border-left:3px solid var(--u-crit);border-radius:2px}
.cal-item.k-strict{font-weight:700;color:var(--u-warn);background:var(--u-warn-bg);
  border-left:3px solid var(--u-warn);border-radius:2px}
.cal-item.u-warn{border-left-color:var(--u-warn); background:var(--u-warn-bg); color:var(--u-warn)}
.cal-item.u-crit{border-left-color:var(--u-crit); background:var(--u-crit-bg); color:var(--u-crit)}
.cal-item.done{color:#9aa4ad; text-decoration:line-through; background:var(--surface-2);
  border-left-color:transparent; font-weight:400}
table.cal td.holiday{background:#f6f2f2}
table.cal td.holiday .dnum, table.cal .hname{color:var(--u-crit)}

/* ── 도과 경고 구획 ── */
.overdue-band{background:var(--u-crit-bg); border-color:#e2c4c4}
.overdue-band h3{color:var(--u-crit)}

/* ── 요약 스트립(전 페이지 공통): 오늘 기일 · 이번 주 불변기한 · 도과 ── */
.tally .item.strip-today .n{color:var(--ink)}
.tally .item.strip-inv .n{color:var(--u-warn)}
.tally .item.strip-overdue .n{color:var(--u-crit)}
.tally .item.strip-overdue.zero .n, .tally .item.strip-inv.zero .n{color:var(--ink-3)}

/* ── 위계·밀도 미세 정돈 ── */
.panel > header h2{letter-spacing:.01em}
table.list tbody td, table.dl-list tbody td{padding-top:7px;padding-bottom:7px}
.filters{row-gap:6px}
.topbar .io a.new{border-color:#8a6a6a;color:#f2e6e6}

/* ── 로그인·계정 페이지 ── */
.authbox{max-width:380px;margin:9vh auto 0;padding:0 16px}
.authbox .panel{padding:22px 22px 24px}
.authbox h2{margin:0 0 4px;font-size:17px}
.authbox .sub{font-size:12px;color:var(--ink-3);margin-bottom:16px}
.authbox .field{margin-bottom:12px}
.authbox button.primary{width:100%;padding:11px}
.authbox .err-line{color:var(--u-crit);font-size:12.5px;min-height:18px;margin:6px 0 2px}
.who-chip{font-size:12px;color:#9fb0c0}

/* ══════════════════════════════════════════════════════════════
   ENC 브랜드 통일 (2026-07-30) — 별산제(enc-finance) index.html 실측 이식.
   원칙: 브랜드 네이비 = 크롬 영역(상단바·버튼·링크·구획바·포커스)에만.
        긴급도 적/호박(--u-crit/--u-warn) = 데이터 영역 전용으로 존치 — 혼동 분리.
   ══════════════════════════════════════════════════════════════ */
:root{
  --navy:#302E81; --navy-d:#252270; --navy-l:#5B57B0;          /* 별산제 주 색상 3종 */
  --paper:#f6f6fb; --surface-2:#f4f3fb;                        /* 별산제 --bg/--softer */
  --rule:#c9c9dc; --rule-2:#e3e3ee;                            /* 별산제 --line-d/--line */
  --focus:#5B57B0;                                             /* 포커스 = navy-l */
  --secbar:#302E81; --court:#302E81;                           /* 구획바·상세 헤더 크롬 */
}
body{font-family:"Pretendard Variable",Pretendard,"Malgun Gothic","맑은 고딕",sans-serif}

/* 상단바 — 별산제 topbar(navy, 워드마크 ENC | 시스템명) */
.topbar{background:var(--navy);border-bottom:none;padding:11px 22px}
.topbar h1 a{display:inline-flex;align-items:baseline}
.topbar .mk{font-weight:800;font-size:17px;color:#fff}
.tb-divider{display:inline-block;width:1px;height:18px;background:rgba(255,255,255,.25);margin:0 10px;align-self:center}
.topbar .sys{font-size:12.5px;color:#c9c7ea;font-weight:600}
.topbar .sub{color:#c9c7ea}
.topbar .io button,.topbar .io a{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:7px}
.topbar .io button:hover,.topbar .io a:hover{background:rgba(255,255,255,.2);color:#fff}
.topbar .io a.new{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.4);color:#fff}
.who-chip{color:#c9c7ea}

/* 주 버튼·링크·활성 — navy 크롬 */
button.primary{background:var(--navy);border-color:var(--navy);border-radius:8px}
button.primary:hover{background:var(--navy-d)}
button.ghost,a.ghost{color:var(--navy);border-radius:8px}
td.no a{color:var(--navy);border-bottom-color:#c9c7ea}
td.no a:hover{color:var(--navy-d);border-bottom-color:var(--navy)}
.daybox a, table.dl-list a{color:var(--navy)}
.types label:has(input:checked){border-color:var(--navy);box-shadow:inset 3px 0 0 var(--navy)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy-l)}
table.kv{border-top-color:var(--navy)} table.grid{border-top-color:var(--navy)}
.detail > .dhead{background:var(--navy);border-bottom-color:var(--navy-d)}
.detail > .dhead button,.detail > .dhead a{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff;border-radius:7px}
.calcbox .chead{background:var(--navy);border-bottom-color:var(--navy-d)}
.calcbox .chead button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}
table.cal td.today{outline-color:var(--navy-l)}
table.cal th.sat, table.cal td.sat .dnum{color:var(--navy-l)}
.tally{border-bottom-color:var(--rule-2)}

/* 로그인·비밀번호 변경 — 별산제 lcard(네이비 그라디언트 + 흰 카드) */
body.auth-bg{background:linear-gradient(135deg,#302E81,#252270 55%,#1a1850);min-height:100vh}
body.auth-bg .topbar{display:none}
.authbox{margin:13vh auto 0;max-width:400px}
.authbox .panel{border:none;border-radius:14px;box-shadow:0 24px 60px rgba(20,18,60,.4);padding:38px 34px}
.brandline{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.brandline .bmk{font-weight:800;color:var(--navy);font-size:21px}
.brandline .ben{font-size:10px;font-weight:700;color:var(--navy-l);letter-spacing:1.5px}
.authbox h2{font-size:18px;margin-top:10px}
.authbox .field input{border:1.5px solid var(--rule);border-radius:8px;padding:9px 11px}
.authbox .field input:focus{outline:none;border-color:var(--navy-l)}
.authbox button.primary{border-radius:8px}

/* 아침 수집 동선 (2026-07-30): '오늘 수집 전' 경고는 호박(긴급도 warn 재사용) */
.tally .item.sync-warn .n{color:var(--u-warn)}
.tally .item.sync-warn a{color:var(--u-warn);font-weight:700;text-decoration:underline}

/* "내 사건" 토글 — 상단바 고정(목록·월력·변동·기한 공통). ON=흰 배경 필
   (.topbar .io button 공통칙보다 특이도를 높여 둔다) */
.topbar .io button.mine-toggle{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);
  color:#fff;border-radius:999px;padding:4px 14px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.topbar .io button.mine-toggle::before{content:"○ ";font-weight:400}
.topbar .io button.mine-toggle.on{background:#fff;color:var(--navy);border-color:#fff}
.topbar .io button.mine-toggle.on::before{content:"● "}
.topbar .io button.mine-toggle:hover{border-color:#fff;background:rgba(255,255,255,.2)}
.topbar .io button.mine-toggle.on:hover{background:#fff}

/* 보안 워터마크 레이어 — 콘텐츠 위 고정, 상호작용 방해 0(pointer-events:none).
   정적 배경 반복(SVG data URI)이라 스크롤·리사이즈 재계산 없음. 캡처·인쇄물에 함께 찍힌다. */
#cm-watermark{position:fixed;inset:0;pointer-events:none;user-select:none;z-index:9999;
  background-repeat:repeat;background-size:var(--wm-tile);opacity:var(--wm-opacity)}
@media print{
  #cm-watermark{display:block !important;opacity:var(--wm-print-opacity);
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* 상세 진행내용 — 진행 행 속 기일 배지(무채 아웃라인, 색 원칙 유지) */
.p-hbadge{display:inline-block;padding:0 6px;border-radius:2px;font-size:10.5px;font-weight:700;
  border:1px solid var(--ink-2);color:var(--ink-2);background:#fff;white-space:nowrap;vertical-align:1px}

/* /changes 사건별 그룹 카드 */
.chg-card{border:1px solid var(--rule-2);border-radius:8px;margin-top:10px;background:#fff}
.chg-card[open]{box-shadow:0 2px 10px rgba(20,18,60,.06)}
.chg-card > summary{list-style:none;cursor:pointer;padding:10px 14px;display:flex;gap:10px;
  align-items:baseline;flex-wrap:wrap}
.chg-card > summary::-webkit-details-marker{display:none}
.chg-card > summary::before{content:"▸";color:var(--ink-3);font-size:11px}
.chg-card[open] > summary::before{content:"▾"}
.chg-card .chg-body{padding:0 16px 12px 30px;border-top:1px dashed var(--rule-2)}
.chg-card .chg-mine{display:inline-block;padding:0 6px;border-radius:2px;font-size:10.5px;font-weight:700;
  border:1px solid var(--navy);color:var(--navy);background:#fff;white-space:nowrap}

/* 역할 뱃지 (3단: 총괄관리자/스텝/구성원) — 무채 아웃라인, 색 원칙 유지 */
.role-tag{display:inline-block;padding:1px 7px;border-radius:2px;font-size:10.5px;font-weight:700;
  border:1px solid var(--rule);color:var(--ink-2);background:#fff;white-space:nowrap}
.topbar .who-chip .role-tag{border-color:rgba(255,255,255,.35);color:#c9c7ea;background:transparent}

/* 확장 설치 페이지 */
.ext-step{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px dashed var(--rule-2)}
.ext-step:last-child{border-bottom:none}
.ext-step .num{flex:0 0 30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}
.ext-step h3{margin:2px 0 4px;font-size:13.5px}
.ext-step p{margin:0;font-size:12.5px;color:var(--ink-2)}
.ext-step .fig{margin-top:8px;border:1px solid var(--rule-2);border-radius:6px;background:var(--surface-2);padding:8px}
.ext-ver{font-family:var(--mono);font-weight:700}

/* M3-B 변동 로그 */
.chg-item{border:1px solid var(--rule-2);border-radius:6px;padding:8px 12px;margin:6px 0;background:#fff}
.chg-line{font-size:12px;color:var(--ink-2);padding:2px 0 0 4px}
.sugg-chip{display:inline-block;font-size:11px;font-weight:700;color:var(--u-warn);
  border:1px solid var(--u-warn);border-radius:10px;padding:1px 8px;text-decoration:none;background:var(--u-warn-bg)}
.sugg-chip:hover{filter:brightness(.95)}
.tally .item.strip-chg a{color:inherit;text-decoration:none}
.tally .item.strip-chg .n{color:var(--navy)}
.tally .item.strip-chg.zero .n{color:var(--ink-3)}


/* 인앱 알림 (종 아이콘·패널) */
#bellBtn{font-size:14px;line-height:1}
.noti-badge{position:absolute;top:-6px;right:-7px;background:var(--u-crit);color:#fff;
  border-radius:9px;font-size:10px;font-weight:800;padding:1px 5px;min-width:16px;text-align:center}
.noti-panel{position:fixed;top:52px;right:16px;width:360px;max-height:70vh;overflow:auto;z-index:80;
  background:#fff;border:1px solid var(--rule);border-radius:10px;box-shadow:0 16px 48px rgba(20,18,60,.25)}
.noti-item{display:block;padding:9px 13px;border-bottom:1px solid var(--rule-2);font-size:12.5px;
  color:var(--ink);text-decoration:none;line-height:1.5}
.noti-item:hover{background:var(--surface-2)}
.noti-item.read{opacity:.55}
.noti-item .noti-act{font-weight:700;color:var(--navy)}
.noti-item .noti-meta{display:block;font-size:11px;color:var(--ink-3)}
.noti-readall{display:block;width:100%;border:none;background:var(--surface-2);color:var(--navy);
  font-size:11.5px;font-weight:700;padding:7px;cursor:pointer;border-bottom:1px solid var(--rule-2)}


/* 계정 관리 표 — 전 열 한 줄 유지(이름·상태·버튼 줄바꿈 방지), 폭 초과는 가로 스크롤 */
table.acct th, table.acct td{white-space:nowrap}

/* ── 공통 푸터 (2026-08-12) — 전 페이지 하단 저작 표기. 인쇄 제외 ── */
.site-footer{text-align:center;font-size:11px;color:var(--ink-3);padding:18px 12px 14px;margin-top:28px}
@media print{.site-footer{display:none}}
