:root{--surface-page: #f6f7f9;--surface-raised: #ffffff;--surface-sunken: #eef0f4;--surface-inverse: #14161a;--border-subtle: #e2e5ea;--border-strong: #c9cfd8;--text-primary: #14161a;--text-secondary: #545c6a;--text-muted: #7b8494;--text-inverse: #f6f7f9;--accent: #2f5bd8;--accent-hover: #2449b4;--accent-soft: #e8edfc;--pass: #1a7f4b;--pass-soft: #e3f5eb;--warn: #9a6400;--warn-soft: #fdf1dc;--fail: #b3261e;--fail-soft: #fbe6e5;--idle: #6b7280;--idle-soft: #eceef2;--busy: #2f5bd8;--busy-soft: #e8edfc;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--shadow-sm: 0 1px 2px rgb(20 22 26 / 6%);--shadow-md: 0 4px 16px rgb(20 22 26 / 8%);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace}@media(prefers-color-scheme:dark){:root{--surface-page: #101216;--surface-raised: #191c22;--surface-sunken: #22262e;--surface-inverse: #f6f7f9;--border-subtle: #2a2f38;--border-strong: #3b414d;--text-primary: #f2f4f7;--text-secondary: #aeb6c2;--text-muted: #7f8898;--text-inverse: #14161a;--accent: #7fa0ff;--accent-hover: #9ab4ff;--accent-soft: #1c2740;--pass: #59d69b;--pass-soft: #10281d;--warn: #e2b455;--warn-soft: #2c2311;--fail: #f28b82;--fail-soft: #2e1614;--idle: #99a1ad;--idle-soft: #232830;--busy: #7fa0ff;--busy-soft: #1c2740;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow-md: 0 4px 20px rgb(0 0 0 / 45%)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.55;color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:620;letter-spacing:-.01em}h1{font-size:26px}h2{font-size:19px}h3{font-size:16px}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100%}.shell__nav{border-right:1px solid var(--border-subtle);background:var(--surface-raised);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-5);position:sticky;top:0;height:100vh;overflow-y:auto}.shell__brand{display:flex;flex-direction:column;gap:2px;padding:0 var(--space-2)}.shell__brand-name{font-weight:680;letter-spacing:-.02em;font-size:17px}.shell__brand-tag{font-size:12px;color:var(--text-muted)}.shell__links{display:flex;flex-direction:column;gap:2px}.shell__link{display:flex;flex-direction:column;gap:1px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:520;transition:background .12s ease,color .12s ease}.shell__link:hover{background:var(--surface-sunken);color:var(--text-primary);text-decoration:none}.shell__link[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.shell__link-hint{font-size:12px;font-weight:400;color:var(--text-muted)}.shell__link[aria-current=page] .shell__link-hint{color:inherit;opacity:.75}.shell__footer{margin-top:auto;font-size:12px;color:var(--text-muted);padding:0 var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.shell__user{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-3);color:var(--text-secondary);word-break:break-all}.shell__signout{align-self:flex-start;border:none;background:none;padding:0;font:inherit;font-size:12px;color:var(--accent);cursor:pointer}.shell__signout:hover{text-decoration:underline}.signin{min-height:100vh;display:grid;place-items:center;padding:var(--space-6)}.signin__card{width:min(440px,100%);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.signin__brand{font-size:13px;font-weight:640;letter-spacing:.02em;color:var(--accent);margin:0}.signin__card h1{margin:0;font-size:28px;line-height:1.2}.signin__lede{margin:0;color:var(--text-secondary);font-size:15px}.signin__error{margin:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--fail-soft);color:var(--fail);font-size:14px}.shell__main{padding:var(--space-6) var(--space-7);max-width:1180px;width:100%}@media(max-width:900px){.shell{grid-template-columns:1fr}.shell__nav{position:static;height:auto}.shell__main{padding:var(--space-5) var(--space-4)}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.page-header__text{display:flex;flex-direction:column;gap:var(--space-2);max-width:68ch}.page-header__lede{color:var(--text-secondary)}.page-header__actions{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--space-5)}.stack--tight{gap:var(--space-3)}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.row--between{justify-content:space-between}.grid{display:grid;gap:var(--space-4)}.grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card--flush{padding:0;overflow:hidden}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.card__title{display:flex;flex-direction:column;gap:2px}.card__subtitle{font-size:13px;color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.badge__dot{width:7px;height:7px;border-radius:50%;background:currentcolor;flex:none}.badge--passed{background:var(--pass-soft);color:var(--pass)}.badge--warning{background:var(--warn-soft);color:var(--warn)}.badge--failed,.badge--blocked{background:var(--fail-soft);color:var(--fail)}.badge--running{background:var(--busy-soft);color:var(--busy)}.badge--pending,.badge--skipped{background:var(--idle-soft);color:var(--idle)}.badge--running .badge__dot{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.badge--running .badge__dot{animation:none}}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 16px;border-radius:var(--radius-md);border:1px solid transparent;font:inherit;font-weight:570;font-size:14px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.button--primary{background:var(--accent);color:#fff}.button--primary:hover:not(:disabled){background:var(--accent-hover)}.button--secondary{background:var(--surface-raised);border-color:var(--border-strong);color:var(--text-primary)}.button--secondary:hover:not(:disabled){background:var(--surface-sunken)}.button--ghost{background:transparent;color:var(--text-secondary)}.button--ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}.button--danger{background:var(--fail-soft);color:var(--fail);border-color:transparent}.button--small{padding:5px 11px;font-size:13px}.button:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:13px;font-weight:600;color:var(--text-primary)}.field__hint{font-size:12px;color:var(--text-muted)}.field__error{font-size:12px;color:var(--fail)}.input,.select,.textarea{width:100%;padding:9px 11px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);font:inherit;font-size:14px}.textarea{min-height:108px;font-family:var(--font-mono);font-size:12.5px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.checkbox{display:flex;gap:var(--space-3);align-items:flex-start;cursor:pointer}.checkbox input{margin-top:3px;width:16px;height:16px;accent-color:var(--accent);flex:none}.checkbox__text{display:flex;flex-direction:column;gap:1px}.checkbox__label{font-size:14px;font-weight:520}.timeline{display:flex;flex-direction:column}.timeline__item{display:grid;grid-template-columns:24px 1fr;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle)}.timeline__item:last-child{border-bottom:none}.timeline__rail{display:flex;flex-direction:column;align-items:center;gap:4px}.timeline__marker{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;flex:none}.timeline__marker--passed{background:var(--pass)}.timeline__marker--warning{background:var(--warn)}.timeline__marker--failed,.timeline__marker--blocked{background:var(--fail)}.timeline__marker--running{background:var(--busy)}.timeline__marker--pending,.timeline__marker--skipped{background:var(--border-strong);color:var(--text-secondary)}.timeline__line{flex:1;width:2px;background:var(--border-subtle);min-height:8px}.timeline__body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.timeline__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.timeline__title{font-weight:570}.timeline__meta{font-size:12px;color:var(--text-muted);white-space:nowrap}.timeline__reason{background:var(--fail-soft);color:var(--fail);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:13px}.timeline__summary{font-size:13px;color:var(--text-secondary)}.assertions{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.assertion{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3);align-items:start;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunken);font-size:13px}.assertion__detail{display:flex;flex-direction:column;gap:2px;min-width:0}.assertion__compare{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);overflow-wrap:anywhere}.assertion__impact{color:var(--text-muted);font-size:12px}.disclosure{border-top:1px solid var(--border-subtle);padding-top:var(--space-2)}.disclosure>summary{cursor:pointer;font-size:13px;color:var(--text-secondary);font-weight:520;list-style:none}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"▸ ";color:var(--text-muted)}.disclosure[open]>summary:before{content:"▾ "}.code-block{margin:var(--space-2) 0 0;padding:var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:12px;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary)}.endpoint{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.endpoint:last-child{border-bottom:none}.endpoint:hover{background:var(--surface-sunken)}.endpoint__method{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:2px 7px;border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text-secondary);min-width:58px;text-align:center}.endpoint__body{min-width:0;display:flex;flex-direction:column;gap:1px}.endpoint__title{font-weight:540;font-size:14px}.endpoint__path{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);overflow-wrap:anywhere}.endpoint__right{display:flex;align-items:center;gap:var(--space-3)}.endpoint__latency{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);min-width:60px;text-align:right}.latency-bar{width:84px;height:5px;border-radius:999px;background:var(--surface-sunken);overflow:hidden}.latency-bar__fill{height:100%;border-radius:999px;background:var(--accent)}.latency-bar__fill--slow{background:var(--warn)}.latency-bar__fill--verySlow{background:var(--fail)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;font-weight:620;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-sunken)}.stat{display:flex;flex-direction:column;gap:2px}.stat__value{font-size:28px;font-weight:640;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat__label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.stat--passed .stat__value{color:var(--pass)}.stat--failed .stat__value{color:var(--fail)}.stat--warning .stat__value{color:var(--warn)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.gallery__item{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-raised);cursor:pointer;padding:0;text-align:left;font:inherit;color:inherit}.gallery__item:hover{border-color:var(--accent)}.gallery__image{width:100%;aspect-ratio:16 / 10;object-fit:cover;display:block;background:var(--surface-sunken)}.gallery__caption{padding:var(--space-2) var(--space-3);font-size:12px;color:var(--text-secondary)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0fc7;display:grid;place-items:center;padding:var(--space-5);z-index:40;border:none}.lightbox__image{max-width:100%;max-height:82vh;border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.lightbox__caption{color:#fff;margin-top:var(--space-3);text-align:center;font-size:14px}.logs{background:var(--surface-inverse);color:var(--text-inverse);border-radius:var(--radius-md);padding:var(--space-3);font-family:var(--font-mono);font-size:12px;line-height:1.6;max-height:380px;overflow-y:auto}.logs__line{display:flex;gap:var(--space-3);white-space:pre-wrap;overflow-wrap:anywhere}.logs__time{color:#7d8595;flex:none}.logs__line--warn{color:#f0c674}.logs__line--error{color:#f28b82}.logs__line--debug{color:#8b93a1}.transcript{display:flex;flex-direction:column;gap:var(--space-2);max-height:420px;overflow-y:auto;padding-right:var(--space-2)}.bubble{max-width:78%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:13.5px}.bubble--agent{align-self:flex-end;background:var(--accent-soft);color:var(--text-primary)}.bubble--customer{align-self:flex-start;background:var(--surface-sunken)}.bubble--system{align-self:center;background:transparent;color:var(--text-muted);font-size:12px;font-style:italic}.bubble__speaker{font-size:11px;font-weight:660;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:2px}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-5);text-align:center;color:var(--text-secondary)}.empty__title{font-weight:600;color:var(--text-primary)}.empty__body{max-width:46ch;font-size:14px}.callout{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:13.5px;border:1px solid transparent}.callout--info{background:var(--accent-soft);color:var(--text-primary)}.callout--warning{background:var(--warn-soft);color:var(--warn)}.callout--danger{background:var(--fail-soft);color:var(--fail)}.muted{color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:12.5px}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-4);overflow-x:auto}.tabs__tab{padding:var(--space-2) var(--space-3);border:none;background:none;font:inherit;font-size:14px;font-weight:540;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs__tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .72s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
