
.wf-board{--dp-bg:light-dark(#f3f5fa,#17202d);--dp-panel:light-dark(#fff,#222e40);--dp-ink:light-dark(#19304c,#e7edf8);--dp-muted:light-dark(#718199,#b1bdd1);--dp-line:light-dark(#dde4ef,#3d4c61);--dp-blue:light-dark(#3158dc,#95acff);--dp-soft:light-dark(#eef2ff,#2e3c59);--dp-green:light-dark(#28705a,#94d9bf);--dp-greenbg:light-dark(#e1f1e9,#29463e);--dp-red:light-dark(#b43e38,#ffaaa3);--dp-redbg:light-dark(#fff1ee,#4b3035);--dp-off:light-dark(#edf0f5,#293344);font:14px/1.5 "Microsoft YaHei",system-ui,sans-serif;color:var(--dp-ink);background:var(--dp-bg);position:relative;border:1px solid var(--dp-line);border-radius:10px;color-scheme:light dark}
.wf-board *{box-sizing:border-box}.wf-board [hidden]{display:none!important}.wf-board button,.wf-board select,.wf-board input{font:inherit}.wf-board button:disabled{opacity:.45}.wf-board .dp-shell{display:grid;grid-template-columns:132px minmax(0,1fr)}.wf-board .dp-nav{background:#172746;color:#c1cee8;padding:22px 10px;border-radius:9px 0 0 9px}.wf-board .dp-brand{font-weight:500;color:#fff;margin:0 5px 28px}.wf-board .dp-brand small{display:block;font-size:11px;color:#a4b5d6;letter-spacing:1px;margin-top:6px}.wf-board .dp-navitem{padding:10px 8px;font-size:12px;margin-bottom:4px;border-radius:5px}.wf-board .dp-navitem.active{background:#314a76;color:#fff}.wf-board .dp-navlabel{font-size:11px;color:#91a4c5;margin:20px 8px 8px}.wf-board .dp-main{min-width:0}.wf-board .dp-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--dp-panel);padding:14px 20px;border-bottom:1px solid var(--dp-line);border-radius:0 9px 0 0}.wf-board .dp-top small{margin-left:auto;color:var(--dp-muted);font-size:12px}.wf-board .dp-preview{font-size:12px;background:var(--dp-soft);color:var(--dp-blue);padding:3px 7px;border-radius:4px}.wf-board .dp-content{padding:20px}.wf-board h1{font-size:22px;font-weight:500;margin:0}.wf-board h2{font-size:16px;font-weight:500;margin:0}.wf-board p{font-size:12px;color:var(--dp-muted);margin:5px 0}.wf-board .dp-head,.wf-board .dp-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.wf-board .dp-head{justify-content:space-between;margin-bottom:16px}.wf-board .dp-btn{padding:7px 11px;border:1px solid var(--dp-line);border-radius:6px;background:var(--dp-panel);color:var(--dp-ink)}.wf-board .dp-btn.primary{background:var(--dp-blue);color:light-dark(#fff,#182340);border-color:var(--dp-blue)}.wf-board .dp-btn.active{background:var(--dp-soft);color:var(--dp-blue);border-color:var(--dp-blue)}.wf-board .dp-btn.danger{color:var(--dp-red)}.wf-board .dp-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px}.wf-board .dp-stat{padding:13px 15px;border:1px solid var(--dp-line);background:var(--dp-panel);border-radius:7px}.wf-board .dp-stat span,.wf-board .dp-small{font-size:12px;color:var(--dp-muted)}.wf-board .dp-stat strong{display:block;font-size:22px;font-weight:500;margin:4px 0}.wf-board .dp-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.wf-board .dp-controls input{width:140px}.wf-board .dp-view{display:flex;gap:4px;margin-left:auto}.wf-board input,.wf-board select{padding:7px;border:1px solid var(--dp-line);border-radius:5px;background:var(--dp-panel);color:var(--dp-ink);min-width:0}.wf-board .dp-presets{display:flex;gap:5px}.wf-board .dp-calendar{font-size:12px;color:var(--dp-muted);display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}.wf-board .dp-dot{display:inline-block;width:9px;height:9px;background:var(--dp-blue);border-radius:2px;margin-right:5px}.wf-board .dp-dot.actual{background:var(--dp-green)}.wf-board .dp-dot.leave{background:var(--dp-muted)}.wf-board .dp-alert{background:var(--dp-redbg);color:var(--dp-red);border-radius:5px;padding:8px 11px;margin:10px 0;font-size:12px}.wf-board .dp-wrap{overflow-x:auto;background:var(--dp-panel);border:1px solid var(--dp-line);border-radius:7px}.wf-board table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.wf-board th{font-size:12px;font-weight:500;text-align:left;background:var(--dp-soft);padding:10px 8px;border-bottom:1px solid var(--dp-line)}.wf-board td{padding:10px 8px;border-bottom:1px solid var(--dp-line);vertical-align:middle;border-right:1px solid var(--dp-line)}.wf-board tr:last-child td{border-bottom:0}.wf-board td:last-child{border-right:0}.wf-board .dp-person{position:sticky;left:0;z-index:3;background:var(--dp-panel);width:108px}.wf-board th.dp-person{background:var(--dp-soft)}.wf-board .dp-person strong{font-weight:500;display:block}.wf-board .dp-person small{display:block;font-size:11px;color:var(--dp-muted);margin-top:6px}.wf-board .dp-taskname{font-size:12px}.wf-board .dp-taskname small{display:block;color:var(--dp-muted);font-size:11px;margin-top:3px}.wf-board .dp-taskname button{padding:0;border:0;background:none;text-align:left;color:var(--dp-ink)}.wf-board .dp-timeline-cell{padding:0;vertical-align:top}.wf-board .dp-dates{display:grid;background:var(--dp-panel)}.wf-board .dp-date{padding:6px 0;text-align:center;font-size:11px;border-right:1px solid var(--dp-line);color:var(--dp-muted)}.wf-board .dp-date.today{color:var(--dp-blue);font-weight:500}.wf-board .dp-date small{display:block;font-size:11px}.wf-board .dp-date.off,.wf-board .dp-grid-bg .off{background:var(--dp-off)}.wf-board .dp-weekheads{display:grid;border-bottom:1px solid var(--dp-line);font-size:11px;color:var(--dp-muted)}.wf-board .dp-weekheads span{padding:5px 7px;border-right:1px solid var(--dp-line)}.wf-board .dp-timeline{position:relative;min-height:68px}.wf-board .dp-grid-bg{display:grid;position:absolute;inset:0;pointer-events:none}.wf-board .dp-grid-bg span{border-right:1px solid var(--dp-line)}.wf-board .dp-planline,.wf-board .dp-actual-line{display:grid;position:relative;padding:7px 0 0;min-height:33px}.wf-board .dp-planbar{margin:0 2px;border:0;border-radius:4px;background:var(--dp-soft);box-shadow:inset 3px 0 var(--dp-blue);color:var(--dp-ink);text-align:center;padding:3px 4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-board .dp-planbar.leave{background:var(--dp-off);box-shadow:inset 3px 0 var(--dp-muted)}.wf-board .dp-actual-line{min-height:29px;padding-top:2px}.wf-board .dp-actualmark{margin:0 3px 5px;text-align:center;font-size:11px;background:var(--dp-greenbg);color:var(--dp-green);border-radius:3px;align-self:start;padding:1px 0}.wf-board .dp-plan-total{font-size:12px;white-space:nowrap}.wf-board .dp-actual-btn{color:var(--dp-green);background:var(--dp-greenbg);border:0;border-radius:4px;font-size:12px;padding:5px 8px;white-space:nowrap}.wf-board .dp-actual-btn.empty{color:var(--dp-muted);background:var(--dp-off)}.wf-board .dp-summarytask{padding:5px 0;border-bottom:1px solid var(--dp-line);font-size:12px}.wf-board .dp-summarytask:last-child{border:0}.wf-board .dp-summarytask small{display:block;color:var(--dp-muted);font-size:11px}.wf-board .dp-weekcell{vertical-align:top}.wf-board .dp-weektotal{font-size:12px;margin-bottom:6px}.wf-board .dp-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--dp-muted);margin-top:10px}.wf-board .dp-toast{font-size:12px;color:var(--dp-blue);background:var(--dp-soft);padding:9px 12px;border-radius:5px;margin-top:10px}.wf-board .dp-overlay{position:absolute;inset:0;z-index:10;background:light-dark(#17274655,#0009);padding:14px;display:flex;align-items:flex-start;justify-content:flex-end}.wf-board .dp-dialog{width:min(420px,100%);background:var(--dp-panel);border:1px solid var(--dp-line);border-radius:9px;padding:20px;box-shadow:0 12px 40px #0002}.wf-board .dp-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.wf-board .dp-form{display:grid;grid-template-columns:1fr 1fr;gap:11px}.wf-board .dp-form label{font-size:12px;display:flex;flex-direction:column;gap:5px}.wf-board .dp-form .wide{grid-column:1/-1}.wf-board .dp-form input,.wf-board .dp-form select{width:100%}.wf-board .dp-formfoot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}.wf-board .dp-feedback{font-size:12px;background:var(--dp-soft);padding:10px;border-radius:5px;margin-top:12px}.wf-board .dp-error{color:var(--dp-red);font-size:12px;margin-top:10px}.wf-board .dp-actual-records{font-size:12px;display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.wf-board .dp-record{background:var(--dp-greenbg);color:var(--dp-green);border-radius:4px;padding:4px 6px}
@media(max-width:760px){.wf-board .dp-shell{grid-template-columns:1fr}.wf-board .dp-nav{display:none}.wf-board .dp-content{padding:14px}.wf-board .dp-top{padding:12px 14px}.wf-board .dp-top small{margin-left:0}.wf-board .dp-stats{grid-template-columns:1fr}.wf-board .dp-stat{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px}.wf-board .dp-stat strong{font-size:20px;margin:0}.wf-board .dp-view{margin-left:0}.wf-board .dp-controls input{width:130px}.wf-board .dp-dialog{padding:15px}.wf-board .dp-overlay{padding:8px}}@media(pointer:coarse){.wf-board button{min-height:44px}.wf-board input,.wf-board select{font-size:16px;min-height:44px}}

.wf-board{border:0;background:transparent}.wf-board .dp-content{padding:0}.wf-board .dp-person .dp-btn{padding:4px 7px}.wf-board .wf-range{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.wf-board .wf-range label{display:flex;align-items:center;gap:4px}.wf-board .wf-history{display:block;font-size:11px;padding:0;border:0;background:none;color:var(--dp-blue);margin-top:5px}.wf-plan-feedback{margin-top:10px;color:#667a98;font-size:12px}

.wf-board .dp-date.half,.wf-board .dp-grid-bg .half{background:#fff1d8;color:#875211}.wf-board .dp-date.half small{font-weight:700}
.wf-board .wf-lanes-cell{padding:0;vertical-align:top}.wf-lanes{position:relative;min-height:45px}.wf-background{position:absolute;inset:0;display:grid}.wf-board .wf-background button{padding:0;border:0;border-right:1px solid var(--dp-line);border-radius:0;background:var(--dp-panel);min-width:0}.wf-board .wf-background .off{background:var(--dp-off)}.wf-board .wf-background .half{background:light-dark(#fff4dd,#4b402b)}.wf-board .wf-task{position:absolute;height:26px;padding:4px 12px 4px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;border:0;border-left:3px solid var(--dp-blue);border-radius:4px;background:var(--dp-soft);color:var(--dp-ink);font-size:11px;touch-action:pan-y;cursor:grab}.wf-board .wf-task.other{background:var(--dp-off);border-left-color:var(--dp-muted)}.wf-resize{position:absolute;right:0;top:0;width:12px;height:100%;cursor:ew-resize;text-align:center;background:var(--dp-soft)}.wf-board .wf-actual-cell{position:absolute;border:0;border-radius:3px;padding:1px 0;height:20px;overflow:hidden;white-space:nowrap;background:var(--dp-off);color:var(--dp-muted);font-size:11px}.wf-board .wf-actual-cell.filled{background:var(--dp-greenbg);color:var(--dp-green)}.wf-board .wf-matrix td{vertical-align:top}.wf-board .wf-matrix .dp-person{background:var(--dp-panel)}.wf-board .wf-matrix thead .dp-person{background:var(--dp-soft)}.wf-board .dp-controls select{max-width:210px}.wf-board .wf-matrix .dp-small{font-size:11px}.wf-board .wf-matrix{max-height:72vh}

.wf-board .dp-person .wf-people-shortcut{display:block;margin-top:7px;color:#3159db;background:#f1f5ff;border-color:#d6e2ff;font-size:11px;white-space:nowrap}

.wf-subnav{display:flex;gap:8px;margin-bottom:14px}.wf-subnav .active{font-weight:600}
.wf-board.wf-focus{position:fixed;inset:8px;z-index:8;background:var(--dp-panel);padding:14px;overflow:auto;border:1px solid var(--dp-line)}.wf-board.wf-focus .dp-stats{margin-bottom:8px}.wf-board.wf-focus .dp-stat{padding:6px 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wf-board.wf-focus .dp-stat strong{font-size:18px;margin:0}.wf-board.wf-focus .wf-matrix{max-height:calc(100vh - 245px)}.wf-board .dp-weekheads span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wf-time-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#edf3ff;border:1px solid #dae4f5;border-radius:8px;margin:10px 0}
.wf-time-controls label{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;font-size:12px;color:#536783}.wf-time-controls input[type=range]{flex:1;width:100%;padding:0;accent-color:#3159db;cursor:ew-resize}
.wf-board [data-wf-timeline]{max-height:65vh;overflow:auto;scroll-behavior:auto;isolation:isolate;overscroll-behavior:contain}
.wf-board [data-wf-timeline] thead th{position:sticky;top:0;z-index:5;background:#edf2ff}
.wf-board [data-wf-timeline] .dp-taskname{position:sticky;left:108px;z-index:2;background:#fff}
.wf-board [data-wf-timeline] th.dp-person{z-index:7;background:#edf2ff}.wf-board [data-wf-timeline] th.dp-taskname{z-index:6;background:#edf2ff}
.wf-overlap-note{padding:12px;background:#fff6df;color:#895600;border:1px solid #f2d999;border-radius:7px;line-height:1.8}
.wf-analysis{margin-top:15px}.wf-analysis .panel{margin-top:14px;padding:18px}.wf-analysis h2{margin-bottom:14px}
.wf-analysis-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.wf-analysis-kpis>div{background:#fff;border:1px solid #dce5f4;border-radius:9px;padding:15px}.wf-analysis-kpis span{display:block;color:#60728c;font-size:12px}.wf-analysis-kpis strong{font-size:25px;display:block;margin-top:6px;color:#203a62}
.wf-distribution-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(100px,2fr) minmax(120px,1fr);gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f8}.wf-distribution-row:last-child{border-bottom:0}.wf-distribution-row small{display:block;font-size:11px;color:#72829a;margin-top:4px}.wf-chart-track{height:12px;background:#edf2fb;border-radius:8px;overflow:hidden}.wf-chart-track span{height:100%;display:block;background:linear-gradient(90deg,#4164dd,#62adca);border-radius:8px}
.wf-load{padding:3px 8px;background:#e9f2ff;color:#2856aa;border-radius:5px}.wf-load.over{background:#fff0d6;color:#9b5a00}
.wf-analysis table{min-width:700px}
.wf-analysis .wf-heat{text-align:center;padding:9px 1px;font-size:11px}.wf-analysis .wf-heat.free{background:#f6f9ff}.wf-analysis .wf-heat.partial{background:#dceaff;color:#2659a7}.wf-analysis .wf-heat.full{background:#3e68d8;color:white}.wf-analysis .wf-heat.over{background:#ffe4b0;color:#8b5100}.wf-analysis .wf-heat.off{background:#eef0f4;color:#9aa4b4}
@media(max-width:760px){.wf-analysis-kpis{grid-template-columns:1fr}.wf-distribution-row{grid-template-columns:1fr 1fr}.wf-distribution-row .wf-chart-track{grid-column:1/-1;grid-row:2}.wf-time-controls label{order:3;flex-basis:100%}}
