
:root{--ink:#1a1a1a;--sub:#555;--line:#d8d8d8;--navy:#0b2e5c;--paper:#fff;--bg:#f4f5f7;--accent:#8a1414}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
font-family:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;line-height:1.65}
a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}
.top{background:var(--navy);color:#fff;padding:14px 22px;display:flex;justify-content:space-between;
align-items:center;flex-wrap:wrap;gap:8px}
.top .brand{display:flex;align-items:center;gap:12px}
.top .mark{height:34px;width:auto;display:block;flex:none}
.top .ko{font-weight:700;font-size:1.05rem}.top .en{font-size:.72rem;opacity:.8}
.masthead .docmark{height:48px;width:auto;display:block;margin:0 auto 10px}
.top nav a{color:#fff;margin-left:18px;font-size:.9rem;opacity:.9}
main{max-width:900px;margin:26px auto;padding:0 18px}
footer{max-width:900px;margin:40px auto;padding:16px 18px;color:var(--sub);font-size:.75rem;border-top:1px solid var(--line)}
.hero h1{font-size:1.5rem;margin:.2em 0}.hero p{color:var(--sub)}
.stat{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px}
.stat>div{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 18px;min-width:110px}
.stat b{display:block;font-size:1.4rem;color:var(--navy)}.stat span{font-size:.75rem;color:var(--sub)}
table.lib{width:100%;border-collapse:collapse;margin-top:22px;background:var(--paper);
border:1px solid var(--line);border-radius:10px;overflow:hidden}
table.lib th,table.lib td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem}
table.lib th{background:#eef1f5;font-size:.78rem;color:var(--sub)}
table.lib td.date{color:var(--sub);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.84rem}
table.lib td.cat{white-space:nowrap;width:96px}
.pill{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.03em;color:#fff;
background:var(--navy);padding:2px 10px;border-radius:20px}
.empty{color:var(--sub);text-align:center;padding:30px}
.badge{background:var(--accent);color:#fff;padding:2px 9px;border-radius:3px;font-size:.72rem;font-weight:700}
/* document */
.doc{background:var(--paper);border:1px solid var(--line);border-radius:4px;
padding:44px 54px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.masthead{text-align:center;border-bottom:3px double var(--navy);padding-bottom:14px;margin:0 0 4px}
.masthead .rpttitle{font-size:1.5rem;font-weight:700;color:var(--navy);margin:0;line-height:1.35;text-wrap:balance}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px}
.toolbar .back{font-size:.86rem;color:var(--navy)}
.printbtn{font:inherit;font-size:.84rem;font-weight:600;color:#fff;background:var(--navy);border:none;
border-radius:7px;padding:8px 15px;cursor:pointer}
.printbtn:hover{background:var(--navy-2)}
/* 상단 기관/구분/일자 표 */
table.rpthead{width:100%;border-collapse:collapse;margin:16px 0 20px}
table.rpthead th,table.rpthead td{border:1px solid var(--ink);padding:7px 12px;font-size:.86rem;text-align:left}
table.rpthead th{background:#f2f3f5;width:84px;white-space:nowrap;font-weight:600}
.subject{font-size:1.28rem;border:none;margin:4px 0 14px;font-weight:700;line-height:1.45;text-wrap:balance;text-align:center}
/* 개조식: □ 항목 → ○ 세부 → ※ 참고(당구장) */
.secs{margin-top:6px}
.sec{margin:16px 0}
.sec h3.sq{font-size:1rem;font-weight:700;margin:0 0 7px;line-height:1.5}
.sec h3.sq::before{content:"□";color:var(--ink);margin-right:.35em;font-weight:400}
ul.pts{list-style:none;margin:0;padding:0 0 0 1.5em}
ul.pts>li.pt{position:relative;padding-left:1.25em;margin:7px 0;font-size:.93rem;line-height:1.65}
ul.pts>li.pt::before{content:"○";position:absolute;left:0;color:var(--ink)}
.note{position:relative;margin:4px 0 4px 1.4em;padding-left:1.3em;font-size:.86rem;color:#555;line-height:1.55}
.note::before{content:"※";position:absolute;left:0;color:#8a8f96}
.sources{margin-top:30px;border-top:1px solid var(--line);padding-top:12px}
.sources>summary{cursor:pointer;font-size:.85rem;color:var(--navy);font-weight:600;
list-style:none;user-select:none;padding:2px 0}
.sources>summary::-webkit-details-marker{display:none}
.sources>summary::before{content:"▸ ";color:var(--sub)}
.sources[open]>summary::before{content:"▾ "}
.sources table{width:100%;border-collapse:collapse;margin-top:10px}
.sources th,.sources td{border-bottom:1px solid #eee;padding:6px 8px;font-size:.78rem;text-align:left;vertical-align:top}
.sources td:first-child{white-space:nowrap;color:var(--sub);width:92px}
.back{margin:20px 4px}
/* corpus */
.srcgrid{display:grid;gap:18px;margin-top:20px}
.srcblock{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 20px}
.srcblock h3{margin:0 0 10px;font-size:1rem}.srcblock .cnt{color:var(--navy);font-size:.85rem;margin-left:6px}
table.src{width:100%;border-collapse:collapse}
table.src td{padding:6px 8px;border-bottom:1px solid #f0f0f0;font-size:.85rem}
table.src td.n{text-align:right;color:var(--sub);white-space:nowrap;width:70px}
@media(max-width:640px){.doc{padding:26px 20px}.masthead .rpttitle{font-size:1.25rem}
main{margin:16px auto}}
/* ── 인쇄 / PDF 전용: 문서만 깔끔하게 한 장 ── */
@media print{
  @page{size:A4;margin:12mm 14mm}
  html,body{background:#fff}
  /* 화면 전용 요소·출처 링크는 인쇄 제외 → 본문만 한 장 */
  .top,footer,.toolbar,.back,.sources{display:none!important}
  main{margin:0;max-width:none;padding:0}
  .doc{border:none;border-radius:0;box-shadow:none;padding:0;max-width:none;color:#000}
  .masthead{border-bottom:3px double #000;padding-bottom:9px;margin-bottom:4px}
  .masthead .rpttitle{color:#000;font-size:1.32rem}
  .masthead .docmark{height:42px;margin-bottom:8px}
  .sec h3.sq::before,ul.pts>li.pt::before,.note::before{color:#000}
  table.rpthead th,table.rpthead td{border-color:#000;padding:5px 10px;font-size:.82rem}
  .secs{margin-top:4px}
  .sec{margin:11px 0}
  .sec h3.sq{font-size:.98rem;margin-bottom:5px;page-break-after:avoid}
  ul.pts>li.pt{margin:4px 0;font-size:.9rem;line-height:1.45}
  .note{margin-top:2px;font-size:.82rem}
  .sec,ul.pts>li.pt,.note{page-break-inside:avoid}
}
