* { box-sizing: border-box; }
body { font-family: "Pretendard", "Noto Sans KR", system-ui, sans-serif; margin: 0; background: #f5f6f8; color: #222; }
.login-box { max-width: 360px; margin: 12vh auto; background: #fff; padding: 32px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.login-box h1 { font-size: 1.15rem; margin: 0 0 8px; }
.phase-note { color: #888; font-size: .85rem; }
.login-box label { display: block; margin: 12px 0 4px; font-size: .9rem; }
.login-box input { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; }
.login-box button { width: 100%; margin-top: 16px; padding: 10px; border: 0; border-radius: 4px; background: #2c6e49; color: #fff; }
.login-box button:disabled { background: #aaa; }
.error { color: #c0392b; font-size: .9rem; }
.topbar { display: flex; gap: 16px; align-items: center; background: #2c6e49; color: #fff; padding: 12px 20px; }
.topbar span { margin-left: auto; }
.topbar form.inline { margin: 0; }
.topbar button { padding: 6px 12px; border: 0; border-radius: 4px; background: rgba(255,255,255,.2); color: #fff; cursor: pointer; }
.dashboard { max-width: 960px; margin: 24px auto; padding: 0 16px; }
.cards { display: flex; gap: 16px; margin-bottom: 24px; }
.card { flex: 1; background: #fff; border-radius: 8px; padding: 20px; text-align: center; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.card h2 { margin: 0; font-size: 2rem; color: #2c6e49; }
.dashboard table { width: 100%; border-collapse: collapse; background: #fff; }
.dashboard th, .dashboard td { padding: 8px 12px; border-bottom: 1px solid #eee; text-align: left; font-size: .9rem; }
tr.level-critical td { color: #c0392b; font-weight: 600; }
tr.level-warn td { color: #b9770e; }
.topbar a { color: #fff; text-decoration: none; }
.topbar nav { display: flex; gap: 14px; }
.topbar nav a { opacity: .85; font-size: .92rem; }
.topbar nav a:hover { opacity: 1; text-decoration: underline; }
.content { max-width: 1080px; margin: 24px auto; padding: 0 16px; }
.content h1 small { color: #888; font-weight: 400; font-size: .7em; }
.content table { width: 100%; border-collapse: collapse; background: #fff; margin: 12px 0; }
.content th, .content td { padding: 8px 12px; border-bottom: 1px solid #eee; text-align: left; font-size: .9rem; }
.content thead th { background: #f0f2f0; }
table.kv th { width: 220px; background: #f0f2f0; }
.filter-bar { display: flex; gap: 8px; margin: 12px 0; }
.filter-bar input, .filter-bar select { padding: 6px 8px; border: 1px solid #ccc; border-radius: 4px; }
.panel { background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 12px 16px; margin: 12px 0; }
.panel summary { cursor: pointer; font-weight: 600; }
.panel label { display: block; margin: 10px 0 4px; font-size: .9rem; }
.panel input[type=text], .panel input[type=password], .panel input[type=number],
.panel select, .panel textarea { width: 100%; max-width: 640px; padding: 7px; border: 1px solid #ccc; border-radius: 4px; font-family: inherit; }
.panel button, .content form button { padding: 7px 14px; border: 0; border-radius: 4px; background: #2c6e49; color: #fff; cursor: pointer; margin-top: 8px; }
button.danger { background: #c0392b; }
form.inline { display: inline; margin: 0 2px; }
form.inline button { padding: 4px 10px; font-size: .82rem; margin: 0; }
form.inline select { padding: 4px; font-size: .82rem; }
.flash { background: #e8f5ee; border: 1px solid #bfe3d0; color: #1e5c3a; padding: 8px 14px; border-radius: 4px; }
.pager { display: flex; gap: 12px; }
.tpl-preview { width: 100%; height: 420px; border: 1px solid #ddd; border-radius: 4px; background: #fff; }
.law-body { background: #fff; border: 1px solid #ddd; border-radius: 4px; padding: 16px; white-space: pre-wrap; max-height: 70vh; overflow-y: auto; font-size: .88rem; }
.content pre { background: #f7f7f7; padding: 10px; border-radius: 4px; overflow-x: auto; }
