:root{--p:#6d4ae8;--p2:#5b3dd1;--ink:#14112b;--mut:#5b5775;--line:#e4e0f5;--bg:#f5f3ff;--card:#fff;--side:#fff}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:14.5px;line-height:1.5}a{color:var(--p2);text-decoration:none}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}.app{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--side);color:#4b4763;border-right:1px solid var(--line);flex-direction:column;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0;overflow:auto}.brand{color:inherit;align-items:center;gap:12px;padding:2px 8px 16px;display:flex}.brand img{width:auto;height:50px;display:block}.brand small{letter-spacing:.14em;text-transform:uppercase;color:#7a7596;border-left:1px solid var(--line);padding-left:12px;font-size:11px;font-weight:700;line-height:1.3}.brand-card{background:#fff;border-radius:14px;align-self:flex-start;align-items:center;gap:14px;padding:10px 16px;display:inline-flex}.brand-card img{width:auto;height:48px}.brand-card small{letter-spacing:.14em;text-transform:uppercase;color:#7a7596;border-left:1px solid var(--line);padding-left:14px;font-size:11px;font-weight:700}.side nav{flex:1}.side h6{letter-spacing:.16em;text-transform:uppercase;color:#8a85a8;margin:18px 10px 6px;font-size:10.5px;font-weight:700}.side nav a{color:#4b4763;border-radius:10px;align-items:center;gap:11px;padding:9px 11px;font-weight:500;transition:background .2s,color .2s;display:flex}.side nav a svg{flex:none;width:18px;height:18px}.side nav a:hover{color:var(--ink);background:#f4f1ff}.side nav a.on{color:var(--p2);background:#efe9ff;font-weight:600}.side-foot{border-top:1px solid var(--line);padding:12px 10px 4px}.side-foot a{color:#7a7596;font-size:13px}.side-foot a:hover{color:var(--p2)}.main{min-width:0}.top{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f5f3ffe0;align-items:center;gap:14px;padding:12px 28px;display:flex;position:sticky;top:0}.gsearch{border:1px solid var(--line);background:#fff;border-radius:10px;outline:none;flex:1;max-width:460px;padding:10px 14px}.gsearch:focus,.search:focus{border-color:var(--p);box-shadow:0 0 0 3px #6d4ae826}.me{align-items:center;gap:10px;margin-left:auto;display:flex}.me small{color:var(--mut);font-size:11.5px;line-height:1.1;display:block}.av{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.burger{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;padding:7px 11px;font-size:18px;display:none}.page{max-width:1500px;padding:28px}.ph{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.ph h1{letter-spacing:-.025em;font-size:26px;font-weight:800}.ph p{color:var(--mut);margin-top:3px}.btn{background:var(--p);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 18px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s}.btn:hover{background:var(--p2);transform:translateY(-2px);box-shadow:0 10px 22px -10px #6d4ae8b3}.btn.o{color:var(--ink);border:1px solid var(--line);background:#fff}.btn.o:hover{border-color:var(--p);box-shadow:none;background:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 24px -16px #14112b2e}.card.pad{padding:20px}.card h3{letter-spacing:-.01em;margin-bottom:12px;font-size:16px;font-weight:700}.kpis{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.kpi{padding:16px 18px;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden}.kpi:hover{transform:translateY(-3px);box-shadow:0 18px 36px -22px #5b3dd180}.kpi small{color:var(--mut);letter-spacing:.02em;font-size:12px;font-weight:600}.kpi b{letter-spacing:-.03em;margin:2px 0;font-size:30px;font-weight:800;display:block}.kpi span{color:var(--mut);font-size:12px}.kpi.warn b{color:#d6336c}.kpi:after{content:"";background:#6d4ae814;border-radius:50%;width:80px;height:80px;position:absolute;top:-26px;right:-26px}.kpi.warn:after{background:#d6336c17}.grid2{grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:16px;display:grid}.tools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.search{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;min-width:220px;padding:9px 13px}.tools select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px}.count{color:var(--mut);margin-left:auto;font-size:12.5px}.tw{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px}th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);white-space:nowrap;background:#faf9ff;padding:12px 16px;font-size:11.5px;font-weight:700}td{vertical-align:middle;border-top:1px solid #efebfb;padding:13px 16px}tbody tr{transition:background .15s}tbody tr:hover{background:#faf9ff}td a{font-weight:600}.empty{text-align:center;color:var(--mut);padding:30px}.badge{white-space:nowrap;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.b-green{color:#14793a;background:#e3f7ea}.b-amber{color:#9a6200;background:#fff1d6}.b-red{color:#b3173f;background:#fde4ea}.b-blue{color:#2750c4;background:#e4edff}.b-gray{color:#5b5775;background:#eceaf4}.prog{align-items:center;gap:10px;min-width:130px;display:flex}.prog i{background:linear-gradient(90deg,#8b6bff,var(--p));border-radius:9px;flex:none;max-width:90px;height:7px;display:block}.prog{position:relative}.prog:before{content:"";z-index:0;background:#ece8fb;border-radius:9px;width:90px;height:7px;margin-top:-3.5px;position:absolute;top:50%;left:0}.prog i,.prog b{z-index:1;position:relative}.prog b{margin-left:auto;font-size:12px}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tabs button{cursor:pointer;color:var(--mut);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600}.tabs button.on{color:var(--p2);border-color:var(--p)}.tabs button:hover{color:var(--ink)}.bars{align-items:flex-end;gap:12px;height:170px;padding-top:6px;display:flex}.bars div{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bars i{background:linear-gradient(180deg,#8b6bff,var(--p));border-radius:8px 8px 3px 3px;width:100%;transition:filter .2s;display:block}.bars div:hover i{filter:brightness(1.12)}.bars small{color:var(--mut);font-size:11.5px}.list{gap:2px;display:grid}.list .it{border-top:1px solid #efebfb;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.list .it:first-child{border-top:0}.list small{color:var(--mut);display:block}.chat{grid-template-columns:320px minmax(0,1fr);min-height:520px;display:grid;overflow:hidden}.threads{border-right:1px solid var(--line)}.th{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #efebfb;width:100%;padding:14px 16px;display:block}.th:hover,.th.on{background:#f4f1ff}.th b{justify-content:space-between;gap:8px;display:flex}.th small{color:var(--mut);margin-top:2px;display:block}.unread{background:var(--p);color:#fff;border-radius:99px;padding:0 7px;font-size:11px;line-height:18px}.msgs{flex-direction:column;display:flex}.msgs .body{flex:1;align-content:start;gap:10px;padding:20px;display:grid}.m{background:#f4f1ff;border-radius:14px;max-width:70%;padding:10px 14px}.m small{color:var(--mut);margin-bottom:2px;font-size:11px;display:block}.m.Client{border:1px solid var(--line);background:#fff}.m.Team{background:#ede7ff;margin-left:auto}.m.Internal{background:#fff6dd;border:1px dashed #e8c766;margin-left:auto}.compose{border-top:1px solid var(--line);gap:10px;padding:14px;display:flex}.compose input{border:1px solid var(--line);border-radius:10px;flex:1;padding:10px 14px}.det{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.det div small{color:var(--mut);font-size:12px;display:block}.det div b{font-size:15px}.ph-note{text-align:center;color:var(--mut);padding:30px}.scrim{display:none}.login{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.login-art{color:#fff;background:linear-gradient(145deg,#14112b,#3b2a8f 70%,#6d4ae8);flex-direction:column;justify-content:space-between;padding:56px;display:flex}.login-art h2{letter-spacing:-.03em;max-width:440px;font-size:38px;line-height:1.15}.login-art p{opacity:.8;max-width:420px;margin-top:14px;font-size:16px}.login-form{place-items:center;padding:32px;display:grid}.login-form form{gap:14px;width:100%;max-width:380px;display:grid}.login-form h1{letter-spacing:-.025em;font-size:28px}.login-form label{gap:6px;font-size:13px;font-weight:600;display:grid}.login-form input{border:1px solid var(--line);background:#fff;border-radius:10px;outline:none;padding:12px 14px}.login-form input:focus{border-color:var(--p);box-shadow:0 0 0 3px #6d4ae826}.login-form .btn{padding:13px}@media (max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}.det{grid-template-columns:1fr 1fr}}@media (max-width:900px){.app{grid-template-columns:1fr}.side{z-index:50;width:260px;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.app.open .side{transform:none}.app.open .scrim{z-index:40;background:#14112b80;display:block;position:fixed;inset:0}.burger{display:block}.top{padding:12px 16px}.page{padding:18px 16px}.me div{display:none}.kpis{grid-template-columns:1fr 1fr}.chat{grid-template-columns:1fr}.threads{border-right:0;border-bottom:1px solid var(--line)}.login{grid-template-columns:1fr}.login-art{display:none}}@media (max-width:520px){.kpis,.det{grid-template-columns:1fr}}.pha{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.modal{width:min(720px,100vw - 24px);max-height:calc(100vh - 40px);color:var(--ink);border:0;border-radius:18px;padding:0;box-shadow:0 40px 80px -20px #14112b80}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14112b8c}.modal form{flex-direction:column;max-height:calc(100vh - 40px);display:flex}.mh{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.mh h3{margin:0;font-size:18px}.x{cursor:pointer;background:#f4f1ff;border:0;border-radius:9px;width:32px;height:32px;font-size:20px;line-height:1}.mb{padding:20px 22px;overflow:auto}.mf{border-top:1px solid var(--line);background:#faf9ff;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.mnote{border:1px solid var(--line);color:var(--mut);background:#f4f1ff;border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:13px}.fg{grid-template-columns:1fr 1fr;gap:14px;display:grid}.fg label{gap:6px;font-size:13px;font-weight:600;display:grid}.fg .full{grid-column:1/-1}.fg input,.fg select,.fg textarea{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;width:100%;padding:10px 12px;font-weight:400}.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--p);box-shadow:0 0 0 3px #6d4ae826}.toast{z-index:200;background:var(--ink);color:#fff;border-radius:12px;max-width:340px;padding:12px 18px;font-size:13.5px;animation:.3s tin;position:fixed;bottom:20px;right:20px;box-shadow:0 20px 40px -12px #14112b80}@keyframes tin{0%{opacity:0;transform:translateY(10px)}}.crumb{color:var(--mut);margin-bottom:10px;font-size:13px}.crumb a{color:var(--mut)}.crumb a:hover{color:var(--p2)}.tl{gap:0;padding-left:6px;display:grid}.tl .ti{border-left:2px solid #e4e0f5;padding:0 0 18px 24px;position:relative}.tl .ti:last-child{border-color:#0000;padding-bottom:0}.tl .ti:before{content:"";background:var(--p);border-radius:50%;width:12px;height:12px;position:absolute;top:3px;left:-7px;box-shadow:0 0 0 3px #fff}.tl b{display:block}.tl small{color:var(--mut)}.cols{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.stack{gap:16px;display:grid}.row2{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.txt{white-space:pre-line;color:#3a3656}.chk{align-items:center;gap:8px;display:flex}.chk input{width:16px;height:16px;accent-color:var(--p)}.tg{width:40px;height:22px;display:inline-block;position:relative}.tg input{opacity:0;width:0;height:0}.tg i{background:#d8d3ee;border-radius:99px;transition:background .2s;position:absolute;inset:0}.tg i:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}.tg input:checked+i{background:var(--p)}.tg input:checked+i:after{transform:translate(18px)}.setrow{border-top:1px solid #efebfb;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;display:flex}.setrow:first-of-type{border-top:0}.setrow small{color:var(--mut);display:block}@media (max-width:1200px){.cols{grid-template-columns:1fr}}@media (max-width:700px){.fg{grid-template-columns:1fr}.toast{max-width:none;left:12px;right:12px}}.checks{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:6px 16px;min-width:0;margin:0;padding:10px 12px;display:flex}.checks legend{padding:0 6px;font-size:13px;font-weight:600}.checks .chk{align-items:center;gap:6px;font-weight:400;display:flex}.checks .chk input{width:auto;accent-color:var(--p)}tr.grp td{color:var(--p2);letter-spacing:.04em;background:#f4f1ff;padding:9px 16px;font-size:12.5px;font-weight:700}.sticky{position:sticky;top:84px}.li input{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;padding:9px 10px}.li input:focus{border-color:var(--p)}.li td{padding:8px 10px}.sum{border-top:1px solid #efebfb;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.sum:first-of-type{border-top:0}.sum span{color:var(--mut);align-items:center;gap:6px;display:flex}.sum.total{border-top:2px solid var(--ink);margin-top:6px;font-size:17px}.sum.total span{color:var(--ink);font-weight:700}.mini{border:1px solid var(--line);border-radius:7px;width:auto;max-width:100px;padding:5px 7px}input.mini{width:80px}.err{color:#b3173f;margin:8px 0 0;font-size:13px}.inv{max-width:860px;padding:34px}.inv-h{flex-wrap:wrap;justify-content:space-between;gap:24px;margin-bottom:24px;display:flex}.inv-h img{width:auto;height:60px;margin-bottom:8px;display:block}.inv-h p{color:var(--mut);font-size:13px;line-height:1.6}.inv-m{text-align:right;gap:6px;display:grid}.inv-m h2{letter-spacing:.1em;color:var(--p2);margin-bottom:6px;font-size:26px}.inv-m small{color:var(--mut);margin-right:10px}.inv-to{background:#faf9ff;border-radius:12px;gap:3px;margin-bottom:18px;padding:14px 16px;display:grid}.inv-to small{color:var(--mut);text-transform:uppercase;letter-spacing:.1em;font-size:11px}.inv-to span{color:var(--mut)}.inv-t{max-width:340px;margin-top:16px;margin-left:auto}.inv-t div{border-top:1px solid #efebfb;justify-content:space-between;padding:7px 0;display:flex}.inv-t .g{border-top:2px solid var(--ink);font-size:16px;font-weight:800}.inv-n{color:var(--mut);margin-top:22px;font-size:13px}@media print{.side,.top,.noprint,.scrim,.toast{display:none!important}.app{display:block}.page{max-width:none;padding:0}body{background:#fff}.inv{box-shadow:none;border:0;max-width:none;padding:0}}@media (max-width:900px){.sticky{position:static}}.chips{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;color:var(--mut);background:#fff;border-radius:99px;padding:7px 14px;font-weight:600;transition:all .2s}.chip i{color:var(--p2);background:#f0ecff;border-radius:99px;margin-left:4px;padding:0 7px;font-size:11.5px;font-style:normal}.chip:hover{border-color:var(--p);color:var(--ink)}.chip.on{background:var(--p);color:#fff;border-color:var(--p)}.chip.on i{color:#fff;background:#ffffff40}.grpsel{border:1px solid var(--line);background:#fff;border-radius:9px;margin-left:auto;padding:8px 12px}.msgs-s{gap:10px;display:grid}a.kpi{color:inherit;display:block}.full-sel{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;width:100%;padding:10px}.full-sel:focus{border-color:var(--p)}.btn.sm{border-radius:8px;padding:6px 12px;font-size:12.5px}.acts{gap:6px;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.bell{border:1px solid var(--line);width:38px;height:38px;color:var(--mut);background:#fff;border-radius:10px;place-items:center;margin-left:auto;display:grid;position:relative}.bell svg{width:19px;height:19px}.bell:hover{color:var(--p2);border-color:var(--p)}.bell i{color:#fff;background:#d6336c;border-radius:99px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-style:normal;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.me{margin-left:0}.top .bell{margin-left:auto}.atts{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.att{border:1px solid var(--line);background:#fff;border-radius:8px;padding:3px 9px;font-size:12px}.x2{cursor:pointer;color:var(--mut);background:0 0;border:0;font-size:15px;line-height:1}.ticks{text-align:right;color:var(--mut);margin-top:3px;font-size:11px;display:block}.attach{cursor:pointer;place-items:center;padding:0 12px;display:grid}mark{background:#ffe58f;border-radius:3px;padding:0 1px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--ink)}.arr{color:var(--p2)}.pager{border-top:1px solid var(--line);color:var(--mut);justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;display:flex}.audit{color:var(--mut);margin-top:14px;font-size:12.5px}.btn.danger{color:#b3173f;border-color:#f3c0cd}.btn.danger:hover{border-color:#b3173f}.danger-fill{background:#d6336c}.danger-fill:hover{background:#b3173f}.modal.small{width:min(440px,100vw - 24px)}.gs{flex:1;max-width:460px;position:relative}.gs .gsearch{width:100%}.gs-pop{border:1px solid var(--line);z-index:60;background:#fff;border-radius:12px;max-height:380px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 24px 48px -20px #14112b59}.gs-hit{color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:9px 10px;display:flex}.gs-hit:hover{background:#f4f1ff}.gs-hit small{color:var(--p2);text-align:center;background:#efe9ff;border-radius:6px;min-width:78px;padding:1px 8px;font-size:11px;font-weight:600}.gs-none{color:var(--mut);padding:8px 10px;font-size:12px}.roles{align-items:center;gap:8px;margin-left:auto;display:flex}.roles small{color:var(--mut);font-size:12px}.roles select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 10px}.bell{margin-left:0}@media (max-width:900px){.roles small{display:none}.roles{margin-left:auto}}.ob{gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.ob li{color:var(--mut);padding-left:28px;position:relative}.ob li:before{content:"";border:2px solid var(--line);border-radius:50%;width:16px;height:16px;position:absolute;top:3px;left:0}.ob li.done{color:var(--ink)}.ob li.done:before{background:var(--p);border-color:var(--p)}.ob li.done:after{content:"✓";color:#fff;font-size:11px;font-weight:700;position:absolute;top:1px;left:3px}.kpis.three{grid-template-columns:repeat(3,1fr)}@media (max-width:900px){.kpis.three{grid-template-columns:1fr 1fr}}@media (max-width:520px){.kpis.three{grid-template-columns:1fr}}.plist{color:var(--ink);gap:6px;padding-left:20px;display:grid}.plist li::marker{color:var(--p)}.btn.sm.o{padding:5px 10px}@media (max-width:900px){.gs{min-width:80px}.roles select{max-width:104px;padding:6px 8px}.top{gap:8px}}.me form{margin:0}.linklike{color:#7a7596;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.linklike:hover{color:var(--p2)}.login-form h1,.login-form .stack h1{font-size:28px}.login{display:block}.login-form{flex-direction:column;justify-content:center;align-items:center;gap:26px;min-height:100vh;padding:32px 20px;display:flex}.login-form form,.login-form .stack{border:1px solid var(--line);background:#fff;border-radius:18px;width:100%;max-width:400px;padding:30px;box-shadow:0 24px 60px -34px #14112b59}.login-brand{align-items:center;gap:14px;display:flex}.login-brand img{width:auto;height:56px}.login-brand small{letter-spacing:.14em;text-transform:uppercase;color:#7a7596;border-left:1px solid var(--line);padding-left:14px;font-size:11px;font-weight:700}.sample{color:#9a6200;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;background:#fff1d6;border-radius:6px;margin-left:6px;padding:0 6px;font-size:10px;font-style:normal;font-weight:700}
