*{box-sizing:border-box}html,body{margin:0;background:#0b1220;color:#e5e7eb;font-family:"Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif}body{min-height:100vh}.wrap{max-width:1280px;margin:auto;padding:20px}.wrap.narrow{max-width:850px}.head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.head h1{font-size:27px;margin:0}.head p{margin:5px 0 0;color:#94a3b8}.head nav{display:flex;gap:8px}.panel{background:#111827;border:1px solid #263247;border-radius:16px}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;gap:12px}.seg{display:flex;gap:4px;flex-wrap:wrap}.seg button,.btn{border:1px solid #334155;color:#dbeafe;background:#172033;border-radius:10px;padding:9px 13px;font:inherit;cursor:pointer;text-decoration:none}.seg button.active,.btn.primary{background:#2563eb;border-color:#2563eb;color:#fff}.btn.ghost:hover,.seg button:hover{background:#243047}.actions{display:flex;gap:7px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.cards article{background:#172033;border:1px solid #263247;border-radius:15px;padding:16px;min-width:0}.cards span{display:block;font-size:13px;color:#94a3b8}.cards strong{display:block;font-size:24px;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cards small{color:#93c5fd}.chartPanel{padding:14px;margin-bottom:12px}.panelTitle{display:flex;justify-content:space-between;gap:10px;padding:13px 15px;color:#e2e8f0}.panelTitle span{color:#94a3b8;font-size:13px}#chart{display:block;width:100%;height:280px;background:#0e1627;border-radius:11px}.tableWrap{overflow:auto;max-height:420px}table{border-collapse:collapse;width:100%;min-width:720px}th,td{padding:10px 12px;border-top:1px solid #263247;font-size:13px;text-align:left}th{position:sticky;top:0;background:#151f31;color:#bfdbfe}.num{text-align:right}.empty{text-align:center;color:#94a3b8;padding:35px}.status{position:fixed;right:16px;bottom:14px;background:#172033;border:1px solid #334155;padding:8px 12px;border-radius:10px;color:#cbd5e1;font-size:12px}.form{padding:18px}.form label{display:block;color:#cbd5e1;margin-bottom:14px}.form label span{float:right;color:#4ade80;font-size:12px}.form input{width:100%;margin-top:6px;padding:11px 12px;border:1px solid #334155;border-radius:10px;background:#0f172a;color:#fff;font:inherit}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice{margin:14px 0;padding:13px 15px;border-radius:12px;line-height:1.6}.notice.ok{background:#063f2c;color:#bbf7d0}.notice.warn{background:#3b2a08;color:#fde68a}code{font-family:Consolas,monospace}@media(max-width:760px){.wrap{padding:12px}.head{align-items:flex-start}.head h1{font-size:21px}.head p{font-size:12px}.head nav{flex-direction:column}.toolbar{align-items:stretch;flex-direction:column}.seg{display:grid;grid-template-columns:repeat(4,1fr)}.seg button{padding:9px 4px}.actions{display:grid;grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr 1fr}.cards article{padding:13px}.cards strong{font-size:19px}#chart{height:220px}.grid2{grid-template-columns:1fr}.status{position:static;margin-top:10px}.btn{text-align:center}}@media(max-width:420px){.cards{grid-template-columns:1fr}.head{flex-direction:column}.head nav{width:100%;flex-direction:row}.head nav .btn{flex:1}}
.grid3{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.filters label{font-size:12px;color:#aebbd0}.filters input,.filters select{width:100%;box-sizing:border-box;margin-top:6px;background:#0d1728;color:#eef5ff;border:1px solid #263853;border-radius:9px;padding:10px}@media(max-width:820px){.grid3{grid-template-columns:1fr 1fr}}@media(max-width:520px){.grid3{grid-template-columns:1fr}}

.status.error{border-color:#7f1d1d;background:#3b1115;color:#fecaca}.diagGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.diagGrid>div{background:#0f172a;border:1px solid #334155;border-radius:11px;padding:12px}.diagGrid span{display:block;color:#94a3b8;font-size:12px;margin-bottom:6px}.diagGrid strong{display:block;word-break:break-all}@media(max-width:620px){.diagGrid{grid-template-columns:1fr}}
