@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");:root{--bg:#1f3145;--bg2:#243a52;--card:#294059;--card2:#324a64;--ink:#eef2f7;--muted:#9fb0c4;--accent:#c27f64;--accent-hi:#d4937a;--copper-dim:#a56850;--ok:#4cbd85;--warn:#e2a03f;--danger:#e05c5c;--line:hsla(0,0%,100%,.09);--track:#16232f;--on-accent:#241611;--radius:14px;--shadow:0 1px 3px rgba(0,0,0,.25),0 8px 24px rgba(0,0,0,.2)}body.light{--bg:#eef1f6;--bg2:#e2e8f1;--card:#fff;--card2:#f5f8fc;--ink:#1f3145;--muted:#5f7085;--accent:#b06b50;--accent-hi:#c27f64;--ok:#2f9e63;--danger:#d64545;--line:#dde4ee;--track:#e6ebf3;--on-accent:#fff;--shadow:0 1px 3px rgba(28,35,51,.06),0 8px 24px rgba(28,35,51,.05)}body{transition:background .25s,color .25s}*{box-sizing:border-box;margin:0;padding:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes growBar{0%{width:0}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(224,92,92,.45)}50%{box-shadow:0 0 0 5px rgba(224,92,92,0)}}body{font-family:Poppins,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}button,input,select{font-family:inherit}input,select{color-scheme:dark}.wrap{max-width:1280px;margin:0 auto;padding:24px 20px 60px}header.top{flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}.brand,header.top{display:flex;align-items:center}.brand{gap:14px}.wordmark{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.6rem;letter-spacing:.35em;color:var(--accent);line-height:1}.wordmark .bar{display:inline-block;width:3px;height:2.1em;background:var(--accent);margin-left:2px}.brand-text h1{font-size:1.2rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.brand-text h1 span{color:var(--accent)}.sub{color:var(--muted);font-size:.82rem;margin-top:2px}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:var(--on-accent);border:none;padding:10px 18px;border-radius:10px;font-size:.87rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow);transition:background .18s,transform .15s,box-shadow .18s}.btn:hover{background:var(--accent-hi);transform:translateY(-1px);box-shadow:0 4px 14px rgba(201,130,94,.35)}.btn:active{transform:translateY(0) scale(.97)}.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent);box-shadow:none}.btn.ghost:hover{background:rgba(201,130,94,.12)}.btn.sm{padding:5px 12px;font-size:.78rem;border-radius:8px}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{background:#c74a4a}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:14px;gap:14px;margin-bottom:22px}.kpi{position:relative;background:linear-gradient(135deg,var(--card2),var(--card));border-radius:var(--radius);padding:16px 18px 16px 22px;box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden;animation:fadeUp .4s ease both;transition:transform .18s,box-shadow .18s}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent);border-radius:0 4px 4px 0}.kpi:nth-child(2){animation-delay:.06s}.kpi:nth-child(3){animation-delay:.12s}.kpi:nth-child(4){animation-delay:.18s}.kpi:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.35)}.kpi.red:before{background:var(--danger)}.kpi.green:before{background:var(--ok)}.kpi.navy:before{background:#5b7ba3}.kpi.red .num{color:var(--danger)}.kpi.green .num{color:var(--ok)}.kpi .num{font-size:1.7rem;font-weight:700;letter-spacing:-.02em}.kpi .lbl{margin-top:2px;text-transform:uppercase;letter-spacing:.05em}.kpi .hint,.kpi .lbl{color:var(--muted);font-size:.78rem}.kpi .hint{margin-top:6px}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}.tabs{display:flex;background:var(--card);border-radius:10px;padding:4px;box-shadow:var(--shadow)}.tab{border:none;background:transparent;padding:8px 18px;border-radius:8px;font-size:.87rem;font-weight:600;color:var(--muted);cursor:pointer;transition:background .18s,color .18s}.tab:hover:not(.active){color:var(--ink);background:hsla(0,0%,100%,.05)}.tab.active{background:var(--accent);color:var(--on-accent)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--card);padding:7px 14px;border-radius:99px;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .15s}.chip:hover:not(.active){border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.search{margin-left:auto;border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:.85rem;min-width:210px;background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.search::placeholder{color:var(--muted)}.search:focus{outline:2px solid var(--accent);border-color:transparent}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px}.person{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;animation:fadeUp .35s ease both;transition:transform .18s,box-shadow .18s,border-color .18s;border:1px solid transparent}.person:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.4);border-color:rgba(201,130,94,.35)}.p-head{display:flex;align-items:center;gap:8px}.p-name{font-weight:600;font-size:.98rem;margin-right:auto}.joined{font-size:.64rem;font-weight:700;color:var(--muted);background:var(--track);border-radius:99px;padding:2px 8px;white-space:nowrap}.avatar{border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid var(--line);background:var(--card2)}.avatar.ph{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:var(--on-accent);background:var(--accent);border-color:transparent;text-transform:uppercase}.avatar-edit{display:flex;align-items:center;gap:14px}.avatar-edit .avatar.ph{font-size:1.3rem}.avatar-btns{display:flex;gap:8px}.file-btn{cursor:pointer;display:inline-flex;align-items:center}.badge{font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em;background:var(--track);color:var(--muted)}.badge.QA{background:rgba(155,120,220,.18);color:#b79aec}.badge.Product{background:rgba(201,130,94,.18);color:#d99672}.badge.Engineering{background:rgba(91,123,163,.22);color:#8fb2dd}.badge.PMO{background:rgba(76,189,133,.16);color:#6fd2a2}.bar{height:14px;border-radius:99px;background:var(--track);overflow:hidden;display:flex}.seg{height:100%;animation:growBar .6s ease both;transition:filter .15s}.bar:hover .seg{filter:brightness(1.15)}.donut-wrap{display:flex;justify-content:center;padding:2px 0}.donut circle{transition:stroke-dasharray .6s ease,filter .15s}.donut circle:hover{filter:brightness(1.2)}.donut-num{fill:var(--ink);font-size:.95rem;font-weight:700}.donut-num.bad{fill:var(--danger)}.donut-lbl{fill:var(--muted);font-size:.5rem;text-transform:uppercase;letter-spacing:.08em}.alloc-list{display:flex;flex-direction:column;gap:4px;font-size:.82rem}.alloc-row{display:flex;align-items:center;gap:8px}.alloc-row .dot{display:inline-block;width:8px;height:8px;border-radius:99px;flex:none}.alloc-row .nm{margin-right:auto}.alloc-row .pct{font-weight:600}.alloc-edit{display:flex;align-items:center;gap:4px}.alloc-edit input{width:56px;border:1px solid var(--line);border-radius:7px;padding:3px 6px;font:inherit;font-size:.8rem;background:var(--bg2);color:var(--ink);text-align:right}.alloc-edit input:focus{outline:2px solid var(--accent);border-color:transparent}.alloc-edit .pct-suffix{color:var(--muted);font-size:.78rem}.icon-btn.ok:hover{color:var(--ok);background:rgba(76,189,133,.14)}.icon-btn{border:none;background:transparent;color:#5c6b80;cursor:pointer;font-size:.85rem;padding:2px 4px;border-radius:6px;transition:color .15s,background .15s,transform .15s}.icon-btn:hover{transform:scale(1.15);color:var(--danger);background:rgba(224,92,92,.12)}.avail{display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding-top:8px;font-size:.82rem;font-weight:700}.avail .ok{color:var(--ok)}.avail .bad{color:var(--danger)}.flag{font-size:.72rem;font-weight:700;color:#fff;background:var(--danger);border-radius:6px;padding:2px 8px;animation:pulse 2s infinite}.p-actions{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:10px}.proj{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden;animation:fadeUp .35s ease both;transition:box-shadow .18s,border-color .18s;border:1px solid transparent}.proj:hover{box-shadow:0 10px 26px rgba(0,0,0,.35);border-color:rgba(201,130,94,.25)}.proj-head{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .18s}.proj-head:hover{background:var(--card2)}.proj-name{font-weight:600;font-size:1rem}.proj-meta{color:var(--muted);font-size:.8rem}.proj-head .tot{margin-left:auto;font-size:.8rem;font-weight:700;color:var(--accent)}.caret{transition:transform .15s;color:var(--muted)}.proj.open .caret{transform:rotate(90deg)}.proj table{width:100%;border-collapse:collapse}.proj th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;background:var(--bg2)}.proj td,.proj th{padding:8px 18px;border-top:1px solid var(--line)}.proj td{font-size:.84rem}.proj tbody tr{transition:background .15s}.proj tbody tr:hover{background:hsla(0,0%,100%,.03)}.pct-pill{font-weight:700;padding:2px 10px;border-radius:99px;font-size:.78rem}.sp-td{white-space:nowrap}.sp-view{display:inline-flex;align-items:center;gap:4px}.sp-val{font-weight:700;font-size:.84rem}.sp-val.sp-none{color:var(--muted);font-weight:400}.sp-edit{display:inline-flex;align-items:center;gap:4px}.sp-edit input{width:64px;border:1px solid var(--line);border-radius:7px;padding:3px 6px;font:inherit;font-size:.8rem;background:var(--bg2);color:var(--ink);text-align:right}.sp-edit input:focus{outline:2px solid var(--accent);border-color:transparent}.sp-err{color:var(--danger);font-size:.72rem;font-weight:700}.sp-total-row td{border-top:2px solid var(--line);font-size:.8rem;font-weight:700;color:var(--ink);background:var(--bg2)}.sp-total-row .sp-sprints{font-weight:500;color:var(--muted);font-size:.76rem}.vel-line{display:flex;justify-content:space-between;font-size:.8rem;font-weight:700;padding-top:6px;border-top:1px dashed var(--line)}.vel-line .vel-num{color:var(--accent-hi)}.p-note{font-size:.76rem;color:var(--muted);font-style:italic}.skill-inputs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.skill-input{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:6px 10px}.skill-input-lbl{font-size:.76rem;color:var(--muted);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-input input{width:64px;border:1px solid var(--line);border-radius:7px;padding:4px 6px;font:inherit;font-size:.82rem;background:var(--card);color:var(--ink);text-align:right}.skill-input input:focus{outline:2px solid var(--accent);border-color:transparent}.skills-list{margin:8px 0}.skill-row{display:flex;justify-content:space-between;align-items:center;padding:8px 2px;border-top:1px solid var(--line)}.skill-row:first-child{border-top:none}.skill-row-actions{display:flex;gap:12px}.veltable .vel-col{text-align:right;white-space:nowrap}.veltable thead th.vel-col{text-align:right}.veltable .vel-name{font-weight:600;white-space:nowrap}.veltable .vel-note{color:var(--muted);font-size:.8rem;max-width:180px}.veltable .vel-total-col{font-weight:700;background:hsla(17,44%,58%,.06)}.veltable tbody .vel-subtotal td{border-top:2px solid var(--line);background:var(--bg2);font-weight:700;font-size:.8rem;color:var(--ink)}.veltable tfoot .vel-grand td{border-top:2px solid var(--accent);background:hsla(17,44%,58%,.1);font-weight:800;font-size:.82rem}body.light .veltable .vel-total-col{background:#faf4f0}body.light .veltable tfoot .vel-grand td{background:#f4e8e1}.users-section{animation:fadeUp .35s ease both}.users-section .invite-row{margin:4px 0 12px}.users-section .ptable select{border:1px solid var(--line);border-radius:7px;padding:3px 6px;font:inherit;font-size:.8rem;background:var(--bg2);color:var(--ink)}.users-section .ptable .row-off{opacity:.55}.you-tag{color:var(--accent-hi);background:var(--track)}.pending-pw,.you-tag{margin-left:8px;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:99px;padding:2px 7px}.pending-pw{color:var(--warn);background:rgba(226,160,63,.16)}.btn.ghost.active-nav{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.person.archived{opacity:.62;border-color:var(--line)}.person.archived:hover{opacity:1}.former-badge,.person.archived .p-name{color:var(--muted)}.former-badge{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--track);border:1px solid var(--line);border-radius:99px;padding:2px 8px;white-space:nowrap}.pct-hi{background:rgba(91,123,163,.25);color:#9dbde4}.pct-mid{background:rgba(201,130,94,.18);color:#d99672}.pct-zero{background:hsla(0,0%,100%,.06);color:var(--muted)}.rel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px;border-left:4px solid var(--line);animation:fadeUp .35s ease both;transition:transform .18s,box-shadow .18s}.rel:hover{transform:translateX(3px);box-shadow:0 10px 26px rgba(0,0,0,.35)}.rel.soon{border-left-color:var(--warn)}.rel.now{border-left-color:var(--danger)}.rel-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:8px}.rel-name{font-weight:600}.rel-date{font-weight:700;color:var(--accent);font-size:.87rem}.rel-tag{font-size:.72rem;font-weight:700;padding:2px 10px;border-radius:99px;background:rgba(226,160,63,.18);color:#eab868;margin-left:8px}.rel-tag.hot{background:rgba(224,92,92,.2);color:#ef8a8a}.rel ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}.rel li{background:var(--card2);border-radius:8px;padding:6px 12px;font-size:.8rem}.rel li b{color:var(--accent)}.empty{padding:40px;font-size:.9rem}.empty,.note{color:var(--muted);text-align:center}.note{font-size:.78rem;margin-top:14px}.footer-brand{margin-top:26px;text-align:center;color:var(--muted);font-size:.75rem;letter-spacing:.08em}.footer-brand b{color:var(--accent);font-weight:600}.overlay{position:fixed;inset:0;background:rgba(8,13,20,.65);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;animation:fadeUp .2s ease}.modal{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);width:100%;max-width:460px;padding:22px;max-height:90vh;overflow:auto;animation:popIn .22s ease}.modal h2{font-size:1.05rem;margin-bottom:16px}.field{margin-bottom:13px}.field label{display:block;font-size:.76rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:.88rem;background:var(--bg2);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid var(--accent);border-color:transparent}.m-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.asg-row{display:flex;gap:8px;align-items:center;margin-bottom:9px}.asg-row select{flex:1 1}.asg-row input{width:86px}.err{color:var(--danger);font-size:.8rem;margin-top:8px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--on-accent);padding:11px 22px;border-radius:10px;font-size:.85rem;font-weight:600;box-shadow:var(--shadow);z-index:60;animation:slideUp .25s ease}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}body.light .badge.QA{background:#ede7fb;color:#6b46c1}body.light .badge.Product{background:#fdeee5;color:#c05621}body.light .badge.Engineering{background:#e3edfb;color:#2b5aa0}body.light .badge.PMO{background:#e2f5eb;color:#1f7a4d}body.light .pct-hi{background:#e3edfb;color:#2b5aa0}body.light .pct-mid{background:#fdeee5;color:#c05621}body.light .pct-zero{background:#f0f2f6;color:#8a92a5}body.light .rel-tag{background:#fdf3e0;color:#a06a1f}body.light .rel-tag.hot{background:#fbe4e4;color:#b03030}body.light .rel li{background:#f4f6fb}body.light .tab:hover:not(.active){color:var(--ink);background:rgba(0,0,0,.05)}body.light .proj tbody tr:hover{background:rgba(0,0,0,.03)}body.light .overlay{background:rgba(20,26,40,.45)}body.light .icon-btn{color:#b9c0cf}body.light .icon-btn:hover{color:var(--danger);background:#faeaea}body.light .btn.ghost:hover{background:rgba(184,113,78,.08)}.loading{text-align:center;color:var(--muted);padding:80px 0}.top-actions{gap:9px;flex-wrap:wrap}.top-actions,.user-chip{display:flex;align-items:center}.user-chip{gap:8px;background:var(--card2);border:1px solid var(--line);border-radius:99px;padding:5px 12px;cursor:pointer;color:var(--ink);font:inherit}.user-chip:hover{border-color:var(--accent)}.user-name{font-size:.82rem;font-weight:600}.role-badge{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:99px;background:hsla(0,0%,100%,.08);color:var(--muted)}.role-badge.admin{background:hsla(17,44%,58%,.22);color:var(--accent-hi)}.role-badge.editor{background:rgba(91,123,163,.22);color:#8fb2dd}.role-badge.viewer{background:rgba(143,160,181,.16);color:var(--muted)}.banner{background:rgba(226,160,63,.14);border:1px solid rgba(226,160,63,.35);color:var(--ink);border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:.85rem}.linkbtn{background:none;border:none;color:var(--accent-hi);font:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}.linkbtn.danger{color:var(--danger)}.status-badge{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:99px}.status-badge.active{background:rgba(76,189,133,.18);color:var(--ok)}.status-badge.inactive{background:rgba(143,160,181,.16);color:var(--muted)}.vel-pill{font-size:.7rem;font-weight:700;color:var(--accent-hi);background:hsla(17,44%,58%,.14);border-radius:99px;padding:2px 9px}.proj.inactive{opacity:.62}.proj.inactive:hover{opacity:1}.proj.inactive .proj-name{color:var(--muted)}.proj-body{border-top:1px solid var(--line)}.subtabs{display:flex;gap:4px;padding:10px 18px 0;background:var(--bg2)}.subtab{background:none;border:none;color:var(--muted);font:inherit;font-size:.78rem;font-weight:600;padding:6px 12px;border-radius:8px 8px 0 0;cursor:pointer}.subtab:hover{color:var(--ink)}.subtab.active{color:var(--accent-hi);background:var(--card);box-shadow:inset 0 -2px 0 var(--accent)}.notes{padding:14px 18px}.note-add{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.note-add textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font:inherit;font-size:.85rem;background:var(--bg2);color:var(--ink);resize:vertical}.note-add textarea:focus{outline:2px solid var(--accent);border-color:transparent}.note-add .btn{align-self:flex-start}.note-edit-actions{display:flex;gap:8px}.note-item{padding:10px 0;border-top:1px solid var(--line)}.note-item:first-child{border-top:none}.note-body{font-size:.88rem;white-space:pre-wrap;line-height:1.45}.note-meta{justify-content:space-between;color:var(--muted);font-size:.74rem;margin-top:5px}.note-actions,.note-meta{display:flex;gap:10px}.empty-inline{color:var(--muted);font-size:.84rem;padding:10px 0}.audit{padding:8px 18px 14px}.audit-item{display:grid;grid-template-columns:120px 1fr auto;grid-gap:12px;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line)}.audit-item:first-child{border-top:none}.audit-field{font-weight:700;font-size:.8rem}.audit-change{font-size:.84rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.audit-change .old{color:var(--muted);text-decoration:line-through}.audit-change .arrow{color:var(--accent)}.audit-change .new{color:var(--ink);font-weight:600}.audit-meta{color:var(--muted);font-size:.74rem;white-space:nowrap}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative}.login-theme{position:absolute;top:18px;right:18px}.login-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);width:100%;max-width:380px;padding:32px 28px;display:flex;flex-direction:column;gap:4px;animation:popIn .25s ease}.login-card .wordmark{margin-bottom:6px}.login-card h1{font-size:1.4rem;font-weight:700}.login-card h1 span{color:var(--accent)}.login-sub{color:var(--muted);font-size:.85rem;margin-bottom:14px}.login-card .field{margin-bottom:12px;width:100%}.login-btn{margin-top:6px;justify-content:center}.account-info{margin-bottom:16px;font-size:.9rem}.account-info .muted{color:var(--muted);font-size:.8rem;margin-top:2px}.invite-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.invite-row input{flex:1 1 130px;min-width:0}.invite-row input,.invite-row select{border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;font-size:.84rem;background:var(--bg2);color:var(--ink)}.notice{background:rgba(76,189,133,.14);border:1px solid rgba(76,189,133,.35);color:var(--ink);border-radius:9px;padding:9px 12px;font-size:.82rem;margin:8px 0;word-break:break-word}.users-table{max-height:46vh;overflow:auto;margin-top:6px}.users-table table{width:100%;border-collapse:collapse}.users-table th{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}.users-table td{padding:7px 8px;font-size:.82rem;border-top:1px solid var(--line)}.users-table td.muted{color:var(--muted)}.users-table select{border:1px solid var(--line);border-radius:7px;padding:3px 6px;font:inherit;font-size:.78rem;background:var(--bg2);color:var(--ink)}.users-table .row-off{opacity:.5}.user-row-actions{display:flex;gap:10px;white-space:nowrap}.role-help{font-size:.74rem;margin:12px 0 4px}body.light .role-badge.admin{background:#f6e7df;color:#a85a3c}body.light .status-badge.active{background:#e2f5eb;color:#1f7a4d}body.light .vel-pill{background:#f4e8e1;color:#a85a3c}.partners{animation:fadeUp .35s ease both}.partners-head{margin-bottom:16px}.section-title{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.section-title:after{content:"";display:block;width:44px;height:3px;background:var(--accent);border-radius:3px;margin-top:7px}.section-sub{color:var(--muted);font-size:.86rem;margin-top:10px;max-width:760px;line-height:1.5}.psummary{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.ps-item{flex:1 1 150px;background:linear-gradient(135deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.ps-num{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.ps-num.sm{font-size:.95rem}.ps-lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.pcontrols{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}.pcontrols .psearch{margin-left:auto}.viewonly-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--card2);border:1px solid var(--line);border-radius:99px;padding:6px 12px}.pfilters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.pselect{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:.82rem;background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.pselect:focus{outline:2px solid var(--accent);border-color:transparent}.status-pill{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:99px;white-space:nowrap;display:inline-block}.status-pill.st-updated{background:rgba(76,189,133,.18);color:var(--ok)}.status-pill.st-due{background:rgba(226,160,63,.18);color:var(--warn)}.status-pill.st-overdue{background:rgba(224,92,92,.18);color:var(--danger)}body.light .status-pill.st-updated{background:#e2f5eb;color:#1f7a4d}body.light .status-pill.st-due{background:#fdf3e0;color:#a06a1f}body.light .status-pill.st-overdue{background:#fbe4e4;color:#b03030}.ptable-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.ptable{width:100%;border-collapse:collapse;font-size:.84rem}.ptable thead th{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:11px 14px;background:var(--bg2);border-bottom:1px solid var(--line);white-space:nowrap;position:-webkit-sticky;position:sticky;top:0}.ptable td{padding:11px 14px;border-top:1px solid var(--line);vertical-align:top}.ptable .prow{transition:background .15s}.ptable .prow:hover{background:hsla(0,0%,100%,.03)}body.light .ptable .prow:hover{background:rgba(0,0,0,.03)}.ptable .prow.open{background:hsla(17,44%,58%,.07)}.ptable .prow.inactive{opacity:.6}.company-cell{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.company-cell .caret{display:inline-block;color:var(--muted);margin-right:8px;transition:transform .15s;font-size:.7rem}.prow.open .company-cell .caret{transform:rotate(90deg);color:var(--accent)}.company-name{font-weight:600}.type-badge{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:99px}.type-badge.Project{background:rgba(91,123,163,.22);color:#8fb2dd}.type-badge.Portfolio{background:rgba(155,120,220,.2);color:#b79aec}body.light .type-badge.Project{background:#e3edfb;color:#2b5aa0}body.light .type-badge.Portfolio{background:#ede7fb;color:#6b46c1}.scope-cell{max-width:220px;color:var(--ink)}.notes-cell{max-width:280px;color:var(--muted)}.notes-prev{display:block}.notes-more{margin-top:3px;font-size:.76rem}.resp-cell,.upd-cell{white-space:nowrap}.upd-cell{color:var(--muted)}.actions-col{white-space:nowrap;text-align:right}.actions-col .linkbtn{margin-left:10px}.actions-col .linkbtn:first-child{margin-left:0}.empty-cell{color:var(--muted);text-align:center;padding:30px}.prow-detail td{background:var(--bg2);padding:0;border-top:none}.pdetail{padding:6px 16px 16px}.pd-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--line)}.pd-tabs button{background:none;border:none;color:var(--muted);font:inherit;font-size:.78rem;font-weight:600;padding:8px 12px;cursor:pointer;border-radius:8px 8px 0 0}.pd-tabs button:hover{color:var(--ink)}.pd-tabs button.active{color:var(--accent-hi);box-shadow:inset 0 -2px 0 var(--accent)}.pd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px 20px;gap:12px 20px;margin-bottom:14px}.pd-grid>div{display:flex;flex-direction:column;gap:3px}.pd-lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.pd-val{font-size:.86rem}.pd-notes{margin-bottom:14px}.pd-notes p{font-size:.86rem;line-height:1.55;margin-top:5px;white-space:pre-wrap;max-width:820px}.pd-actions{display:flex;gap:9px;flex-wrap:wrap}.field-hint,.review-hint{color:var(--muted);font-size:.74rem;margin-top:6px;line-height:1.4}.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font:inherit;font-size:.88rem;background:var(--bg2);color:var(--ink);resize:vertical}.field textarea:focus{outline:2px solid var(--accent);border-color:transparent}@media (max-width:640px){.section-sub{font-size:.82rem}.ptable{font-size:.8rem}.notes-cell,.scope-cell{max-width:160px}}