:root{--blue:#3776f6;--line:#e2e5ea;--text:#3d434d;--muted:#9098a5;--green:#bff1c3;--cream:#fff8e1;--sidebar:244px}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:#f6f7f9}button,input,select,textarea{font:inherit;color:inherit}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar);flex:none;background:#fff;border-right:1px solid var(--line);transition:.2s;overflow:hidden}.side-top{height:62px;display:flex;align-items:center;gap:6px;padding:12px 8px;border-bottom:1px solid #f0f1f3}.side-search{width:160px;height:36px;display:flex;align-items:center;gap:8px;border:1px solid #cdd9f7;border-radius:8px;padding:0 8px;color:#7f8998}.side-search:focus-within{box-shadow:0 0 0 2px #e3ebff}.side-search input{width:100%;border:0;outline:0}.icon-btn{background:none;border:0;font-size:22px;color:#737b86;cursor:pointer}.sidebar nav{padding:8px}.nav-item,.nav-section,.nav-group{height:40px;display:flex;align-items:center;gap:9px;padding:0 10px;border-radius:7px;font-size:14px;white-space:nowrap}.nav-item{cursor:pointer}.nav-item:hover{background:#f6f8fc}.nav-item.active{background:#edf3ff;color:#2f6ff3;font-weight:600;margin-left:38px}.nav-item.active b{margin-left:auto}.nav-section{margin-top:2px}.nav-group{padding-left:28px}.nav-item.indent{padding-left:48px}.workflow em{font-size:11px;color:#8294b5;font-style:normal;margin-left:auto}.table-icon{color:var(--blue)}.workspace{min-width:0;flex:1;display:flex;flex-direction:column;background:white}.tabs{height:62px;display:flex;align-items:stretch;background:#f5f6f8;border-bottom:1px solid var(--line)}.tab{display:flex;align-items:center;gap:9px;padding:0 22px;color:#717985;border-right:1px solid #e3e5e8}.tab.active{background:#fff;color:#29313d;font-weight:600;border-radius:10px 10px 0 0}.tab.active span{color:var(--blue)}.tab-add,.mobile-menu{border:0;background:none;font-size:22px}.mobile-menu{display:none}.toolbar{height:62px;flex:none;display:flex;justify-content:space-between;align-items:center;padding:0 14px;border-bottom:1px solid var(--line);gap:14px}.tool-left,.tool-right{display:flex;align-items:center;gap:5px;white-space:nowrap}.toolbar button{border:0;background:transparent;padding:7px 8px;border-radius:5px;cursor:pointer}.toolbar button:hover{background:#f1f3f6}.toolbar .primary{color:var(--blue);font-weight:600}.pill{background:#eef0f4!important}.pill.tan{background:#f6eee7!important}.pill.blue{background:#eaf1f8!important}.pill.yellow{background:#fff2bf!important}.filter-panel{display:none;align-items:flex-end;gap:12px;padding:12px 18px;background:#fafbfc;border-bottom:1px solid var(--line);box-shadow:0 5px 12px #0000000a}.filter-panel.show{display:flex}.filter-panel label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#777}.filter-panel input,.filter-panel select{height:34px;border:1px solid #d9dde3;border-radius:6px;padding:0 10px;background:#fff}.filter-panel button{height:34px;border:0;border-radius:6px;padding:0 14px}.table-wrap{flex:1;overflow:auto;position:relative}table{border-collapse:separate;border-spacing:0;min-width:1780px;width:100%;table-layout:fixed;font-size:14px}col.num{width:62px}col.id{width:235px}col.category{width:130px}col.project{width:160px}col.amount{width:105px}col.date{width:130px}col.owner{width:116px}col.client{width:160px}col.status{width:310px}col.files{width:195px}col.note{width:210px}th,td{height:38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 10px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff}thead th{height:40px;position:sticky;top:0;z-index:4;color:#535a65;font-weight:500;background:#fff}.rownum,td:first-child{text-align:center;color:#9199a6;background:#e2f8e4}.id-head,td:nth-child(2){background:var(--green)}.project-head,td:nth-child(4){background:var(--cream)}td.amount{text-align:right}.group-row td{height:50px;background:#fff;font-weight:600;position:relative}.group-row td:first-child{background:#e2f8e4}.group-row td:nth-child(2){background:#fff}.group-row .chev{display:inline-block;margin-right:7px;transition:.2s}.group-row.collapsed .chev{transform:rotate(-90deg)}.group-row small{float:right;color:#8e96a2;font-weight:400}.tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;margin-right:5px;border-radius:12px;font-size:13px;cursor:pointer}.tag.category{background:#ffead1}.tag.paid{background:#dfe6f7}.tag.refund{background:#e4edf2}.tag.submitted{background:#ffe591}.tag.review{background:#ffe8cc}.tag.done{background:#8ee59a;color:#145c22}.avatar{width:22px;height:22px;display:inline-grid;place-items:center;margin-right:7px;border-radius:50%;background:#111;color:#dfbf27;font-size:10px}.data-row:hover td{filter:brightness(.985)}.data-row.selected td{box-shadow:inset 0 0 0 999px #3578f60c}.empty{display:none;padding:80px;text-align:center;color:#999}.empty.show{display:block}footer{height:32px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;color:#929aa6;font-size:12px;border-top:1px solid var(--line)}.modal{position:fixed;inset:0;z-index:20;background:#18243b66;display:none;place-items:center;padding:20px}.modal.show{display:grid}.modal-card{width:min(620px,100%);background:#fff;border-radius:14px;padding:24px;box-shadow:0 20px 70px #17233a40}.modal-head{display:flex;justify-content:space-between}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:6px 0 20px;color:#9299a4;font-size:13px}.modal-head button{border:0;background:none;font-size:26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{font-size:13px}.form-grid input,.form-grid textarea{display:block;width:100%;margin-top:6px;border:1px solid #dfe3e9;border-radius:7px;padding:9px;outline:0}.form-grid input:focus,.form-grid textarea:focus{border-color:#6693f6;box-shadow:0 0 0 3px #eaf0ff}.wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.modal-actions button{border:0;border-radius:7px;padding:9px 20px}.cancel{background:#f1f2f4}.save{background:var(--blue);color:#fff}.toast{position:fixed;left:50%;bottom:28px;z-index:30;transform:translate(-50%,20px);opacity:0;background:#263042;color:#fff;padding:9px 20px;border-radius:8px;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}body.side-collapsed .sidebar{width:0;border:0}
@media(max-width:900px){.sidebar{position:fixed;z-index:10;height:100%;transform:translateX(-100%);box-shadow:8px 0 30px #0002}.sidebar.open{transform:translateX(0)}.mobile-menu{display:block}.tool-right{display:none}.toolbar{overflow-x:auto}.tabs .tab:not(.active),.tab-add{display:none}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}}
.status-picker{margin:0;border:1px solid #dfe3e9;border-radius:8px;padding:10px 12px}.status-picker legend{padding:0 5px;font-size:13px}.status-picker div{display:flex;flex-wrap:wrap;gap:8px}.status-option{display:flex!important;align-items:center;gap:6px;padding:7px 11px;border-radius:16px;background:#f3f5f8;cursor:pointer}.status-option input{width:auto;margin:0}.data-row{cursor:pointer}.nav-item.active{cursor:default}.delete-record{display:none;margin-right:auto;background:#fff0f0;color:#cf3d3d}.delete-record.show{display:block}
.tabs .tab{border:0;border-right:1px solid #e3e5e8;background:transparent;cursor:pointer}.tabs .tab.active{background:#fff}.toolbar-select,.toolbar-check{display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;background:#f3f5f8;font-size:13px}.toolbar-select select{border:0;background:transparent;outline:0}.toolbar-check input{accent-color:var(--blue)}th{position:relative}.col-resizer{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize;z-index:8}.col-resizer:hover,.col-resizer.dragging{background:#76a0ff}.board-wrap{display:none;flex:1;overflow:auto;padding:18px;background:#f5f6f8}.board-wrap.show{display:flex;gap:14px}.board-column{min-width:280px;width:280px;align-self:flex-start;background:#e9ecf1;border-radius:10px;padding:10px}.board-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;padding:5px 3px 12px}.board-count{background:#fff;color:#818996;border-radius:11px;padding:2px 8px;font-size:12px}.board-card{background:#fff;border:1px solid #e0e3e8;border-radius:9px;padding:12px;margin-bottom:9px;box-shadow:0 2px 5px #26354a0a;cursor:pointer}.board-card:hover{border-color:#82a5f7}.board-card h3{font-size:14px;margin:0 0 9px}.board-card p{font-size:12px;color:#6f7783;margin:5px 0;white-space:normal}.board-card .money{color:#2f6ff3;font-weight:600}.board-card .category-chip{display:inline-block;background:#ffead1;border-radius:11px;padding:3px 8px;font-size:11px;margin-bottom:8px}.board-card.done-card{opacity:.72}.table-wrap.hidden{display:none}
@media(max-width:900px){.tabs .tab{display:flex!important;padding:0 10px;font-size:13px}.board-wrap{padding:10px}.board-column{min-width:250px;width:250px}}
.page-title{height:72px;flex:none;display:flex;align-items:center;gap:12px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line)}.title-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,#3478f6,#5a8cf5);color:#fff;font-weight:700}.page-title h1{margin:0;font-size:20px;color:#252d3a}.page-title p{margin:4px 0 0;font-size:12px;color:#929aa6}@media(max-width:600px){.page-title{height:60px;padding:0 12px}.page-title h1{font-size:17px}.page-title p{display:none}}
.form-grid select{display:block;width:100%;margin-top:6px;border:1px solid #dfe3e9;border-radius:7px;padding:9px;background:#fff;outline:0}.form-grid select:focus{border-color:#6693f6;box-shadow:0 0 0 3px #eaf0ff}
.preset-card{width:min(680px,100%)}.preset-sections{display:grid;grid-template-columns:1fr 1fr;gap:14px}.preset-section{border:1px solid #e0e4ea;border-radius:9px;padding:12px}.preset-section h3{font-size:14px;margin:0 0 10px}.preset-add{display:flex;gap:7px}.preset-add input{min-width:0;flex:1;border:1px solid #dce1e8;border-radius:6px;padding:8px}.preset-add button{border:0;border-radius:6px;background:#eaf1ff;color:#2f6ff3;padding:0 11px;cursor:pointer}.preset-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:120px;overflow:auto}.preset-chip{display:flex;align-items:center;gap:6px;background:#f1f3f6;border-radius:13px;padding:4px 8px;font-size:12px}.preset-chip button{border:0;background:none;color:#9ba2ad;padding:0;cursor:pointer}.preset-chip button:hover{color:#d33}@media(max-width:650px){.preset-sections{grid-template-columns:1fr}}
.preset-chip .rename-preset:hover{color:#2f6ff3}.board-wrap.show{display:block}.chart-dashboard{min-width:760px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.metric-card{background:#fff;border:1px solid #e1e4e9;border-radius:10px;padding:18px}.metric-card span{display:block;color:#838b97;font-size:12px;margin-bottom:9px}.metric-card strong{font-size:25px;color:#263142}.metric-card.blue strong{color:#3478f6}.metric-card.green strong{color:#28a745}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chart-panel{background:#fff;border:1px solid #e1e4e9;border-radius:10px;padding:17px;min-height:280px}.chart-panel.wide{grid-column:1/-1}.chart-panel h3{font-size:15px;margin:0 0 18px}.bar-row{display:grid;grid-template-columns:105px 1fr 70px;align-items:center;gap:10px;margin:11px 0;font-size:12px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:17px;background:#eef1f5;border-radius:4px;overflow:hidden}.bar-fill{height:100%;min-width:3px;border-radius:4px;background:linear-gradient(90deg,#6a9af8,#3478f6)}.bar-fill.green{background:linear-gradient(90deg,#7bd68b,#3bb657)}.bar-fill.orange{background:linear-gradient(90deg,#ffc874,#f2a33a)}.bar-value{text-align:right;color:#67717e}.chart-empty{padding:70px;text-align:center;color:#929aa5}@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}.chart-panel.wide{grid-column:auto}}
.finance-wrap{display:none;flex:1;overflow:auto;padding:18px;background:#f5f6f8}.finance-wrap.show{display:block}.finance-dashboard{min-width:760px}.finance-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.finance-panel{background:#fff;border:1px solid #e1e4e9;border-radius:10px;padding:17px}.finance-panel h3{margin:0 0 14px;font-size:15px}.report-table{width:100%;min-width:0;table-layout:auto;border-collapse:collapse}.report-table th,.report-table td{position:static;height:38px;background:#fff;border-right:0;padding:0 9px}.report-table th{background:#f7f8fa;color:#737c89;font-size:12px}.report-table td:nth-child(2),.report-table th:nth-child(2){background:#fff;text-align:center}.report-table .report-money{text-align:right;color:#2f6ff3;font-weight:600}.finance-note{font-size:12px;color:#8b929d;margin:0 0 14px}@media(max-width:900px){.finance-grid{grid-template-columns:1fr}}
.finance-month{grid-column:1/-1}
.side-brand{height:72px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid #edf0f4}.side-brand>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#3979f6;color:#fff;font-weight:700}.side-brand strong,.side-brand small{display:block}.side-brand strong{font-size:14px}.side-brand small{margin-top:3px;color:#929aa6;font-size:11px}.quick-stats{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;padding:12px 16px;background:#f7f9fc;border-bottom:1px solid #e5e8ed}.quick-stat{display:flex;align-items:center;gap:10px;min-height:54px;padding:9px 13px;background:#fff;border:1px solid #e5e8ed;border-radius:9px}.quick-stat i{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#eaf1ff;color:#3979f6;font-style:normal}.quick-stat.warning i{background:#fff3dc;color:#d88a18}.quick-stat.success i{background:#e8f8eb;color:#2eaa4e}.quick-stat.cost i{background:#fff0e5;color:#db7b2b}.quick-stat small,.quick-stat strong{display:block}.quick-stat small{color:#8a929e;font-size:11px}.quick-stat strong{margin-top:2px;font-size:16px}.quick-stats.hidden{display:none}.toolbar.view-hidden,.filter-panel.view-hidden{display:none!important}.report-sidebar{background:linear-gradient(180deg,#fff,#fafbfd)}.report-sidebar .nav-item{transition:.15s}.report-sidebar .nav-item:hover{background:#f1f5fc}.toolbar{box-shadow:0 2px 8px #1b2d4a08;z-index:5}.table-wrap{scrollbar-color:#bdc5d0 #f3f5f7}.modal-card{max-height:92vh;overflow:auto}.finance-panel,.chart-panel,.metric-card{box-shadow:0 3px 12px #27375308}.metric-card{transition:.18s}.metric-card:hover{transform:translateY(-2px);box-shadow:0 7px 20px #27375312}@media(max-width:1100px){.quick-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.quick-stats{grid-template-columns:1fr 1fr;padding:8px}.quick-stat{padding:7px}.quick-stat i{display:none}}
.workspace{width:auto}.view-hidden{display:none!important}
.cloud-account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:#7d8794}.cloud-account span:before{content:'●';margin-right:6px;color:#e5a329}.cloud-account span.online:before{color:#32b451}.cloud-account button{display:none;border:1px solid #dce1e8;background:#fff;border-radius:6px;padding:5px 9px;cursor:pointer}.cloud-account button.show{display:block}.auth-modal{display:none;background:#15213a99}.auth-modal.show{display:grid}.auth-card{width:min(390px,100%);text-align:center;padding:30px}.auth-logo{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 14px;border-radius:12px;background:#3979f6;color:#fff;font-weight:700;font-size:19px}.auth-card h2{margin:0}.auth-card p{font-size:13px;color:#8c94a0;margin:8px 0 22px}.auth-card label{display:block;text-align:left;font-size:13px;margin:12px 0}.auth-card input{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #dce1e8;border-radius:7px}.auth-submit,.auth-register{width:100%;border:0;border-radius:7px;padding:11px;margin-top:8px;cursor:pointer}.auth-register{background:#f1f4f8;color:#3979f6}.auth-card>small{display:block;min-height:20px;margin-top:12px;color:#d44545}

/* 2026 layout refresh */
body{background:#f4f6fa;color:#273142}.app-shell{background:#f4f6fa}.report-sidebar{width:230px;border-right:1px solid #e7ebf1;box-shadow:4px 0 18px #26354a08;z-index:7}.side-brand{padding:0 18px}.report-sidebar nav{padding:14px 12px}.report-sidebar .nav-section{font-size:12px;color:#929aa6;text-transform:uppercase;letter-spacing:.4px;padding-left:8px}.report-sidebar .nav-group{height:32px;padding-left:8px;font-weight:700;color:#394557}.report-sidebar .nav-item{height:42px;margin:3px 0;padding:0 12px;border-radius:9px}.report-sidebar .nav-item.active{box-shadow:inset 3px 0 #3979f6}.report-sidebar .sub-nav{padding-left:30px}.workspace{background:#f7f8fb}.page-title{height:74px;padding:0 24px;border-bottom:0;box-shadow:0 1px 0 #e6e9ee}.page-title h1{font-size:21px}.view-heading{min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:15px 22px;background:#fff;border-top:1px solid #f3f4f6;border-bottom:1px solid #e7eaf0}.view-heading h2{margin:0;font-size:19px}.view-heading p{margin:5px 0 0;color:#8b94a1;font-size:12px}.today-label{padding:7px 11px;border-radius:7px;background:#f2f5fa;color:#758090;font-size:12px}.toolbar{height:auto;min-height:60px;padding:10px 16px;background:#fff;flex-wrap:wrap}.tool-left{flex-wrap:wrap}.toolbar button,.toolbar-select,.toolbar-check{min-height:34px;border-radius:7px}.toolbar .primary{background:#3979f6;color:#fff;padding:8px 14px;box-shadow:0 4px 10px #3979f633}.toolbar .primary:hover{background:#2868e7}.tool-right{margin-left:auto}.quick-stats{padding:12px 16px;gap:12px}.quick-stat{border:0;box-shadow:0 3px 12px #2737530b}.table-wrap{margin:0 16px 14px;border:1px solid #e1e5eb;border-radius:10px;background:#fff;box-shadow:0 4px 16px #26354a08}thead th{height:44px;background:#fafbfd;font-size:13px}.group-row td:first-child{border-radius:0}.board-wrap,.finance-wrap{padding:18px 22px}.metric-card,.chart-panel,.finance-panel{border:0;border-radius:12px}.metric-card{padding:20px}.chart-panel,.finance-panel{padding:20px}.modal{backdrop-filter:blur(3px)}.modal-card{border:1px solid #ffffff55;box-shadow:0 24px 80px #15213a38}.form-grid{gap:16px}.form-grid input,.form-grid select,.form-grid textarea{min-height:42px}.save{box-shadow:0 4px 10px #3979f633}
@media(max-width:900px){.app-shell{height:auto;min-height:100vh;display:block;overflow:visible}.report-sidebar{position:sticky!important;top:0;width:100%;height:auto;z-index:15;border-right:0;border-bottom:1px solid #dfe4eb}.side-brand,.report-sidebar .nav-section,.report-sidebar .nav-group{display:none}.report-sidebar nav{display:flex;padding:7px;gap:5px;overflow-x:auto}.report-sidebar .nav-item,.report-sidebar .sub-nav{flex:1;min-width:108px;height:38px;margin:0;padding:0 9px;justify-content:center;text-align:center}.report-sidebar .nav-item.active{box-shadow:inset 0 -3px #3979f6}.workspace{min-height:calc(100vh - 53px)}.page-title{height:62px;padding:0 12px}.title-mark{width:34px;height:34px}.page-title h1{font-size:17px}.cloud-account{gap:5px}.cloud-account span{max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-account button{font-size:11px;padding:4px 6px}.view-heading{min-height:67px;padding:11px 13px}.view-heading h2{font-size:17px}.view-heading p{font-size:11px}.today-label{display:none}.toolbar{padding:8px;min-height:auto;display:block}.tool-left{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.toolbar button,.toolbar-select,.toolbar-check{flex:none}.tool-right{display:none}.quick-stats{padding:8px;gap:8px}.quick-stat{min-height:48px}.table-wrap{margin:0 8px 10px;border-radius:8px}.board-wrap,.finance-wrap{padding:10px}.chart-dashboard,.finance-dashboard{min-width:680px}.modal{padding:10px;align-items:end}.modal-card{border-radius:16px 16px 0 0;max-height:90vh;padding:20px}.form-grid{grid-template-columns:1fr 1fr;gap:11px}.form-grid .wide{grid-column:1/-1}}
@media(max-width:540px){.page-title p{display:none}.quick-stats{grid-template-columns:1fr 1fr}.quick-stat strong{font-size:14px}.quick-stat small{font-size:10px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.auth-card{border-radius:16px;padding:25px}.page-title .title-mark{display:none}}

/* Refined business dashboard theme */
:root{--blue:#4f6ef7;--line:#e6eaf0;--text:#1e293b;--green:#d9f7df;--cream:#fff8df}body{font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#f2f5fa}.report-sidebar{background:linear-gradient(180deg,#172033 0%,#111827 100%);border:0;box-shadow:8px 0 28px #10182720;color:#fff}.side-brand{height:78px;border-color:#ffffff12}.side-brand>span{background:linear-gradient(145deg,#7186ff,#4361ee);box-shadow:0 8px 18px #0003}.side-brand strong{color:#fff}.side-brand small{color:#94a3b8}.report-sidebar .nav-section{color:#718096}.report-sidebar .nav-group{color:#e2e8f0}.report-sidebar .nav-item{color:#aeb9ca}.report-sidebar .nav-item:hover{background:#ffffff0d;color:#fff}.report-sidebar .nav-item.active,.report-sidebar .sub-nav.active{background:linear-gradient(90deg,#516ff733,#617bff18);color:#fff;box-shadow:inset 3px 0 #7e92ff}.workspace{background:#f2f5fa}.page-title{height:78px;background:#fff;padding:0 28px;box-shadow:0 1px 0 #e8ebf0}.title-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#607af8,#3f5de9);box-shadow:0 7px 18px #4f6ef73d}.page-title h1{font-size:22px;letter-spacing:-.3px}.page-title p{color:#94a3b8}.cloud-account span{background:#f7f9fc;border:1px solid #e8ebf1;border-radius:20px;padding:6px 10px}.view-heading{margin:16px 18px 0;min-height:72px;border:0;border-radius:14px 14px 0 0;padding:14px 20px;background:linear-gradient(135deg,#fff,#fafbff);box-shadow:0 5px 22px #1e293b0a}.view-heading h2{font-size:20px;letter-spacing:-.2px}.today-label{background:#eef2ff;color:#4f65c8;font-weight:500}.toolbar{margin:0 18px;background:#fff;border-top:1px solid #edf0f5;box-shadow:0 7px 22px #1e293b0a;padding:11px 14px}.toolbar button,.toolbar-select,.toolbar-check{border:1px solid #e8ebf1!important;background:#f8fafc!important;color:#536174;transition:.15s}.toolbar button:hover{border-color:#cbd5ff!important;background:#f0f3ff!important;color:#405de4}.toolbar .primary{border:0!important;background:linear-gradient(135deg,#5b76f7,#4361e9)!important;color:#fff;box-shadow:0 7px 16px #4f6ef733}.toolbar .primary:hover{background:linear-gradient(135deg,#4968f0,#3655db)!important;color:#fff}.toolbar .pill{background:#f8fafc!important}.quick-stats{margin:0 18px;padding:14px 0;background:transparent;border:0}.quick-stat{min-height:70px;padding:12px 15px;border:1px solid #e9edf3;box-shadow:0 6px 18px #1e293b0a;position:relative;overflow:hidden}.quick-stat:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#607af8}.quick-stat.cost:after{background:#f59e0b}.quick-stat.warning:after{background:#f97316}.quick-stat.success:after{background:#22c55e}.quick-stat i{width:38px;height:38px;border-radius:11px}.quick-stat strong{font-size:18px;color:#243047}.table-wrap{margin:0 18px 18px;border:0;border-radius:14px;box-shadow:0 8px 28px #1e293b10}table{font-size:13px}thead th{height:47px;background:#f8fafc;color:#596579;border-bottom:2px solid #e8ecf2}.id-head{background:#e5f9e9!important}.project-head{background:#fff8df!important}.data-row td{height:42px;border-color:#edf0f4}.data-row:hover td{filter:none!important;background:#f6f8ff!important}.data-row:hover .id-cell{background:#d0f3d8!important}.data-row:hover .project-cell{background:#fff3c8!important}.tag{font-size:12px;font-weight:500}.group-row td:first-child{height:52px!important;background:linear-gradient(90deg,#e9efff,#f8faff);border-left:4px solid #5974ef}.group-type{background:linear-gradient(135deg,#5c75ef,#425ddc)}footer{background:#fff}.board-wrap,.finance-wrap{padding:16px 18px 22px}.metric-grid{gap:16px}.metric-card{min-height:104px;border:1px solid #e9edf3;box-shadow:0 7px 22px #1e293b0b}.metric-card span{font-size:12px}.metric-card strong{font-size:27px}.chart-grid,.finance-grid{gap:16px}.chart-panel,.finance-panel{border:1px solid #e9edf3;box-shadow:0 7px 22px #1e293b0b}.chart-panel h3,.finance-panel h3{font-size:16px;color:#273449}.bar-track{height:13px;background:#eef1f6;border-radius:7px}.bar-fill{border-radius:7px;background:linear-gradient(90deg,#8091fb,#4f6ef7)}.report-table th{background:#f7f9fc;color:#64748b}.report-table tr:hover td{background:#f8faff}.modal{background:#0f172a88}.modal-card{border:0;border-radius:18px}.modal-head h2{font-size:21px}.save{background:linear-gradient(135deg,#5a75f5,#4260e6)}
@media(max-width:900px){.report-sidebar{background:#172033}.report-sidebar .nav-item.active{background:#ffffff12}.page-title{margin:0;height:64px}.view-heading{margin:10px 9px 0;border-radius:12px 12px 0 0}.toolbar{margin:0 9px}.quick-stats{margin:0 9px;padding:9px 0}.quick-stat{min-height:55px}.table-wrap{margin:0 9px 12px}.board-wrap,.finance-wrap{padding:10px 9px}.cloud-account span{padding:4px 7px}}
.dashboard-intro,.finance-hero{min-height:126px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:22px 25px;border-radius:14px;background:linear-gradient(125deg,#263b85,#4f6ef7 65%,#7186ff);color:#fff;box-shadow:0 12px 28px #4058bd35;overflow:hidden;position:relative}.dashboard-intro:after,.finance-hero:after{content:"";position:absolute;width:190px;height:190px;right:-45px;top:-80px;border:36px solid #ffffff0d;border-radius:50%}.dashboard-intro>div:first-child,.finance-hero>div:first-child{position:relative;z-index:1}.dashboard-intro span,.finance-hero span{font-size:12px;color:#dbe3ff}.dashboard-intro h3,.finance-hero h3{margin:5px 0;font-size:23px}.dashboard-intro p,.finance-hero p{margin:0;color:#dbe3ff;font-size:12px}.completion-ring,.margin-card{width:86px;height:86px;display:grid;place-content:center;text-align:center;border:9px solid #ffffff35;border-top-color:#fff;border-radius:50%;position:relative;z-index:1}.completion-ring strong,.margin-card strong{font-size:20px}.completion-ring span,.margin-card span{font-size:10px;color:#dbe3ff}.metric-card small{display:block;margin-top:8px;color:#94a3b8;font-size:11px}.metric-card.profit strong{color:#16a34a}.metric-card.cost-card strong{color:#ea8a18}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-title h3{margin:0}.panel-title>span{padding:4px 8px;border-radius:12px;background:#f1f4f9;color:#8892a0;font-size:10px}.donut-layout{display:flex;align-items:center;justify-content:center;gap:28px;min-height:210px}.donut{width:146px;height:146px;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px #fff}.donut>div{width:91px;height:91px;display:grid;place-content:center;text-align:center;border-radius:50%;background:#fff;box-shadow:0 3px 12px #1e293b1c}.donut strong{font-size:23px}.donut span{font-size:10px;color:#94a3b8}.donut-legend{min-width:130px}.donut-legend>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:7px;margin:9px 0;font-size:11px}.donut-legend i{width:8px;height:8px;border-radius:50%}.donut-legend b{color:#526071}.trend-panel{margin-bottom:16px;min-height:270px}.trend-chart{height:180px;display:flex;align-items:flex-end;justify-content:space-around;gap:12px;padding:12px 20px 0;border-bottom:1px solid #e8ebf0;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#eef1f5 45px)}.trend-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.trend-bars{height:145px;display:flex;align-items:flex-end;justify-content:center;gap:5px}.trend-bars i{display:block;width:18px;min-height:3px;border-radius:5px 5px 2px 2px}.trend-bars .income{background:linear-gradient(#7e91ff,#4f6ef7)}.trend-bars .expense{background:linear-gradient(#ffc36a,#f59e0b)}.trend-item>span{font-size:10px;color:#788391}.trend-legend{display:flex;justify-content:center;gap:20px;margin-top:12px;font-size:11px;color:#718096}.trend-legend span{display:flex;align-items:center;gap:5px}.trend-legend i{width:9px;height:9px;border-radius:2px}.trend-legend .income{background:#4f6ef7}.trend-legend .expense{background:#f59e0b}.report-scroll{max-height:360px;overflow:auto;border:1px solid #edf0f4;border-radius:8px}.report-scroll thead th{position:sticky;top:0;z-index:2}.report-table tbody tr:last-child td{border-bottom:0}.finance-month .report-scroll{max-height:280px}@media(max-width:900px){.dashboard-intro,.finance-hero{min-height:108px;padding:17px}.dashboard-intro h3,.finance-hero h3{font-size:19px}.completion-ring,.margin-card{width:72px;height:72px;border-width:7px}.donut-layout{justify-content:flex-start}.trend-chart{padding-left:5px;padding-right:5px}.trend-bars i{width:13px}}
col.cost{width:110px}td.cost{text-align:right;color:#d27c2c}
.sortable-head{cursor:pointer;user-select:none}.sortable-head:hover{background:#f0f5ff}.sortable-head span{float:right;color:#8b95a5}
.group-row td:first-child{height:48px!important;text-align:left;background:linear-gradient(90deg,#edf4ff,#f7f9fd);border-left:5px solid #3979f6;padding:0 16px;color:#26354a}.group-row:hover td:first-child{background:linear-gradient(90deg,#e4efff,#f3f7fd)}.group-row .chev{color:#3979f6;font-weight:700}.group-type{display:inline-block;margin-right:10px;padding:3px 9px;border-radius:12px;background:#3979f6;color:#fff;font-size:12px;font-weight:600}.group-title{font-size:17px;letter-spacing:.3px;color:#17243a}.group-row small{margin-top:3px}

/* 项目经营增强栏目 */
table{min-width:1695px}col.profit{width:112px}col.payment{width:108px}.profit{text-align:right;color:#16a34a;font-weight:650}.profit.negative{color:#dc4c4c}.payment-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:12px;font-size:11px;font-weight:650}.pay-未收款{background:#fee2e2;color:#b91c1c}.pay-部分收款{background:#fff0c8;color:#a16207}.pay-已收款{background:#dcfce7;color:#15803d}.pay-已退款{background:#e2e8f0;color:#475569}.profit-preview{background:#f2fbf5!important;color:#16803d;font-weight:700}.metric-card.warning strong{color:#d97706}
@media(max-width:1250px){.metric-grid.extended{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.metric-grid.extended{grid-template-columns:repeat(2,1fr)}.filter-panel.show{align-items:stretch;flex-direction:column}.filter-panel label{width:100%}}
.metric-card.profit{text-align:left;color:inherit;font-weight:normal}
.filter-panel{flex-wrap:wrap}

/* 2026 usability refinement */
table{min-width:1840px}col.id{width:140px}col.category{width:115px}col.project{width:145px}col.status{width:260px}col.note{width:180px}col.files{width:145px}
thead th:first-child{position:sticky;left:0;z-index:7}thead th:nth-child(2){position:sticky;left:62px;z-index:7}.data-row td:first-child{position:sticky;left:0;z-index:2}.data-row td:nth-child(2){position:sticky;left:62px;z-index:2}.data-row:hover td:first-child,.data-row:hover td:nth-child(2){filter:none!important}
.data-row [data-status]{cursor:pointer}.data-row [data-status]:hover{box-shadow:0 0 0 2px #4f6ef72b}.row-index span{font-variant-numeric:tabular-nums}.id-cell{font-weight:650;color:#285b41}
.form-section-title{display:flex;align-items:center;gap:9px;margin-top:3px;padding:4px 0 2px;color:#273449;font-size:13px;font-weight:700;border-bottom:1px solid #edf0f4}.form-section-title span{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:#edf2ff;color:#4f6ef7;font-size:10px}.form-grid>.form-section-title:first-child{margin-top:0}.modal-card{width:min(720px,100%)}
.empty.show{display:flex;min-height:280px;flex-direction:column;align-items:center;justify-content:center;gap:8px}.empty strong{font-size:16px;color:#455166}.empty span{font-size:12px;color:#96a0ae}.empty button{margin-top:8px;border:0;border-radius:8px;padding:9px 15px;background:#4f6ef7;color:#fff;cursor:pointer;box-shadow:0 5px 14px #4f6ef738}
.cloud-account #syncNowBtn{color:#405de4;background:#eef2ff;border-color:#dfe5ff}.cloud-account #syncNowBtn:hover{background:#e2e8ff}.cloud-account button.show{display:block}.cloud-account span.online{color:#187947;background:#effbf3;border-color:#d8f2e1}
.context-action{display:none}.context-action.show{display:block}
table[data-width="compact"]{min-width:1515px}table[data-width="compact"] col.id{width:110px}table[data-width="compact"] col.category{width:100px}table[data-width="compact"] col.project{width:125px}table[data-width="compact"] col.amount,table[data-width="compact"] col.cost{width:88px}table[data-width="compact"] col.profit{width:92px}table[data-width="compact"] col.date{width:112px}table[data-width="compact"] col.owner{width:100px}table[data-width="compact"] col.client{width:130px}table[data-width="compact"] col.payment{width:96px}table[data-width="compact"] col.status{width:220px}table[data-width="compact"] col.note{width:145px}table[data-width="compact"] col.files{width:115px}
table[data-width="standard"]{min-width:1695px}
table[data-width="wide"]{min-width:2075px}table[data-width="wide"] col.id{width:165px}table[data-width="wide"] col.category{width:140px}table[data-width="wide"] col.project{width:180px}table[data-width="wide"] col.amount,table[data-width="wide"] col.cost,table[data-width="wide"] col.profit{width:125px}table[data-width="wide"] col.date{width:145px}table[data-width="wide"] col.owner{width:135px}table[data-width="wide"] col.client{width:190px}table[data-width="wide"] col.payment{width:120px}table[data-width="wide"] col.status{width:330px}table[data-width="wide"] col.note{width:230px}table[data-width="wide"] col.files{width:185px}
table[data-width="extra"]{min-width:2550px}table[data-width="extra"] col.id{width:200px}table[data-width="extra"] col.category{width:170px}table[data-width="extra"] col.project{width:220px}table[data-width="extra"] col.amount,table[data-width="extra"] col.cost,table[data-width="extra"] col.profit{width:150px}table[data-width="extra"] col.date{width:170px}table[data-width="extra"] col.owner{width:160px}table[data-width="extra"] col.client{width:240px}table[data-width="extra"] col.payment{width:145px}table[data-width="extra"] col.status{width:420px}table[data-width="extra"] col.note{width:300px}table[data-width="extra"] col.files{width:230px}
@media(max-width:900px){table{min-width:1680px}.modal-card{width:100%}.form-section-title{grid-column:1/-1}.cloud-account #syncNowBtn{font-size:0;width:30px;padding:4px}.cloud-account #syncNowBtn:after{content:'↻';font-size:15px}}
.data-row td{background:#fff!important}.data-row .row-index{background:#e2f8e4!important}.data-row .id-cell{background:var(--green)!important}.data-row .project-cell{background:var(--cream)!important}
.workspace{width:100%}.toolbar{padding-left:18px}.tabs{padding-left:0}
.report-sidebar{display:block}.report-sidebar nav{padding-top:14px}.report-sidebar .nav-item{width:100%;border:0;background:transparent;text-align:left;font-weight:500}.report-sidebar .nav-item.active{margin-left:0;background:#eaf1ff;color:#2f6ff3}.report-sidebar .sub-nav{padding-left:34px;color:#626d7d}.report-sidebar .sub-nav.active{background:#eaf1ff;color:#2f6ff3}.report-sidebar .nav-item span{width:18px;text-align:center}@media(min-width:901px){.report-sidebar{width:220px}}@media(max-width:900px){.report-sidebar{width:100%;transform:none!important;height:auto;box-shadow:none}}@media(max-width:800px){.report-sidebar{width:100%}.report-sidebar .nav-item,.report-sidebar .nav-section,.report-sidebar .nav-group{font-size:12px}.report-sidebar .sub-nav{padding-left:22px}}

/* Desktop productivity polish */
.tool-main,.tool-options{display:flex;align-items:center;gap:6px;white-space:nowrap}.tool-main{min-width:0;flex:1}.tool-options{flex:none}.tool-divider{width:1px;height:24px;margin:0 2px;background:#e4e8ef}.table-search{width:clamp(205px,18vw,310px);height:36px;display:flex;align-items:center;gap:7px;padding:0 8px;border:1px solid #dfe4ec;border-radius:8px;background:#fff;color:#8390a2;transition:.15s}.table-search:focus-within{border-color:#91a5ff;box-shadow:0 0 0 3px #4f6ef715}.table-search>span{font-size:18px;line-height:1}.table-search input{min-width:0;flex:1;border:0;background:transparent;outline:0;font-size:13px}.toolbar .search-clear{display:none!important;width:22px;height:22px;min-height:22px;padding:0!important;border:0!important;border-radius:50%;background:#eef1f6!important;color:#7a8492;place-items:center}.toolbar .search-clear.show{display:grid!important}.toolbar #filterBtn.active-filter{border-color:#9bafff!important;background:#eef2ff!important;color:#405de4}.sortable-head.active-sort{background:#eef3ff!important;color:#405de4;font-weight:650}.sortable-head:focus-visible{outline:2px solid #7892ff;outline-offset:-2px}.sort-indicator{margin-left:5px;font-size:12px}.numeric-head,.amount,.cost,.profit{text-align:right!important;font-variant-numeric:tabular-nums}.report-money,.metric-card strong,.quick-stat strong{font-variant-numeric:tabular-nums}.data-row:focus{outline:0}.data-row:focus-visible td{box-shadow:inset 0 2px #6f88fa,inset 0 -2px #6f88fa}.data-row .id-cell{background:#eefaf1!important}.data-row .project-cell{background:#fffaf0!important}.data-row:nth-child(even) td:not(.row-index):not(.id-cell):not(.project-cell){background:#fbfcff!important}.resizing-column{cursor:col-resize!important;user-select:none}.chart-dashboard,.finance-dashboard{max-width:1500px;margin:0 auto}

.table-wrap{--sticky-1:0px;--sticky-2:62px;--sticky-3:202px;--sticky-4:317px;scrollbar-gutter:stable}.table-wrap thead th:nth-child(1),.table-wrap thead th:nth-child(2),.table-wrap thead th:nth-child(3),.table-wrap thead th:nth-child(4){position:sticky;z-index:9}.table-wrap thead th:nth-child(1){left:var(--sticky-1)}.table-wrap thead th:nth-child(2){left:var(--sticky-2)}.table-wrap thead th:nth-child(3){left:var(--sticky-3)}.table-wrap thead th:nth-child(4){left:var(--sticky-4);box-shadow:7px 0 12px -10px #1e293b99}.table-wrap .data-row td:nth-child(1),.table-wrap .data-row td:nth-child(2),.table-wrap .data-row td:nth-child(3),.table-wrap .data-row td:nth-child(4){position:sticky;z-index:3}.table-wrap .data-row td:nth-child(1){left:var(--sticky-1)}.table-wrap .data-row td:nth-child(2){left:var(--sticky-2)}.table-wrap .data-row td:nth-child(3){left:var(--sticky-3)}.table-wrap .data-row td:nth-child(4){left:var(--sticky-4);box-shadow:7px 0 12px -10px #1e293b99}.table-wrap .group-row td:first-child{position:sticky!important;top:47px;left:0!important;z-index:7;box-shadow:0 5px 10px -9px #1e293b99}

@media(min-width:901px){.side-brand,.page-title{height:68px}.page-title{padding:0 22px}.title-mark{width:38px;height:38px}.page-title h1{font-size:20px}.view-heading{min-height:58px;margin-top:11px;padding:9px 18px}.view-heading h2{font-size:18px}.toolbar{min-height:54px;margin:0 18px;padding:8px 11px;flex-wrap:nowrap;gap:10px;overflow-x:auto}.toolbar button,.toolbar-select,.toolbar-check{min-height:34px;font-size:12px}.quick-stats{padding:9px 0;gap:10px}.quick-stat{min-height:58px;padding:9px 12px}.quick-stat i{width:34px;height:34px}.quick-stat strong{font-size:16px}.filter-panel{margin:0 18px;padding:10px 12px;border-top:1px solid #edf0f5;border-radius:0 0 12px 12px}.table-wrap{margin-bottom:12px}#recordForm{width:min(820px,calc(100vw - 64px));height:min(760px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden}#recordForm .modal-head{flex:none}#recordForm .form-grid{min-height:0;flex:1;align-content:start;overflow-y:auto;padding:2px 8px 10px 2px;scrollbar-gutter:stable}#recordForm .modal-actions{flex:none;margin-top:0;padding-top:15px;border-top:1px solid #edf0f4;background:#fff}}
@media(min-width:901px) and (max-width:1500px){.report-sidebar{width:190px}.side-brand{padding:0 14px}.report-sidebar nav{padding-left:9px;padding-right:9px}.table-search{width:205px}.toolbar{gap:7px}.tool-main,.tool-options{gap:4px}.toolbar .primary{padding-left:10px;padding-right:10px}.toolbar-select,.toolbar-check{padding-left:6px;padding-right:6px}}
@media(min-width:901px) and (max-width:1400px){.report-sidebar{width:180px}.table-search{width:180px}.toolbar{padding-left:9px;padding-right:9px}.toolbar button,.toolbar-select,.toolbar-check{font-size:11.5px}}

/* Desktop project identity system */
@media(min-width:901px){
  .id-head,.project-head{background:#f7f9fc!important}.data-row .row-index{background:#f8fafc!important}.data-row .id-cell{background:#f7f9fc!important;color:#425166;font-family:"Cascadia Mono","SFMono-Regular",Consolas,monospace;font-weight:650}.data-row .project-cell{background:var(--project-soft-strong)!important;color:var(--project-text);font-weight:700}.project-cell .project-swatch{width:8px;height:8px;display:inline-block;margin-right:8px;border-radius:50%;background:var(--project-accent);box-shadow:0 0 0 3px var(--project-soft)}.project-cell strong{font-weight:700}.project-row .row-index{box-shadow:inset 4px 0 var(--project-accent)}
  .table-wrap .group-row td:first-child{height:58px!important;padding:6px 16px 0;background:linear-gradient(90deg,var(--project-soft-strong),var(--project-soft) 42%,#fff 78%)!important;border-top:6px solid #f2f5fa;border-left:5px solid var(--project-accent);color:var(--project-text);box-shadow:0 5px 12px -10px #1e293b99}.table-wrap .group-row:hover td:first-child{background:linear-gradient(90deg,var(--project-soft-strong),var(--project-soft) 58%,#fff 88%)!important}.group-row .chev{color:var(--project-accent)!important}.group-row .group-type{margin-right:9px;background:var(--project-accent)!important;box-shadow:none}.group-row .group-title{max-width:180px;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;color:var(--project-text)!important;font-size:18px;font-weight:750}.group-secondary{display:inline-flex;align-items:center;max-width:140px;height:24px;margin-left:8px;padding:0 8px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;border:1px solid color-mix(in srgb,var(--project-accent) 20%,#fff);border-radius:12px;background:#ffffffb8;color:#718096;font-size:11px;font-weight:500}.group-summary{display:inline-flex;align-items:center;gap:5px;margin-left:15px;vertical-align:middle}.group-metric{height:25px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border:1px solid #e8ebf1;border-radius:7px;background:#ffffffd9;color:#7a8594;font-size:11px;font-weight:500}.group-metric b{color:#354154;font-variant-numeric:tabular-nums}.group-profit b{color:#159447}.group-profit.negative b{color:#dc4c4c}.group-metric.attention{border-color:#ffe0b2;background:#fff8eb;color:#b76508}.group-metric.complete{border-color:#ccefd8;background:#f0fbf4;color:#198754}.group-last td{border-bottom-color:#d9e0e9}
  .table-wrap .project-row:hover td:not(.id-cell):not(.project-cell){background:var(--project-soft)!important}.table-wrap .project-row:hover .row-index,.table-wrap .project-row:hover .id-cell{background:#f1f4f8!important}.table-wrap .project-row:hover .project-cell{background:var(--project-soft-strong)!important;box-shadow:inset 0 1px var(--project-accent),inset 0 -1px var(--project-accent),7px 0 12px -10px #1e293b99}.project-row .amount{color:#24334a;font-weight:650}.project-row .cost{color:#b76a23}.project-row .profit{font-weight:750}
  .project-bar-label{display:flex;align-items:center;gap:7px}.project-bar-label i{width:8px;height:8px;flex:none;border-radius:50%;background:var(--project-accent);box-shadow:0 0 0 3px var(--project-soft-strong)}.bar-fill.project-profit{background:var(--project-accent)}.bar-fill.project-profit.negative{background:#e85c5c}.project-bar .bar-value{color:var(--project-text);font-weight:650}.project-bar .bar-value.negative{color:#d64545}
}
@media(min-width:901px){.group-row .group-type{background:var(--project-text)!important}.group-secondary{border-color:#e3e7ef}}

/* Customer directory */
.customer-wrap{display:none;flex:1;overflow:auto;padding:16px 18px 22px;background:#f2f5fa}.customer-wrap.show{display:block}.customer-dashboard{max-width:1500px;margin:0 auto}.customer-hero{min-height:118px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:22px 25px;border-radius:14px;background:linear-gradient(125deg,#0f766e,#2563eb 70%,#4f6ef7);color:#fff;box-shadow:0 12px 28px #2563eb26}.customer-hero span{font-size:12px;color:#dff7ff}.customer-hero h3{margin:5px 0;font-size:23px}.customer-hero p{margin:0;color:#dff7ff;font-size:12px}.customer-total{width:86px;height:86px;display:grid;place-content:center;text-align:center;border:9px solid #ffffff35;border-top-color:#fff;border-radius:50%}.customer-total strong{font-size:22px}.customer-total span{font-size:10px}.customer-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.customer-metric{min-height:102px;padding:18px 19px;border:1px solid #e9edf3;border-radius:12px;background:#fff;box-shadow:0 7px 22px #1e293b0b}.customer-metric span,.customer-metric small{display:block}.customer-metric span{color:#7d8795;font-size:12px;margin-bottom:8px}.customer-metric strong{font-size:26px;color:#25324a;font-variant-numeric:tabular-nums}.customer-metric small{margin-top:7px;color:#94a3b8;font-size:11px}.customer-metric.green strong{color:#159447}.customer-metric.blue strong{color:#405de4}.customer-metric.warn strong{color:#e07a16}.customer-toolbar{min-height:56px;display:flex;align-items:center;gap:12px;margin-bottom:0;padding:10px 12px;border:1px solid #e9edf3;border-bottom:0;border-radius:12px 12px 0 0;background:#fff;box-shadow:0 7px 22px #1e293b0b}.customer-search{width:360px;height:36px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #dfe4ec;border-radius:8px;background:#f8fafc;color:#8390a2}.customer-search input{min-width:0;flex:1;border:0;background:transparent;outline:0}.customer-filters{display:flex;gap:6px}.customer-filters button{height:34px;padding:0 13px;border:1px solid #e1e6ef;border-radius:7px;background:#f8fafc;cursor:pointer}.customer-filters button.active{border-color:#9bafff;background:#eef2ff;color:#405de4;font-weight:650}.customer-toolbar #customerResultCount{margin-left:auto;color:#7c8796;font-size:12px}.customer-table-card{overflow:auto;border:1px solid #e9edf3;border-radius:0 0 12px 12px;background:#fff;box-shadow:0 7px 22px #1e293b0b}.customer-table{width:100%;min-width:1120px!important;table-layout:fixed;border-collapse:separate;border-spacing:0}.customer-table th,.customer-table td{height:52px!important;padding:0 12px;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;background:#fff!important;color:#273142;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-table th{position:sticky;top:0;z-index:2;height:44px!important;background:#f8fafc!important;color:#596579;font-size:12px;font-weight:650}.customer-table th:first-child,.customer-table td:first-child{width:245px;text-align:left;background:#fff!important;color:#273142}.customer-table th:nth-child(2),.customer-table td:nth-child(2){width:290px;background:#fff!important}.customer-table th:nth-child(3),.customer-table td:nth-child(3){width:78px;text-align:center}.customer-table th:nth-child(4),.customer-table th:nth-child(5),.customer-table td:nth-child(4),.customer-table td:nth-child(5){width:118px;text-align:right}.customer-table th:nth-child(6),.customer-table td:nth-child(6){width:118px}.customer-table th:nth-child(7),.customer-table td:nth-child(7){width:210px}.customer-table th:nth-child(8),.customer-table td:nth-child(8){width:96px;text-align:center}.customer-row:hover td{background:#f7f9ff!important}.customer-name{display:flex;align-items:center;gap:10px;min-width:0}.customer-avatar{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:10px;background:var(--project-soft-strong);color:var(--project-text);font-weight:750;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--project-accent) 22%,#fff)}.customer-name strong,.customer-name small{display:block;overflow:hidden;text-overflow:ellipsis}.customer-name strong{font-size:14px;color:#1f2b3d}.customer-name small{max-width:170px;margin-top:3px;color:#8a95a5;font-size:11px}.customer-projects,.customer-statuses{display:flex;align-items:center;gap:6px;overflow:hidden}.customer-project-chip{height:25px;display:inline-flex;align-items:center;gap:6px;max-width:112px;padding:0 8px;border:1px solid color-mix(in srgb,var(--project-accent) 22%,#fff);border-radius:7px;background:var(--project-soft);color:var(--project-text);font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis}.customer-project-chip i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--project-accent)}.customer-more{height:24px;padding:4px 7px;border-radius:7px;background:#eef2f7;color:#758094;font-size:11px}.customer-number,.customer-money,.customer-profit{font-variant-numeric:tabular-nums;font-weight:700}.customer-money{color:#24334a}.customer-profit{color:#159447}.customer-profit.negative{color:#d64545}.customer-badge{height:24px;display:inline-flex;align-items:center;padding:0 8px;border-radius:7px;background:#edf2f7;color:#667386;font-size:11px;font-weight:650}.customer-badge.warn{background:#fff2dc;color:#b76508}.customer-badge.amber{background:#fff8eb;color:#b76508}.customer-badge.ok{background:#eaf8ef;color:#198754}.customer-badge.repeat{background:#eef2ff;color:#405de4}.customer-open{height:30px;padding:0 10px;border:1px solid #cbd5ff;border-radius:7px;background:#eef2ff;color:#405de4;font-size:12px;font-weight:650;cursor:pointer}.customer-open:hover{background:#dfe7ff}.customer-empty{padding:34px;text-align:center;color:#8a94a3}
@media(min-width:901px){.customer-wrap{padding:16px 18px 22px}.customer-dashboard{min-width:940px}.customer-table tbody tr:last-child td{border-bottom:0}}

/* 精简客户资料：仅保留联系方式与项目记录 */
.customer-dashboard .customer-metrics{grid-template-columns:repeat(3,1fr)}
.customer-table{min-width:860px!important}
.customer-table th:first-child,.customer-table td:first-child{width:31%}
.customer-table th:nth-child(2),.customer-table td:nth-child(2){width:auto}
.customer-table th:nth-child(3),.customer-table td:nth-child(3){width:96px;text-align:center}
.customer-table th:nth-child(4),.customer-table td:nth-child(4){width:108px;text-align:center}
.customer-project-record{display:inline-flex;align-items:center;gap:6px;max-width:180px;height:27px;margin-right:6px;padding:0 8px;border:1px solid color-mix(in srgb,var(--project-accent) 22%,#fff);border-radius:7px;background:var(--project-soft);color:var(--project-text);font:inherit;font-size:12px;font-weight:650;vertical-align:middle;cursor:pointer;transition:.15s}.customer-project-record:hover{filter:brightness(.97);border-color:var(--project-accent);box-shadow:0 2px 7px #1e293b12}.customer-project-record i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--project-accent)}.customer-project-record span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-project-record small{flex:none;color:inherit;opacity:.72;font-weight:500}
.customer-actions{display:flex!important;align-items:center;justify-content:center;gap:5px}.customer-edit{height:30px;padding:0 10px;border:1px solid #dce3f5;border-radius:7px;background:#fff;color:#405de4;font-size:12px;font-weight:650;cursor:pointer}.customer-edit:hover{background:#eef2ff;border-color:#aebdf7}
.customer-actions .customer-edit{display:none!important}
.customer-table th:last-child{font-size:0}.customer-table th:last-child::after{content:'查看';font-size:12px}
.customer-projects{flex-wrap:wrap;max-height:88px;overflow:auto;align-content:center;padding:4px 0}
.table-wrap .group-type{display:none!important}
.table-wrap .group-summary .group-profit{display:none!important}
.table-wrap .group-row{cursor:pointer}.table-wrap .group-title{max-width:260px!important;font-size:19px!important;letter-spacing:0}.table-wrap .group-summary{gap:7px;margin-left:12px}.table-wrap .group-metric{background:#ffffffeb}
.customer-readonly .form-grid input:disabled,.customer-readonly .form-grid select:disabled,.customer-readonly .form-grid textarea:disabled{background:#f7f9fc;color:#4d5b70;border-color:#e4e8ef;opacity:1;cursor:not-allowed}.customer-readonly .status-option{cursor:default}.customer-readonly .status-option input:disabled{opacity:.8}


/* 项目识别与桌面端扫读优化 */
@media(min-width:901px){
  .table-wrap thead th{letter-spacing:.1px}
  .table-wrap thead th .col-resizer{right:-4px;width:9px}
  .table-wrap thead th .col-resizer:hover,.table-wrap thead th .col-resizer.dragging{background:linear-gradient(180deg,transparent 12%,#6d88f8 12%,#6d88f8 88%,transparent 88%)}
  .table-wrap .data-row td{vertical-align:middle}
  .table-wrap .data-row .category .tag{height:26px;padding:0 11px;border:1px solid #f4c894;background:#fff1df;color:#9a571b;font-weight:650;box-shadow:0 1px 2px #b76a2314}
  .table-wrap .data-row .client-cell{color:#4f5d72}
  .table-wrap .data-row .payment-badge{box-shadow:inset 0 0 0 1px #ffffff80}
  .table-wrap .group-row td:first-child{background:linear-gradient(90deg,var(--project-soft-strong),var(--project-soft) 46%,#fff 86%)!important}
  .table-wrap .group-row .group-title{font-weight:800;letter-spacing:.15px}
  .table-wrap .group-row .group-summary{margin-left:17px}
  .table-wrap .group-row .group-metric{box-shadow:0 1px 2px #1e293b0a}
  .table-wrap .project-row:nth-of-type(even) td:not(.row-index):not(.id-cell):not(.project-cell){background:#fcfdff!important}
  .table-wrap .data-row td:nth-child(5){color:#526071;font-variant-numeric:tabular-nums}
  .table-wrap .data-row td:nth-child(9){color:#334155;font-weight:700}
  .table-wrap thead .rownum{font-size:11px;color:#8490a1}
  .table-wrap thead th{font-weight:650}
}
