:root{--bg:#f3f4f6;--panel:#fff;--fg:#1d1d1d;--muted:#6c6f73;--line:#e3e5e8;--primary:#1976d2;--primary-soft:#e3f0fb;--green:#21ba45;--green-soft:#e6f7eb;--chip-queue:#fdd835;--chip-queue-fg:#5a4500;--chip-user:#bbdefb;--chip-user-fg:#0d47a1;--chip-dept:#ef9a9a;--chip-dept-fg:#7f1d1d;--good:#21ba45;--warn:#f2a900;--bad:#e53935;--row-hover:#f5f9ff;--font:"Roboto",system-ui,sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--font);margin:0}.app{min-height:100%;display:flex}.rail{background:var(--panel);border-right:1px solid var(--line);width:56px;top:env(safe-area-inset-top,0px);flex-direction:column;flex:none;align-items:center;gap:6px;height:100vh;padding-top:14px;display:flex;position:sticky}.rail .logo{background:#e0e0e0;border-radius:6px;width:40px;height:32px;margin-bottom:10px}.rail button{all:unset;cursor:pointer;color:#5f6368;border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.rail button:hover{background:#f0f2f5}.rail button.on{background:var(--primary-soft);color:var(--primary)}.rail button:focus-visible{outline:2px solid var(--primary)}.rail svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);height:56px;top:env(safe-area-inset-top,0px);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding-inline:16px;display:flex;position:sticky}.topbar .menu{color:#5f6368;font-size:22px}.topbar .center{align-items:center;gap:12px;display:flex}.chip-top{background:var(--primary-soft);color:var(--primary);border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:flex}.credits{color:#777;background:#ececec;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500}.user{align-items:center;gap:8px;font-size:13px;line-height:1.1;display:flex}.user .av{background:#e0e0e0;border-radius:50%;width:34px;height:34px}.user small{color:var(--muted);display:block}main{flex-direction:column;gap:14px;padding-block:16px;padding-inline:16px;display:flex}h1{color:#333;text-wrap:balance;margin:0;font-size:20px;font-weight:500}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:500}.sub{color:var(--muted);font-size:13px}.view[hidden]{display:none}.card{background:var(--panel);border-radius:10px;padding:16px;box-shadow:0 1px 3px #00000014}.filters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}label.f{display:block;position:relative}label.f span{color:var(--muted);pointer-events:none;font-size:10.5px;position:absolute;top:5px;left:11px}label.f input,label.f select{padding:19px 10px 6px}input,select,textarea{font:inherit;color:var(--fg);background:#fff;border:1px solid #c9ccd1;border-radius:6px;width:100%;min-width:0;padding:9px 11px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}textarea{resize:vertical;font-size:13px;line-height:1.5}.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.green{background:var(--green);border-color:var(--green);color:#fff}.btn.outline{color:var(--primary);border-color:var(--primary);background:#fff}.btn.sm{padding:5px 10px;font-size:12px}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.btn[disabled]{opacity:.6;cursor:default}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{border:1px solid var(--line);cursor:pointer;font:inherit;color:#444;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;display:inline-flex}.tab.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:500}.tab .n{background:var(--primary);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 7px;font-size:11px}.tab:focus-visible{outline:2px solid var(--primary)}.stats{flex-wrap:wrap;gap:12px;display:flex}.stat{background:var(--panel);border-radius:10px;min-width:120px;padding:10px 14px;box-shadow:0 1px 3px #00000014}.stat b{font-variant-numeric:tabular-nums;font-size:20px;font-weight:500;display:block}.stat span{color:var(--muted);font-size:12px}.tablewrap{background:var(--panel);border-radius:10px;overflow-x:auto;box-shadow:0 1px 3px #00000014}table{border-collapse:collapse;width:100%;min-width:1500px;font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap;padding:9px 12px}th{background:var(--panel);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;font-size:12px;font-weight:500;position:sticky;top:0}th .dir{color:var(--primary)}td.num{font-variant-numeric:tabular-nums}td.wrap{white-space:normal;color:#444;min-width:280px;max-width:400px}tbody tr{cursor:pointer}tbody tr:hover{background:var(--row-hover)}tbody tr.sel{background:var(--primary-soft)}.tag{border-radius:4px;padding:2px 8px;font-size:11.5px;font-weight:500;line-height:1.5;display:inline-block}.tag.q{background:var(--chip-queue);color:var(--chip-queue-fg)}.tag.u{background:var(--chip-user);color:var(--chip-user-fg)}.tag.d{background:var(--chip-dept);color:var(--chip-dept-fg)}.tag.m{color:#455a64;background:#eceff1}.pill{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.pill.good{background:var(--green-soft);color:#157a2e}.pill.ok{color:#0d47a1;background:#e3f0fb}.pill.warn{color:#8a5a00;background:#fff3cd}.pill.bad{color:#b71c1c;background:#fdecea}.pill.na{color:#607d8b;background:#eceff1}.pill.ia{color:#5e35b1;background:#ede7f6}.score{font-variant-numeric:tabular-nums;font-weight:700}.score.good{color:var(--good)}.score.warn{color:var(--warn)}.score.bad{color:var(--bad)}.mismatch{color:var(--bad);font-weight:500}.spin{border:2px solid #cfd8dc;border-top-color:var(--primary);vertical-align:-2px;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite sp;display:inline-block}@keyframes sp{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.drawer{top:env(safe-area-inset-top,0px);background:var(--bg);z-index:10;flex-direction:column;width:min(600px,100%);display:flex;position:fixed;bottom:0;right:0;box-shadow:-8px 0 30px #00000026}.drawer[hidden]{display:none}.drawer header{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.drawer .body{flex-direction:column;gap:14px;padding:14px 16px;display:flex;overflow:auto}.kv{grid-template-columns:150px 1fr;gap:6px 10px;margin:0;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{font-variant-numeric:tabular-nums;margin:0}.chat{background:#e5ddd5;border-radius:8px;flex-direction:column;gap:6px;padding:12px;display:flex}.msg{white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:8px;max-width:85%;padding:7px 10px;font-size:13px;box-shadow:0 1px 1px #00000014}.msg.me{background:#dcf8c6;align-self:flex-end}.msg.bot{opacity:.8;font-style:italic}.msg time{color:#777;text-align:right;margin-top:3px;font-size:11px;font-style:normal;display:block}.checks{flex-direction:column;gap:5px;font-size:13px;display:flex}.checks span.ok:before{content:"✓ ";color:var(--good);font-weight:700}.checks span.no:before{content:"✗ ";color:var(--bad);font-weight:700}.grid2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.list li{border:1px solid var(--line);border-radius:8px;grid-template-columns:52px 1fr auto;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:grid}.list li code{color:var(--muted);font-variant-numeric:tabular-nums;font-family:inherit}.addrow{grid-template-columns:70px 1fr auto;gap:6px;margin-top:10px;display:grid}.note{color:var(--muted);font-size:12px}pre{white-space:pre-wrap;background:#f7f8fa;border-radius:8px;margin:0;padding:12px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.menu-wrap{position:relative}.dropdown{background:var(--panel);z-index:6;border-radius:8px;flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 14px #0000002e}.dropdown[hidden]{display:none}.dropdown button{all:unset;cursor:pointer;border-radius:6px;padding:8px 10px;font-size:13px}.dropdown button:hover{background:var(--row-hover)}.dropdown button small{color:var(--muted);font-size:11px;display:block}.toast{bottom:calc(16px + env(safe-area-inset-bottom,0px));color:#fff;z-index:20;background:#323232;border-radius:6px;padding:10px 16px;font-size:13px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 3px 10px #0000004d}.toast[hidden]{display:none}@media (width<=760px){.rail,.topbar .center{display:none}.kv{grid-template-columns:1fr}.mobile-nav{display:flex!important}}.mobile-nav{flex-wrap:wrap;gap:6px;display:none}#app{height:100%}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{flex-direction:column;gap:12px;width:min(380px,100%);display:flex}.login .err{color:var(--bad);margin:0;font-size:13px}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.empty{color:var(--muted)}tr.loading td{opacity:.55}.msg.note{background:#fff8e1;border:1px dashed #f2a900;align-self:center;max-width:95%;font-style:italic}tbody tr:not(.expanded) td{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}tbody tr:not(.expanded) td.wrap{white-space:nowrap;min-width:220px;max-width:320px}tbody tr:not(.expanded) td.trunc{max-width:240px}tbody tr.expanded td.wrap,tbody tr.expanded td.trunc{white-space:normal}tbody tr.expanded{background:#fafcff}tbody tr td .btn.sm{padding-block:2px}
