:root{--bg: #0f1117;--bg-panel: #171a23;--bg-subtle: #1e2230;--bg-hover: #232838;--border: #262b39;--border-strong: #333a4d;--text: #e8eaf2;--text-dim: #949bb0;--text-faint: #6b7288;--accent: #7c6cf5;--accent-hover: #8f81ff;--accent-soft: rgba(124, 108, 245, .18);--fatal: #ff5c62;--error: #f0555c;--warning: #f0a92b;--info: #4c9ffe;--debug: #8b90a3;--resolved: #3fb950;--shadow-pop: 0 12px 32px rgba(0, 0, 0, .45);--radius: 12px;--radius-sm: 8px;font-family:Segoe UI,system-ui,-apple-system,Inter,sans-serif;color-scheme:dark;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}:root[data-theme=light]{--bg: #f5f6fa;--bg-panel: #ffffff;--bg-subtle: #f2f3f8;--bg-hover: #eceef5;--border: #e2e4ee;--border-strong: #cfd3e2;--text: #1b1e2b;--text-dim: #666d84;--text-faint: #8a90a4;--accent: #6151e0;--accent-hover: #5544d0;--accent-soft: rgba(97, 81, 224, .12);--error: #d93a41;--fatal: #c92a31;--warning: #b97309;--info: #1f6fd0;--debug: #6b7186;--resolved: #1f883d;--shadow-pop: 0 12px 28px rgba(23, 27, 43, .16);color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:20px;padding:0 22px;height:56px;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar .logo{font-weight:700;font-size:15px;letter-spacing:.02em;color:var(--text)}.topbar .logo span{color:var(--accent)}.topbar nav{display:flex;gap:2px;flex:1}.topbar nav a{color:var(--text-dim);padding:6px 12px;border-radius:999px;font-weight:500;transition:background .12s ease,color .12s ease}.topbar nav a:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.topbar nav a.active{color:var(--accent);background:var(--accent-soft)}.container{max-width:1180px;margin:0 auto;padding:26px 22px 64px}h1{font-size:21px;font-weight:650;letter-spacing:-.01em;margin:0 0 16px}h2{font-size:15px;font-weight:600;margin:28px 0 10px;letter-spacing:-.005em}.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.page-head h1{margin:0}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel+.panel{margin-top:14px}.panel-pad{padding:16px}.hint{color:var(--text-dim);font-size:12.5px;background:var(--bg-panel);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:8px 12px;margin:0 0 12px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;margin-bottom:14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.toolbar-search{flex:1 1 200px;display:flex;min-width:180px}.toolbar-search input{width:100%}input,select,textarea{background:var(--bg-subtle);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:0 10px;height:34px;font-size:13px;font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}select{padding-right:6px;cursor:pointer}select.strong{font-weight:600}input:hover,select:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{height:auto;accent-color:var(--accent)}input[type=datetime-local]{padding-right:4px}button,.btn{background:var(--accent);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:0 14px;height:34px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.row>button,.row>.btn,.row>.pf-badge{flex-shrink:0}button:hover,.btn:hover{background:var(--accent-hover)}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.secondary{background:var(--bg-subtle);color:var(--text);border-color:var(--border)}button.secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}button.danger{background:var(--error);border-color:transparent}button.danger:hover{background:var(--error);filter:brightness(1.12)}button:disabled{opacity:.45;cursor:default;filter:none}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border)}th{color:var(--text-faint);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:var(--bg-subtle);border-bottom-color:var(--border);white-space:nowrap}tr:last-child td{border-bottom:none}tbody tr{transition:background .1s ease}tbody tr:hover{background:var(--bg-subtle)}tbody tr.row-busy{opacity:.55}.col-narrow{width:1%;white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums}.col-actions{width:1%;white-space:nowrap;padding-left:4px}.issue-table td{vertical-align:middle}.issue-title{font-weight:600;font-size:13.5px;color:var(--text);display:block;max-width:62ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-title:hover{color:var(--accent);text-decoration:none}.issue-sub{display:flex;align-items:center;gap:8px;margin-top:3px;font-size:12px;color:var(--text-faint);min-width:0}.issue-culprit{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:44ch}.issue-culprit:before{content:"·";margin-right:8px}.level-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;border:1px solid transparent}.level-fatal{color:var(--fatal);background:color-mix(in srgb,var(--fatal) 15%,transparent);border-color:color-mix(in srgb,var(--fatal) 35%,transparent)}.level-error{color:var(--error);background:color-mix(in srgb,var(--error) 15%,transparent);border-color:color-mix(in srgb,var(--error) 32%,transparent)}.level-warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 16%,transparent);border-color:color-mix(in srgb,var(--warning) 34%,transparent)}.level-info{color:var(--info);background:color-mix(in srgb,var(--info) 15%,transparent);border-color:color-mix(in srgb,var(--info) 32%,transparent)}.level-debug{color:var(--debug);background:color-mix(in srgb,var(--debug) 16%,transparent);border-color:color-mix(in srgb,var(--debug) 34%,transparent)}.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:500;border:1px solid var(--border-strong);color:var(--text-dim);white-space:nowrap}.chip-muted{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,transparent)}.chip-pf{color:var(--resolved);border-color:color-mix(in srgb,var(--resolved) 40%,transparent)}.status-resolved{color:var(--resolved)}.status-ignored{color:var(--text-dim)}.muted{color:var(--text-dim);font-size:12px}.mono{font-family:Consolas,Cascadia Mono,Courier New,monospace;font-size:12px}.error-msg{color:var(--error);font-size:13px;background:color-mix(in srgb,var(--error) 10%,transparent);border:1px solid color-mix(in srgb,var(--error) 30%,transparent);border-radius:var(--radius-sm);padding:8px 12px}.empty{padding:40px;text-align:center;color:var(--text-dim)}.row-actions{display:flex;gap:4px;justify-content:flex-end;opacity:.5;transition:opacity .12s ease}tbody tr:hover .row-actions,.row-actions:focus-within{opacity:1}.icon-btn{background:transparent;border:1px solid transparent;color:var(--text-dim);height:28px;min-width:28px;padding:0 7px;font-size:12.5px;border-radius:var(--radius-sm)}.icon-btn:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.icon-btn.on{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,transparent)}.icon-btn.danger{background:transparent;color:var(--text-dim)}.icon-btn.danger:hover{background:color-mix(in srgb,var(--error) 16%,transparent);border-color:color-mix(in srgb,var(--error) 38%,transparent);color:var(--error);filter:none}.ms{position:relative;display:inline-flex}.ms-trigger{display:inline-flex;align-items:center;gap:6px;max-width:240px}.ms-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-caret{color:var(--text-faint);font-size:10px}.ms-icon{font-size:12px;opacity:.85}.ms-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:250px;max-width:340px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:8px}.ms-search{width:100%;margin-bottom:6px}.ms-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column}.ms-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.ms-item:hover{background:var(--bg-hover)}.ms-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-option{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--text);height:32px;padding:0 8px;font-size:13px;border-radius:var(--radius-sm);text-align:left;width:100%}.ms-option:hover{background:var(--bg-hover)}.ms-check{width:14px;color:var(--accent);font-size:12px;flex-shrink:0}.ms-empty{padding:10px 8px}.ms-foot{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.ms-foot button{height:28px;font-size:12px;padding:0 10px}.ms-abs{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.ms-abs label{display:flex;flex-direction:column;gap:4px}.stack{font-family:Consolas,Cascadia Mono,Courier New,monospace;font-size:12px;line-height:1.65}.stack .frame{padding:6px 14px;border-bottom:1px solid var(--border)}.stack .frame:last-child{border-bottom:none}.stack .frame.in-app{background:var(--accent-soft)}.stack .frame .fn{color:var(--accent);font-weight:600}.stack .frame .loc{color:var(--text-faint)}.stack .context-line{background:color-mix(in srgb,var(--error) 16%,transparent);display:block;padding:1px 8px;border-radius:4px;margin:2px 0}.stack .ctx{color:var(--text-faint);display:block;padding:0 8px;white-space:pre-wrap}.crumbs{font-size:12px}.crumbs .crumb{display:flex;gap:10px;padding:6px 14px;border-bottom:1px solid var(--border);border-left:3px solid transparent;align-items:baseline}.crumbs .crumb:last-child{border-bottom:none}.crumbs .crumb:hover{background:var(--bg-subtle)}.crumbs .crumb-icon{width:18px;text-align:center;flex-shrink:0}.crumbs .cat{color:var(--accent);min-width:130px;flex-shrink:0;font-weight:500}.crumbs .ts{color:var(--text-faint);min-width:80px;flex-shrink:0;text-align:right;font-family:Consolas,monospace;font-variant-numeric:tabular-nums}.crumbs .crumb-msg{word-break:break-word}.crumbs .crumb-error,.crumbs .crumb-fatal{border-left-color:var(--error)}.crumbs .crumb-warning{border-left-color:var(--warning)}.journey{display:flex;flex-direction:column;gap:8px}.journey-item{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.journey-item.anchor{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.journey-head{display:flex;gap:10px;align-items:center;padding:10px 14px;cursor:pointer}.journey-head:hover{background:var(--bg-subtle)}.journey-time{flex-shrink:0;font-variant-numeric:tabular-nums}.anchor-label{color:var(--accent);font-size:12px;font-weight:600}.tagchips{display:flex;flex-wrap:wrap;gap:6px}.tagchip{background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:12px}.tagchip b{color:var(--text-faint);font-weight:500}.pf-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:0 14px;height:34px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:1px solid color-mix(in srgb,var(--resolved) 45%,transparent);color:var(--resolved);background:color-mix(in srgb,var(--resolved) 10%,transparent)}.login-box{max-width:340px;margin:14vh auto;display:flex;flex-direction:column;gap:12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-pop)}.login-box input{width:100%}.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 16px;font-size:13px}.kv dt{color:var(--text-dim)}.kv dd{margin:0;word-break:break-word}.dsn-box{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;word-break:break-all}.project-settings{padding:14px 16px}.project-settings label{flex-shrink:0}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.spacer{flex:1}pre.json{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;overflow-x:auto;font-size:12px;line-height:1.6;max-height:420px}@media(max-width:720px){.container{padding:18px 14px 48px}.issue-title{max-width:40ch}.row-actions{opacity:1}}.journey-head .issue-title{flex:1;min-width:0;max-width:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px}.icon-btn-text{font-size:11px;font-weight:600;letter-spacing:.02em}.chip svg{flex-shrink:0}.toolbar-search{position:relative;align-items:center}.toolbar-search>svg{position:absolute;left:10px;color:var(--text-faint);pointer-events:none}.toolbar-search input{padding-left:32px}.ms-trigger>svg{color:var(--text-faint);flex-shrink:0}.issue-h1{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0}.issue-h1-msg{margin:5px 0 6px;color:var(--text-dim);font-size:13.5px;max-width:100ch}button.danger{background:transparent;color:var(--error);border-color:color-mix(in srgb,var(--error) 40%,transparent)}button.danger:hover{background:color-mix(in srgb,var(--error) 14%,transparent);border-color:var(--error);color:var(--error);filter:none}button.chip{height:22px;padding:0 9px;font-size:11px;background:transparent;color:var(--text-dim);border:1px solid var(--border-strong)}button.chip:hover{background:var(--bg-hover);color:var(--text);border-color:var(--accent)}.chip-tenant{max-width:150px}.chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-count{color:var(--text-faint);font-variant-numeric:tabular-nums}button.chip.chip-on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.log-table td{vertical-align:top}.log-row{cursor:pointer}.log-msg{font-family:Consolas,Cascadia Mono,Courier New,monospace;font-size:12.5px;word-break:break-word;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-detail{padding:4px 2px 8px;font-size:12.5px}.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 12px}button.chip.chip-filter{gap:6px}button.chip.chip-filter:hover{border-color:var(--error);color:var(--error)}.chip-x{font-size:14px;line-height:1;opacity:.7}.table-wrap{overflow-x:auto}.issue-table{min-width:880px}.log-table{min-width:700px}.issue-table th:first-child,.issue-table td:first-child{width:40%;max-width:0}.issue-title,.issue-culprit{max-width:100%}.col-actions{padding-right:12px}.issue-sub{flex-wrap:nowrap}.issue-sub .mono{white-space:nowrap;flex-shrink:0}.log-src{color:var(--text-faint);margin-right:8px}.volume{padding:12px 14px;margin-bottom:14px}.volume-bars{display:flex;align-items:flex-end;gap:2px;height:72px}.volume-col{flex:1;height:100%;display:flex;align-items:flex-end;min-width:3px}.volume-stack{width:100%;display:flex;flex-direction:column-reverse;border-radius:3px 3px 0 0;overflow:hidden;min-height:2px}.volume-seg{min-height:2px}.volume-seg.level-debug{background:var(--debug)}.volume-seg.level-info{background:var(--info)}.volume-seg.level-warning{background:var(--warning)}.volume-seg.level-error,.volume-seg.level-fatal{background:var(--error)}.volume-axis{display:flex;justify-content:space-between;margin-top:4px}.viewtabs{display:flex;gap:4px}.viewtabs button{padding:0 12px}.status-ok{color:var(--resolved)}.status-down{color:var(--error);font-weight:600}.tagchip .icon-btn{height:18px;min-width:18px;padding:0 4px;margin-left:4px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.kpi-value{font-size:24px;font-weight:650;letter-spacing:-.02em}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.card-title{font-weight:650;font-size:14.5px;color:var(--text)}.card-title:hover{color:var(--accent);text-decoration:none}.card-open{font-size:20px;font-weight:650;color:var(--text-faint)}.card-open.has-open{color:var(--error)}.card-sub{margin-top:-4px}.card-tenants{gap:4px}.card-links{gap:14px;font-size:12.5px}.spark{display:flex;align-items:flex-end;gap:2px;height:36px}.spark-bar{flex:1;background:var(--accent);opacity:.65;border-radius:2px 2px 0 0;min-width:2px}.empty-spark{border-bottom:1px dashed var(--border)}a.chip{text-decoration:none}a.chip:hover{border-color:var(--accent);color:var(--text);text-decoration:none}.volume-bars{justify-content:flex-start}.volume-col{max-width:26px}.spark{justify-content:flex-start}.spark-bar{max-width:14px}.panel.is-loading{opacity:.55;transition:opacity .15s ease .2s}.pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:12px 0}.pager-pos{display:inline-flex;align-items:center;gap:8px;min-width:160px;justify-content:center}.pager button[disabled]{opacity:.45;cursor:default}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--border, #444);border-top-color:var(--accent, #7c6af0);display:inline-block;animation:avs-spin .7s linear infinite}.loader-row{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px 0}@keyframes avs-spin{to{transform:rotate(360deg)}}.highlights{padding:14px 16px;margin-bottom:12px}.idbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.idchip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid var(--border-strong);border-radius:999px;font-size:13px;background:var(--bg-subtle)}.idchip-user{font-weight:600}.idchip-tenant{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.avatar{width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.hl-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 32px}@media(max-width:800px){.hl-grid{grid-template-columns:1fr}}.hl-list{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0;align-content:start}.hl-list dt{color:var(--text-faint);font-family:Consolas,Cascadia Mono,monospace;font-size:12px;padding:3px 0}.hl-list dd{margin:0;padding:3px 0;word-break:break-all}.hl-url a{color:var(--accent)}.handled-badge{display:inline-block;padding:2px 10px;border-radius:6px;font-weight:600;font-size:12px}.handled-badge.yes{background:#3fb9502e;color:var(--resolved)}.handled-badge.no{background:#f0555c2e;color:var(--error)}.exc-type{font-weight:700;font-size:16px}.exc-msg{margin:4px 0 10px;color:var(--text-dim);white-space:pre-wrap}.exc-mech{display:flex;flex-wrap:wrap;gap:8px}.kvchip{display:inline-flex;border:1px solid var(--border-strong);border-radius:6px;overflow:hidden;font-size:12px}.kvchip>span{padding:2px 8px;background:var(--bg-subtle);color:var(--text-dim)}.kvchip>b{padding:2px 8px;font-weight:600}.kvchip.handled-yes>b{background:#3fb95033;color:var(--resolved)}.kvchip.handled-no>b{background:#f0555c33;color:var(--error)}.stack .frame .frame-where{color:var(--text);margin-right:2px}.stack .frame .frame-pkg{font-size:12px;margin-top:2px}.chip-app{margin-left:8px;font-size:10px;padding:1px 6px;background:var(--accent-soft);color:var(--accent);border-radius:4px}.crumbs .crumb .crumb-clock{margin-left:auto;padding-left:12px;color:var(--text-faint);white-space:nowrap}.ms-login{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--text);font-weight:600;text-decoration:none;cursor:pointer}.ms-login:hover{background:var(--bg-hover)}.ms-login.disabled{opacity:.5;cursor:not-allowed;pointer-events:auto}.stack-form{display:grid;gap:10px;max-width:520px}.stack-form label{display:grid;gap:4px;font-size:13px;color:var(--text-dim)}.dir-picker{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.dir-list{list-style:none;margin:10px 0 0;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);max-height:320px;overflow:auto}.dir-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border)}.dir-list li:last-child{border-bottom:none}.btn-ico{display:inline-flex;align-items:center;gap:6px}.idchip svg{flex-shrink:0}
