:root{
  --ink:#1c1f26;--ink2:#2a3342;--muted:#6b7482;--line:#e3e7ed;--bg:#f4f6f9;--card:#fff;
  --red:#d7263d;--teal:#0e8c8c;--amber:#d98a00;--green:#14804a;--blue:#2f6fde;
  --okbg:#e7f5ee;--warnbg:#fff4de;--failbg:#fde8eb;--infobg:#eaf1fd;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}
.muted{color:var(--muted);font-size:12px}
.topbar{height:56px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px}
.brand .dot{width:18px;height:18px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(215,38,61,.25)}
.bname{font-weight:800;font-size:18px;letter-spacing:.2px}.sep{width:1px;height:22px;background:#3a4252}.pname{font-weight:600;color:#d8dde6}
.pill{font-size:11px;padding:3px 8px;border-radius:999px;font-weight:600}
.pill.demo{background:#3a2a10;color:#f2c46b}
.powered{display:flex;align-items:center;gap:6px;font-size:11px;color:#aeb6c3}
.powered>span:first-child{margin-right:4px}
.chip{background:#262c38;border:1px solid #394254;color:#dfe6f1;padding:3px 8px;border-radius:6px;font-size:11px}
.layout{display:grid;grid-template-columns:300px 1fr;height:calc(100% - 56px)}
.queue{background:#fff;border-right:1px solid var(--line);overflow:auto;display:flex;flex-direction:column}
.qhead{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 10px}
.count{background:var(--ink);color:#fff;border-radius:999px;font-size:12px;padding:2px 9px}
.qitem{margin:6px 12px;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.15s;background:#fff}
.qitem:hover{border-color:#c7cfda;box-shadow:0 2px 8px rgba(16,24,40,.06)}
.qitem.active{border-color:var(--ink);box-shadow:0 0 0 2px rgba(28,31,38,.08)}
.qitem .row{display:flex;justify-content:space-between;align-items:center}
.qitem .nm{font-weight:650}.qitem .id{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.qitem .al{font-size:12px;color:var(--ink2);margin-top:6px}
.qfoot{margin-top:auto;padding:14px 16px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}
.status{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.st-auto_clear{background:var(--okbg);color:var(--green)}.st-request_info{background:var(--warnbg);color:var(--amber)}
.st-analyst_review{background:var(--failbg);color:var(--red)}.st-new{background:#eef0f4;color:var(--ink2)}
main{overflow:auto;padding:20px 24px 40px}
.empty{color:var(--muted);padding:80px;text-align:center}
.casehead{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}
.who{display:flex;gap:16px;align-items:center}
.avatar{width:64px;height:64px;border-radius:50%;background:#ddd center/cover;border:3px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.15)}
.who h1{margin:0;font-size:22px}.meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;color:var(--ink2);font-size:12.5px}
.meta b{font-weight:600}
.actions{display:flex;gap:8px}
.btn{border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.primary:disabled{opacity:.6;cursor:wait}
.btn:hover{filter:brightness(.97)}
.alert{margin-top:14px;background:#fff;border:1px solid var(--line);border-left:0;border-radius:10px;padding:12px 14px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.alert .rule{background:var(--ink);color:#fff;font-weight:700;font-size:12px;padding:4px 8px;border-radius:6px}
.alert .t{font-weight:650}.alert .d{color:var(--ink2);margin-top:3px;font-size:13px;line-height:1.45}
.req{font-size:12px;color:var(--muted);text-align:right}
.pipeline{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.pipeline .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.steps{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.step{border:1px solid var(--line);border-radius:10px;padding:10px;position:relative;min-height:84px;background:#fbfcfd;transition:.2s}
.step .n{width:20px;height:20px;border-radius:50%;background:#e8ebf0;color:var(--ink2);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.step .tt{font-weight:650;font-size:12.5px;margin-top:6px}.step .sv{font-size:11px;color:var(--muted);margin-top:2px}
.step .dt{font-size:11px;color:var(--teal);margin-top:6px;font-variant-numeric:tabular-nums;min-height:14px}
.step.running{border-color:var(--blue);background:#f2f6ff}.step.running .n{background:var(--blue);color:#fff;animation:pulse 1s infinite}
.step.done{border-color:#bfe3cf;background:#f3fbf6}.step.done .n{background:var(--green);color:#fff}
.step.failed{border-color:#f3b6bf;background:#fff4f5}.step.failed .n{background:var(--red);color:#fff}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(47,111,222,.15)}}
.tabs{display:flex;gap:4px;margin-top:18px;border-bottom:1px solid var(--line)}
.tab{padding:10px 14px;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tab.active{color:var(--ink);border-color:var(--red)}
.panel{margin-top:16px}
.grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.card h3{margin:0 0 10px;font-size:14px}
.decision{display:flex;gap:14px;align-items:center}
.dbadge{font-size:15px;font-weight:800;padding:8px 14px;border-radius:10px;white-space:nowrap}
.d-auto_clear{background:var(--okbg);color:var(--green)}.d-request_info{background:var(--warnbg);color:var(--amber)}.d-analyst_review{background:var(--failbg);color:var(--red)}
.headline{font-size:16px;font-weight:650;line-height:1.35}
.kpis{display:flex;gap:18px;margin-top:10px;color:var(--ink2);font-size:12.5px}
.summary{margin-top:12px;line-height:1.55;color:var(--ink2)}
.finding{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.finding:first-child{border-top:0}
.sev{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;margin-top:1px}
.sev-positive{background:var(--green)}.sev-neutral{background:#8a94a6}.sev-concern{background:var(--red)}
.finding .ft{font-weight:650}.finding .fd{color:var(--ink2);margin-top:3px;line-height:1.45;font-size:13px}
.ev{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.evc{font-size:11px;background:#eef2f7;border:1px solid #dde3ec;padding:2px 7px;border-radius:6px;cursor:pointer;color:var(--ink2)}
.evc:hover{background:#e2e9f3}
ul.clean{margin:6px 0 0;padding-left:18px;line-height:1.6;color:var(--ink2)}
.internal{border:1px dashed var(--red);background:#fff8f9}
.internal .lab{font-size:11px;font-weight:800;color:var(--red);letter-spacing:.5px}
.phone{width:300px;margin:0 auto;background:#111;border-radius:36px;padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.screen{background:#f6f7f9;border-radius:26px;min-height:470px;overflow:hidden}
.notch{height:26px;display:flex;justify-content:center;align-items:center}.notch span{width:90px;height:18px;background:#111;border-radius:0 0 12px 12px;margin-top:-8px}
.apphdr{display:flex;align-items:center;gap:8px;padding:6px 14px 10px;border-bottom:1px solid #e6e8ec;background:#fff}
.apphdr .dot{width:14px;height:14px;border-radius:50%;background:var(--red)}
.msg{margin:14px;background:#fff;border-radius:14px;padding:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:12.5px;line-height:1.5;white-space:pre-wrap}
.msg .sb{font-weight:700;margin-bottom:6px}
.upbtn{margin:0 14px 16px;background:var(--red);color:#fff;text-align:center;padding:10px;border-radius:10px;font-weight:700;font-size:13px}
.docs{display:grid;grid-template-columns:150px 1fr 380px;gap:14px}
.thumbs{display:flex;flex-direction:column;gap:8px}
.thumb{border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:#fff}
.thumb.active{border-color:var(--red)}
.thumb img{width:100%;display:block;max-height:120px;object-fit:cover;object-position:top}
.thumb .tl{font-size:11px;padding:4px 6px;color:var(--ink2)}
.viewer{background:#e9edf2;border-radius:12px;padding:12px;overflow:auto;max-height:78vh}
.pagewrap{position:relative;margin:0 auto 12px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pagewrap img{display:block;width:100%}
.pagewrap svg{position:absolute;inset:0;width:100%;height:100%}
.poly{fill:rgba(14,140,140,.10);stroke:rgba(14,140,140,.75);stroke-width:1.5;vector-effect:non-scaling-stroke;transition:.15s}
.poly.hl{fill:rgba(215,38,61,.18);stroke:var(--red);stroke-width:2.5}
.fields{max-height:78vh;overflow:auto}
.field{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:8px 6px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}
.field:hover,.field.hl{background:#fff4f5}
.field .k{font-size:11px;color:var(--muted)}.field .v{font-weight:600;word-break:break-word}
.conf{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.bar{width:54px;height:6px;border-radius:3px;background:#e6e9ee;overflow:hidden}.bar i{display:block;height:100%;background:var(--teal)}
.bar.low i{background:var(--amber)}
table.tx{width:100%;border-collapse:collapse;font-size:12px}
table.tx th{text-align:left;color:var(--muted);font-weight:600;padding:6px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
table.tx td{padding:6px;border-bottom:1px solid #eef1f4;vertical-align:top}
table.tx td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.tx tr.hl td{background:#fff4f5}
.pos{color:var(--green)}.neg{color:var(--red)}
.checkgrp h3{margin:4px 0 8px}
.chk{display:grid;grid-template-columns:80px 1fr 240px;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:#fff;align-items:center}
.chk .s{font-size:11px;font-weight:800;text-align:center;padding:4px 0;border-radius:6px}
.s-pass{background:var(--okbg);color:var(--green)}.s-warn{background:var(--warnbg);color:var(--amber)}.s-fail{background:var(--failbg);color:var(--red)}.s-info{background:var(--infobg);color:var(--blue)}
.chk .ti{font-weight:650}.chk .ci{font-size:11px;color:var(--muted)}.chk .e{font-size:12.5px;color:var(--ink2)}
.trace .tr{display:grid;grid-template-columns:210px 1fr 70px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}
.trace .tb{height:10px;background:#eef1f5;border-radius:5px;overflow:hidden}.trace .tb i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#3cb6a5)}
.trace .sv{font-size:11px;color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.fact{background:#f7f9fb;border:1px solid var(--line);border-radius:10px;padding:10px}.fact .k{font-size:11px;color:var(--muted)}.fact .v{font-size:16px;font-weight:700;margin-top:3px}
.lightbox{position:fixed;inset:0;background:rgba(10,12,16,.82);display:flex;align-items:center;justify-content:center;z-index:20;cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox img{max-width:92vw;max-height:92vh;border-radius:8px}
.toast{position:fixed;bottom:18px;right:18px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px;font-size:13px;z-index:30}
.facegrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.facegrid img{width:100%;border-radius:10px;display:block}
.facegrid .cap{font-size:11px;color:var(--muted);margin-top:4px}
.btn.newcase{width:100%;border-style:dashed;color:var(--ink2);background:#fafbfc}
.btn.newcase:hover{border-color:var(--red);color:var(--red)}
.btn.danger{color:var(--red);border-color:#f3c2c9}
.uptag{display:inline-block;font-size:10px;font-weight:700;color:var(--blue);background:var(--infobg);padding:1px 6px;border-radius:5px;letter-spacing:.2px}
.avatar.initials{display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;font-weight:800;font-size:20px}
svg.crop{width:100%;aspect-ratio:1;border-radius:10px;display:block;background:#eee}
.modal{position:fixed;inset:0;background:rgba(10,12,16,.55);display:flex;align-items:center;justify-content:center;z-index:25}
.modal[hidden]{display:none}
.mcard{background:#fff;border-radius:14px;width:min(1040px,94vw);max-height:92vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.mhead{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}
.mhead .x{border:0;background:none;font-size:24px;cursor:pointer;color:var(--muted);line-height:1}
.mgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:16px 20px}
.mgrid h4{margin:6px 0 8px;font-size:13px}
.mgrid label{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}
.mgrid input,.mgrid select,.mgrid textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:#fff}
.mgrid input:focus,.mgrid select:focus,.mgrid textarea:focus{outline:2px solid rgba(47,111,222,.25);border-color:var(--blue)}
.mgrid .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mgrid .three{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}
.mgrid label.file{border:1px dashed #cdd4de;border-radius:10px;padding:10px 12px;color:var(--ink);font-weight:600;background:#fafbfc}
.mgrid label.file span{display:block;font-weight:400;font-size:11px;color:var(--muted);margin-top:2px}
.mgrid label.file input{border:0;padding:6px 0 0;background:none}
.note{font-size:12px;color:var(--ink2);background:var(--warnbg);border-radius:8px;padding:10px;line-height:1.45}
.mfoot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}
.mfoot .err{margin-right:auto;color:var(--red);font-size:13px}
