.dash{--blue:#1677ff;--blue-soft:#e6f0ff;--blue-deep:#0958d9;--bg:#f5f6f8;--card:#fff;--line:#eceef1;--text:#1f2329;--text-2:#61656c;--text-3:#9aa0a8;--green:#22a06b;--green-soft:#e7f6ee;--red:#e5484d;--red-soft:#fdecec;--amber:#e0a915;--amber-soft:#fbf3dc;--violet:#7c5cff;--violet-soft:#efeaff;--radius:12px;--shadow:0 1px 2px #1018280a, 0 1px 3px #1018280f;color:var(--text);font-size:14px;line-height:1.5}.dash *{box-sizing:border-box}.dash .topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;align-items:center;gap:16px;height:60px;padding:0 28px;display:flex;position:sticky;top:0}.dash .topbar h1{letter-spacing:-.3px;margin:0;font-size:17px;font-weight:700}.dash .topbar .sub{color:var(--text-3);margin-top:1px;font-size:12.5px}.dash .spacer{flex:1}.dash .seg{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:3px;display:flex}.dash .seg button{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 13px;font-size:12.5px;font-weight:600}.dash .seg button.on{color:var(--blue);box-shadow:var(--shadow);background:#fff}.dash .icon-btn{border:1px solid var(--line);cursor:pointer;width:36px;height:36px;color:var(--text-2);background:#fff;border-radius:9px;justify-content:center;align-items:center;display:flex;position:relative}.dash .icon-btn .dot{background:var(--red);border:2px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:9px}.dash .content{padding:24px 28px 40px}.dash .updated{color:var(--text-3);align-items:center;gap:6px;margin-bottom:16px;font-size:12px;display:flex}.dash .live{background:var(--green);width:7px;height:7px;box-shadow:0 0 0 3px var(--green-soft);border-radius:50%}.dash .kpis{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;display:grid}.dash .kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px;position:relative;overflow:hidden}.dash .kpi .top{justify-content:space-between;align-items:center;display:flex}.dash .kpi .label{color:var(--text-2);font-size:13px;font-weight:600}.dash .kpi .ic{border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.dash .kpi .val{letter-spacing:-1px;margin:10px 0 2px;font-size:30px;font-weight:800}.dash .kpi .val small{color:var(--text-3);margin-left:3px;font-size:15px;font-weight:600}.dash .kpi .meta{color:var(--text-3);align-items:center;gap:8px;font-size:12px;display:flex}.dash .chip{border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700}.dash .chip.up{background:var(--green-soft);color:var(--green)}.dash .chip.down{background:var(--red-soft);color:var(--red)}.dash .kpi .foot-link{color:var(--blue);cursor:pointer;margin-top:10px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.dash .ic.blue{background:var(--blue-soft);color:var(--blue)}.dash .ic.violet{background:var(--violet-soft);color:var(--violet)}.dash .ic.green{background:var(--green-soft);color:var(--green)}.dash .ic.red{background:var(--red-soft);color:var(--red)}.dash .daybars{align-items:flex-end;gap:5px;margin-top:8px;display:flex}.dash .daybars .db{text-align:center;flex:1}.dash .daybars .bar{background:var(--blue);opacity:.85;border-radius:4px}.dash .daybars .t{color:var(--text-3);margin-top:4px;font-size:10px}.dash .row{grid-template-columns:1.7fr 1fr;gap:16px;margin-bottom:16px;display:grid}.dash .row2{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.dash .panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.dash .panel .ph{justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.dash .panel .ph h3{margin:0;font-size:14.5px;font-weight:700}.dash .panel .ph .hint{color:var(--text-3);font-size:12px}.dash .panel .pb{padding:4px 18px 18px}.dash .legend{color:var(--text-2);gap:14px;font-size:12px;display:flex}.dash .legend i{vertical-align:middle;border-radius:3px;width:9px;height:9px;margin-right:5px;display:inline-block}.dash .donut-wrap{align-items:center;gap:18px;padding:8px 0 4px;display:flex}.dash .donut-center{position:relative}.dash .donut-center .cval{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dash .donut-center .cval b{letter-spacing:-1px;font-size:26px;font-weight:800}.dash .donut-center .cval span{color:var(--text-3);font-size:11px}.dash .dstat{flex:1}.dash .dstat .li{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;padding:7px 0;font-size:13px;display:flex}.dash .dstat .li:last-child{border-bottom:0}.dash .dstat .li .k{color:var(--text-2);align-items:center;gap:7px;display:flex}.dash .dstat .li .v{font-weight:700}.dash .sw{border-radius:3px;width:9px;height:9px;display:inline-block}.dash table{border-collapse:collapse;width:100%}.dash th{color:var(--text-3);text-align:left;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.3px;padding:8px 10px;font-size:11.5px;font-weight:700}.dash td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px;font-size:13px}.dash tr:last-child td{border-bottom:0}.dash .badge-s{border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700}.dash .b-fail{background:var(--red-soft);color:var(--red)}.dash .b-pend{background:var(--amber-soft);color:#a9790a}.dash .b-apple{color:#333;background:#f0f0f2}.dash .b-google{color:var(--green);background:#e7f6ee}.dash .mono{color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.dash .rowlink{color:var(--blue);cursor:pointer;font-size:12.5px;font-weight:600;text-decoration:none}.dash .empty-lock{text-align:center;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;padding:26px 16px;display:flex}.dash .empty-lock .lk{opacity:.5;margin-bottom:8px;font-size:24px}.dash .empty-lock b{color:var(--text-2);font-size:13px;font-weight:600}.dash .empty-lock small{margin-top:3px;font-size:12px}.dash .future{border-radius:var(--radius);background:repeating-linear-gradient(135deg,#fafbfc,#fafbfc 12px,#f4f6f8 12px 24px);border:1px dashed #d7dbe0}.dash .future .fh{align-items:center;gap:9px;padding:16px 18px 6px;display:flex}.dash .future .fh h3{color:var(--text-2);margin:0;font-size:14px;font-weight:700}.dash .fpill{color:#8a6d0a;background:var(--amber-soft);border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700}.dash .future .fg{grid-template-columns:repeat(3,1fr);gap:14px;padding:8px 18px 20px;display:grid}.dash .future .fc{border:1px solid var(--line);background:#ffffffb3;border-radius:10px;padding:16px}.dash .future .fc .fl{color:var(--text-2);margin-bottom:6px;font-size:12.5px;font-weight:600}.dash .future .fc .fv{color:var(--text-3);letter-spacing:-.5px;font-size:22px;font-weight:800}.dash .future .fc .fn{color:var(--text-3);margin-top:5px;font-size:11px}.dash .soon-head{align-items:center;gap:6px;display:inline-flex}.dash .soon-body{position:relative}.dash .soon-body .soon-inner{filter:grayscale();opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.dash .soon-body .soon-mask{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dash .soon-body .soon-mask span{color:#8a6d0a;background:var(--amber-soft);border:1px solid #f0e0a8;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700}@media (width<=1080px){.dash .kpis{grid-template-columns:repeat(2,1fr)}.dash .row,.dash .row2,.dash .future .fg{grid-template-columns:1fr}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif}
