:root{--navy:#1B2A4A;--seal:#C0392B;--paper:#FCFBF8;--bg:#EDEAE3;--line:#DDD8CE;--ink:#22272E;--muted:#6B7280;--panel:#F4F1EA;--tip:#EEF3FA;--tipbar:#2C4270;--warn:#FBF0EE}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);font-family:'Pretendard','Malgun Gothic',sans-serif;color:var(--ink);font-size:15px;line-height:1.6}
.serif{font-family:'Nanum Myeongjo',serif}
.muted{color:var(--muted)}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--seal)}
.top{background:var(--navy);color:#fff;padding:14px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:4px solid var(--seal)}
.top .brand{color:#fff;font-weight:800;font-size:18px}
.inline{display:inline}
.wrap{max-width:1100px;margin:0 auto;padding:26px 24px}
.head-row{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.head-row h2{font-family:'Nanum Myeongjo',serif;color:var(--navy);margin-right:auto}
.inp,.form input,.form select,.form textarea{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:5px;font:inherit;background:#fff}
.form label{display:block;margin:12px 0;font-weight:600;color:var(--navy)}
.form label input,.form label select{margin-top:5px;font-weight:400}
.btn-pri,.btn-sm{cursor:pointer;border:1px solid var(--navy);border-radius:5px;font:inherit;font-weight:700;padding:8px 16px;background:var(--navy);color:#fff}
.btn-sm{background:#fff;color:var(--navy);padding:5px 11px;font-size:13px}
.btn-sm:hover,.btn-pri:hover{border-color:var(--seal);color:var(--seal);background:#fff}
/* ★표 레이아웃 (세션32 수리) — 상태 라벨을 한글로 바꾸자 열 폭이 모자라
   「확인 대 / 기」로 쪼개지고, .acts 의 display:flex 가 td 를 밀어 «동작» 열이 표 밖으로 삐져나갔다.
   ⛔td 에 flex 를 바로 걸지 않는다 — 셀이 아니라 «셀 안의 상자»에 건다. */
.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);table-layout:fixed}
.tbl th{background:var(--navy);color:#fff;padding:11px;text-align:left;font-size:13px}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tbody tr:nth-child(even){background:var(--panel)}
/* 열 폭 고정 — 제목만 늘어난다(나머지는 내용이 줄바꿈되지 않게 폭을 준다) */
.tbl col.c-status{width:96px}
.tbl col.c-board{width:96px}
.tbl col.c-date{width:104px}
.tbl col.c-acts{width:250px}
.tbl td.ttl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl td.date,.tbl td.board{white-space:nowrap;font-size:13px;color:var(--muted)}
.badge{display:inline-block;white-space:nowrap;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}
.badge.draft{background:#E5E7EB;color:#374151}.badge.review{background:var(--tip);color:#1E40AF}
.badge.published{background:#DCFCE7;color:#166534}.badge.archived{background:#F3F4F6;color:#6B7280}
.acts{white-space:nowrap}
.acts .btn-sm{margin-right:6px}
.acts .btn-sm:last-child{margin-right:0}
.login-bg{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:var(--paper);padding:40px;border-top:5px solid var(--seal);max-width:380px;width:90%;box-shadow:0 8px 30px rgba(27,42,74,.12)}
.login-card h1{color:var(--navy);margin-bottom:6px}
.login-card .form{margin-top:20px}
.note{font-size:12px;color:var(--muted);margin-top:18px;line-height:1.5}
.note.err{font-size:13.5px;font-weight:700;color:var(--seal)}
.block-card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:12px;margin:10px 0}
.block-card .bt{font-weight:700;color:var(--seal);font-size:13px;margin-bottom:6px}
.add-row{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.add-row button{font-size:13px}
.sum-item{display:flex;gap:8px;align-items:center;margin:5px 0}
.fixed-note{background:var(--panel);border-left:4px solid var(--navy);padding:10px;font-size:13px;color:var(--muted);margin:14px 0}

/* ===== 리더(독자) 컴포넌트 — 종이·인주 테마(표준양식 §3) ===== */
.article.paper{max-width:820px;margin:0 auto;padding:42px 46px;background:var(--paper);border:1px solid var(--line);box-shadow:0 6px 26px rgba(27,42,74,.08);font-size:16px;line-height:1.85;letter-spacing:-.01em;color:var(--ink)}
.article h1.atitle{font-family:'Nanum Myeongjo',serif;color:var(--navy);font-size:30px;font-weight:800;line-height:1.4;letter-spacing:-.02em;margin-bottom:10px}
.article .meta{color:var(--muted);font-size:13.5px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.article .sum{background:var(--panel);border-left:4px solid var(--seal);border-radius:0 8px 8px 0;padding:18px 20px;margin:0 0 30px}
.article .sum>.sh{font-family:'Nanum Myeongjo',serif;color:var(--navy);font-weight:800;font-size:16px;letter-spacing:-.01em;margin-bottom:10px}
.article .sum ul{list-style:none}
.article .sum li{position:relative;padding-left:18px;margin:7px 0;font-size:15px;line-height:1.7}
.article .sum li:before{content:"";position:absolute;left:0;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--seal)}
.article .sum li b{font-weight:800;color:var(--navy)}
.article h2.ah2{font-family:'Nanum Myeongjo',serif;color:var(--navy);font-size:23px;font-weight:800;border-left:4px solid var(--seal);padding:4px 0 4px 14px;margin:38px 0 16px;letter-spacing:-.02em;line-height:1.5}
.article h2.ah2 .num{margin-right:6px}
.article .aph{font-weight:800;color:var(--navy);font-size:16.5px;margin:22px 0 8px;line-height:1.6}
.article .aph .marker{color:var(--seal);margin-right:6px}
.article p.ap{margin:12px 0}
.article p.ap b{font-weight:800;color:var(--navy)}
.article ol.alist{margin:12px 0 12px 4px;padding-left:24px}
.article ol.alist li{margin:6px 0;line-height:1.8}
.article ol.alist li b{font-weight:800;color:var(--navy)}
.article .callout{border-radius:0 8px 8px 0;padding:14px 18px;margin:20px 0;font-size:15px;line-height:1.75}
.article .callout.tip{background:var(--tip);border-left:4px solid var(--tipbar)}
.article .callout.warn{background:var(--warn);border-left:4px solid var(--seal)}
.article .callout .ico{margin-right:6px}
.article .callout b.ttl{color:var(--navy);font-weight:800}
.article .callout b{font-weight:800;color:var(--navy)}
.article details.law{background:#fff;border:1px solid var(--line);border-radius:6px;padding:4px 16px;margin:20px 0;font-size:14.5px}
.article details.law>summary{font-weight:800;color:var(--navy);cursor:pointer;list-style:revert;padding:8px 0}
.article details.law>summary::-webkit-details-marker{color:var(--seal)}
.article details.law .txt{white-space:pre-wrap;background:var(--panel);border-left:3px solid var(--line);padding:14px 16px;margin:8px 0;border-radius:0 5px 5px 0;font-size:14px;line-height:1.85;color:var(--ink)}
.article details.law .txt b{color:var(--navy);font-weight:800;display:block;margin-bottom:6px}
.article details.law .law-note{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.65}
.article details.law .law-note a{color:var(--navy);text-decoration:underline}
.article .rec{background:var(--panel);border-left:4px solid var(--navy);border-radius:0 8px 8px 0;padding:14px 18px;margin:20px 0;font-size:15px;line-height:1.75}
.article .rec b{font-weight:800;color:var(--navy)}
.article .sign{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);display:flex;align-items:flex-start;gap:16px}
.article .sign .stamp{flex:0 0 auto;width:58px;height:58px;border-radius:50%;background:var(--seal);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Nanum Myeongjo',serif;font-weight:800;font-size:22px;box-shadow:0 2px 7px rgba(192,57,43,.35)}
.article .sign .who{font-family:'Nanum Myeongjo',serif;color:var(--navy);font-size:14px;line-height:1.85}
.article .sign .who .org{font-size:16px;font-weight:800;display:block;margin-bottom:2px}
.article .sign .who .nm{font-weight:700}
.article .sign .who a{color:var(--navy)}
.article .note{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.6;letter-spacing:0}
.article .crumb{font-size:13px;color:var(--muted);margin-bottom:14px;line-height:1.6}
.article .crumb a{color:var(--navy)}
.article .crumb span{color:var(--ink)}
@media(max-width:640px){.article.paper{padding:24px 18px}.article h1.atitle{font-size:24px}.article h2.ah2{font-size:20px}.article .sign{flex-wrap:wrap}}
