:root{--ink:#17221d;--muted:#647069;--line:#dfe6e1;--paper:#fff;--wash:#f4f7f4;--green:#176b4d;--mint:#dff4e9;--amber:#b96b16;--red:#aa3b3b;--blue:#336f8d;--shadow:0 14px 40px #183b2914;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--wash)}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.boot{height:100vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.spinner{margin:auto;width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shell{min-height:100vh}.topbar{height:68px;padding:0 28px;display:flex;align-items:center;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-weight:750;letter-spacing:-.02em}.mark{width:31px;height:31px;background:var(--green);border-radius:9px;display:grid;place-items:center;color:#fff;font-size:18px}.topbar nav{display:flex;gap:5px;margin-left:40px}.navbtn{border:0;background:transparent;padding:10px 13px;border-radius:8px;color:var(--muted);font-size:14px}.navbtn.active{background:var(--mint);color:var(--green);font-weight:700}.topmeta{margin-left:auto;display:flex;gap:16px;align-items:center}.synthetic{font-size:12px;background:#fff5df;color:#8a5717;padding:6px 10px;border-radius:99px;border:1px solid #f1d59f}.main{padding:30px;max-width:1480px;margin:auto}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800;color:var(--green)}h1{font-size:30px;margin:7px 0 5px;letter-spacing:-.04em}h2{font-size:19px;margin:0}p{line-height:1.55}.muted{color:var(--muted)}.primary,.secondary,.ghost{border:0;border-radius:9px;padding:10px 15px;font-weight:700}.primary{background:var(--green);color:#fff}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{background:var(--mint);color:var(--green)}.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.grid{display:grid;gap:18px}.kpis{grid-template-columns:repeat(6,minmax(130px,1fr));margin-bottom:18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.kpi{padding:17px}.kpi .label{font-size:12px;color:var(--muted)}.kpi .value{font-size:24px;font-weight:760;margin-top:7px;letter-spacing:-.04em}.kpi .sub{font-size:11px;color:var(--green);margin-top:4px}.workspace{grid-template-columns:240px minmax(560px,1fr) 320px;height:660px}.panel{overflow:auto}.panelhead{padding:18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.panelbody{padding:14px}.variant{padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.variant strong{font-size:13px}.bar{height:5px;background:#edf1ee;border-radius:9px;margin-top:9px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}.canvas{position:relative;overflow:auto;background-color:#f8faf8;background-image:radial-gradient(#ccd8d0 1px,transparent 1px);background-size:24px 24px}.flow{min-width:1400px;min-height:630px;padding:65px 50px;display:flex;align-items:center;gap:42px;position:relative}.flow:before{content:"";position:absolute;left:95px;right:80px;top:310px;border-top:2px solid #b3c2b9}.node{width:178px;min-height:112px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px;z-index:1;box-shadow:0 6px 18px #183b2912;position:relative;flex:none}.node:after{content:"›";position:absolute;right:-29px;top:43px;width:18px;height:18px;background:#fff;border:1px solid #b3c2b9;border-radius:50%;text-align:center;line-height:15px;color:var(--green)}.node:last-child:after{display:none}.node:hover,.node.selected{border-color:var(--green);box-shadow:0 0 0 3px #176b4d1a}.node .tech{font-size:9px;color:#87928c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node .name{font-size:13px;font-weight:750;margin:7px 0}.node .stats{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.node .freq{margin-top:9px;font-size:10px;background:var(--mint);color:var(--green);display:inline-block;padding:3px 6px;border-radius:5px}.statusdot{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:#e09b36}.inspector h3{font-size:17px;margin:4px 0}.techcode{font:10px ui-monospace;color:var(--muted);word-break:break-all}.evidence{background:var(--wash);padding:10px;border-radius:8px;font-size:12px}.rec{border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:10px}.rec-top{display:flex;align-items:center;gap:8px}.rec-name{font-size:13px;font-weight:750;flex:1}.score{font-size:11px;font-weight:800;color:var(--green)}.rec p{font-size:11px;color:var(--muted);margin:7px 0}.tiny{font-size:11px;padding:6px 9px}.selectedtask{border-color:var(--green);background:#f6fcf8}.compare{grid-template-columns:1fr 1fr;margin-top:18px}.result{padding:21px}.metricrow{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.good{color:var(--green);font-weight:800}.warning{padding:12px;background:#fff4e1;border:1px solid #f0d09a;border-radius:9px;color:#795018;font-size:12px;margin-top:13px}.importbox{max-width:760px;margin:55px auto;padding:30px}.drop{border:2px dashed #b8c9bf;border-radius:14px;padding:50px;text-align:center;background:#f9fbf9}.issues{margin-top:15px}.issue{padding:10px;border-radius:8px;margin-top:7px;font-size:13px;background:#fff0f0;color:var(--red)}.semgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.semrow{padding:15px}.semrow input{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px;margin-top:8px}.toast{position:fixed;right:25px;bottom:25px;background:#183126;color:white;padding:12px 16px;border-radius:9px;box-shadow:var(--shadow);z-index:99}@media(max-width:1050px){.kpis{grid-template-columns:repeat(3,1fr)}.workspace{grid-template-columns:200px 1fr}.inspector{display:none}}@media(max-width:700px){.topbar nav{display:none}.main{padding:18px}.kpis{grid-template-columns:repeat(2,1fr)}.workspace{display:block;height:auto}.variants{display:none}.canvas{height:520px}.compare{grid-template-columns:1fr}.synthetic{display:none}}
