:root{--chrome: #262b30;--chrome-dark: #15181c;--canvas: #f1f0ed;--panel: #ffffff;--line: #d5d2cb;--line-soft: #e9e6e0;--ink: #1b1a18;--ink-2: #524f4a;--ink-3: #85817a;--accent: #a35c07;--ok: #35682f;--warn: #8a5a04;--bad: #96261f;--info: #2a5470;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans: "Segoe UI", Roboto, -apple-system, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font:13px/1.45 var(--sans)}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}.signin{min-height:100%;display:grid;place-items:center}.signin-card{width:440px;background:var(--panel);border:1px solid var(--line)}.signin-head{background:var(--chrome);color:#fff;padding:16px 18px;border-bottom:3px solid var(--accent)}.signin-head h1{margin:0;font-size:17px;font-weight:600}.signin-head p{margin:3px 0 0;font-size:11px;opacity:.8}.signin-body{padding:18px}.signin-body label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-3);margin:12px 0 4px}.signin-body select,.signin-body input{width:100%;padding:7px 8px;border:1px solid var(--line);background:#fff;font:13px var(--sans)}.signin-note{font-size:11px;color:var(--ink-3);margin-top:14px;line-height:1.5}.shell{display:grid;grid-template-rows:auto auto 1fr;height:100%}.topbar{background:var(--chrome);color:#fff;display:flex;align-items:center;gap:14px;padding:0 14px;height:46px}.brand{font-weight:600;font-size:15px}.brand small{display:block;font-weight:400;font-size:10px;opacity:.7;margin-top:-2px}.topbar .spacer{flex:1}.clockchip{font-size:11px;background:#ffffff1f;padding:3px 9px;font-family:var(--mono)}.who{text-align:right;font-size:11px;line-height:1.3}.who b{display:block;font-size:12px;font-weight:600}.who span{opacity:.8}.signout{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;padding:4px 9px;font-size:11px;cursor:pointer}.navbar{background:var(--chrome-dark);display:flex;padding:0 8px}.navbar a{color:#ffffffb8;padding:7px 13px;font-size:12px;border-bottom:3px solid transparent}.navbar a:hover{color:#fff;text-decoration:none}.navbar a.on{color:#fff;border-bottom-color:var(--accent);background:#ffffff0f}.navbar .count{font-size:10px;background:#fff3;padding:1px 5px;margin-left:5px}.navbar .count.bad{background:#a8322a}.strip{background:#fdf6df;border-bottom:1px solid #e6d9a8;color:#6b5615;font-size:11px;padding:4px 14px}.main{overflow:auto;padding:14px}.panel{background:var(--panel);border:1px solid var(--line);margin-bottom:14px}.panel>header{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:#faf9f7}.panel>header h2{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--ink-2)}.panel>header .note{font-size:11px;color:var(--ink-3)}.panel>header .right{margin-left:auto;display:flex;gap:8px;align-items:center}.panel .body{padding:12px}table.grid{width:100%;border-collapse:collapse;font-size:12px}table.grid th{text-align:left;font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);padding:6px 8px;border-bottom:1px solid var(--line);background:#faf9f7;position:sticky;top:0;white-space:nowrap}table.grid td{padding:5px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}table.grid tr:hover td{background:#fbf9f5}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}table.grid td.ref{font-family:var(--mono);font-size:11.5px;white-space:nowrap}table.grid tr.struck td{color:var(--ink-3);text-decoration:line-through}.zencol{background:#fbf8f3}.scroll{max-height:62vh;overflow:auto}.chip{display:inline-block;font-size:10.5px;padding:1px 6px;border:1px solid var(--line);background:#fff;white-space:nowrap}.chip.ok{color:var(--ok);border-color:#b4cdb0;background:#f3f8f2}.chip.warn{color:var(--warn);border-color:#e0c894;background:#fdf7ea}.chip.bad{color:var(--bad);border-color:#dfb2ae;background:#fdf2f1}.chip.info{color:var(--info);border-color:#b2c6d3;background:#f2f6f9}.chip.mono{font-family:var(--mono)}.chip.pending{color:var(--ink-3)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.dot.run{background:var(--accent);animation:pulse 1.1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.tat{font-family:var(--mono);font-size:11.5px;white-space:nowrap;padding:1px 6px;border:1px solid var(--line);background:#fff}.tat.ok{color:var(--ok);border-color:#b4cdb0;background:#f3f8f2}.tat.risk{color:var(--warn);border-color:#e0c894;background:#fdf7ea}.tat.breach{color:#fff;background:var(--bad);border-color:var(--bad);font-weight:600}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}input[type=text],input[type=password],input[type=number],select,textarea{padding:5px 7px;border:1px solid var(--line);background:#fff;font:12px var(--sans)}textarea{width:100%;resize:vertical}.btn{background:var(--chrome);color:#fff;border:1px solid var(--chrome-dark);padding:5px 12px;font-size:12px;cursor:pointer}.btn:hover{background:var(--chrome-dark)}.btn.ghost{background:#fff;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{background:#f2f0ec}.btn:disabled{opacity:.45;cursor:not-allowed}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.fields .f{border-bottom:1px solid var(--line-soft);padding:6px 10px 6px 0}.fields .f .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3)}.fields .f .v{font-size:13px}.fields .f .v.mono{font-family:var(--mono);font-size:12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line)}.stats .s{background:#fff;padding:10px 12px}.stats .s .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3)}.stats .s .v{font-size:20px;font-variant-numeric:tabular-nums;margin-top:2px}.stats .s.alarm .v{color:var(--bad)}.tabs{display:flex;border-bottom:1px solid var(--line);background:#faf9f7}.tabs button{background:transparent;border:none;border-bottom:3px solid transparent;padding:8px 14px;font-size:12px;cursor:pointer;color:var(--ink-2)}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.reader{display:grid;grid-template-columns:240px 1fr;min-height:420px}.reader .rail{border-right:1px solid var(--line);overflow:auto;max-height:62vh}.reader .rail button{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line-soft);padding:7px 10px;cursor:pointer;font:11.5px var(--sans)}.reader .rail button:hover{background:#f7f4ef}.reader .rail button.on{background:#f6ecdd;border-left:3px solid var(--accent)}.reader .rail .t{font-weight:600;font-size:11px}.reader .rail .d{color:var(--ink-3);font-size:10.5px}.reader pre{margin:0;padding:14px;font:12px/1.5 var(--mono);white-space:pre-wrap;overflow:auto;max-height:62vh}.zpanel{border:1px solid var(--line)}.zpanel .head{background:#f6ecdd;border-bottom:1px solid var(--line);padding:8px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.zpanel .body{padding:12px}.finding{border:1px solid var(--line-soft);border-left:3px solid var(--accent);padding:8px 10px;margin-bottom:8px;background:#fdfcfa}.finding.technical{border-left-color:#96261f}.finding .h{display:flex;gap:8px;align-items:center;margin-bottom:4px;flex-wrap:wrap}.finding .txt{font-size:12.5px}.finding .ev{font-size:11px;color:var(--ink-3);margin-top:5px;font-family:var(--mono)}.panelist{border-bottom:1px solid var(--line-soft);padding:5px 0;font-size:12px}.panelist b{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);display:block}.hint{color:var(--ink-3);font-size:11.5px}.err{color:var(--bad);font-size:12px;border:1px solid #dfb2ae;background:#fdf2f1;padding:7px 10px}.mono{font-family:var(--mono)}.zp-overlay{position:fixed;right:22px;bottom:22px;z-index:60;width:420px;max-width:calc(100vw - 32px)}.zp-card{background:var(--panel);border:1px solid var(--line);box-shadow:0 10px 30px #00000038;overflow:hidden;display:flex;flex-direction:column;max-height:min(72vh,640px)}.zp-head{display:flex;align-items:center;gap:9px;padding:12px 14px;background:var(--chrome);color:#fff;flex:none}.zp-head b{font-size:12.5px;font-weight:600}.zp-mark{font:700 10px var(--sans);letter-spacing:.5px;text-transform:uppercase;background:#ffffff24;border-radius:999px;padding:3px 9px}.zp-x{margin-left:auto;background:none;border:none;color:#fff;opacity:.8;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.zp-x:hover{opacity:1}.zp-list{padding:4px 0;overflow:auto;max-height:220px}.zp-item{display:flex;align-items:center;gap:9px;padding:8px 14px;border-bottom:1px solid var(--line-soft);font-size:12px}.zp-item .hint{margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.zp-actions{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);flex:none}.zp-body{overflow:auto;padding:4px 14px 10px}.zp-status{display:flex;align-items:center;gap:7px;padding:10px 0}.zp-run-progress{padding:8px 20px 2px}.zp-progress-label{display:flex;justify-content:space-between;margin-bottom:6px;color:var(--ink-2);font-size:11px}.zp-progress-label b{color:var(--accent);font-weight:700}.zp-progress-track{height:6px;overflow:hidden;background:var(--line-soft);border-radius:999px}.zp-progress-fill{height:100%;background:var(--accent);border-radius:inherit;transition:width .3s ease}.zp-progress-track.active{background:linear-gradient(90deg,var(--line-soft) 0%,var(--accent) 45%,var(--line-soft) 90%);background-size:220% 100%;animation:zp-progress-slide 1.4s linear infinite}@keyframes zp-progress-slide{to{background-position:-220% 0}}.zp-run{border-top:1px solid var(--line-soft);padding:12px 0}.zp-run:first-child{border-top:none}.zp-run-head{width:100%;display:flex;align-items:center;gap:8px;margin:0;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;flex-wrap:wrap}.zp-run-head:hover b{color:var(--accent)}.zp-chevron{width:12px;color:var(--accent);font-size:15px;line-height:1}.zp-agent{border:1px solid var(--line);border-left:3px solid var(--accent);padding:10px 12px;margin-bottom:8px;background:#fdfcfa}.zp-agent .h{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}.zp-agent .txt{font-size:12px;line-height:1.5;color:var(--ink-2)}.zp-findings{margin-top:8px}
