:root{color-scheme:light;--bg:oklch(98.4% 0.003 247.9);--panel:oklch(100% 0 0);--panel-2:oklch(96.9% 0.006 255.5);--border:oklch(92.7% 0.007 260.7);--text:oklch(21.0% 0.034 263.4);--muted:oklch(54.4% 0.035 265.1);--accent:oklch(50.9% 0.195 260.9);--ok:oklch(51.0% 0.122 156.6);--warn:oklch(53.9% 0.156 43.0);--danger:oklch(50.0% 0.182 29.5);--accent-weak:oklch(96.7% 0.016 266.3);--on-accent:oklch(100% 0 0);--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-display:clamp(25px,1.4vw + 18px,32px);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--dur-micro:120ms;--dur-short:220ms;--qr-paper:oklch(100% 0 0);--radius:10px;--radius-input:8px;--radius-chip:7px;--shadow:0 1px 2px oklch(21% 0.034 263.4/0.06),0 1px 3px oklch(21% 0.034 263.4/0.04);--shadow-pop:0 8px 24px oklch(21% 0.034 263.4/0.18);--chart-requests:#175cd3;--chart-bytes:#7839ee;--chart-hit:#027a48;--chart-miss:#b54708;--chart-bypass:#667085;--chart-s2xx:#027a48;--chart-s3xx:#175cd3;--chart-s4xx:#b54708;--chart-s5xx:#b42318;--chart-latency:#c11574;--chart-c1:#175cd3;--chart-c2:#027a48;--chart-c3:#b54708;--chart-c4:#b42318;--chart-c5:#6941c6;--chart-c6:#0e7090;--chart-c7:#c11574;--chart-c8:#667085;--chart-c9:#3538cd;--chart-c10:#854a0e;--chart-c11:#087443;--chart-c12:#a15c07}:root[data-theme=dark]{color-scheme:dark;--bg:oklch(18.8% 0.013 248.5);--panel:oklch(22.4% 0.018 255.7);--panel-2:oklch(25.0% 0.022 257.3);--border:oklch(30.3% 0.028 259.1);--text:oklch(93.5% 0.010 252.8);--muted:oklch(67.6% 0.032 257.8);--accent:oklch(68.8% 0.167 255.8);--ok:oklch(69.5% 0.181 145.6);--warn:oklch(72.0% 0.140 79.9);--danger:oklch(66.5% 0.205 27.0);--accent-weak:oklch(26.0% 0.046 259.1);--on-accent:oklch(18.8% 0.013 248.5);--shadow:0 1px 2px oklch(0% 0 0/0.4),0 1px 3px oklch(0% 0 0/0.3);--shadow-pop:0 8px 24px oklch(0% 0 0/0.5);--chart-requests:#4d9bff;--chart-bytes:#a78bfa;--chart-hit:#3fb950;--chart-miss:#d29922;--chart-bypass:#8b98ab;--chart-s2xx:#3fb950;--chart-s3xx:#4d9bff;--chart-s4xx:#d29922;--chart-s5xx:#f85149;--chart-latency:#f472b6;--chart-c1:#4d9bff;--chart-c2:#3fb950;--chart-c3:#d29922;--chart-c4:#f85149;--chart-c5:#a78bfa;--chart-c6:#22b8cf;--chart-c7:#f472b6;--chart-c8:#8b98ab;--chart-c9:#818cf8;--chart-c10:#e3a008;--chart-c11:#34d399;--chart-c12:#fbbf24}*{box-sizing:border-box}body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:var(--text-md);line-height:1.5}body,html{overflow-x:clip}.authcard h1,.truncate,h1,h2,h3{overflow-wrap:anywhere;min-width:0}.app{max-width:1600px;margin-inline:auto;padding-block:var(--space-sm);padding-inline:max(var(--space-sm),env(safe-area-inset-left))}header.top{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;-webkit-margin-after:var(--space-sm);margin-block-end:var(--space-sm)}header.top h1{font-size:var(--text-lg);font-weight:650;margin:0;letter-spacing:-.01em;white-space:nowrap}header.top .sub{color:var(--muted);font-size:var(--text-xs)}.controls{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.combo{position:relative;min-width:min(320px,100%)}.combo input,.field{width:100%;padding:var(--space-xs) 11px;border-radius:var(--radius-input);border:1px solid var(--border);background:var(--panel);color:var(--text);font-family:inherit;font-size:var(--text-lg);transition:border-color var(--dur-micro) var(--ease-out)}.combo input:focus,.field:focus{outline:2px solid var(--accent);outline-offset:-1px}.combo input:hover:not(:disabled),.field:hover:not(:disabled){border-color:var(--muted)}.combo input:disabled,.field:disabled{opacity:.55;cursor:not-allowed;background:var(--panel-2)}.combo ul{position:absolute;z-index:40;top:105%;inset-inline:0;max-height:340px;overflow:auto;margin:0;padding:var(--space-2xs);list-style:none;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-input);box-shadow:var(--shadow-pop)}.combo li{padding:7px 9px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;gap:var(--space-sm);font-size:var(--text-sm)}.combo li:hover,.combo li[aria-selected=true]{background:var(--panel-2)}.combo li .meta{color:var(--muted);font-size:var(--text-2xs);white-space:nowrap}.presets{display:flex;gap:6px;flex-wrap:wrap}.presets button{padding:7px 11px;border-radius:var(--radius-chip);border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font-size:var(--text-xs);font-family:inherit;white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.presets button:hover{border-color:var(--accent)}.presets button:active{transform:translateY(1px)}.presets button:disabled{opacity:.55;cursor:not-allowed}.presets button[data-active=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.tabs{display:flex;gap:var(--space-3xs);margin-block:var(--space-md) var(--space-sm);border-bottom:1px solid var(--border);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:0 0 auto;white-space:nowrap;padding:9px var(--space-sm);background:none;cursor:pointer;color:var(--muted);font-size:var(--text-sm);font-family:inherit;border:none;border-bottom:2px solid transparent;-webkit-margin-after:-1px;margin-block-end:-1px;transition:color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.tabs button:hover{color:var(--text)}.tabs button:active{transform:translateY(1px)}.tabs button:disabled{opacity:.55;cursor:not-allowed}.tabs button[data-active=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.grid{display:grid;grid-gap:var(--space-sm);gap:var(--space-sm)}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm);box-shadow:var(--shadow)}.card h3{margin:0 0 var(--space-xs);font-size:var(--text-xs);font-weight:600}.card h3,.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.stat .label{font-size:var(--text-2xs);-webkit-margin-after:6px;margin-block-end:6px}.stat .value{font-size:clamp(16px,5.2vw,var(--text-xl));font-weight:650;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow-wrap:break-word}.stat .hint{font-size:var(--text-2xs);color:var(--muted);-webkit-margin-before:var(--space-2xs);margin-block-start:var(--space-2xs)}.stat .value.ok{color:var(--ok)}.stat .value.warn{color:var(--warn)}.stat .value.danger{color:var(--danger)}.stat[data-lead]{background:var(--panel-2);grid-column:span 2}.stat[data-lead] .value{font-size:var(--text-display)}.truncate{overflow-wrap:normal}.stat[data-lead] .label{color:var(--text)}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}td,th{text-align:start;padding:7px 9px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;position:-webkit-sticky;position:sticky;top:0;background:var(--panel)}td.num,th.num{text-align:end;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tbody tr:hover{background:var(--panel-2)}.scroll{overflow:auto;max-height:70svh;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;background:linear-gradient(to left,var(--panel),transparent) 100% /28px 100% no-repeat local,radial-gradient(farthest-side at 100% 50%,oklch(21% .034 263.4/.18),transparent) 100% /14px 100% no-repeat}.scroll.pin tbody td:first-child,.scroll.pin thead th:first-child{position:-webkit-sticky;position:sticky;inset-inline-start:0;background:var(--panel)}.scroll.pin thead th:first-child{z-index:3}.scroll.pin tbody td:first-child{z-index:1}.mono,code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:var(--text-xs)}.truncate{max-width:min(460px,45vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice{padding:9px var(--space-sm);border-radius:var(--radius-input);font-size:var(--text-xs);border:1px solid var(--border);background:var(--panel-2);-webkit-margin-after:var(--space-sm);margin-block-end:var(--space-sm)}.notice.warn{border-color:var(--warn);color:var(--warn)}.notice.danger{border-color:var(--danger);color:var(--danger)}.badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:var(--text-2xs);font-weight:600;border:1px solid var(--border)}.badge.hit{color:var(--ok);border-color:var(--ok)}.badge.miss{color:var(--warn);border-color:var(--warn)}.badge.bypass{color:var(--muted)}.badge.s2{color:var(--ok);border-color:var(--ok)}.badge.s3{color:var(--accent);border-color:var(--accent)}.badge.s4{color:var(--warn);border-color:var(--warn)}.badge.s5{color:var(--danger);border-color:var(--danger)}.chart{width:100%;height:260px}.empty{padding:var(--space-lg);text-align:center;font-size:var(--text-sm)}.empty,.spinner{color:var(--muted)}.spinner{font-size:var(--text-xs)}.row{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.csvlink{padding:5px var(--space-xs);border-radius:var(--radius-chip);border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;font-size:var(--text-2xs);text-decoration:none;white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.csvlink:hover{border-color:var(--accent);color:var(--accent)}.heat{border-collapse:separate;border-spacing:var(--space-3xs);font-size:var(--text-2xs)}.heat td.cell{width:26px;height:22px;border-radius:3px;text-align:center;cursor:pointer}.heat th{position:static;background:none;padding:var(--space-3xs) 6px}.heat td.rowlab{color:var(--muted);-webkit-padding-end:var(--space-xs);padding-inline-end:var(--space-xs);white-space:nowrap}.heatlegend{display:flex;gap:var(--space-2xs);align-items:center;font-size:var(--text-2xs);color:var(--muted)}.heatlegend i{width:20px;height:12px;border-radius:2px;display:inline-block}.authpage{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:var(--space-sm)}.authcard{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-md)}.authcard h1{font-size:var(--text-xl);margin:0 0 var(--space-2xs)}.authcard .sub{color:var(--muted);font-size:var(--text-xs);margin:0 0 var(--space-md)}.formrow{-webkit-margin-after:var(--space-sm);margin-block-end:var(--space-sm)}.formrow label{display:block;font-size:var(--text-xs);color:var(--muted);-webkit-margin-after:5px;margin-block-end:5px}.btn{padding:9px var(--space-sm);border-radius:var(--radius-input);border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:var(--text-sm);font-family:inherit;cursor:pointer;white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{width:100%;background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);color:var(--on-accent)}.btn.danger{color:var(--danger);border-color:var(--border)}.btn.danger:hover:not(:disabled){border-color:var(--danger)}.err{background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-input)}.err,.ok{padding:9px 11px;font-size:var(--text-xs);-webkit-margin-after:var(--space-sm);margin-block-end:var(--space-sm)}.ok{background:color-mix(in srgb,var(--ok) 12%,transparent);border:1px solid var(--ok);border-radius:var(--radius-input)}.ok,.t-ok{color:var(--ok)}.t-warn{color:var(--warn)}.t-err{color:var(--danger)}.divider,.t-mut{color:var(--muted)}.divider{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-2xs);margin-block:var(--space-md)}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.otp{font-size:var(--text-display);letter-spacing:.32em;text-align:center}.codes,.otp{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.codes{font-size:var(--text-sm);background:var(--panel-2);border:1px solid var(--border);padding:var(--space-sm);display:grid;grid-template-columns:1fr;grid-gap:7px;gap:7px;margin-block:var(--space-sm)}.codes,.qr{border-radius:var(--radius-input)}.qr{display:block;margin:0 auto var(--space-sm);background:var(--qr-paper);padding:var(--space-xs)}.secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;color:var(--muted);text-align:center;-webkit-margin-after:var(--space-sm);margin-block-end:var(--space-sm)}.secret,.who{font-size:var(--text-xs)}.who{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;position:relative}.who .name{color:var(--text)}.who .role{color:var(--muted)}.whotoggle{display:inline-flex;align-items:center;min-height:44px;background:none;border:none;color:var(--text);cursor:pointer;font-family:inherit;font-size:var(--text-xs);max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whoitems{display:none}.whoitems[data-open=true]{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3xs);position:absolute;z-index:50;inset-inline-end:0;top:calc(100% + var(--space-2xs));min-width:210px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop)}.whoitems[data-open=true] .name,.whoitems[data-open=true] .role{padding:var(--space-2xs) 9px}.whoitems[data-open=true] .btn{-webkit-margin-before:var(--space-2xs);margin-block-start:var(--space-2xs)}.navlink{color:var(--muted);font-size:var(--text-xs);text-decoration:none;padding:5px 9px;border-radius:var(--radius-chip);border:1px solid transparent;white-space:nowrap;transition:color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.navlink:hover{color:var(--accent);border-color:var(--border)}.secttl{font-size:var(--text-xs);color:var(--muted);margin-block:var(--space-md) var(--space-xs);letter-spacing:.04em;font-weight:600}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--panel-2)}tr.clickable:active td{background:var(--accent-weak)}.linkish{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline}.btn:focus-visible,.csvlink:focus-visible,.linkish:focus-visible,.navlink:focus-visible,.presets button:focus-visible,.tabs button:focus-visible,.whotoggle:focus-visible,tr.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px;transition:none}@media (min-width:40rem){.app{padding-block:var(--space-lg);padding-inline:max(var(--space-lg),env(safe-area-inset-left))}header.top{gap:var(--space-md);-webkit-margin-after:var(--space-md);margin-block-end:var(--space-md)}header.top h1{font-size:var(--text-xl)}.combo input,.field{font-size:var(--text-sm)}.grid{gap:var(--space-md)}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.card{padding:var(--space-md)}.chart{height:300px}.scroll{max-height:560px}.codes{grid-template-columns:1fr 1fr}.authcard,.authpage{padding:var(--space-lg)}.whotoggle{display:none}.whoitems{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}}@media (hover:none),(max-width:40rem){.btn,.combo input,.field,.presets button,.tabs button{min-height:44px}.csvlink,.navlink{min-height:44px;display:inline-flex;align-items:center}input[type=checkbox]{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}