:root{--ink:#06150e;--ink-2:#073d28;--green:#16ad63;--green-deep:#0d7a4a;--lime:#dffc63;--lime-press:#d4f24a;--lime-soft:#cfe85a;--mint:#bdf6d5;--cream:#f8f5eb;--paper:#fffcf3;--muted:#355847;--line:#073d2824;--white:#fff;--warn:#8a5a00;--warn-bg:#fff8e8;--danger:#8b2e1f;--danger-bg:#fdecea;--ok-bg:#eef7e8;--font:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", sans-serif;--display:"Outfit", "Noto Sans SC", sans-serif;--sidebar:232px;--top:64px;--ease:cubic-bezier(.16, 1, .3, 1);--shadow:0 28px 60px #073d282e;--overlay:#06150e73}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);background:var(--cream);color:var(--ink);font-size:14px;font-weight:400;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--ink-2)}h1,h2,h3{margin:0}.tabular{font-variant-numeric:tabular-nums;font-family:var(--display)}.kicker{letter-spacing:.12em;color:var(--muted);text-transform:none;font-size:12px;font-weight:700}.mark{background:var(--lime);width:36px;height:36px;color:var(--ink);font-family:var(--display);border-radius:10px;place-items:center;font-size:18px;font-weight:800;display:grid}.cta{background:var(--lime);color:var(--ink);cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s var(--ease), opacity .2s;border:0;border-radius:12px;align-items:center;gap:8px;padding:12px 18px;font-weight:800;display:inline-flex}.cta:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 24px #073d2829}.cta:active:not(:disabled){background:var(--lime-press)}.cta.ghost{border:1.5px solid var(--line);background:0 0}.cta.danger{background:var(--danger-bg);color:var(--danger)}.cta.sm{padding:6px 12px;font-size:13px}.cta:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.login{background:radial-gradient(800px 400px at 20% 0%, #dffc6359, transparent 60%), var(--cream);place-items:center;min-height:100vh;padding:32px 16px;display:grid}.login-card{background:var(--paper);border:1px solid var(--line);width:min(920px,100%);box-shadow:var(--shadow);animation:zv-page-in .55s var(--ease);border-radius:24px;padding:36px 32px}.login-card h1{letter-spacing:-.04em;margin:8px 0;font-size:28px;font-weight:900;line-height:1.25}.login-grid{grid-template-columns:280px 1fr;gap:28px;margin-top:20px;display:grid}@media (width<=800px){.login-grid{grid-template-columns:1fr}.login-card{padding:24px 16px}}label{letter-spacing:.08em;color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}input,select,textarea{border:1.5px solid var(--line);background:var(--white);color:var(--ink);border-radius:10px;padding:10px 12px;font-weight:500}input:focus,select:focus,textarea:focus{outline:2px solid var(--lime);outline-offset:1px}.hint{color:var(--muted);font-size:13px}.dir{gap:6px;max-height:70vh;display:grid;overflow:auto}.dir-row{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:1fr 1.1fr 120px;align-items:center;gap:8px;padding:10px 12px;display:grid}.dir-row:hover,.dir-row.on{border-color:var(--line);background:#dffc6359}.dir-row small{color:var(--muted);font-weight:500}.shell{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.side{background:var(--ink);color:#e8f6ec;flex-direction:column;gap:8px;padding:18px 14px;display:flex}.side .brand{align-items:center;gap:10px;padding:6px 8px 16px;display:flex}.side .brand strong{font-family:var(--display);letter-spacing:-.03em;font-weight:800}.side nav{flex-direction:column;gap:4px;display:flex}.side .group{letter-spacing:.12em;color:#e8f6ec73;text-transform:uppercase;padding:14px 10px 6px;font-size:11px;font-weight:800}.side a,.side button.nav{color:#e8f6ec;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:10px 12px;font-weight:700;text-decoration:none}.side a:hover,.side button.nav:hover{background:#ffffff0f}.side a.on,.side button.nav.on{background:var(--lime);color:var(--ink)}.main{min-width:0}.top{height:var(--top);z-index:5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#f8f5ebeb;justify-content:space-between;align-items:center;gap:16px;padding:0 28px;display:flex;position:sticky;top:0}.page{animation:zv-page-in .55s var(--ease);padding:28px}@media (width<=720px){.shell{grid-template-columns:1fr}.side{display:none}.page,.top{padding-left:16px;padding-right:16px}}.mentor{background:var(--ink);color:#e8f6ec;border-radius:24px;grid-template-columns:1fr auto;align-items:center;gap:16px;margin-bottom:18px;padding:22px 24px;display:grid}.mentor .kicker{color:var(--lime)}.mentor h1{letter-spacing:-.04em;color:#fff;font-size:28px;font-weight:900;line-height:1.25}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:14px 0;display:grid}.card{background:var(--paper);border:1px solid var(--line);transition:transform .4s var(--ease);border-radius:22px;padding:18px 20px}.card:hover{transform:translateY(-4px)}.card h2{margin-bottom:6px;font-size:16px;font-weight:800}table{border-collapse:collapse;width:100%;font-size:13px;font-weight:500;line-height:1.45}th{text-align:left;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:12px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px}.table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:auto}.table-wrap table tr:hover{background:0 0}.tag{letter-spacing:.04em;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.tag.soft{background:var(--lime-soft);color:var(--ink)}.tag.wait{background:var(--warn-bg);color:var(--warn)}.tag.stop{background:var(--danger-bg);color:var(--danger)}.tag.done{background:var(--mint);color:var(--ink-2)}.badge-software{background:var(--ink);color:var(--lime);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800}.badge-agency{background:var(--paper);color:var(--green-deep);border:1px solid var(--green-deep);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800}.badge-fx{background:var(--mint);color:var(--ink-2);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800}.overlay{background:var(--overlay);z-index:20;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);width:min(520px,100% - 32px);box-shadow:var(--shadow);animation:zv-page-in .25s var(--ease);border-radius:24px;padding:24px}.dialog h2{margin-bottom:8px;font-size:22px;font-weight:800}.dialog .actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.toast{background:var(--ink);color:var(--lime);z-index:30;border-radius:999px;padding:12px 18px;font-weight:700;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.err{background:var(--danger-bg);color:var(--danger);border-radius:12px;margin:10px 0;padding:10px 12px}.check{gap:10px;padding:8px 0;display:flex}.check .dot{border-radius:50%;flex:none;width:18px;height:18px;margin-top:2px}.check .ok{background:var(--green)}.check .no{background:var(--danger)}.row-actions{flex-wrap:wrap;gap:8px;display:flex}@keyframes zv-page-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.card:hover,.cta:hover:not(:disabled){transform:none}}.compare{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:14px;margin:8px 0 6px;display:grid}.compare .gap-col{place-items:center;min-width:108px;display:grid}.board-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.chips{flex-wrap:wrap;gap:8px;margin:10px 0 8px;display:flex}.todo{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;border-radius:0;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;padding:12px 0;display:flex}.todo:last-child{border-bottom:0}.todo:hover strong{text-decoration:underline}@media (width<=800px){.compare{grid-template-columns:1fr}}.cta.lime{background:var(--lime);color:var(--ink)}.dialog.nod{width:min(640px,100% - 32px)}.dialog .kicker{color:var(--ink-2);margin-bottom:6px}.fact-list{margin:8px 0 0;padding-left:18px}.fact-list li{margin:4px 0}.mentor-line{color:var(--muted);margin:12px 0 0}.check .dot.soft{background:var(--lime-soft)}.desk{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}@media (width<=960px){.desk{grid-template-columns:1fr}}.desk-list{max-height:72vh;overflow:auto}.desk-list button.pick{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;width:100%;padding:12px 14px;display:block}.desk-list button.pick.on{background:#dffc6359}.balance-bar{background:var(--paper);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 16px;display:flex}.balance-bar.uneven{background:var(--danger-bg);color:var(--danger)}.line-grid{grid-template-columns:1.2fr 1.4fr .8fr .8fr auto;align-items:center;gap:8px;margin-bottom:8px;display:grid}@media (width<=800px){.line-grid{grid-template-columns:1fr 1fr}}.tabs{flex-wrap:wrap;gap:8px;margin:8px 0 14px;display:flex}.tabs button{border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-weight:700}.tabs button.on{background:var(--lime);border-color:#0000}.board-head{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.board-head .card.intercept{background:var(--danger-bg);border-color:#e2b2aa}.finding{border-bottom:1px solid var(--line);padding:14px 16px}.finding.high{background:var(--danger-bg)}.wall{gap:14px;display:grid}.wall-row{grid-template-columns:180px 1fr 1fr 1fr;align-items:stretch;gap:10px;display:grid}@media (width<=900px){.wall-row{grid-template-columns:1fr}}.wall-row h3{margin:0 0 6px;font-size:16px}
