:root{--serif:"Nanum Myeongjo", Georgia, "Times New Roman", "Apple SD Gothic Neo", serif;--sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--bg:#f2ede1;--card:#fbf8f0;--border:#ded4bf;--border-strong:#c7ba9e;--hairline:#e4ddcb;--text:#221d16;--muted:#6d6454;--faint:#948a76;--chip:#efe8d9;--shadow:0 1px 2px #3c301c0f;--shadow-hover:0 4px 14px #3c301c1a;--brand:#2f6b45;--brand-strong:#24583a;--worker:#3d5f8a;--error:#9b2f2f}:root[data-theme=dark]{--bg:#16130d;--card:#1e1a12;--border:#342e21;--border-strong:#4a4230;--hairline:#2b261c;--text:#eee6d4;--muted:#a99f89;--faint:#7d7562;--chip:#241f16;--shadow:0 1px 2px #0006;--shadow-hover:0 6px 18px #00000080;--brand:#6fae82;--brand-strong:#5b9a6e;--worker:#8eb0d8;--error:#d18585}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{color:var(--text);background:var(--bg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.wrap{max-width:860px;padding:max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 64px max(20px, env(safe-area-inset-left));margin:0 auto}.header{border-bottom:2px solid var(--text);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.headerRight{align-items:center;gap:8px;display:inline-flex}.brand{align-items:center;gap:13px;min-width:0;display:flex}.brandLogo{border:1px solid var(--border);background:var(--card);width:40px;height:40px;color:var(--brand);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.title{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:1.55rem;font-weight:800;line-height:1.15}.subtitle{color:var(--muted);margin:4px 0 0;font-size:.88rem}.themeSeg{border:1px solid var(--border);background:var(--card);border-radius:8px;display:inline-flex;overflow:hidden}.themeSeg button{color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;width:34px;height:34px;display:grid}.themeSeg button[aria-pressed=true]{background:var(--chip);color:var(--text)}.iconBtn{border:1px solid var(--border);background:var(--card);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;display:grid}.iconBtn:disabled{opacity:.6;cursor:default}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.meta{margin-bottom:14px}.liveTime{color:var(--muted);align-items:center;gap:8px;font-size:.82rem;display:inline-flex}.liveDot{background:var(--brand);border-radius:50%;width:7px;height:7px}.liveDot.busy{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.summaryRow{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px;display:grid}.summaryCard{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);cursor:pointer;text-align:left;border-radius:10px;min-width:0;padding:10px 8px}.summaryCard[aria-pressed=true]{border-color:var(--text);background:var(--chip)}.summaryLabel{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:.72rem;display:block;overflow:hidden}.summaryValue{font-family:var(--serif);font-size:1.25rem;font-weight:700;line-height:1;display:block}.loadingNote,.emptyNote{color:var(--muted);font-size:.92rem}.card{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);border-radius:10px;padding:16px 18px}.cardError{border-color:color-mix(in srgb, var(--error) 35%, var(--border))}.cardTitle{font-family:var(--serif);margin:0 0 6px;font-weight:700}.errText{color:var(--error);margin:0;font-size:.9rem}.serviceList{flex-direction:column;gap:12px;display:flex}.serviceCard{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);border-radius:10px;transition:box-shadow .15s;display:flex;position:relative;overflow:hidden}.serviceCard:hover{box-shadow:var(--shadow-hover)}.serviceRail{background:var(--brand);flex-shrink:0;width:4px}.serviceCard--worker .serviceRail{background:var(--worker)}.serviceBody{flex:1;min-width:0;padding:14px 40px 14px 16px}.serviceHead{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.favBtn{z-index:1;width:28px;height:28px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.favBtn:hover{color:#a76d18;background:color-mix(in srgb, #a76d18 10%, var(--card))}.favBtn--on{color:#a76d18;background:color-mix(in srgb, #a76d18 14%, var(--card))}.serviceCard--favorite{border-color:color-mix(in srgb, #a76d18 35%, var(--border))}.serviceCard--favorite .serviceRail{background:#a76d18}.serviceName{font-family:var(--serif);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:1.08rem;font-weight:700;overflow:hidden}.badge{letter-spacing:.03em;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.72rem;font-weight:600}.badge--pages{color:var(--brand-strong);background:color-mix(in srgb, var(--brand) 12%, var(--card));border-color:color-mix(in srgb, var(--brand) 30%, var(--border))}.badge--worker{color:var(--worker);background:color-mix(in srgb, var(--worker) 12%, var(--card));border-color:color-mix(in srgb, var(--worker) 30%, var(--border))}.serviceMeta{color:var(--faint);margin:0 0 10px;font-size:.78rem}.urlList{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.urlLink{color:var(--brand-strong);align-items:center;gap:6px;padding:4px 0;font-size:.9rem;text-decoration:none;display:inline-flex}.serviceCard--worker .urlLink{color:var(--worker)}.urlLink:hover{text-decoration:underline}.urlHost{word-break:break-all}.urlArrow{opacity:.7;flex-shrink:0}.mainNav{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.mainNavBtn{border:1px solid var(--border);background:var(--card);min-width:0;color:var(--muted);cursor:pointer;box-shadow:var(--shadow);border-radius:10px;flex:calc(33.333% - 6px);padding:10px 12px;font-size:.9rem;font-weight:600}.mainNavBtn[aria-pressed=true]{border-color:var(--text);color:var(--text);background:var(--chip)}.summaryCard--static{cursor:default}.summaryValue--sm{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;line-height:1.2;overflow:hidden}.analyticsControls{flex-wrap:wrap;align-items:flex-end;gap:14px 18px;margin-bottom:14px;padding:14px 16px;display:flex}.controlGroup{flex-direction:column;gap:6px;display:flex}.controlGroup--grow{flex:1;min-width:180px}.controlLabel{color:var(--muted);font-size:.78rem}.pillGroup{border:1px solid var(--border);background:var(--chip);border-radius:999px;display:inline-flex;overflow:hidden}.summaryCard--static .summaryLabel{color:var(--muted);font-size:.76rem;font-weight:600}.summaryCard--static .summaryValue{font-size:1.35rem}.pillBtn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:7px 14px;font-size:.86rem;font-weight:600}.pillBtn[aria-pressed=true]{background:var(--card);color:var(--text);box-shadow:var(--shadow);font-weight:700}.hostSelect{border:1px solid var(--border-strong);background:var(--card);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:9px 11px;font-size:.9rem;font-weight:500}.analyticsPanel{margin-bottom:14px;padding:16px 18px}.panelTitle{font-family:var(--serif);color:var(--text);margin:0 0 16px;font-size:1.08rem;font-weight:700}.subTitle{color:var(--text);letter-spacing:.02em;margin:0 0 10px;font-size:.82rem;font-weight:700}.chartWithLegend{flex-direction:column;gap:12px;display:flex}.chartWithLegend .chartScroll{min-width:0}.chartScroll--active{-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;background:color-mix(in srgb, var(--chip) 55%, var(--card));border-radius:8px;padding-bottom:4px;overflow:auto hidden}.chartScroll--active .barChart{width:max-content;min-width:100%;padding:12px 8px 4px}.barChart{background:color-mix(in srgb, var(--chip) 55%, var(--card));border-radius:8px;grid-auto-columns:minmax(32px,1fr);grid-auto-flow:column;align-items:end;gap:10px;min-height:188px;padding:12px 4px 4px;display:grid}.barCol{flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;min-width:0;height:188px;display:flex}.barStack{width:100%;max-width:40px;min-height:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border) 70%, transparent);border-radius:5px 5px 0 0;flex-direction:column;justify-content:flex-end;display:flex;overflow:hidden}.barSegment{width:100%;min-height:3px;box-shadow:0 1px 0 color-mix(in srgb, var(--card) 35%, transparent)}.chartLegend{border:1px solid var(--hairline);background:color-mix(in srgb, var(--chip) 40%, var(--card));border-radius:8px;flex-wrap:wrap;gap:8px 10px;margin:0;padding:10px 12px;list-style:none;display:flex}.chartLegend li{color:var(--text);background:var(--card);border:1px solid var(--hairline);border-radius:999px;align-items:center;gap:7px;max-width:100%;padding:4px 8px;font-size:.82rem;display:inline-flex}.legendSwatch{width:12px;height:12px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 12%, transparent);border-radius:3px;flex-shrink:0}.legendLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.barFill{background:linear-gradient(180deg, var(--brand), color-mix(in srgb, var(--brand) 70%, #1a3d28));border-radius:4px 4px 0 0;width:100%;max-width:36px;min-height:4px}.barValue{color:var(--faint);font-variant-numeric:tabular-nums;min-height:1em;font-size:.72rem}.barValue--on{color:var(--text);font-weight:600}.barLabel{color:var(--muted);text-align:center;font-size:.74rem;font-weight:500;line-height:1.2}.barChart--hourly{grid-auto-columns:minmax(22px,1fr);gap:5px}.barChart--hourly .barLabel{font-size:.68rem}.barChart--hourly .barValue{font-size:.66rem}.barChart--hourly .barStack{max-width:24px}.barChart--scroll{grid-auto-columns:52px;gap:8px}.barChart--scroll .barLabel{white-space:nowrap;font-size:.68rem}.analyticsGrid{grid-template-columns:1.2fr .8fr;gap:14px;margin-bottom:14px;display:grid}.rankList{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.rankItem{grid-template-columns:minmax(0,1.4fr) 1fr auto;align-items:center;gap:10px;padding:6px 0;font-size:.88rem;display:grid}.rankName{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.rankBarWrap{background:color-mix(in srgb, var(--chip) 80%, var(--card));border:1px solid var(--hairline);border-radius:999px;height:10px;overflow:hidden}.rankBar{background:linear-gradient(90deg, var(--brand), color-mix(in srgb, var(--brand) 75%, #1a3d28));border-radius:999px;height:100%;display:block}.rankCount{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;min-width:2.5rem;font-weight:600}.splitStats{grid-template-columns:1fr 1fr;gap:14px;display:grid}.quadStats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.statBlock{border:1px solid var(--hairline);background:color-mix(in srgb, var(--chip) 35%, var(--card));border-radius:8px;padding:12px 14px}.statList{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.statRowHead{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px;display:flex}.statName{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:500;overflow:hidden}.statCount{color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.86rem;font-weight:700}.statBarWrap{background:color-mix(in srgb, var(--chip) 70%, var(--card));border:1px solid var(--hairline);border-radius:999px;height:6px;display:block;overflow:hidden}.statBar{background:color-mix(in srgb, var(--brand) 85%, #1a3d28);border-radius:999px;height:100%;display:block}.statEmpty{margin:0;font-size:.84rem}.miniList{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.miniList li{justify-content:space-between;gap:8px;font-size:.84rem;display:flex}.miniList li span:first-child{color:var(--text)}.miniList li span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}.tableWrap{overflow-x:auto}.vitalsTable{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.84rem}.vitalsTh--host,.vitalsHost{width:128px;max-width:128px}.vitalsTable th{border-bottom:1px solid var(--hairline);background:color-mix(in srgb, var(--chip) 50%, var(--card));padding:0}.vitalsTh--right{white-space:nowrap;min-width:4.8rem}.vitalsTh--right .vitalsSortBtn{justify-content:flex-end}.vitalsSortBtn{width:100%;color:var(--text);font:inherit;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:2px;padding:10px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.vitalsSortBtn--active{color:var(--brand-strong)}.vitalsSortMark{color:var(--brand-strong);flex-shrink:0;font-size:.76rem}.vitalsTable td{font-variant-numeric:tabular-nums;color:var(--text);border-bottom:1px solid var(--hairline);padding:10px 12px;font-size:.88rem}.vitalsHost{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.vitalsNum{text-align:right;white-space:nowrap}.vitalsTable tbody tr:nth-child(2n){background:color-mix(in srgb, var(--chip) 25%, transparent)}.cardHint{color:var(--muted);margin:0 0 12px;font-size:.82rem}.dataTable{border-collapse:collapse;width:100%;font-size:.84rem}.dataTable th{text-align:left;border-bottom:1px solid var(--hairline);background:color-mix(in srgb, var(--chip) 50%, var(--card));color:var(--muted);white-space:nowrap;padding:8px 10px;font-weight:600}.dataTable td{border-bottom:1px solid var(--hairline);vertical-align:middle;padding:9px 10px}.dataTable tbody tr:nth-child(2n){background:color-mix(in srgb, var(--chip) 25%, transparent)}.dataTh--right,.dataNum{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dataHost{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.dataHost a{color:var(--text);text-decoration:none}.dataHost a:hover{text-decoration:underline}.dataNowrap{white-space:nowrap;font-variant-numeric:tabular-nums}.statusBadge{border:1px solid var(--border);background:var(--chip);color:var(--muted);text-transform:lowercase;border-radius:999px;padding:2px 8px;font-size:.74rem;font-weight:600;display:inline-block}.statusBadge--up,.statusBadge--ok{color:var(--brand-strong);border-color:color-mix(in srgb, var(--brand) 35%, var(--border));background:color-mix(in srgb, var(--brand) 12%, var(--chip))}.statusBadge--slow,.statusBadge--warn{color:#8a6a1f;background:color-mix(in srgb, #e8d48a 35%, var(--chip));border-color:#d4bc6a}.statusBadge--down,.statusBadge--bad{color:var(--error);border-color:color-mix(in srgb, var(--error) 35%, var(--border));background:color-mix(in srgb, var(--error) 10%, var(--chip))}:root[data-theme=dark] .statusBadge--slow,:root[data-theme=dark] .statusBadge--warn{color:#e8c96a}@media (width<=520px){.summaryValue{font-size:1.1rem}.summaryLabel{font-size:.68rem}.analyticsGrid,.splitStats,.quadStats{grid-template-columns:1fr}.rankItem{grid-template-columns:1fr;gap:4px}.mainNavBtn{flex-basis:calc(50% - 4px)}}
