*{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f6f8;color:#16181d}button,input,select,textarea{font:inherit}button{cursor:pointer}.appShell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#111318;color:#fff;padding:22px 16px;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.logoBlock{display:flex;gap:12px;align-items:center;padding:4px 8px 24px}.logoBlock b{display:block;font-size:17px}.logoBlock span{display:block;color:#9298a5;font-size:12px;margin-top:3px}.logoMark{width:38px;height:38px;border-radius:11px;background:#fff;color:#111318;display:grid;place-items:center;font-weight:900;letter-spacing:-1px}.logoMark.big{width:54px;height:54px;margin:0 auto 12px;background:#111318;color:#fff}.sidebar nav{display:grid;grid-gap:6px;gap:6px}.navItem{border:0;background:transparent;color:#aeb3be;text-align:left;padding:12px 14px;border-radius:10px;font-weight:650}.navItem.active,.navItem:hover{background:#242832;color:#fff}.profile{margin-top:auto;border-top:1px solid #292d35;padding:16px 6px 0;display:grid;grid-template-columns:34px 1fr auto;grid-gap:9px;gap:9px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:#343945;display:grid;place-items:center;font-weight:800}.avatar.large{width:54px;height:54px;font-size:20px;margin-bottom:10px}.profileText b,.profileText span{display:block}.profileText b{font-size:13px}.profileText span{font-size:11px;color:#9298a5;margin-top:3px}.linkBtn{background:none;border:0;color:#9298a5;font-size:12px}.content{padding:30px;min-width:0}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.header h1{font-size:28px;margin:0 0 5px;letter-spacing:-.5px}.header p,.panelHead p{margin:0;color:#707783;font-size:14px}.ghost,.primary{border-radius:10px;padding:10px 14px;font-weight:750;border:1px solid transparent}.primary{background:#111318;color:#fff}.primary:hover{background:#252a33}.primary:disabled{opacity:.55}.primary.wide{width:100%;margin-top:6px}.ghost{background:#fff;border-color:#e1e4e8;color:#333841}.ghost:hover{background:#f6f7f8}.ghost.small{padding:7px 10px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat{background:#fff;border:1px solid #e6e8eb;border-radius:14px;padding:18px}.stat span{font-size:13px;color:#737985;display:block}.stat strong{font-size:30px;display:block;margin-top:8px;letter-spacing:-1px}.stat.danger strong{color:#c62828}.panel{background:#fff;border:1px solid #e6e8eb;border-radius:16px;overflow:hidden}.panelHead{padding:18px 20px;border-bottom:1px solid #edf0f2;display:flex;align-items:center;justify-content:space-between}.panelHead h2{font-size:17px;margin:0 0 4px}.tableWrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}td,th{text-align:left;padding:13px 16px;border-bottom:1px solid #edf0f2;font-size:13px;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#858c97;background:#fbfbfc}td b,td span{display:block}td span{font-size:12px;color:#7b828d;margin-top:3px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:750}.empty{text-align:center;color:#8b9099;padding:30px}.red{color:#c62828!important}.badge{display:inline-block!important;width:max-content;padding:6px 8px;border-radius:999px;font-size:11px!important;font-weight:750;margin:0!important;background:#eef0f3;color:#4c535f!important}.s-in_progress{background:#fff3d8;color:#925f00!important}.s-review{background:#e9f1ff;color:#245caa!important}.s-revision{background:#f9eaff;color:#7d2b98!important}.s-completed{background:#e5f6ea;color:#236b35!important}.s-ready_to_invoice{background:#e8f5f4;color:#146c66!important}.s-invoiced{background:#e8ebef;color:#374151!important}.toolbar{padding:14px 16px;display:flex;gap:10px;border-bottom:1px solid #edf0f2}.formGrid input,.formGrid select,.formGrid textarea,.loginCard input,.toolbar input,.toolbar select{border:1px solid #dfe3e8;border-radius:9px;padding:10px 11px;background:#fff;outline:none}.formGrid input:focus,.formGrid select:focus,.formGrid textarea:focus,.loginCard input:focus,.toolbar input:focus,.toolbar select:focus{border-color:#8c96a5;box-shadow:0 0 0 3px rgba(17,19,24,.06)}.search{flex:1 1}.cardsList{display:grid}.listCard{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #edf0f2}.listCard b,.listCard span{display:block}.listCard span{font-size:12px;color:#7b828d;margin-top:4px}.teamGrid{padding:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.teamCard{border:1px solid #e5e8ec;border-radius:14px;padding:18px}.teamCard>b,.teamCard>span{display:block}.teamCard>span{font-size:12px;color:#7b828d;margin-top:3px}.load{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px;border-top:1px solid #edf0f2;padding-top:14px}.load div{text-align:center}.load span,.load strong{display:block}.load strong{font-size:20px}.load span{font-size:11px;color:#828894;margin-top:2px}.modalBack{position:fixed;inset:0;background:rgba(13,16,22,.48);display:grid;place-items:center;padding:18px;z-index:50}.modal{background:#fff;border-radius:16px;width:min(720px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modalHead{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #edf0f2}.modalHead h2{font-size:18px;margin:0}.modalHead button{border:0;background:none;font-size:26px;line-height:1;color:#666}.formGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;padding:20px}.formGrid label,.loginCard label{font-size:12px;font-weight:700;color:#505661;display:grid;grid-gap:7px;gap:7px}.formGrid .span2{grid-column:span 2}.formGrid textarea{resize:vertical}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start}.check input{width:17px;height:17px}.modalActions{padding:0 20px 20px;display:flex;justify-content:flex-end;gap:9px}.alert{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-size:13px;display:flex;justify-content:space-between}.alert.error,.fieldError{background:#fff0f0;color:#a72727}.alert.success{background:#eaf7ed;color:#256b35}.alert button{border:0;background:none;color:inherit}.fieldError{border-radius:8px;padding:9px 11px;margin:0 20px 12px;font-size:12px}.loginPage{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#f4f5f7,#e9ebef)}.loginCard{width:min(390px,100%);background:#fff;border:1px solid #e0e3e7;border-radius:18px;padding:30px;box-shadow:0 20px 55px rgba(23,27,35,.08)}.loginCard h1{text-align:center;margin:0;font-size:25px}.loginCard>p{text-align:center;color:#747b86;margin:7px 0 24px;font-size:13px}.loginCard label{margin-bottom:13px}.loginCard small{display:block;text-align:center;color:#969ca5;margin-top:14px;font-size:10px}@media(max-width:1050px){.stats{grid-template-columns:repeat(3,1fr)}.teamGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.appShell{display:block}.sidebar{height:auto;position:static;padding:12px}.logoBlock{padding-bottom:12px}.sidebar nav{display:flex;overflow:auto}.navItem{white-space:nowrap}.profile{margin-top:10px;padding-top:10px}.content{padding:16px}.header{align-items:flex-start;gap:10px}.stats{grid-template-columns:1fr 1fr}.formGrid,.teamGrid{grid-template-columns:1fr}.formGrid .span2{grid-column:span 1}.toolbar{flex-direction:column}.header p{display:none}}@media(max-width:420px){.stats{grid-template-columns:1fr}.header h1{font-size:23px}.primary{padding:9px 11px}}.profileActions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.profileActions .linkBtn:hover{color:#fff}.rowActions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.history{border-top:1px solid #edf0f2;padding:16px 20px 20px}.history h3{font-size:15px;margin:0 0 10px}.history ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px;max-height:260px;overflow:auto}.history li{background:#f7f8fa;border-radius:10px;padding:10px 12px;font-size:13px}.historyMeta{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px}.historyMeta span{color:#737985;font-size:12px}.historyLine{color:#333841}.muted{color:#737985;font-size:13px;margin:0}@media(max-width:760px){.profileActions{flex-direction:row}.listCard{gap:10px;align-items:flex-start}.historyMeta{flex-direction:column;gap:2px}}.readonlyStatus{min-height:40px;display:flex;align-items:center}.formGrid input:disabled,.formGrid select:disabled,.formGrid textarea:disabled{background:#f3f4f6;color:#333841;cursor:default;-webkit-text-fill-color:#333841}.tabs{gap:4px;padding:10px 20px 0;border-bottom:1px solid #edf0f2;overflow-x:auto}.tab,.tabs{display:flex}.tab{border:0;background:none;padding:10px 12px;font-weight:700;font-size:13px;color:#707783;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;align-items:center;gap:6px}.tab.active,.tab:hover{color:#16181d}.tab.active{border-bottom-color:#111318}.tabCount{background:#eef0f3;color:#4c535f;border-radius:999px;padding:1px 7px;font-size:11px}.tabBody{padding:16px 20px 20px;display:grid;grid-gap:12px;gap:12px}.tabBody h3{font-size:15px;margin:4px 0 0}.feed{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.feed li{background:#f7f8fa;border-radius:10px;padding:10px 12px;font-size:13px}.commentBody{white-space:pre-wrap;word-break:break-word;color:#333841}.muted.small{font-size:12px}.composer{display:grid;grid-gap:8px;gap:8px}.composer textarea,.reviewBox textarea{border:1px solid #dfe3e8;border-radius:9px;padding:10px 11px;background:#fff;outline:none;resize:vertical;width:100%}.composer textarea:focus,.reviewBox textarea:focus{border-color:#8c96a5;box-shadow:0 0 0 3px rgba(17,19,24,.06)}.composerActions,.reviewActions{display:flex;justify-content:flex-end;gap:9px}.fieldError.inline{margin:0}.uploadRow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.uploadRow input[type=file]{flex:1 1;min-width:0;font-size:13px}.fileRow{display:flex;justify-content:space-between;align-items:center;gap:10px}.fileRow b,.fileRow span{display:block}.fileRow span{font-size:12px;color:#7b828d;margin-top:3px}.fileName{word-break:break-all}.reviewBox{margin:16px 20px 0;padding:14px;border:1px solid #cfe0fb;background:#f4f8ff;border-radius:12px;display:grid;grid-gap:8px;gap:8px}.reviewBox h3{margin:0;font-size:15px}.revisionNote{margin:16px 20px 0;padding:12px 14px;border-radius:12px;background:#f9eaff;color:#5e1f73;font-size:13px}.revisionNote p{margin:4px 0 0;white-space:pre-wrap}.tabs~.history{border-top:0}.tabs~.history ul{max-height:none}@media(max-width:760px){.tabs{padding:8px 12px 0}.tabBody{padding:14px 16px 16px}.reviewBox,.revisionNote{margin:14px 16px 0}.fileRow{align-items:flex-start}}button.teamCard .avatar{color:#fff}button.teamCard{background:#fff;text-align:left;color:inherit;width:100%;transition:border-color .15s,box-shadow .15s}button.teamCard:hover{border-color:#c9ced6}button.teamCard.selected{border-color:#111318;box-shadow:0 0 0 3px rgba(17,19,24,.08)}.load{row-gap:14px}.teamJobs{margin-top:16px}.muted.pad{padding:20px}.b-not_billable{background:#eef0f3;color:#4c535f!important}.b-pending{background:#fff3d8;color:#925f00!important}.b-ready{background:#e8f5f4;color:#146c66!important}.b-draft{background:#e9f1ff;color:#245caa!important}.b-invoiced{background:#e5f6ea;color:#236b35!important}.billingBox{border:1px solid #e5e8ec;border-radius:12px;padding:6px 0 0;margin:0;min-width:0}.billingBox legend{font-size:12px;font-weight:800;color:#333841;padding:0 8px;margin-left:10px;display:flex;gap:8px;align-items:center}.billingBox>.muted{padding:4px 14px 0}.formGrid.inner{padding:12px 14px 14px}.formGrid input:disabled,.formGrid select:disabled{background:#f5f6f8;color:#6b7280}.stats.six{grid-template-columns:repeat(6,minmax(0,1fr))}.stat strong.money{font-size:18px;letter-spacing:-.3px;line-height:1.3}.monthToolbar{margin-bottom:16px}.monthToolbar .toolbar{border-bottom:0;align-items:flex-end;flex-wrap:wrap}.inlineField{display:grid;grid-gap:5px;gap:5px;font-size:12px;font-weight:700;color:#505661}.spacer{flex:1 1}.alert.warn{background:#fff7e6;color:#8a5a00}.customerGroup{border-bottom:1px solid #edf0f2}.customerGroup .listCard{border-bottom:0}.listCard.clickable{cursor:pointer}.listCard.clickable:hover{background:#fafbfc}.listCard .totalLine{color:#16181d;font-weight:750}.primary.small{padding:7px 10px;font-size:12px}.customerGroup .tableWrap{border-top:1px solid #edf0f2;background:#fcfcfd}.draftMeta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.draftMeta span{display:block;font-size:11px;color:#7b828d;text-transform:uppercase;letter-spacing:.04em}.draftMeta b{display:block;font-size:13px;margin-top:3px}.draftTable{min-width:620px}.num{text-align:right!important}tfoot td{background:#fbfbfc}.ghost.danger{color:#a72727}@media(max-width:1050px){.stats.six{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.draftMeta,.stats.six{grid-template-columns:1fr 1fr}.monthToolbar .toolbar{flex-direction:row}.inlineField{flex:1 1}.spacer{display:none}.monthToolbar .primary{width:100%}.customerGroup .listCard{flex-direction:column}}.p-high{background:#fff1e0;color:#a14d00!important}.p-urgent{background:#ffe5e5;color:#b42318!important}td b.titleLine{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tagChips{display:flex!important;flex-wrap:wrap;gap:4px;margin-top:5px!important}.tagChip{display:inline-block!important;font-size:11px!important;background:#f1f2f5;color:#4c535f!important;border-radius:6px;padding:2px 7px;margin:0!important}.filterBar{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 14px;border-bottom:1px solid #edf0f2}.bulkBar input,.bulkBar select,.filterBar input,.filterBar select,.notifToolbar select,.textInput{border:1px solid #dfe3e8;border-radius:9px;padding:8px 10px;background:#fff;font-size:13px;max-width:100%}.checkCol{width:36px;padding-right:0!important}.checkCol input{width:16px;height:16px}tr.checkedRow td{background:#f6f8fc}.bulkBar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;background:#111318;color:#fff}.bulkBar b{font-size:13px;margin-right:4px}.bulkBar .primary{background:#fff;color:#111318}.bulkBar .fieldError{flex-basis:100%}.listCount{padding:10px 16px}.tagPicker{border:1px solid #e5e8ec;border-radius:12px;margin:0;padding:8px 12px 12px;display:flex;flex-wrap:wrap;gap:6px;min-width:0}.tagPicker legend{font-size:12px;font-weight:700;color:#505661;padding:0 4px}.tagOption{display:inline-flex!important;align-items:center;gap:6px!important;border:1px solid #dfe3e8;border-radius:999px;padding:5px 10px;font-weight:650!important;cursor:pointer}.tagOption.on{background:#111318;border-color:#111318;color:#fff!important}.tagOption input{width:14px;height:14px;margin:0}.copyRow{display:flex;justify-content:flex-end;padding:14px 20px 0}.copyBox{margin:16px 20px 0;padding:14px;border:1px solid #e5e8ec;background:#fafbfc;border-radius:12px;display:grid;grid-gap:8px;gap:8px}.copyBox h3{margin:0;font-size:15px}.copyBox .check{font-size:13px;gap:8px}.navItem{display:flex;align-items:center;justify-content:space-between;gap:8px}.navBadge{background:#e5484d;color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;font-weight:800}.stats.inPanel{padding:16px 16px 4px;margin:0}.stats.four{grid-template-columns:repeat(4,minmax(0,1fr))}.padX{padding:0 16px 12px}.listCard.selectedCard{background:#f6f8fc}.statBtn{text-align:left;font:inherit;color:inherit;cursor:pointer}.statBtn.selected{border-color:#111318;box-shadow:0 0 0 3px rgba(17,19,24,.08)}.warnText{color:#8a5a00!important;margin-top:4px}.managerBoard{margin-top:16px}.boardGrid{display:grid;grid-template-columns:280px 1fr;grid-gap:0;gap:0;border-top:1px solid #edf0f2}.boardGrid h3{font-size:14px;margin:0;padding:14px 16px}.busiest{border-right:1px solid #edf0f2}.busiest ol{margin:0;padding:0 16px 16px 34px;display:grid;grid-gap:10px;gap:10px}.busiest li b,.busiest li span{display:block}.busiest li span{font-size:12px;color:#7b828d;margin-top:2px}.busiest em{font-style:normal}.boardList{min-width:0}td.num span{font-size:11px}.notifToolbar{flex-wrap:wrap;align-items:flex-end}.notifList{list-style:none;margin:0;padding:0}.notifList li{display:flex;justify-content:space-between;gap:12px;padding:13px 20px;border-bottom:1px solid #edf0f2;font-size:13px}.notifList li.unread{background:#f6f8fc}.notifMain{min-width:0;flex:1 1}.notifList .historyMeta b{font-weight:700}.notifList .code{font-size:12px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e5484d;margin-right:7px;vertical-align:middle}@media(max-width:1050px){.stats.four{grid-template-columns:repeat(2,1fr)}.boardGrid{grid-template-columns:1fr}.busiest{border-right:0;border-bottom:1px solid #edf0f2}}@media(max-width:760px){.filterBar input,.filterBar select{flex:1 1 45%}.bulkBar input,.bulkBar select{flex:1 1 100%}.notifList li{flex-direction:column}.notifToolbar{flex-direction:row}.notifToolbar select{flex:1 1 45%}.navItem{justify-content:flex-start}}.ownerPanel{display:grid;grid-gap:16px;gap:16px}.sourceBar{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:11px 14px;border-radius:12px;background:#eef2f7;color:#334155;font-size:13px}.sourceBar.demo{background:#fff7e0;color:#7a5200;border:1px dashed #e0b84a}.sourceBar b{font-size:13px}.demoTag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#fff3cc;color:#7a5200;border:1px solid #f0d27a;border-radius:6px;padding:2px 6px;white-space:nowrap}.kpiGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.kpi{position:relative;min-width:0}.kpi span i{font-style:normal;color:#9aa0aa}.kpi strong{word-break:break-word}.kpiTag{margin-top:8px}.attentionGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;padding:16px}.attentionCard{border:1px solid #e6e8eb;border-radius:12px;padding:14px;display:grid;grid-gap:8px;gap:8px;align-content:start;min-width:0}.attentionHead{display:flex;justify-content:space-between;align-items:center;gap:8px}.attentionHead h3{margin:0;font-size:14px}.countPill{background:#eef0f3;color:#4c535f;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:800}.countPill.hot{background:#ffe5e5;color:#b42318}.attentionCard ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.attentionCard li{display:flex;justify-content:space-between;gap:8px;font-size:13px;border-top:1px solid #f0f1f3;padding-top:8px}.attentionCard li b,.attentionCard li span{display:block}.attentionCard li span{font-size:12px;color:#7b828d;margin-top:2px}.attentionCard li em{font-style:normal;font-weight:750;white-space:nowrap}.chartGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.chartPanel.wide{grid-column:span 2}.chartBody{padding:12px 16px 4px}.chartNote{padding:0 0 10px}.barChart{width:100%;height:auto;display:block}.barChart .grid{stroke:#eef0f3;stroke-width:1}.barChart .baseline{stroke:#c9ced6;stroke-width:1}.barChart .axis{font-size:11px;fill:#858c97}.barChart .valueLabel{font-size:12px;font-weight:750;fill:#16181d}.barChart g{outline:none;cursor:default}.barChart.revenue .bar{fill:#3b6fd6}.barChart.revenue .bar.active{fill:#2a56ad}.barChart.collection .bar{fill:#2f9e74}.barChart.collection .bar.active{fill:#237a59}.shareList{list-style:none;margin:0;padding:16px;display:grid;grid-gap:12px;gap:12px}.shareList li{display:grid;grid-template-columns:110px 1fr 150px;grid-gap:12px;gap:12px;align-items:center;font-size:13px}.shareName{font-weight:700}.shareTrack{background:#f1f2f5;border-radius:4px;height:14px;overflow:hidden}.shareBar{display:block;height:100%;background:#3b6fd6;border-radius:0 4px 4px 0}.shareValue{color:#4c535f;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media(max-width:1050px){.attentionGrid,.kpiGrid{grid-template-columns:repeat(2,1fr)}.chartGrid{grid-template-columns:1fr}.chartPanel.wide{grid-column:span 1}}@media(max-width:760px){.attentionGrid{grid-template-columns:1fr;padding:12px}.shareList li{grid-template-columns:80px 1fr}.shareValue{grid-column:span 2;text-align:left}.ownerPanel .panelHead{flex-wrap:wrap;gap:6px}}@media(max-width:420px){.kpiGrid{grid-template-columns:1fr}}