:root{color:#e6edf7;background:#080d17;font-family:Inter,Segoe UI,Arial,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;--surface: #101827;--surface-soft: #131e31;--line: #213046;--muted: #90a2bb;--text: #e6edf7;--blue: #45a3ff;--teal: #1dd9b7;--amber: #f3b455;--red: #fc7184}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(37,118,198,.19),transparent 31%),linear-gradient(155deg,#0a1220,#080d17 52%,#070b13)}button,input,select{font:inherit}.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(33,48,70,.72);background:#080d17eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(1560px,calc(100vw - 64px));margin:0 auto;padding:12px 0}.topbar-brand{display:flex;align-items:center;gap:12px;min-width:238px}.topbar-brand strong{color:#dce8f8;font-size:15px;font-weight:650}.topbar-brand span{border:1px solid rgba(29,217,183,.32);border-radius:999px;padding:5px 9px;background:#1dd9b71a;color:#65efd5;font-size:12px;font-weight:650}.app-nav{display:flex;justify-content:center;gap:8px}.app-nav a{border:1px solid rgba(69,163,255,.22);border-radius:999px;padding:9px 14px;color:var(--muted);font-size:13px;text-decoration:none}.app-nav a.active,.app-nav a:hover{border-color:#45a3ff80;background:#45a3ff1a;color:#c9e5ff}.topbar-token{display:grid;width:310px;gap:5px;color:var(--muted);font-size:11px;font-weight:650}.topbar-token input{height:38px;border-radius:9px;padding:8px 11px;font-size:13px}.dashboard{width:min(1560px,calc(100vw - 64px));margin:0 auto;padding:38px 0}.header{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:28px}.eyebrow{margin:0 0 12px;color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}h1{margin:0 0 9px;font-size:clamp(36px,4vw,48px);font-weight:650;letter-spacing:-.055em}.subtitle{margin:0;color:var(--muted)}.report-actions{display:flex;align-items:center;gap:20px}.timestamp{display:grid;gap:4px;text-align:right}.timestamp span,.timestamp small{color:var(--muted);font-size:12px}.timestamp strong{font-size:15px;font-weight:550}.auto-refresh{display:grid;min-width:179px;gap:8px;color:var(--muted);font-size:12px;font-weight:550}.auto-refresh select,.auto-refresh input{padding:11px 12px}.upload,.refresh{border:1px solid rgba(69,163,255,.38);border-radius:12px;padding:13px 19px;background:#45a3ff14;color:#c9e5ff;cursor:pointer;transition:background .16s ease,border-color .16s ease}.upload:hover,.refresh:hover:not(:disabled){border-color:var(--blue);background:#45a3ff26}.refresh:disabled{cursor:wait;opacity:.6}.upload input{display:none}.notify{position:fixed;right:28px;bottom:28px;z-index:10;display:flex;align-items:start;gap:18px;width:min(430px,calc(100vw - 32px));border:1px solid rgba(29,217,183,.32);border-radius:14px;padding:15px 16px;background:#121e2f;box-shadow:0 14px 38px #00000061;animation:notify-in .18s ease-out}.notify strong{display:block;color:var(--text);font-size:14px;font-weight:570}.notify p{margin:7px 0 0;color:var(--amber);font-size:13px;line-height:1.45}.notify button{border:0;padding:0;background:transparent;color:var(--muted);cursor:pointer;font-size:22px;line-height:1}@keyframes notify-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.alert{border:1px solid rgba(252,113,132,.3);border-radius:12px;margin:0 0 22px;padding:12px 16px;background:#fc718414;color:#ffc3ca}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.metric{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:18px;padding:22px 23px;background:#101827d1}.metric:after{position:absolute;inset:0 auto auto 0;width:100%;height:2px;background:#35445a;content:""}.metric.primary:after{background:var(--blue)}.metric.accent:after{background:var(--teal)}.metric.critical:after{background:var(--red)}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;margin:13px 0 6px;font-size:34px;font-weight:610;letter-spacing:-.04em}.metric small{color:#6e829e}.metric-code{font-family:SFMono-Regular,Consolas,monospace;font-size:24px!important}.content{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px}.filters,.table-panel{border:1px solid var(--line);border-radius:18px;background:#101827d6}.filters{display:flex;flex-direction:column;gap:18px;padding:22px 18px}.panel-title{display:flex;align-items:center;justify-content:space-between}h2,h3{margin:0;font-weight:570;letter-spacing:-.02em}h2{font-size:18px}h3{font-size:15px}.panel-title button{border:0;background:transparent;color:var(--blue);cursor:pointer;font-size:13px}.filters label,.sort{display:grid;gap:8px;color:var(--muted);font-size:12px;font-weight:550}input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#0b1322;color:var(--text);font-size:14px;outline:none}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 2px #45a3ff21}.distribution{border-top:1px solid var(--line);margin-top:6px;padding-top:20px}.bar-label{display:flex;justify-content:space-between;margin:17px 0 8px;color:var(--muted);font-size:13px}.bar{overflow:hidden;height:7px;border-radius:100px;background:#1a2537}.bar span{display:block;height:100%;min-width:0;border-radius:inherit}.bar .bot{background:linear-gradient(90deg,#10bdab,var(--teal))}.bar .real{background:linear-gradient(90deg,#3188de,var(--blue))}.table-panel{min-width:0}.table-header{display:flex;justify-content:space-between;gap:24px;padding:22px 24px 18px}.table-header p{margin:7px 0 0;color:var(--muted);font-size:13px}.sort{width:168px}.sort select{padding:8px 11px}.table-scroll{overflow-x:auto;border-top:1px solid var(--line)}table{width:100%;min-width:830px;border-collapse:collapse;text-align:left;font-size:14px}th{padding:14px 17px;color:#8193ac;font-size:11px;font-weight:650;letter-spacing:.1em;text-transform:uppercase}td{border-top:1px solid rgba(33,48,70,.64);padding:16px 17px;vertical-align:middle}tbody tr:hover{background:#283f5b33}.aor{max-width:260px;color:#dce8f8;font-weight:520;overflow-wrap:anywhere}.technical{color:#a8bbd4;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.badge{border-radius:100px;padding:5px 10px;font-size:12px;font-weight:570}.badge.artificial{background:#1dd9b71f;color:#5ce7ca}.badge.device{background:#45a3ff21;color:#8fcaff}.expires{display:inline-block;min-width:57px;border-radius:8px;padding:5px 8px;text-align:center;font-variant-numeric:tabular-nums}.expires.healthy{background:#1dd9b71c;color:#57dfc2}.expires.warning{background:#f3b4551f;color:#f8c97f}.expires.danger{background:#fc71841f;color:#ff96a4}.empty{padding:55px 20px;color:var(--muted);text-align:center}.logs-content{grid-template-columns:320px minmax(0,1fr)}.logs-filters{gap:15px}.filter-actions{display:grid;gap:10px}.secondary-action,.link-button{border:0;background:transparent;color:var(--blue);cursor:pointer}.secondary-action{border:1px solid rgba(69,163,255,.28);border-radius:11px;padding:11px 14px;background:#45a3ff0f}.secondary-action:disabled,.link-button:disabled{cursor:not-allowed;opacity:.45}.pagination-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.logs-workspace{display:grid;min-width:0;gap:14px;align-self:start}.logs-tabs{display:flex;width:fit-content;border:1px solid var(--line);border-radius:14px;padding:4px;background:#101827d6}.logs-tabs button{border:0;border-radius:10px;padding:10px 15px;background:transparent;color:var(--muted);cursor:pointer}.logs-tabs button.active{background:#45a3ff24;color:#c9e5ff}.logs-tabs button:disabled{cursor:not-allowed;opacity:.42}.story-panel{border:1px solid var(--line);border-radius:18px;background:#101827d6}.timeline{display:grid;gap:0;margin:0;padding:0 24px 24px;list-style:none}.timeline li{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:14px}.timeline li:before{position:absolute;top:24px;bottom:-6px;left:6px;width:1px;background:#45a3ff2e;content:""}.timeline li:last-child:before{display:none}.timeline-dot{z-index:1;width:13px;height:13px;border:2px solid var(--blue);border-radius:50%;margin-top:19px;background:#0b1322}.timeline-dot.debug{border-color:var(--muted)}.timeline-dot.info{border-color:var(--blue)}.timeline-dot.error{border-color:var(--red)}.timeline-card{border-top:1px solid rgba(33,48,70,.64);padding:16px 0}.timeline-head{display:flex;justify-content:space-between;gap:18px}.timeline-head strong{color:#dce8f8}.timeline-head span,.timeline-card p,.timeline-meta,td small{color:var(--muted)}.timeline-card p{margin:8px 0 7px}.event-tags,.timeline-meta{display:flex;flex-wrap:wrap;gap:8px}.timeline-meta{margin-top:11px;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.timeline-meta button:not(.endpoint-badge){border:0;padding:0;background:transparent;color:var(--blue);cursor:pointer;font-family:inherit}.endpoint-badge{position:relative;border:0;border-radius:999px;padding:5px 10px;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:12px;font-weight:650;cursor:pointer}.endpoint-badge.origin{background:#1dd9b724;color:#65efd5}.endpoint-badge.destination{background:#f3b45526;color:#ffd18a}.endpoint-badge:hover:not(:disabled){filter:brightness(1.14)}.endpoint-badge:before,.endpoint-badge:after{position:absolute;left:50%;z-index:40;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .14s ease,transform .14s ease}.endpoint-badge:before{bottom:calc(100% + 9px);width:max-content;max-width:320px;border:1px solid rgba(69,163,255,.28);border-radius:10px;padding:8px 10px;background:#0b1322;box-shadow:0 12px 28px #00000059;color:#dce8f8;content:attr(data-tooltip);font-family:SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:500;line-height:1.35;overflow-wrap:anywhere;white-space:normal}.endpoint-badge:after{bottom:calc(100% + 4px);width:9px;height:9px;background:#0b1322;border-right:1px solid rgba(69,163,255,.28);border-bottom:1px solid rgba(69,163,255,.28);content:"";transform:translate(-50%,4px) rotate(45deg)}.endpoint-badge:hover:not(:disabled):before,.endpoint-badge:hover:not(:disabled):after,.endpoint-badge:focus-visible:not(:disabled):before,.endpoint-badge:focus-visible:not(:disabled):after{opacity:1;transform:translate(-50%)}.endpoint-badge:hover:not(:disabled):after,.endpoint-badge:focus-visible:not(:disabled):after{transform:translate(-50%) rotate(45deg)}.endpoint-badge:disabled{cursor:not-allowed;opacity:.5}.endpoint-pair{display:flex;flex-wrap:wrap;gap:7px;color:var(--muted);font-size:12px}.timeline-detail{display:flex;justify-content:flex-end;margin-top:10px}.detail-button{border:0;border-radius:10px;padding:7px 9px;background:#45a3ff17;color:#c9e5ff;cursor:pointer;font-size:16px;line-height:1}.detail-button:hover{background:#45a3ff29}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:28px;background:#03070eb8}.detail-modal{display:flex;flex-direction:column;width:min(840px,100%);max-height:min(760px,calc(100vh - 56px));border:1px solid var(--line);border-radius:18px;background:#101827;box-shadow:0 24px 70px #0000007a;overflow:hidden}.detail-modal header{display:flex;align-items:start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:20px 22px}.detail-modal header p{margin:7px 0 0;color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.detail-modal header button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:25px;line-height:1}.detail-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding:12px 20px}.detail-tabs button{border:0;border-radius:10px;padding:9px 13px;background:transparent;color:var(--muted);cursor:pointer}.detail-tabs button.active{background:#45a3ff24;color:#c9e5ff}.detail-friendly{display:grid;gap:16px;min-height:0;padding:20px 22px;overflow:auto}.detail-group{border:1px solid rgba(33,48,70,.72);border-radius:14px;padding:15px 16px;background:#0b13228c}.detail-group h3{margin-bottom:13px;color:#dce8f8}.detail-group dl{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px 14px;margin:0}.detail-group dt{color:var(--muted);font-size:12px}.detail-group dd{margin:0;color:#dce8f8;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}.payload-toggle{border:1px solid rgba(69,163,255,.28);border-radius:10px;padding:9px 12px;background:#45a3ff14;color:#c9e5ff;cursor:pointer}.detail-modal pre,.payload-json{min-height:0;margin:0;padding:20px 22px;overflow:auto;color:#dce8f8;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}.detail-json,.detail-friendly{flex:1}.payload-json{max-height:360px;border-top:1px solid var(--line);margin-top:14px;padding:15px 0 0}.logs-table table{min-width:1060px}td strong,td small{display:block}.badge.debug{background:#90a2bb1f;color:#b8c6d8}.badge.info{background:#45a3ff21;color:#8fcaff}.badge.error{background:#fc71841f;color:#ff96a4}.badge.neutral{background:#90a2bb1a;color:#b8c6d8}@media(max-width:1100px){.topbar-inner{flex-wrap:wrap}.topbar-brand{min-width:0}.app-nav{order:3;justify-content:flex-start;width:100%}.topbar-token{width:min(360px,48vw)}.metrics{grid-template-columns:repeat(2,1fr)}.content{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.panel-title,.distribution{grid-column:1 / -1}}@media(max-width:720px){.dashboard,.topbar-inner{width:min(100vw - 32px,100%)}.dashboard{padding:25px 0}.topbar-inner{align-items:stretch;padding:12px 0}.topbar-brand{justify-content:space-between}.topbar-token{order:2;width:100%}.app-nav{order:3;width:100%}.header,.report-actions{align-items:start;flex-direction:column}.timestamp{text-align:left}.notify{right:16px;bottom:16px}.metrics,.filters{grid-template-columns:1fr}}
