:root{--bg:#f4f7fb;--panel:#fff;--ink:#172033;--muted:#6e7a90;--line:#e3e9f2;--nav:#101a2c;--accent:#2563eb;--accent2:#0ea5e9;--success:#11865b;--warn:#b76a00;--danger:#c43c3c;--shadow:0 10px 30px rgba(20,34,56,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0f1b30,#111827);color:#fff;padding:28px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent2),var(--accent));font-weight:900;font-size:21px;box-shadow:0 8px 22px rgba(37,99,235,.35)}.brand strong,.brand span{display:block}.brand strong{font-size:17px}.brand span{font-size:12px;color:#9fb0c9;letter-spacing:.08em}.sidebar nav{margin-top:42px;display:grid;gap:7px}.sidebar nav a{color:#aebbd0;text-decoration:none;padding:13px 15px;border-radius:11px;font-weight:650}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.09);color:#fff}.side-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:18px}.side-footer span{font-size:12px;color:#91a0b7;word-break:break-all}.ghost{border:0;background:transparent;color:#d4deec;padding:10px 0;cursor:pointer}.main{padding:28px 34px 54px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px}.topbar h1{font-size:28px;margin:0 0 7px}.topbar p{margin:0;color:var(--muted)}.status-pill{background:#e9f9f2;color:#0d7a53;border:1px solid #c8efdf;padding:9px 12px;border-radius:999px;font-size:12px;font-weight:800}.status-pill span{display:inline-block;width:8px;height:8px;border-radius:50%;background:#16a56f;margin-right:7px}.grid{display:grid;gap:18px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.metric,.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.metric{padding:22px}.metric span{display:block;color:var(--muted);font-size:13px;font-weight:700}.metric strong{display:block;font-size:27px;margin:10px 0 6px}.metric small{color:#8d98aa}.metric.accent{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border:0}.metric.accent span,.metric.accent small{color:#dce8ff}.panel{padding:22px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-head h2{margin:0 0 5px;font-size:18px}.panel-head p{margin:0;color:var(--muted);font-size:13px}.count{font-weight:800;color:var(--accent);background:#edf4ff;padding:8px 11px;border-radius:999px}.money-list,.check-list{display:grid;gap:2px}.money-list>div,.check-list>div{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.money-list>div:last-child,.check-list>div:last-child{border:0}.money-list span,.check-list span{color:var(--muted)}.check-list div:before{content:"";width:9px;height:9px;border-radius:50%;margin-right:10px}.check-list div span{margin-right:auto}.check-list .ok:before{background:var(--success)}.check-list .warn:before{background:#f59e0b}.check-list .danger:before{background:var(--danger)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;font-size:13px}th{background:#f7f9fc;color:#59667b;font-size:12px;text-transform:none}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}.truncate{max-width:320px;overflow:hidden;text-overflow:ellipsis}.money{font-weight:800;color:#1749b5}.text-link{color:var(--accent);text-decoration:none;font-weight:750}.empty{text-align:center;color:var(--muted);padding:38px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.success{background:#e6f7ef;color:#08724b}.badge.muted{background:#eef1f5;color:#6d7788}.definition{margin:0}.definition div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.definition div:last-child{border:0}.definition dt{color:var(--muted)}.definition dd{margin:0;font-weight:800}.scope-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.scope{padding:15px;border:1px solid var(--line);border-radius:12px;display:flex;justify-content:space-between}.scope span{font-size:11px;font-weight:800}.scope.done{background:#ecf9f3;border-color:#c8ebdd}.scope.done span{color:var(--success)}.scope.next{background:#edf4ff;border-color:#d4e3ff}.scope.next span{color:var(--accent)}.scope.later{background:#f7f8fa}.scope.later span{color:var(--muted)}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#fff}.login-visual{background:radial-gradient(circle at 20% 10%,rgba(14,165,233,.25),transparent 30%),linear-gradient(140deg,#0c1628,#14233e 58%,#113b66);color:#fff;display:flex;align-items:center;padding:70px}.visual-content{max-width:650px}.brand.large .brand-mark{width:52px;height:52px;font-size:27px}.brand.large strong{font-size:22px}.visual-content h1{font-size:42px;line-height:1.25;margin:60px 0 20px}.visual-content>p{color:#b9c8dc;line-height:1.8;font-size:16px}.security-note{display:inline-block;margin-top:28px;padding:13px 16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);border-radius:12px;color:#d8e6f8;font-size:13px}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%)}.eyebrow{font-size:12px;font-weight:900;color:var(--accent);letter-spacing:.12em}.login-card h2{font-size:30px;margin:12px 0 8px}.login-card>p{color:var(--muted);margin:0 0 28px}.login-card label{display:block;font-size:13px;font-weight:750;margin:17px 0}.login-card input{display:block;width:100%;margin-top:8px;border:1px solid #d6deea;border-radius:12px;padding:14px 15px;outline:none}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(37,99,235,.1)}.primary{border:0;border-radius:12px;padding:14px 18px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-weight:850;cursor:pointer;box-shadow:0 10px 22px rgba(37,99,235,.23)}.full{width:100%;margin-top:8px}.login-card small{display:block;text-align:center;color:#8b96a8;margin-top:20px}.alert{padding:12px 14px;border-radius:10px;font-size:13px}.alert.error{background:#fff0f0;color:#a82a2a;border:1px solid #f4cccc}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.scope-grid{grid-template-columns:1fr 1fr}}@media(max-width:780px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:18px}.sidebar nav{margin-top:20px;grid-template-columns:repeat(4,1fr);overflow:auto}.side-footer{display:none}.main{padding:22px 16px}.topbar{display:block}.status-pill{display:inline-block;margin-top:15px}.metrics{grid-template-columns:1fr 1fr}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100vh}.scope-grid{grid-template-columns:1fr}}@media(max-width:520px){.metrics{grid-template-columns:1fr}.sidebar nav{grid-template-columns:1fr 1fr}.topbar h1{font-size:24px}}
.row-link{color:var(--ink);text-decoration:none}.row-link:hover{color:var(--accent);text-decoration:underline}.badge.warning{background:#fff5df;color:#9a5b00}.badge.danger{background:#fff0f0;color:#ad2f2f}.detail-metrics{margin-bottom:18px}.compact-note{display:grid;grid-template-columns:max-content 1fr max-content 1fr;gap:10px 16px;align-items:center;font-size:13px}.compact-note strong{color:var(--muted)}.compact-note span{overflow-wrap:anywhere}@media(max-width:780px){.compact-note{grid-template-columns:1fr}}
.check-link{display:flex;align-items:center;gap:10px;padding:12px 10px;margin:0 -10px;border-bottom:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;transition:.18s ease}.check-link:hover{background:#f5f8fd;transform:translateX(2px)}.check-link:before{content:"";width:9px;height:9px;border-radius:50%;flex:0 0 auto}.check-link.ok:before{background:var(--success)}.check-link.warn:before{background:#f59e0b}.check-link>span{margin-right:auto;color:var(--muted);display:grid;gap:3px}.check-link>span b{font-size:14px;color:var(--ink)}.check-link small{font-size:11px;color:#8a96a8}.check-link strong{font-size:15px}.check-link i{font-style:normal;color:#8a96a8;font-size:23px;line-height:1}.filter-panel{padding:18px 22px}.month-filter{display:flex;align-items:center;justify-content:space-between;gap:18px}.month-filter>div{display:grid;gap:4px}.month-filter label{font-weight:850}.month-filter small{color:var(--muted)}.month-filter select{min-width:180px;border:1px solid #d6deea;border-radius:11px;padding:11px 13px;background:#fff;color:var(--ink);font-weight:750}.primary.compact{padding:10px 14px}.insurance-metrics{margin-bottom:18px}.metric.warning-card{background:#fff7e8;border-color:#f4d79e}.metric.warning-card strong{color:#a76000}.metric.success-card{background:#edf9f3;border-color:#c6eadb}.metric.success-card strong{color:var(--success)}.compact-list>div{padding:11px 0}.coverage-panel{position:relative;overflow:hidden}.coverage-panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.coverage-ok:before{background:var(--success)}.coverage-warn:before{background:#f59e0b}.coverage-message{margin:15px 0 0;padding:12px 14px;border-radius:10px;background:#f6f8fb;color:#667389;font-size:12px;line-height:1.65}.badge.info{background:#e9f4ff;color:#1267a6}.badge.warning{background:#fff5df;color:#9a5b00}.badge.danger{background:#fff0f0;color:#ad2f2f}.insurance-table{min-width:980px}.result-row.warning{background:#fffcf5}.result-row.danger{background:#fff8f8}.legend-note{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:16px;padding:14px;border-radius:12px;background:#f7f9fc;color:#6b778b;font-size:12px}.legend-note strong{color:var(--ink)}.legend-note span:before{content:"•";margin-right:7px;color:#8fa0b8}@media(max-width:780px){.month-filter{align-items:stretch;flex-direction:column}.month-filter select{width:100%}.insurance-summary{grid-template-columns:1fr}}
