/* 운영센터 틀(app.css = 지오다 원본, 배포 때 복사) 위에 대시보드 부품만. 색은 그 토큰(--navy 등)만 쓴다 */
.dgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-bottom:12px}.dgrid .panel{margin:0;min-width:0}
.w3{grid-column:span 3}.w4{grid-column:span 4}.w6{grid-column:span 6}.w8{grid-column:span 8}.w12{grid-column:span 12}
@media(max-width:1100px){.w3,.w4,.w6{grid-column:span 6}.w8{grid-column:span 12}}@media(max-width:700px){.w3,.w4,.w6,.w8{grid-column:span 12}}
.sec{font-size:13px;color:var(--soft);font-weight:500;margin:22px 0 10px;letter-spacing:.02em}.sec:first-child{margin-top:4px}
.stat{margin:0 0 12px}.stat .sp{display:block;width:100%;height:26px;margin-top:6px}.stat .d{display:flex;gap:6px;flex-wrap:wrap}
.up{color:var(--ok);font-weight:500}.down{color:var(--warn);font-weight:500}
.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{font-size:11px;fill:var(--muted);font-family:"Noto Sans KR",sans-serif}
.tip{position:absolute;pointer-events:none;background:var(--navy-ink);color:#fff;font-size:12px;padding:5px 9px;border-radius:6px;white-space:nowrap;transform:translate(-50%,-115%);opacity:0}
.hb{display:grid;grid-template-columns:minmax(64px,auto) 1fr auto;gap:7px 10px;align-items:center;font-size:12.5px}
.hb .k{color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.hb .t{height:10px;background:var(--wash);border-radius:0 4px 4px 0;position:relative}.hb .f{position:absolute;left:0;top:0;bottom:0;background:var(--navy);border-radius:0 4px 4px 0}
.hb .n{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.hb .n small{color:var(--muted);margin-left:4px}
.list .li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);align-items:flex-start}.list .li:last-child{border-bottom:0}.list .x{flex:1;min-width:0}.list .meta{color:var(--muted);font-size:12px;white-space:nowrap}.list .x .meta{white-space:normal;margin-top:2px}
.split{display:flex;height:12px;border-radius:4px;overflow:hidden;gap:2px;margin:10px 0 8px}.split div:nth-child(1){background:var(--navy)}.split div:nth-child(2){background:#7C93B8}.split div:nth-child(3){background:var(--line2)}
.lg{font-size:12px;color:var(--soft);display:flex;gap:14px;flex-wrap:wrap}.lg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.big{font-size:24px;font-weight:500;color:var(--navy);font-variant-numeric:tabular-nums}
.empty{color:var(--muted);font-size:12.5px;padding:6px 0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.login-box{width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px}.login-box h1{margin-bottom:6px}
.login-box label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--soft)}.login-box input{padding:9px 10px;border:1px solid var(--line2);border-radius:6px;font:inherit}
.login-msg{background:var(--warn-soft);color:var(--warn);padding:8px 10px;border-radius:6px;font-size:12.5px;margin:0}
