:root{--acc:#1f4e79;--bd:#dcdfe4;--mut:#6b6f78;--bg:#f5f6f8;--ink:#16181d;--bad:#cf3a3a;--good:#0a8f34}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 -apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:var(--ink);background:var(--bg)}
input,select,textarea,button{font:inherit}
input,select,textarea{border:1px solid var(--bd);padding:7px 9px;background:#fff;color:var(--ink);width:100%}
textarea{resize:vertical}
button{border:1px solid var(--bd);background:#fff;padding:7px 14px;cursor:pointer;white-space:nowrap}
button.pri{background:var(--acc);border-color:var(--acc);color:#fff}
button.sm{padding:3px 9px;font-size:12px}
.mut{color:var(--mut);font-size:12.5px}
.card{background:#fff;border:1px solid var(--bd);padding:16px 18px;margin:0 0 14px}
#login{max-width:360px;margin:90px auto}
header{display:flex;align-items:center;gap:18px;padding:12px 22px;background:#fff;border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:5}
header b{color:var(--acc);font-size:16px}
#tabs{display:flex;gap:4px}#tabs button{border:0;background:none;padding:8px 12px;color:var(--mut);font-weight:600}
#tabs button.on{color:var(--acc);box-shadow:inset 0 -2px 0 var(--acc)}
.sp{flex:1}
main{max-width:1180px;margin:0 auto;padding:18px 22px 60px}
.bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.bar label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--mut)}.bar input,.bar select{width:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
form label{display:block;font-size:12.5px;color:var(--mut)}form label input,form label select,form label textarea{margin-top:4px}
label.chk{display:flex;align-items:center;gap:6px;padding-top:22px}label.chk input{width:auto;margin:0}
.row{display:flex;gap:8px;align-items:center;margin-top:10px}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--bd);margin-bottom:14px}
th{background:#f3f4f6;font-size:12px;font-weight:700;color:#494e57;text-align:left;padding:8px 10px;border-bottom:1px solid var(--bd);white-space:nowrap}
td{padding:8px 10px;border-top:1px solid #edeef1;vertical-align:top;font-size:13px}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.t{white-space:pre-wrap;word-break:break-word}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border:1px solid var(--bd);color:var(--mut);white-space:nowrap}
.tag.build{color:#7a4bb3;border-color:#d9c8ef}.tag.note{color:#868c96}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--bd);padding:14px 16px}.kpi h3{margin:0 0 8px;font-size:15px}.kpi a{color:var(--acc);font-size:12px}
.kpi dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.kpi dt{color:var(--mut)}.kpi dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
h2{font-size:15px;margin:22px 0 8px}
.empty{color:var(--mut);text-align:center;padding:20px}
@media (max-width:700px){header{flex-wrap:wrap}main{padding:14px}.grid2{grid-template-columns:1fr}}
.bad{color:var(--bad)}
