@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650;700;750;800&display=swap";
:root{--bg:#f4f5fb;--surface:#fff;--ink:#11162a;--ink-2:#3d4565;--muted:#727a99;--line:#e7e9f3;--line-2:#eef0f7;--brand:#4f46e5;--brand-2:#6d5dfb;--brand-soft:#eef0ff;--teal:#0fb5a8;--amber:#f5a524;--rose:#f04d6e;--green:#19b36b;--sky:#2f9bf0;--sidebar:#161b34;--sidebar-2:#1f254477;--sidebar-ink:#aab0cf;--sidebar-active:#fff;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px #12162a0f, 0 8px 24px -12px #12162a2e;--shadow-lg:0 24px 60px -20px #12162a59;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:3px solid var(--bg);background:#d6d9e8;border-radius:20px}.app{grid-template-columns:256px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.brand{align-items:center;gap:11px;padding:20px 20px 18px;display:flex}.brand .logo{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-2) 100%);color:#fff;width:34px;height:34px;box-shadow:0 6px 16px -6px var(--brand);border-radius:9px;place-items:center;font-size:17px;font-weight:800;display:grid}.brand .name{color:#fff;letter-spacing:-.2px;font-size:15px;font-weight:700;line-height:1.1}.brand .name small{color:var(--sidebar-ink);letter-spacing:.2px;font-size:11px;font-weight:500;display:block}.nav{flex:1;padding:6px 12px 20px;overflow-y:auto}.nav::-webkit-scrollbar-thumb{border-color:var(--sidebar);background:#333a5e}.nav-tools{border-bottom:1px solid #232a49;align-items:center;gap:6px;margin-bottom:2px;padding:2px 4px 10px;display:flex}.nav-tools input{background:var(--sidebar-2);color:#fff;min-width:0;font:inherit;border:1px solid #2a3157;border-radius:8px;outline:none;flex:1;padding:6px 9px;font-size:12px}.nav-tools input::placeholder{color:#6b7298}.nav-tools input:focus{border-color:var(--brand)}.nav-tools button{background:var(--sidebar-2);color:#9aa2cc;cursor:pointer;border:1px solid #2a3157;border-radius:8px;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.nav-tools button:hover{color:#fff;background:#2a3157}.nav-tools button svg{stroke-width:2.2px;width:15px;height:15px}.nav-group{margin-top:11px}.nav-group:first-child{margin-top:2px}.nav-group .label{text-transform:uppercase;letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;margin:0 2px 4px;padding:8px 10px;font-size:13px;font-weight:800;transition:filter .12s;display:flex}.nav-group .label:hover{filter:brightness(1.22)}.nav-group .label .chev{stroke-width:2.6px;opacity:.65;width:13px;height:13px;margin-left:auto;transition:transform .15s}.nav-group.collapsed .label .chev{transform:rotate(-90deg)}.nav a{color:var(--sidebar-ink);cursor:pointer;border-radius:8px;align-items:center;gap:10px;margin-bottom:1px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .12s,color .12s;display:flex;position:relative}.nav a svg{stroke-width:1.9px;flex:0 0 16px;width:16px;height:16px}.nav a:hover{background:var(--sidebar-2);color:#fff}.nav a.active{color:#fff;box-shadow:inset 3px 0 0 var(--brand-2);background:linear-gradient(90deg,#635bff57,#635bff14);font-weight:700}.nav a.active svg{color:var(--brand-2);stroke-width:2.3px}.nav a.active:before{content:"";background:var(--brand-2);border-radius:4px;width:3px;position:absolute;top:6px;bottom:6px;left:-6px}.side-foot a.active{box-shadow:inset 3px 0 0 var(--brand-2);background:linear-gradient(90deg,#635bff57,#635bff14);color:#fff!important}.nav a .pill{color:#cfd4ee;background:#2c3358;border-radius:20px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:600}.nav a .pill.hot{background:var(--rose);color:#fff}.nav a .pill.brand{background:var(--brand);color:#fff}.side-foot{border-top:1px solid #262c4b;padding:8px}.side-foot a svg{stroke-width:1.9px;flex:0 0 17px;width:17px;height:17px}.side-foot a:hover{background:var(--sidebar-2);color:#fff}.side-foot:empty{border:0;padding:0;display:none}.compact .grid{gap:13px}.compact .kpi{padding:13px 15px 11px}.compact .kpi .ic{width:32px;height:32px;margin-bottom:8px}.compact .kpi .ic svg{width:17px;height:17px}.compact .kpi .val{margin-top:0;font-size:21px}.compact .kpi .delta{margin-top:5px}.compact .card-h{padding:12px 18px}.compact .bars{height:128px}.compact .donut{width:116px;height:116px}.compact .field{margin-bottom:8px}.compact .card.pad{padding:12px 14px}.compact .li{padding:6px 0}.compact .field input,.compact .field select,.compact .field textarea{padding:7px 11px;font-size:13px}.compact .field label,.compact .field .fld-label{margin-bottom:4px}.compact h3{margin-bottom:9px!important}.compact .donut .hole{width:80px;height:80px}.upgrade{background:linear-gradient(135deg,#272e54,#1c2240);border:1px solid #313861;border-radius:12px;padding:14px}.upgrade h5{color:#fff;margin-bottom:3px;font-size:13px}.upgrade p{color:#9aa1c4;margin-bottom:10px;font-size:11.5px}.upgrade .bar{background:#3a4068;border-radius:6px;height:6px;margin-bottom:8px;overflow:hidden}.upgrade .bar i{background:linear-gradient(90deg, var(--brand), var(--teal));width:68%;height:100%;display:block}.upgrade small{color:#cdd2ee;font-size:11px}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:40;align-items:center;gap:16px;height:64px;padding:0 26px;display:flex;position:sticky;top:0}.topbar .crumbs{color:var(--muted);font-size:13px}.topbar .crumbs b{color:var(--ink);font-weight:600}.search{background:var(--bg);border:1px solid var(--line);color:var(--muted);border-radius:10px;flex:0 340px;align-items:center;gap:9px;margin-left:6px;padding:8px 12px;display:flex}.search input{font:inherit;color:var(--ink);background:0 0;border:0;outline:0;width:100%;font-size:13px}.search kbd{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:5px;margin-left:auto;padding:1px 6px;font-size:11px}.spacer{flex:1}.role-switch{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px;display:flex}.role-switch button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:6px 14px;font-size:12.5px;font-weight:600;display:flex}.role-switch button.on{background:var(--surface);color:var(--brand);box-shadow:var(--shadow)}.role-switch button .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.icon-btn{border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink-2);cursor:pointer;border-radius:10px;place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--bg)}.icon-btn .dot{background:var(--rose);border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:9px}.icon-btn svg{stroke-width:1.9px;width:18px;height:18px}.avatar{border:1px solid var(--line);cursor:pointer;border-radius:30px;align-items:center;gap:10px;padding:4px 6px 4px 4px;display:flex}.avatar img,.avatar .ph{object-fit:cover;background:linear-gradient(135deg, var(--teal), var(--sky));color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.avatar .who{line-height:1.15}.avatar .who b{font-size:12.5px;font-weight:600}.avatar .who small{color:var(--muted);font-size:11px}.content{width:100%;max-width:1320px;margin:0 auto;padding:26px}.screen{display:none}.screen.show{animation:.25s fade;display:block}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{flex-wrap:wrap;align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.4px;font-size:23px;font-weight:700}.page-head p{color:var(--muted);margin-top:3px;font-size:13.5px}.page-head .ph-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:9px 15px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg)}.btn svg{stroke-width:2px;width:16px;height:16px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 8px 18px -8px var(--brand)}.btn.primary:hover{background:#443ddb}.btn.ghost{background:0 0;border-color:#0000}.btn.sm{padding:6px 11px;font-size:12px}.seg{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 13px;font-size:12.5px;font-weight:600}.seg button.on{color:var(--ink);box-shadow:var(--shadow);background:#fff}.seg.taskviews{flex-wrap:wrap}.seg .vct{color:var(--brand);background:#635bff1f;border-radius:20px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-weight:700}.seg button.on .vct{background:var(--brand);color:#fff}.kpi.on{box-shadow:0 0 0 1.5px var(--brand) inset, var(--shadow)}.grid{gap:18px;display:grid}.g-4{grid-template-columns:repeat(4,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-2{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:20px}.card-h{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding:16px 20px;display:flex}.card-h h3{font-size:14.5px;font-weight:650}.card-h .sub{color:var(--muted);font-size:12px;font-weight:500}.card-h .right{align-items:center;gap:8px;margin-left:auto;display:flex}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px;position:relative;overflow:hidden}.kpi .ic{border-radius:11px;place-items:center;width:40px;height:40px;margin-bottom:14px;display:grid}.kpi .ic svg{stroke-width:2px;width:20px;height:20px}.kpi .lab{color:var(--muted);font-size:12.5px;font-weight:500}.kpi .val{letter-spacing:-.6px;margin-top:2px;font-size:26px;font-weight:750}.kpi .delta{border-radius:20px;align-items:center;gap:4px;margin-top:8px;padding:2px 7px;font-size:11.5px;font-weight:650;display:inline-flex}.delta.up{color:#0f8b50;background:#e4f7ee}.delta.down{color:#d4244a;background:#fde7ec}.delta.flat{color:#6a7290;background:#eef0f7}.ic.indigo{background:var(--brand-soft);color:var(--brand)}.ic.teal{color:var(--teal);background:#e2f7f4}.ic.amber{color:#cf8b12;background:#fdf0db}.ic.green{color:var(--green);background:#e3f6ec}.ic.rose{color:var(--rose);background:#fde8ed}.ic.sky{color:var(--sky);background:#e4f1fd}.spark{opacity:.5;width:96px;height:46px;position:absolute;bottom:-6px;right:-6px}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#fbfbfe;padding:11px 18px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:13px 18px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafaff}td .cell-main{font-weight:600}td .cell-sub{color:var(--muted);font-size:11.5px}.u{align-items:center;gap:10px;display:flex}.u .ph{color:#fff;border-radius:9px;flex:0 0 32px;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.badge{white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:650;display:inline-flex}.badge .d{background:currentColor;border-radius:50%;width:6px;height:6px}.b-green{color:#0f8b50;background:#e3f6ec}.b-amber{color:#bd7d10;background:#fdf0db}.b-blue{color:#1f7fd1;background:#e4f1fd}.b-grey{color:#5b6488;background:#eef0f7}.b-rose{color:#d4244a;background:#fde8ed}.b-purple{color:#6b4be0;background:#efeaff}.b-teal{color:#0a8e84;background:#e0f6f3}.progress{background:var(--line);border-radius:8px;height:7px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--brand), var(--brand-2));border-radius:8px;height:100%;display:block}.bars{align-items:flex-end;gap:14px;height:170px;padding-top:10px;display:flex}.bars .col{flex:1;grid-template-rows:1fr auto;place-items:end center;gap:8px;height:100%;display:grid}.bars .pair{justify-content:center;align-items:flex-end;gap:4px;width:100%;height:100%;display:flex}.bars .stack{background:linear-gradient(180deg, var(--brand), var(--brand-2));border-radius:5px 5px 2px 2px;width:34%;max-width:16px}.bars .stack.t2{background:linear-gradient(#cdd0f7,#e1e3fb)}.bars .x{color:var(--muted);font-size:11px;font-weight:500}.legend{color:var(--muted);gap:16px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{border-radius:3px;width:9px;height:9px;display:inline-block}.donut{background:conic-gradient(var(--brand) 0 52%, var(--teal) 52% 74%, var(--amber) 74% 90%, var(--line) 90% 100%);border-radius:50%;place-items:center;width:140px;height:140px;display:grid}.donut .hole{text-align:center;background:#fff;border-radius:50%;place-items:center;width:96px;height:96px;display:grid}.donut .hole b{font-size:21px;font-weight:750}.donut .hole small{color:var(--muted);font-size:11px}.li{border-bottom:1px solid var(--line-2);align-items:center;gap:13px;padding:13px 0;display:flex}.li:last-child{border-bottom:0}.li .ic{border-radius:10px;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.li .ic svg{stroke-width:2px;width:17px;height:17px}.li .t{font-size:13px;font-weight:600}.li .s{color:var(--muted);font-size:11.5px}.li .meta{text-align:right;color:var(--muted);margin-left:auto;font-size:11.5px}.field{margin-bottom:16px}.field label,.field .fld-label{color:var(--ink-2);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.field .hint{color:var(--muted);margin-top:5px;font-size:11.5px;font-weight:400}.field input,.field select,.field textarea{width:100%;font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;outline:0;padding:10px 12px;font-size:13.5px;transition:all .12s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.field textarea{resize:vertical;min-height:90px}.row2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.row3{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.chip-pick{flex-wrap:wrap;gap:8px;display:flex}.chip-pick label{border:1px solid var(--line);color:var(--ink-2);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:9px 13px;font-size:13px;font-weight:600;display:flex}.chip-pick input{width:auto;accent-color:var(--brand)}.chip-pick label.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.ch-card{text-align:left;width:100%;font:inherit;color:inherit;border:1px solid var(--line);cursor:pointer;background:var(--card);border-radius:13px;align-items:flex-start;gap:11px;padding:13px;transition:border-color .12s,box-shadow .12s;display:flex}.ch-card.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.ch-card .ch-ic{border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.ch-card .ch-ic svg{width:18px;height:18px}.ch-card .ch-t{color:var(--ink);font-size:13.5px;font-weight:700;display:block}.ch-card .ch-s{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11.5px;display:block;overflow:hidden}.ch-card .ch-dot{border:2px solid var(--line);border-radius:50%;flex:none;width:16px;height:16px;margin-top:2px;position:relative}.ch-card.on .ch-dot{border-color:var(--brand);background:var(--brand)}.ch-card.on .ch-dot:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:3px}.est{color:#fff;background:linear-gradient(135deg,#1c2142,#272e58);border-radius:14px;padding:20px}.est .lab{color:#aab0d6;font-size:12px}.est .big{letter-spacing:-.5px;margin:4px 0 2px;font-size:32px;font-weight:780}.est .row{color:#c5c9e6;border-top:1px solid #3a416b;justify-content:space-between;margin-top:8px;padding:7px 0;font-size:12.5px;display:flex}.kanban{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.kcol{border:1px solid var(--line);background:#f7f8fc;border-radius:12px;min-height:200px;padding:10px}.kcol .kh{align-items:center;gap:8px;padding:6px 6px 10px;font-size:12.5px;font-weight:700;display:flex}.kcol .kh .n{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:20px;margin-left:auto;padding:1px 8px;font-size:11px}.kcard{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:9px;padding:11px;box-shadow:0 1px 2px #12162a0a}.kcard h6{margin-bottom:4px;font-size:12.5px;font-weight:650}.kcard .ad{color:var(--muted);margin-bottom:8px;font-size:11px}.kcard .kf{justify-content:space-between;align-items:center;display:flex}.kcard .val{color:var(--brand);font-size:12px;font-weight:700}.tag{background:var(--bg);color:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.empty-note{color:var(--muted);padding:5px 0;font-size:12px}.divider{background:var(--line-2);height:1px;margin:18px 0}.stat-inline{flex-wrap:wrap;gap:26px;display:flex}.stat-inline .si b{letter-spacing:-.3px;font-size:19px;font-weight:750;display:block}.stat-inline .si span{color:var(--muted);font-size:11.5px}.asset{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.asset .thumb{height:120px;color:var(--brand);background:linear-gradient(135deg,#e9ebfb,#dfe9fb);place-items:center;display:grid;position:relative}.asset .thumb svg{opacity:.6;width:34px;height:34px}.asset .meta{padding:12px}.asset .meta h6{font-size:13px;font-weight:650}.asset .meta p{color:var(--muted);margin:2px 0 10px;font-size:11.5px}.note-banner{background:linear-gradient(90deg,#eef0ff,#f5f1ff);border:1px solid #e0e2fb;border-radius:12px;align-items:center;gap:12px;margin-bottom:20px;padding:13px 16px;display:flex}.note-banner svg{width:20px;height:20px;color:var(--brand);flex:0 0 20px}.note-banner b{font-weight:650}.note-banner p{color:var(--ink-2);font-size:12.5px}.note-banner .btn{margin-left:auto}.scrim{opacity:0;visibility:hidden;z-index:60;background:#1416286b;transition:all .18s;position:fixed;inset:0}.scrim.open{opacity:1;visibility:visible}.drawer{background:var(--surface);z-index:61;flex-direction:column;width:480px;max-width:94vw;height:100%;transition:transform .22s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-20px 0 50px -20px #14162866}.drawer.open{transform:translate(0)}.drawer-h{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:18px 22px;display:flex}.drawer-h .ic{border-radius:10px;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid}.drawer-h .ic svg{stroke-width:2px;width:19px;height:19px}.drawer-h h3{letter-spacing:-.2px;font-size:16px;font-weight:700}.drawer-h .sub{color:var(--muted);font-size:12px}.drawer-h .x{background:var(--bg);cursor:pointer;width:32px;height:32px;color:var(--muted);border:0;border-radius:9px;place-items:center;margin-left:auto;font-size:18px;display:grid}.drawer-h .x:hover{background:var(--line)}.drawer-body{flex:1;padding:20px 22px;overflow-y:auto}.drawer-body .sec-lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 12px;font-size:11px;font-weight:700}.drawer-body .sec-lbl:first-child{margin-top:0}.drawer-foot{border-top:1px solid var(--line);background:#fbfbfe;gap:10px;padding:16px 22px;display:flex}.drawer-foot .btn{flex:1;justify-content:center}.wqmodal{background:var(--surface);z-index:61;opacity:0;visibility:hidden;border-radius:16px;flex-direction:column;width:460px;max-width:94vw;max-height:88vh;transition:all .18s;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-46%)scale(.98);box-shadow:0 30px 80px -20px #14162880}.wqmodal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%)scale(1)}@media (max-width:1180px){.g-4{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:repeat(3,1fr)}}@media (max-width:860px){.app{grid-template-columns:1fr}.sidebar{display:none}.g-3,.g-2,.span-2,.span-3{grid-column:auto;grid-template-columns:1fr}}.fld-label{color:var(--ink-2);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.tpl-modal{width:min(680px,100%);max-height:90vh;color:inherit;background:#fff;border:0;border-radius:12px;margin:auto;padding:0;overflow:hidden;box-shadow:0 20px 60px #00000040}.tpl-modal::backdrop{background:#0f172080}
