:root{--navy:#153b5f;--navy-2:#0e2d49;--blue:#2878a9;--teal:#2ca58d;--amber:#e9a23b;--ink:#14202b;--muted:#6e7b87;--line:#dce4ea;--paper:#fff;--wash:#f3f7f9;--danger:#c44949;--shadow:0 12px 34px rgba(24,55,78,.08);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--wash);font-size:16px}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(360px,.9fr);background:var(--navy-2);color:white;position:relative;overflow:hidden}.login-screen:before{content:"";position:absolute;width:620px;height:620px;border:1px solid rgba(255,255,255,.08);border-radius:50%;left:-180px;bottom:-330px;box-shadow:0 0 0 95px rgba(255,255,255,.025),0 0 0 190px rgba(255,255,255,.02)}.login-brand{position:absolute;left:clamp(28px,5vw,76px);top:40px;display:flex;align-items:center;gap:15px;z-index:1}.login-brand h1{font-size:1.1rem;margin:1px 0}.brand-mark{width:48px;height:48px;border-radius:14px;background:var(--teal);display:grid;place-items:center;font-weight:800;font-size:1.35rem;box-shadow:0 8px 24px rgba(44,165,141,.25)}.brand-mark.small{width:38px;height:38px;border-radius:11px;font-size:1rem}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:#7e92a2}.login-brand .eyebrow{color:#76bfb1;margin:0}.login-copy{padding:180px clamp(28px,8vw,120px) 80px;align-self:center;z-index:1}.login-copy .kicker,.welcome-strip .kicker{display:inline-block;color:#72d7c3;font-size:.78rem;letter-spacing:.12em;font-weight:800;text-transform:uppercase}.login-copy h2{font-size:clamp(2.6rem,4.8vw,5.4rem);line-height:1.05;margin:24px 0 28px;letter-spacing:-.05em}.login-copy>p{color:#aec0ce;line-height:1.9;max-width:540px}.login-stat{display:flex;gap:14px;align-items:center;margin-top:48px;padding-top:30px;border-top:1px solid rgba(255,255,255,.12);width:max-content}.login-stat strong{font-size:2.4rem;color:#72d7c3}.login-stat span{font-size:.82rem;color:#aabecb;line-height:1.6}.login-card{background:white;color:var(--ink);align-self:center;justify-self:center;width:min(420px,calc(100% - 48px));padding:42px;border-radius:24px;box-shadow:0 32px 90px rgba(0,0,0,.28);display:grid;gap:22px;z-index:1}.login-card h3{font-size:1.8rem;margin:7px 0}.login-card p{color:var(--muted);margin:0;line-height:1.6}.login-card label,.entry-panel label{display:grid;gap:8px;font-size:.88rem;font-weight:700}.login-card input,.entry-panel input,.entry-panel select,.entry-panel textarea,.inline-control select,.panel select,.toolbar-actions input{border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:#fbfdfe;color:var(--ink);outline:none}.login-card input:focus,.entry-panel input:focus,.entry-panel select:focus,.entry-panel textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,120,169,.1)}.demo-tip{font-size:.76rem!important;background:#f1f6f8;padding:10px 12px;border-radius:10px}.form-error{min-height:20px;color:var(--danger)!important;font-size:.85rem}.btn{border:0;border-radius:10px;padding:11px 17px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--navy);color:white;box-shadow:0 5px 14px rgba(21,59,95,.18)}.btn-primary:hover{background:#1d507d}.btn-light{background:white;color:var(--navy)}.btn-ghost{background:#edf2f5;color:var(--ink)}.btn-block{width:100%}.app-shell{min-height:100vh;display:grid;grid-template-columns:246px minmax(0,1fr)}.sidebar{background:var(--navy-2);color:white;position:fixed;width:246px;height:100vh;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px;border-bottom:1px solid rgba(255,255,255,.1)}.brand strong{display:block;font-size:1rem}.brand span{display:block;color:#6f8ca3;font-size:.65rem;letter-spacing:.17em;margin-top:3px}.sidebar nav{display:grid;gap:6px;margin-top:27px}.nav-item{border:0;background:transparent;color:#9fb2c1;border-radius:10px;padding:12px 13px;text-align:left;display:flex;gap:12px;align-items:center;font-size:.91rem}.nav-item>span{width:22px;text-align:center;font-size:1rem}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:white}.nav-item.active{box-shadow:inset 3px 0 0 var(--teal)}.badge{font-style:normal;background:#e99c36;color:white;border-radius:20px;min-width:22px;height:22px;display:grid;place-items:center;font-size:.68rem;margin-left:auto}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 8px 2px;display:grid;grid-template-columns:36px 1fr 28px;align-items:center;gap:10px}.user-avatar{width:36px;height:36px;background:#315a7b;border-radius:10px;display:grid;place-items:center;font-weight:800}.sidebar-foot strong{display:block;font-size:.82rem}.sidebar-foot span{display:block;color:#7994a8;font-size:.7rem;margin-top:3px}.sidebar-foot button{border:0;background:transparent;color:#89a2b5;font-size:1.1rem}.main{grid-column:2;min-width:0}.topbar{height:86px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.topbar p{margin:0;color:#92a0aa;font-size:.72rem}.topbar h1{font-size:1.4rem;margin:4px 0 0}.topbar-actions{display:flex;align-items:center;gap:22px;color:var(--muted);font-size:.78rem}.sync-state{display:flex;align-items:center;gap:7px}.sync-state i{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(44,165,141,.12)}.view{display:none;padding:28px 34px 60px;max-width:1600px;margin:0 auto}.active-view{display:block}.welcome-strip{background:linear-gradient(120deg,var(--navy),#286c8e);border-radius:18px;color:white;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);position:relative;overflow:hidden}.welcome-strip:after{content:"";position:absolute;width:280px;height:280px;border:45px solid rgba(255,255,255,.055);border-radius:50%;right:80px;top:-145px}.welcome-strip h2{font-size:1.65rem;margin:10px 0 6px}.welcome-strip p{margin:0;color:#b9d1df;font-size:.9rem}.welcome-strip .btn{z-index:1}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.metric-card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;gap:15px;align-items:center;box-shadow:0 5px 18px rgba(23,57,79,.04);min-width:0}.metric-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;font-weight:900}.metric-icon.blue{background:#e6f2f8;color:var(--blue)}.metric-icon.amber{background:#fff2dc;color:#c77b18}.metric-icon.teal{background:#e3f5f0;color:#238c77}.metric-icon.navy{background:#e7eef4;color:var(--navy)}.metric-card span{display:block;color:var(--muted);font-size:.78rem}.metric-card strong{font-size:1.62rem;display:block;margin:3px 0}.metric-card small{color:#9ba6ae;font-size:.7rem}.metric-card .small-value{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-grid.compact{grid-template-columns:repeat(4,minmax(160px,1fr))}.metric-grid.compact .metric-card{min-height:92px}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 18px rgba(23,57,79,.035)}.panel-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h3{margin:4px 0 0;font-size:1rem}.text-btn{border:0;background:transparent;color:var(--blue);font-size:.8rem;font-weight:700}.workload-list{padding:8px 22px 17px}.workload-row{display:grid;grid-template-columns:90px 1fr 52px;align-items:center;gap:14px;padding:12px 0}.workload-row strong{font-size:.82rem}.bar{height:7px;background:#edf2f4;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#59c9b2);border-radius:10px}.workload-row em{font-style:normal;text-align:right;color:var(--muted);font-size:.78rem}.project-load-list{padding:10px 21px 17px}.project-row{padding:13px 0;border-bottom:1px solid #edf1f3;display:grid;grid-template-columns:1fr auto;gap:8px}.project-row:last-child{border-bottom:0}.project-row strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-row span{grid-column:1;color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-row b{grid-column:2;grid-row:1/3;color:var(--navy);font-size:1.05rem;align-self:center}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;min-height:45px}.section-note{margin:0;color:var(--muted);font-size:.88rem}.inline-control,.toolbar-actions{display:flex;align-items:center;gap:10px}.inline-control label{color:var(--muted);font-size:.8rem}.file-btn{cursor:pointer}.table-panel{overflow:hidden}.search-box{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;color:#8c9ba5}.search-box input{border:0;outline:0;min-width:220px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.82rem}th{background:#f5f8fa;color:#657682;font-weight:750;text-align:left;padding:12px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:13px 14px;border-bottom:1px solid #edf1f3;vertical-align:middle}tbody tr:hover{background:#f9fbfc}.project-name{max-width:350px}.muted{color:var(--muted)}.status-chip{display:inline-flex;border-radius:20px;padding:5px 9px;font-size:.7rem;font-weight:750;white-space:nowrap}.status-chip.active,.status-chip.confirmed{background:#e2f4ef;color:#1d806d}.status-chip.pending,.status-chip.submitted{background:#fff0d8;color:#a96811}.status-chip.returned{background:#fde9e9;color:#ac4040}.schedule-wrap{max-height:640px}.schedule-table th:first-child,.schedule-table td:first-child{position:sticky;left:0;z-index:2;background:#fff;min-width:110px}.schedule-table th:first-child{background:#f5f8fa}.schedule-table th{vertical-align:bottom;min-width:150px;white-space:normal}.schedule-table .project-code{color:var(--blue);font-size:.7rem;display:block;margin-bottom:5px}.schedule-table .project-title{line-height:1.5;display:block}.schedule-table input{width:74px;border:1px solid var(--line);border-radius:7px;padding:7px;text-align:center;background:#fff}.schedule-table input:focus{outline:2px solid rgba(40,120,169,.2);border-color:var(--blue)}.schedule-table tfoot td{font-weight:800;background:#edf5f8;position:sticky;bottom:0}.schedule-table .overload{color:var(--danger);background:#fff0f0}.legend{font-size:.74rem;color:var(--muted)}.legend i{display:inline-block;width:7px;height:7px;background:var(--teal);border-radius:50%;margin-right:5px}.panel-foot{padding:12px 20px;color:var(--muted);font-size:.75rem;background:#fafcfd}.logs-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px}.entry-panel{padding-bottom:22px;display:grid;gap:17px;align-content:start}.entry-panel>.panel-head{margin-bottom:2px}.entry-panel>label,.entry-panel>.form-row,.entry-panel>button{margin-left:21px;margin-right:21px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.entry-panel textarea{resize:vertical}.review-actions{display:flex;gap:7px}.mini-btn{border:0;border-radius:7px;padding:6px 9px;font-size:.72rem;font-weight:750}.mini-btn.confirm{background:#dff3ed;color:#1f806e}.mini-btn.return{background:#f9e8e8;color:#a54646}.monthly-table th,.monthly-table td{text-align:right}.monthly-table th:first-child,.monthly-table td:first-child{text-align:left}.rate-cell{font-weight:800;color:var(--teal)}.money{font-variant-numeric:tabular-nums}.empty{text-align:center;color:#9aa6ae;padding:38px!important}.icon-btn{border:0;background:transparent;font-size:1.4rem;color:inherit}.mobile-only{display:none}dialog{border:0;border-radius:18px;padding:0;box-shadow:0 24px 90px rgba(12,35,52,.25);width:min(760px,calc(100% - 36px))}dialog::backdrop{background:rgba(9,28,43,.58);backdrop-filter:blur(3px)}.dialog-card{padding:0}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}.dialog-head h3{margin:4px 0 0}.dialog-card>p{padding:0 24px;color:var(--muted)}.preview-wrap{max-height:330px;margin:0 24px;border:1px solid var(--line);border-radius:10px}.import-errors{margin:13px 24px;color:var(--danger);font-size:.78rem}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:18px 24px}.toast{position:fixed;right:25px;bottom:25px;background:#17364e;color:white;border-radius:10px;padding:13px 18px;box-shadow:var(--shadow);font-size:.85rem;transform:translateY(90px);opacity:0;transition:.25s;z-index:100}.toast.show{transform:translateY(0);opacity:1}
.logs-grid.readonly{grid-template-columns:1fr}
.meeting-stack{display:grid;gap:16px}.meeting-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:24px;background:white;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:16px;padding:24px 26px;box-shadow:var(--shadow)}.meeting-card.current{border-left-color:var(--amber)}.meeting-card.next{border-left-color:var(--teal)}.meeting-index{font-size:2.2rem;font-weight:900;color:#d8e3e9}.meeting-body h2{font-size:1.12rem;margin:5px 0}.meeting-body>p{margin:0;color:var(--muted);font-size:.8rem}.meeting-metrics{display:flex;gap:30px;margin-top:17px}.meeting-metrics strong{display:block;font-size:1.3rem}.meeting-metrics span{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}
.schedule-project-form{display:grid;grid-template-columns:minmax(210px,1fr) 150px minmax(260px,1.4fr) auto;align-items:end;gap:14px;padding:17px 19px;margin-bottom:16px}.schedule-project-form label,.weekly-update-form label{display:grid;gap:7px;color:var(--muted);font-size:.76rem;font-weight:750}.schedule-project-form input,.schedule-project-form select,.weekly-update-form textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fbfdfe;color:var(--ink);padding:10px 11px;outline:0}.schedule-project-form input:focus,.schedule-project-form select:focus,.weekly-update-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,120,169,.09)}
.report-summary{display:grid;grid-template-columns:2fr 1fr 1fr;background:var(--navy);color:white;border-radius:14px;padding:19px 24px;margin-bottom:16px}.report-summary>div{padding:0 22px;border-right:1px solid rgba(255,255,255,.13)}.report-summary>div:first-child{padding-left:0}.report-summary>div:last-child{border:0}.report-summary span{display:block;color:#9fbdce;font-size:.72rem;margin-bottom:5px}.report-summary strong{font-size:1.05rem}.weekly-report-list{display:grid;gap:16px}.weekly-report-card{overflow:hidden}.weekly-project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 14px}.weekly-project-head .project-code{font-size:.72rem;color:var(--blue);font-weight:850;letter-spacing:.05em}.weekly-project-head h3{margin:4px 0 7px;font-size:1.05rem}.weekly-project-head p{margin:0;color:var(--muted);font-size:.76rem}.weekly-meta{display:flex;gap:25px;padding:0 22px 16px;color:#82909a;font-size:.73rem;border-bottom:1px solid var(--line)}.weekly-update-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 22px 21px}.weekly-update-form label:first-child{grid-column:1/-1}.weekly-update-form textarea{resize:vertical;line-height:1.6}.weekly-card-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.weekly-readonly{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:18px 22px}.weekly-readonly>div{background:#f7fafb;border-radius:9px;padding:13px}.weekly-readonly span{font-size:.7rem;color:var(--muted);font-weight:750}.weekly-readonly p{margin:5px 0 0;font-size:.82rem;line-height:1.65;white-space:pre-wrap}
.admin-grid{display:grid;grid-template-columns:minmax(480px,1fr) minmax(460px,1fr);gap:18px;margin-bottom:18px}.admin-entry{padding-bottom:22px}.admin-entry>.form-row,.admin-entry>button{margin-left:21px;margin-right:21px}.admin-entry .form-row label{display:grid;gap:7px;font-size:.78rem;font-weight:750;color:var(--muted)}.admin-entry input,.admin-entry select{border:1px solid var(--line);border-radius:9px;background:#fbfdfe;color:var(--ink);padding:10px 11px;outline:0}.backup-panel{overflow:hidden}.backup-panel>p{padding:4px 21px;color:var(--muted);font-size:.8rem}.backup-panel .text-btn{text-decoration:none}.user-panel{margin-top:18px}
.admin-import-actions{display:flex;align-items:center;gap:8px}.admin-import-actions .btn{padding:9px 12px;font-size:.78rem}
.dialog-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:8px 24px}.dialog-fields label{display:grid;gap:7px;color:var(--muted);font-size:.8rem;font-weight:750}.dialog-fields input,.dialog-fields select{border:1px solid var(--line);border-radius:7px;background:#fbfdfe;padding:10px 11px;color:var(--ink)}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.logs-grid{grid-template-columns:1fr}.entry-panel{max-width:none}.schedule-project-form{grid-template-columns:1fr 150px}.schedule-project-form .requirements-field{grid-column:1/-1}.schedule-project-form .btn{grid-column:2;grid-row:2}.admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){.login-screen{display:flex;align-items:center;justify-content:center;padding:100px 0 35px}.login-copy{display:none}.login-brand{top:25px;left:24px}.login-card{padding:28px}.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0);box-shadow:18px 0 50px rgba(0,0,0,.25)}.main{display:block}.topbar{height:76px;padding:0 18px;justify-content:flex-start;gap:13px}.mobile-only{display:block}.topbar-actions{margin-left:auto}.sync-state{display:none}.view{padding:20px 15px 45px}.welcome-strip{padding:24px;display:block}.welcome-strip .btn{margin-top:20px}.metric-grid,.metric-grid.compact{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:15px}.metric-icon{display:none}.metric-card strong{font-size:1.35rem}.section-toolbar{align-items:flex-start;flex-direction:column}.meeting-card{grid-template-columns:42px 1fr;padding:19px 17px;gap:13px}.meeting-card>.btn{grid-column:2;justify-self:start}.meeting-index{font-size:1.5rem}.inline-control,.toolbar-actions{width:100%}.toolbar-actions input,.toolbar-actions .btn{flex:1}.panel-head{padding:16px}.search-box{width:100%}.search-box input{min-width:0;width:100%}.form-row{grid-template-columns:1fr}.topbar time{display:none}.schedule-table th:first-child,.schedule-table td:first-child{min-width:85px}.project-name{min-width:240px}.schedule-project-form{grid-template-columns:1fr}.schedule-project-form .requirements-field,.schedule-project-form .btn{grid-column:auto;grid-row:auto}.report-summary{grid-template-columns:1fr 1fr;padding:16px}.report-summary>div{padding:0 12px}.report-summary>div:first-child{grid-column:1/-1;border-right:0;border-bottom:1px solid rgba(255,255,255,.13);padding:0 0 12px;margin-bottom:12px}.weekly-update-form,.weekly-readonly{grid-template-columns:1fr}.weekly-update-form label:first-child{grid-column:auto}.weekly-card-actions{grid-column:auto}.weekly-meta{flex-direction:column;gap:5px}}

/* 面向日常填报的紧凑型企业工作台 */
:root{--navy:#245c88;--navy-2:#194566;--blue:#1769a0;--teal:#238b78;--ink:#1f2d38;--muted:#667784;--line:#d5dde3;--wash:#eef2f5;--shadow:0 1px 3px rgba(24,52,72,.08);font-size:15px}
.app-shell{grid-template-columns:220px minmax(0,1fr)}
.sidebar{width:220px;padding:18px 12px;background:var(--navy-2)}
.brand{padding:0 8px 18px}.sidebar nav{gap:2px;margin-top:16px}.nav-item{border-radius:3px;padding:10px 11px}.nav-item.active{background:#2d6286;box-shadow:inset 3px 0 0 #63c4b2}
.topbar{height:70px;padding:0 24px;background:#fff;backdrop-filter:none}.topbar h1{font-size:1.25rem}.view{padding:20px 24px 45px;max-width:none}
.panel,.metric-card,.meeting-card,.report-summary,.welcome-strip{border-radius:4px;box-shadow:var(--shadow)}
.panel-head{padding:13px 16px}.panel-head h3{margin-top:2px}.eyebrow{letter-spacing:0;color:#738592;font-size:.72rem}
.btn{border-radius:4px;padding:9px 15px;font-weight:700}.btn-primary{box-shadow:none}.btn-ghost{border:1px solid var(--line);background:#fff}
.welcome-strip{padding:20px 24px;background:linear-gradient(110deg,#245c88,#357ca4)}.welcome-strip h2{font-size:1.35rem;margin:7px 0 4px}.welcome-strip:after{display:none}
.metric-grid{gap:10px;margin:12px 0}.metric-card{border-top:3px solid #3d82ad;padding:14px 16px}.metric-icon{width:36px;height:36px;border-radius:3px}.metric-card strong{font-size:1.4rem}.metric-grid.compact .metric-card{min-height:76px}
.dashboard-grid,.admin-grid,.logs-grid{gap:12px}.section-toolbar{margin-bottom:12px}.meeting-stack{gap:10px}.meeting-card{border-left-width:4px;border-radius:4px;padding:17px 20px}.meeting-index{font-size:1.6rem}.meeting-metrics{margin-top:10px}
.workload-progress{width:100%;height:7px;border:0;border-radius:10px;overflow:hidden;background:#edf2f4}.workload-progress::-webkit-progress-bar{background:#edf2f4}.workload-progress::-webkit-progress-value{background:#2ca58d}.workload-progress::-moz-progress-bar{background:#2ca58d}
.schedule-project-form{border-top:3px solid var(--blue);border-radius:4px;padding:13px 15px;margin-bottom:12px}.schedule-project-form input,.schedule-project-form select,.weekly-update-form textarea,.login-card input,.entry-panel input,.entry-panel select,.entry-panel textarea,.inline-control select,.panel select,.toolbar-actions input{border-radius:3px;background:#fff;padding:9px 10px}
.table-panel{border-radius:4px}table{font-size:.8rem}th{background:#edf3f7;color:#425766;padding:9px 10px;border:1px solid var(--line)}td{padding:9px 10px;border:1px solid #e0e6ea}tbody tr:hover{background:#fffbea}
.schedule-wrap{max-height:650px}.schedule-table th{min-width:145px}.schedule-table input{border-radius:3px;padding:6px;width:66px}.schedule-project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.schedule-project-head>span{min-width:0}.remove-project{flex:0 0 auto;width:22px;height:22px;border:1px solid #d7b9b9;border-radius:3px;background:#fff;color:#b14b4b;line-height:18px}.remove-project:hover{background:#fbeaea}.schedule-empty{height:190px;text-align:center!important;background:#fafcfd}.schedule-empty strong,.schedule-empty span{display:block}.schedule-empty strong{font-size:1rem;color:#405664;margin-bottom:9px}.schedule-empty span{color:var(--muted)}.worker-role{display:inline-block;margin-left:7px;padding:1px 5px;border-radius:2px;background:#e8f2fb;color:#1769a0}
.report-summary{border-radius:4px;padding:13px 18px;margin-bottom:10px}.report-summary>div{padding:0 16px}.weekly-report-list{display:block;min-width:0}.weekly-report-table{overflow:auto;min-width:0;container-type:inline-size}.weekly-list-head,.weekly-summary-row{display:grid;grid-template-columns:50px 120px minmax(220px,1.8fr) 100px 80px 80px 80px 70px;align-items:center}.weekly-list-head{background:#e7f0f6;color:#405765;font-weight:700;border-bottom:1px solid var(--line)}.weekly-list-head span,.weekly-summary-row>*{padding:10px 9px}.weekly-list-head span{border-right:1px solid var(--line)}.weekly-list-item{border-bottom:1px solid var(--line)}.weekly-list-item.open{box-shadow:inset 3px 0 0 var(--blue)}.weekly-summary-row:hover{background:#fffbea}.weekly-project-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weekly-toggle{background:#e8f2f8;color:#1769a0;border:1px solid #b9d3e4}.weekly-detail{border-top:1px solid var(--line);background:#f8fafb}.weekly-detail-note{grid-column:1/-1;color:var(--muted);font-size:.78rem;padding-bottom:3px}.weekly-update-form{padding:15px 18px 16px}.weekly-readonly{padding:15px 18px}.weekly-card-actions .btn{min-width:88px}
@container (max-width:930px){.weekly-list-head,.weekly-summary-row{grid-template-columns:42px 108px minmax(190px,1fr) 70px 70px 74px 62px}.weekly-list-head>span:nth-child(4),.weekly-summary-row>*:nth-child(4){display:none}.weekly-list-head span,.weekly-summary-row>*{padding:9px 7px}}
.status-chip{border-radius:3px;padding:3px 7px;font-style:normal}.status-chip.disabled{background:#eceff1;color:#75818a}.inactive-row{color:#8a959d;background:#fafafa}.mini-btn:disabled{cursor:not-allowed;opacity:.45}
.user-actions{display:flex;gap:6px;white-space:nowrap}.mini-btn.delete{background:#fff;border:1px solid #d7b9b9;color:#a84242}
.entry-panel{padding-bottom:16px}.entry-panel>label,.entry-panel>.form-row,.entry-panel>button{margin-left:16px;margin-right:16px}.admin-entry>.form-row,.admin-entry>button{margin-left:16px;margin-right:16px}.search-box{border-radius:3px;padding:6px 9px}.panel-foot{padding:9px 14px}
@media(max-width:760px){.topbar{height:66px}.view{padding:14px 10px 35px}.weekly-report-table{margin:0 -1px}.weekly-update-form,.weekly-readonly{grid-template-columns:1fr}.weekly-detail-note,.weekly-card-actions{grid-column:auto}}
.weekly-list-head,.weekly-summary-row{grid-template-columns:50px 160px minmax(300px,1.8fr) 110px 82px 82px 78px 70px}
.weekly-summary-row .project-code{white-space:nowrap}
.meeting-config{margin-bottom:12px}
.meeting-config-grid{display:grid;grid-template-columns:180px repeat(3,minmax(260px,1fr));gap:12px;padding:14px 16px}
.meeting-config label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:700}
.meeting-config input,.statistics-range input,.statistics-range select{border:1px solid var(--line);border-radius:3px;background:#fff;padding:8px 9px;color:var(--ink)}
.meeting-config fieldset{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid var(--line);padding:9px 10px 10px;margin:0;min-width:0}
.meeting-config legend{padding:0 5px;color:#415866;font-size:.76rem;font-weight:700}
.meeting-date-field{align-self:end;padding-bottom:10px}
.schedule-save-actions{display:flex;align-items:center;gap:10px}
.save-state{font-size:.75rem;color:var(--muted)}
.save-state.dirty{color:#a96811;font-weight:700}
.schedule-input.limit-error{border-color:var(--danger)!important;background:#fff1f1!important;box-shadow:0 0 0 2px rgba(196,73,73,.1)}
.statistics-range label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.76rem;font-weight:700}
.statistics-range>span{color:var(--muted)}
@container (max-width:1000px){.weekly-list-head,.weekly-summary-row{grid-template-columns:42px 145px minmax(230px,1fr) 76px 76px 74px 62px}.weekly-list-head>span:nth-child(4),.weekly-summary-row>*:nth-child(4){display:none}}
@media(max-width:1200px){.meeting-config-grid{grid-template-columns:1fr 1fr}.meeting-date-field{align-self:auto;padding-bottom:0}.statistics-range{flex-wrap:wrap}}
@media(max-width:760px){.meeting-config-grid{grid-template-columns:1fr}.meeting-config fieldset{grid-template-columns:1fr 1fr}.schedule-save-actions{align-items:flex-end;flex-direction:column;gap:4px}.statistics-range label{flex:1 1 145px}.statistics-range input,.statistics-range select{width:100%}}
.welcome-actions,.meeting-toolbar-actions,.meeting-form-actions{display:flex;align-items:center;gap:8px;position:relative;z-index:1}
.setup-guide{margin:14px 0}.setup-guide>p{margin:0;padding:14px 18px 4px;color:var(--muted);font-size:.82rem}
.setup-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px 18px 18px}
.setup-steps article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);background:#fafcfd;padding:13px;border-radius:4px}
.setup-steps article>b{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#e7f0f6;color:var(--blue)}
.setup-steps article strong,.setup-steps article span{display:block}.setup-steps article span{margin-top:3px;color:var(--muted);font-size:.72rem}
.setup-steps article.complete{background:#f1faf7;border-color:#b9dfd5}.setup-steps article.complete>b{background:var(--teal);color:#fff}.setup-steps article.complete>b:after{content:"✓";font-size:.8rem}.setup-steps article.complete>b{font-size:0}
.setup-steps button:disabled{opacity:.55;cursor:default}
@media(max-width:1050px){.setup-steps{grid-template-columns:1fr}.welcome-actions{align-items:stretch;flex-direction:column}}
@media(max-width:760px){.meeting-toolbar-actions{width:100%;flex-wrap:wrap}.meeting-form-actions{flex-wrap:wrap}.setup-steps{padding:10px}.welcome-actions{margin-top:18px}.welcome-actions .btn{margin-top:0}}
.weekly-project-form{display:grid;grid-template-columns:minmax(250px,1fr) minmax(320px,1.3fr) auto;align-items:end;gap:12px;padding:14px 16px;margin-bottom:10px}.weekly-project-form>div strong,.weekly-project-form>div span{display:block}.weekly-project-form>div strong{margin-top:4px}.weekly-project-form label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:700}.weekly-project-form select{border:1px solid var(--line);border-radius:3px;background:#fff;padding:9px 10px;color:var(--ink);min-width:0}.weekly-row-actions{display:flex;align-items:center;gap:5px}.report-scope{display:inline-block;margin-left:8px;padding:2px 5px;border-radius:3px;font-size:.64rem;font-weight:700}.report-scope.field{background:#e4f3ef;color:#217865}.report-scope.office{background:#edf1f5;color:#576b79}.project-manager-name{color:#526876}.project-manager-control{display:flex;align-items:center;gap:6px;min-width:210px}.project-manager-control select{min-width:135px;padding:6px 7px}.project-manager-control .mini-btn{flex:0 0 auto}.weekly-list-head,.weekly-summary-row{grid-template-columns:50px 150px minmax(260px,1.6fr) 100px 110px 78px 78px 72px 128px}
@container (max-width:1100px){.weekly-list-head,.weekly-summary-row{grid-template-columns:42px 135px minmax(220px,1fr) 105px 68px 68px 70px 118px}.weekly-list-head>span:nth-child(4),.weekly-summary-row>*:nth-child(4){display:none}}
@media(max-width:1100px){.weekly-project-form{grid-template-columns:1fr 1fr}.weekly-project-form .btn{justify-self:stretch}}
@media(max-width:760px){.weekly-project-form{grid-template-columns:1fr}.weekly-row-actions{align-items:stretch;flex-direction:column}.report-scope{display:block;margin:3px 0 0;width:max-content}}
.schedule-toolbar-actions{display:flex;align-items:flex-end;gap:8px}#schedule-project-form{grid-template-columns:minmax(220px,1fr) 180px 130px minmax(260px,1.2fr) auto}.schedule-period-form{display:grid;grid-template-columns:minmax(170px,.8fr) 180px 180px auto;align-items:end;gap:14px;padding:14px 16px;margin-bottom:12px;border-top:3px solid var(--teal)}.schedule-period-form>div:first-child{display:grid;gap:4px}.schedule-period-form label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:700}.schedule-period-form input{border:1px solid var(--line);border-radius:3px;background:#fff;padding:9px 10px}.schedule-period-actions{display:flex;gap:8px}.schedule-manager{display:block;margin-top:6px;color:#5f7482;font-weight:500;line-height:1.35}.assigned-work-panel{margin-bottom:12px}.assigned-work-panel table,.worklog-history table{table-layout:fixed}.assigned-work-panel th:nth-child(1){width:185px}.assigned-work-panel th:nth-child(2){width:135px}.assigned-work-panel th:nth-child(4),.assigned-work-panel th:nth-child(5),.assigned-work-panel th:nth-child(6){width:85px}.assigned-work-panel th:nth-child(7){width:72px}.assigned-work-row td:nth-child(3),.worklog-history td:nth-child(5){overflow:hidden;text-overflow:ellipsis}.assigned-work-row.open{background:#fffbea}.assigned-work-row .overload{color:var(--danger);font-weight:700;background:#fff0f0}.assigned-work-detail>td{padding:0;background:#f8fafb}.assigned-work-form{display:grid;grid-template-columns:minmax(240px,.9fr) 170px 120px minmax(260px,1.2fr) auto;align-items:end;gap:12px;padding:14px 16px;border-left:3px solid var(--blue)}.assigned-work-form>div:first-child{display:grid;gap:4px}.assigned-work-form label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:700}.assigned-work-form input,.assigned-work-form select{width:100%;border:1px solid var(--line);border-radius:3px;background:#fff;padding:9px 10px}.worklog-history{margin-top:12px}.worklog-history th:nth-child(1){width:120px}.worklog-history th:nth-child(2){width:110px}.worklog-history th:nth-child(4){width:75px}.worklog-history th:nth-child(6){width:90px}
@media(max-width:1100px){#schedule-project-form{grid-template-columns:1fr 180px}.assigned-work-form{grid-template-columns:1fr 160px 120px}.assigned-work-content{grid-column:1/3}.schedule-period-form{grid-template-columns:1fr 180px 180px}.schedule-period-actions{grid-column:3}}
@media(max-width:760px){#schedule-project-form{grid-template-columns:1fr}.schedule-toolbar-actions{width:100%;align-items:stretch}.schedule-toolbar-actions .inline-control{flex:1}.schedule-period-form,.assigned-work-form{grid-template-columns:1fr}.schedule-period-actions,.assigned-work-content{grid-column:auto}.assigned-work-form .btn{width:100%}}

/* 清晰台账界面：提高可读性，并让排班表保持规整的等宽结构 */
:root{font-size:16px;--wash:#f1f5f7;--line:#cfd9e0;--shadow:0 3px 12px rgba(25,58,80,.07)}
body{line-height:1.55;color:#172833}
.app-shell{grid-template-columns:232px minmax(0,1fr)}
.sidebar{width:232px;padding:21px 14px}.sidebar nav{gap:4px;margin-top:20px}.nav-item{padding:12px 13px;font-size:.95rem;border-radius:7px}
.topbar{height:78px;padding:0 28px}.topbar p{font-size:.76rem}.topbar h1{font-size:1.38rem;margin-top:3px}.topbar-actions{font-size:.82rem}
.view{padding:25px 28px 56px}.section-toolbar{margin-bottom:16px;min-height:48px}.section-note{font-size:.92rem}
.panel,.metric-card,.meeting-card,.report-summary,.welcome-strip,.table-panel{border-radius:9px;box-shadow:var(--shadow)}
.panel-head{padding:17px 19px}.panel-head h3{font-size:1.06rem}.eyebrow{font-size:.75rem}
.btn{min-height:42px;padding:10px 17px;border-radius:7px;font-size:.93rem}.mini-btn{font-size:.78rem;padding:7px 11px;border-radius:5px}
.inline-control label,.schedule-project-form label,.schedule-period-form label{font-size:.8rem}
.schedule-toolbar-actions{gap:11px}.schedule-toolbar-actions select{min-height:42px;font-size:.94rem}
#schedule-project-form{grid-template-columns:minmax(270px,1.05fr) 190px 150px minmax(300px,1fr) auto;gap:16px;padding:18px 18px 19px;margin-bottom:16px;border-top-width:4px;border-radius:9px}
.schedule-project-form input,.schedule-project-form select,.schedule-period-form input{min-height:42px;padding:10px 12px;border-radius:6px;font-size:.92rem}
.schedule-project-form label{gap:8px;color:#526775}
.schedule-project-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.schedule-project-search-row small{color:var(--muted);font-size:.72rem;font-weight:500;white-space:nowrap}
.schedule-save-actions{gap:13px}.save-state{font-size:.8rem}
.table-wrap{scrollbar-color:#aebdc7 #edf2f5;scrollbar-width:thin}
table{font-size:.88rem}.table-panel th{text-align:center;vertical-align:middle;padding:12px 13px;font-size:.84rem}.table-panel td{padding:12px 13px}
.schedule-wrap{max-height:calc(100vh - 250px)}.schedule-table{width:100%;table-layout:fixed;font-size:.88rem}
.schedule-table th,.schedule-table td{height:42px;vertical-align:middle;padding:7px 10px}
.schedule-table th:first-child,.schedule-table td:first-child{width:132px;min-width:132px}.schedule-table th:last-child,.schedule-table td:last-child{width:108px;min-width:108px;text-align:center}
.schedule-table thead th{background:#e8f1f6;color:#294a5f;text-align:center;vertical-align:middle}
.schedule-table thead tr:first-child th{padding-top:7px;padding-bottom:7px}
.schedule-table .schedule-project-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:58px;padding:0 23px}
.schedule-project-head>span{width:100%;text-align:center}.schedule-table .project-code{font-size:.74rem;letter-spacing:.035em;margin-bottom:3px}.schedule-table .project-title{font-size:.84rem;line-height:1.3;font-weight:700;overflow-wrap:anywhere}
.schedule-manager{display:inline-flex;align-items:center;justify-content:center;margin-top:4px;padding:2px 7px;border-radius:999px;background:#dcebf3;color:#3e657b;font-size:.68rem;line-height:1.25}
.remove-project{position:absolute;right:-3px;top:-4px;width:26px;height:26px;border-radius:6px;font-size:1rem;line-height:22px}
.schedule-table tbody tr:nth-child(even){background:#fafcfd}.schedule-table tbody tr:hover{background:#fff9e9}
.schedule-table tbody td:first-child{padding-left:10px;text-align:left}.schedule-table tbody td:not(:first-child){text-align:center}
.schedule-table input{width:72px;min-height:32px;padding:4px 7px;border-radius:5px;font-size:.9rem;font-weight:650}
.schedule-table tfoot td{height:42px;background:#e5f0f4;font-size:.86rem}.worker-role{margin-left:6px;padding:1px 5px;border-radius:4px;font-size:.65rem}
.panel-foot{padding:11px 16px;font-size:.8rem;line-height:1.6}
@media(max-width:1100px){#schedule-project-form{grid-template-columns:1fr 190px}.view{padding:21px 20px 48px}.schedule-table{min-width:980px}}
@media(max-width:760px){:root{font-size:16px}.app-shell{display:block}.topbar{height:70px;padding:0 16px}.view{padding:17px 12px 42px}.panel-head{padding:15px}.schedule-table{min-width:900px}.schedule-table th:first-child,.schedule-table td:first-child{width:130px;min-width:130px}#schedule-project-form{grid-template-columns:1fr}.btn{min-height:43px}}

/* 内勤审核台账：人员为行、周期日期为列，明细按单元格展开 */
.review-matrix-panel{overflow:visible}.review-matrix-wrap{max-height:calc(100vh - 240px);overflow:auto;overscroll-behavior:contain}
.review-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.review-matrix th,.review-matrix td{height:54px;min-width:112px;padding:6px;text-align:center;vertical-align:middle;background:#fff}
.review-matrix thead th{position:sticky;top:0;z-index:4;height:54px;background:#e7f0f6;color:#294a5f}
.review-matrix .review-person-column{position:sticky;left:0;z-index:3;width:150px;min-width:150px;max-width:150px;text-align:left;background:#f4f8fa;box-shadow:2px 0 0 rgba(207,217,224,.75)}
.review-matrix thead .review-person-column{z-index:6;text-align:center;background:#e7f0f6}
.review-matrix tfoot .review-person-column{z-index:5;text-align:center;background:#e4eef3}
.review-matrix .review-date-column{width:112px;min-width:112px}.review-date-head,.review-date-head strong,.review-date-head small{display:block}.review-date-head strong{font-size:.88rem}.review-date-head small{margin-top:1px;color:#718491;font-size:.68rem;font-weight:600}
.review-matrix tbody .review-person-column strong{font-size:.9rem;color:#17364a}
.review-empty-cell{color:#a6b2b9;background:#fbfcfd!important}.review-data-cell{padding:4px!important;background:#fffdf7!important}
.review-cell-button{width:100%;min-height:42px;display:grid;place-content:center;gap:1px;border:1px solid #e0bf79;border-radius:5px;background:#fff4d8;color:#754b06;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.review-cell-button:hover{background:#ffedbd;border-color:#d59f39}.review-cell-button.selected{background:#1769a0;border-color:#1769a0;color:#fff;box-shadow:0 0 0 3px rgba(23,105,160,.15)}
.review-cell-button strong{font-size:.88rem}.review-cell-button small{font-size:.66rem}.review-total-column{position:sticky;right:0;z-index:3;width:240px!important;min-width:240px!important;background:#edf5f7!important;box-shadow:-2px 0 0 rgba(207,217,224,.75)}
.review-total-line{display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap}.review-total-line span{color:#718491;font-size:.67rem}.review-total-line b{color:#17364a;font-size:.78rem}
.review-matrix thead .review-total-column{z-index:6;background:#dceaf1!important}.review-matrix .review-total-column strong,.review-matrix .review-total-column small,.review-matrix tfoot td strong,.review-matrix tfoot td small{display:block}.review-matrix .review-total-column small,.review-matrix tfoot td small{margin-top:3px;color:#718491;font-size:.7rem}
.review-matrix tfoot th,.review-matrix tfoot td{position:sticky;bottom:0;z-index:4;height:46px;background:#e4eef3;font-weight:700}.review-matrix tfoot .review-total-column{z-index:6;background:#d7e8ef!important}
.review-matrix-empty{height:180px!important;min-width:520px!important}.review-detail{margin-top:16px}.review-detail-summary{margin:5px 0 0;color:var(--muted);font-size:.8rem}.review-detail-table{table-layout:fixed}.review-detail-table th:nth-child(1){width:145px}.review-detail-table th:nth-child(2){width:28%}.review-detail-table th:nth-child(3){width:80px}.review-detail-table th:nth-child(5){width:145px}.review-detail-table td{vertical-align:middle}.review-days{text-align:center;font-weight:700}.review-actions{display:flex;justify-content:center;gap:7px;white-space:nowrap}
@media(max-width:760px){.review-matrix-wrap{max-height:560px}.review-matrix .review-person-column{width:150px;min-width:150px;max-width:150px}.review-matrix th,.review-matrix td{min-width:112px}.review-detail .panel-head{align-items:flex-start;gap:12px}.review-detail-table{min-width:760px}}

/* 小团队期间核对：一张差异工作表和一张最终结果表 */
.statistics-tabs{display:flex;gap:4px;margin:4px 0 14px;padding:4px;width:max-content;border:1px solid var(--line);border-radius:8px;background:#e8eef2}.statistics-tab{min-height:38px;padding:7px 18px;border:0;border-radius:6px;background:transparent;color:#5c6f7c;font-weight:750}.statistics-tab.active{background:#fff;color:var(--navy);box-shadow:0 1px 5px rgba(24,55,78,.12)}
@media(max-width:760px){.statistics-tabs{width:100%}.statistics-tab{flex:1;padding:7px 9px}}

/* 首页工作概览：角色化待办、快捷入口和轻量统计 */
.dashboard-stat-grid{margin-top:18px}.dashboard-work-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px}.dashboard-work-grid.single{grid-template-columns:1fr}.dashboard-todo-list,.dashboard-shortcuts{padding:8px 18px 18px}.dashboard-todo{width:100%;min-height:68px;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;color:var(--ink)}.dashboard-todo:hover{background:#f6fafc}.dashboard-todo.pending{border-left:3px solid var(--amber)}.dashboard-todo.returned{border-left:3px solid var(--danger)}.dashboard-todo span,.dashboard-todo strong,.dashboard-todo small,.dashboard-clear strong,.dashboard-clear span,.dashboard-shortcuts span,.dashboard-shortcuts strong,.dashboard-shortcuts small{display:block}.dashboard-todo small,.dashboard-clear span,.dashboard-shortcuts small{margin-top:4px;color:var(--muted);font-size:.74rem;line-height:1.45}.dashboard-todo b{flex:0 0 auto;color:var(--blue);font-size:.76rem}.dashboard-clear{padding:28px 12px;text-align:center}.dashboard-shortcuts{display:grid;gap:8px}.dashboard-shortcuts button{min-height:62px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfdfe;display:grid;grid-template-columns:34px 1fr 18px;align-items:center;gap:10px;text-align:left;color:var(--ink)}.dashboard-shortcuts button:hover{border-color:#aac6d8;background:#f3f8fb}.dashboard-shortcuts i{width:32px;height:32px;border-radius:8px;background:#e5f0f6;color:var(--blue);display:grid;place-items:center;font-style:normal;font-weight:800}.dashboard-shortcuts b{color:var(--blue)}
.dashboard-metric-link{position:relative;width:100%;text-align:left;color:var(--ink);transition:border-color .16s,box-shadow .16s,transform .16s}.dashboard-metric-link>div:nth-child(2){min-width:0}.dashboard-metric-link>b{margin-left:auto;color:#91a7b6;font-size:1rem}.dashboard-metric-link:hover{border-color:#9fc2d7;box-shadow:0 8px 22px rgba(23,57,79,.09);transform:translateY(-1px)}.dashboard-metric-link:focus-visible{outline:3px solid rgba(40,120,169,.18);border-color:var(--blue)}
@media(max-width:900px){.dashboard-work-grid{grid-template-columns:1fr}}
@media(max-width:760px){.dashboard-todo-list,.dashboard-shortcuts{padding:6px 12px 14px}.dashboard-todo{align-items:flex-start}.dashboard-todo b{margin-top:3px}}

/* 出勤纠错与审核状态 */
.status-chip.draft{background:#edf1f4;color:#667985}.worklog-history th:nth-child(7){width:175px}.worklog-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.worklog-review-note{display:block;margin-top:5px;color:var(--muted);font-size:.7rem;white-space:normal}.worklog-edit-row>td{padding:0;background:#f8fafb}.worklog-edit-form{display:grid;grid-template-columns:minmax(230px,.9fr) 170px 120px minmax(240px,1.1fr) auto;align-items:end;gap:12px;padding:14px 16px;border-left:3px solid var(--blue)}.worklog-edit-form>div:first-child span,.worklog-edit-form>div:first-child strong{display:block}.worklog-edit-form label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:700}.worklog-edit-form input,.worklog-edit-form select{width:100%;border:1px solid var(--line);border-radius:3px;background:#fff;padding:9px 10px}.worklog-edit-actions{display:flex;gap:7px}.review-cell-button.confirmed{border-color:#8fcab9;background:#e5f5ef;color:#216f60}.review-cell-button.returned{border-color:#e2a8a8;background:#fcecec;color:#9d3f3f}.review-cell-button.draft{border-color:#cbd4da;background:#f0f3f5;color:#60717c}.review-cell-button.selected{background:#1769a0;border-color:#1769a0;color:#fff}
@media(max-width:1100px){.worklog-edit-form{grid-template-columns:1fr 160px 120px}.worklog-edit-form .assigned-work-content{grid-column:1/3}.worklog-edit-actions{grid-column:3}}
@media(max-width:760px){.worklog-edit-form{grid-template-columns:1fr}.worklog-edit-form .assigned-work-content,.worklog-edit-actions{grid-column:auto}.worklog-edit-actions .btn{flex:1}}
.attendance-panel{overflow:hidden}.attendance-tabs{display:flex;gap:4px;padding:0 18px;border-bottom:1px solid var(--line)}.attendance-tab{position:relative;min-height:52px;padding:0 17px;border:0;background:transparent;color:var(--muted);font-weight:800}.attendance-tab.active{color:var(--blue)}.attendance-tab.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--blue)}.attendance-tab span{display:inline-grid;min-width:21px;height:21px;padding:0 5px;place-items:center;border-radius:20px;background:#edf3f7;font-size:.7rem}.attendance-daybar{display:grid;grid-template-columns:230px minmax(0,1fr) auto;align-items:end;gap:24px;padding:18px 22px;background:#f7fafb;border-bottom:1px solid var(--line)}.attendance-daybar label{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:750}.attendance-daybar input{min-height:42px;border:1px solid var(--line);border-radius:6px;padding:0 11px;background:#fff;font:inherit;font-weight:700}.attendance-daybar>div strong,.attendance-daybar>div span{display:block}.attendance-daybar>div strong{font-size:1rem}.attendance-daybar>div span{margin-top:3px;color:var(--muted);font-size:.78rem}.attendance-assignment-head,.attendance-assignment-row{display:grid;grid-template-columns:minmax(300px,1.5fr) 150px 135px minmax(230px,1fr);align-items:center;gap:18px}.attendance-assignment-head{min-height:42px;padding:0 22px;background:#edf3f7;color:#526b7d;font-size:.76rem;font-weight:750;border-bottom:1px solid var(--line)}.attendance-assignment-row{min-height:82px;padding:12px 22px;border-bottom:1px solid var(--line)}.attendance-assignment-row>div:first-child strong,.attendance-assignment-row>div:first-child span,.attendance-assignment-row>div:nth-child(2) b,.attendance-assignment-row>div:nth-child(2) span{display:block}.attendance-assignment-row>div:first-child strong{color:var(--blue)}.attendance-assignment-row>div:first-child span{margin-top:3px;font-weight:700}.attendance-assignment-row>div:nth-child(2) span{color:var(--muted);font-size:.72rem}.attendance-days,.attendance-note{width:100%;min-height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 10px;font:inherit}.attendance-days{font-weight:700}.attendance-days:disabled,.attendance-note:disabled{background:#f0f3f5;color:#7b8b96}.attendance-submitbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px}.attendance-submitbar>div>strong,.attendance-submitbar>div>span{display:block}.attendance-submitbar>div>strong{font-size:1rem}.attendance-submitbar>div>span{margin-top:3px;color:var(--muted);font-size:.75rem}.attendance-submitbar>div>span.invalid{color:var(--danger);font-weight:700}.attendance-record-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 20px;border-bottom:1px solid var(--line)}.attendance-month-nav,.attendance-view-switch{display:flex;align-items:center;gap:8px}.attendance-month-nav strong{min-width:110px;text-align:center;font-size:1rem}.attendance-view-switch .active{box-shadow:inset 0 0 0 1px rgba(31,128,110,.15)}.attendance-month-summary{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.attendance-month-summary>div{padding:13px 20px;border-right:1px solid var(--line)}.attendance-month-summary>div:last-child{border-right:0}.attendance-month-summary span,.attendance-month-summary strong{display:block}.attendance-month-summary span{color:var(--muted);font-size:.72rem}.attendance-month-summary strong{margin-top:2px;font-size:1rem}.attendance-calendar-week,.attendance-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.attendance-calendar-week{background:#edf3f7;border-bottom:1px solid var(--line)}.attendance-calendar-week span{padding:9px;text-align:center;color:#526b7d;font-size:.76rem;font-weight:750}.attendance-calendar-day{min-height:112px;padding:9px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;text-align:left;vertical-align:top;color:var(--ink);overflow:hidden}.attendance-calendar-day:nth-child(7n){border-right:0}.attendance-calendar-day:not(.outside):hover{background:#f6fafc}.attendance-calendar-day.scheduled{background:#fbfdfe}.attendance-calendar-day.selected{box-shadow:inset 0 0 0 2px var(--blue);background:#f2f8fc}.attendance-calendar-day>strong{display:block;margin-bottom:6px;font-size:.82rem}.attendance-calendar-day.outside{background:#f5f7f8}.attendance-calendar-entry,.attendance-calendar-available{display:block;margin-top:4px;padding:3px 5px;border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}.attendance-calendar-entry.submitted{background:#fff0d8;color:#9b6212}.attendance-calendar-entry.confirmed{background:#e2f4ef;color:#1c7565}.attendance-calendar-entry.returned{background:#fde9e9;color:#a43d3d}.attendance-calendar-entry.draft{background:#edf1f4;color:#667985}.attendance-calendar-available{color:#668092;background:#eef4f7}.attendance-calendar-day>small{display:block;margin-top:4px;color:var(--muted)}.attendance-day-detail{margin:16px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.attendance-detail-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#f7fafb;border-bottom:1px solid var(--line)}.attendance-detail-head h3{margin:3px 0 0}.attendance-detail-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line)}.attendance-detail-row:last-child{border-bottom:0}.attendance-detail-row>div:first-child strong,.attendance-detail-row>div:first-child span,.attendance-detail-row>div:first-child small{display:block}.attendance-detail-row>div:first-child span{margin-top:3px;color:var(--muted);font-size:.76rem}.attendance-detail-row>div:first-child small{margin-top:4px;color:var(--danger)}.attendance-detail-edit{padding:0;background:#f8fafb;border-bottom:1px solid var(--line)}.attendance-list-filter{display:flex;justify-content:flex-end;padding:13px 18px;border-bottom:1px solid var(--line)}.attendance-list-filter select{min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 10px}.worklog-history table{table-layout:fixed}.worklog-history th:nth-child(1){width:120px}.worklog-history th:nth-child(3){width:75px}.worklog-history th:nth-child(5){width:110px}.worklog-history th:nth-child(6){width:175px}
@media(max-width:1100px){.attendance-assignment-head,.attendance-assignment-row{grid-template-columns:minmax(240px,1fr) 120px 110px minmax(190px,1fr)}.attendance-calendar-day{min-height:96px}.attendance-detail-row{grid-template-columns:minmax(0,1fr) 80px}.attendance-detail-row>.worklog-actions{grid-column:1/-1}}
@media(max-width:760px){.attendance-daybar{grid-template-columns:1fr}.attendance-assignment-head{display:none}.attendance-assignment-row{grid-template-columns:1fr 1fr;gap:10px}.attendance-assignment-row>div:first-child{grid-column:1/-1}.attendance-submitbar,.attendance-record-toolbar{align-items:stretch;flex-direction:column}.attendance-submitbar .btn{width:100%}.attendance-month-summary{grid-template-columns:1fr 1fr}.attendance-month-summary>div:nth-child(2){border-right:0}.attendance-month-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.attendance-calendar{min-width:720px}.attendance-calendar-week{min-width:720px}.attendance-calendar-day{min-height:100px}.attendance-records-pane{overflow:auto}.attendance-detail-row{grid-template-columns:1fr}.attendance-detail-row>.worklog-actions{grid-column:auto}}

/* 项目负责人按正式周报格式填写四项周期内容 */
.weekly-report-body{display:block;padding:15px 18px 17px}.weekly-report-body .weekly-detail-note{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 18px;padding:0 0 12px;background:transparent;border-radius:0}.weekly-report-body .weekly-detail-note strong{color:var(--ink);font-size:.9rem}.weekly-report-body .weekly-detail-note span{color:var(--muted);font-size:.76rem}.weekly-report-body .weekly-detail-note small{grid-column:1/-1;color:#71838e;font-size:.72rem}.weekly-content-table{width:100%;table-layout:fixed;border-collapse:collapse;background:#fff}.weekly-content-table th,.weekly-content-table td{border:1px solid var(--line);padding:0;vertical-align:middle}.weekly-content-table th{width:180px;background:#eaf2f7;text-align:center!important;padding:12px 14px}.weekly-content-table th strong,.weekly-content-table th small{display:block}.weekly-content-table th small{margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:500;line-height:1.45}.weekly-content-table td{background:#fff}.weekly-content-table textarea{display:block;width:100%;min-height:76px;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;padding:12px 14px;resize:vertical;line-height:1.65}.weekly-content-table p{min-height:48px;margin:0;padding:12px 14px;white-space:pre-wrap;line-height:1.65}.weekly-report-body .weekly-card-actions{display:flex;justify-content:flex-end;margin-top:12px}.weekly-readonly.weekly-report-body{grid-template-columns:none;gap:0}
.weekly-requirement{display:grid;grid-template-columns:180px 1fr;margin:0 0 12px;border:1px solid #cbdde8;background:#f2f8fb}.weekly-requirement strong{display:flex;align-items:center;justify-content:center;padding:11px 14px;background:#dfeef6;color:#234b63}.weekly-requirement span{padding:11px 14px;line-height:1.6;white-space:pre-wrap}
@media(max-width:760px){.weekly-report-body{padding:12px}.weekly-report-body .weekly-detail-note{grid-template-columns:1fr;gap:4px}.weekly-report-body .weekly-detail-note small{grid-column:auto}.weekly-content-table th{width:115px;padding:10px}.weekly-content-table th small{display:none}.weekly-content-table textarea,.weekly-content-table p{padding:10px}}

/* 期间统计报表：项目周期差异与人员项目汇总 */
.report-head-status{display:flex;align-items:center;gap:8px}.cycle-difference-table{min-width:1500px;table-layout:fixed}.cycle-difference-table th,.cycle-difference-table td{text-align:center;vertical-align:middle}.cycle-difference-table th:nth-child(1){width:260px}.cycle-difference-table th:nth-child(2){width:105px}.cycle-difference-table th:nth-child(3){width:110px}.cycle-difference-table th:nth-child(4),.cycle-difference-table th:nth-child(6){width:210px}.cycle-difference-table th:nth-child(5),.cycle-difference-table th:nth-child(7),.cycle-difference-table th:nth-child(8){width:105px}.cycle-difference-table th:nth-child(9){width:220px}.cycle-difference-table th:nth-child(10){width:165px}.cycle-difference-table td:first-child,.cycle-difference-table td:nth-child(4),.cycle-difference-table td:nth-child(6),.cycle-difference-table td:nth-child(9){text-align:left}.cycle-difference-table td small{display:block;margin-top:4px;color:var(--muted)}.people-summary{line-height:1.7}.project-reason-text{display:block;white-space:pre-wrap;line-height:1.55}.cycle-row-actions{display:flex;justify-content:center;gap:5px}.cycle-project-detail>td{padding:0!important;background:#f6f9fb}.cycle-project-detail-inner{padding:15px 18px;border-left:4px solid var(--blue)}.cycle-project-detail-inner>div:first-child{display:flex;align-items:center;gap:12px;margin-bottom:10px}.cycle-people-table{width:100%;min-width:760px;background:#fff}.cycle-people-table th,.cycle-people-table td{text-align:center!important}.cycle-people-table th:first-child,.cycle-people-table td:first-child{text-align:left!important;width:190px}.cycle-reason-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;margin-top:12px;padding:13px 15px;background:#fff8e8;border:1px solid #ecd49b}.cycle-reason-form label{display:grid;gap:6px;color:#6b5a34;font-size:.76rem;font-weight:700}.cycle-reason-form textarea{width:100%;min-height:76px;border:1px solid #d8c18b;border-radius:3px;padding:9px 10px;resize:vertical}.cycle-reason-form>div{display:flex;gap:7px}.fieldwork-statistics-table{min-width:1200px;table-layout:fixed}.fieldwork-statistics-table th,.fieldwork-statistics-table td{text-align:center;vertical-align:middle}.fieldwork-statistics-table th:nth-child(1){width:65px}.fieldwork-statistics-table th:nth-child(2){width:120px}.fieldwork-statistics-table th:nth-child(3){width:140px}.fieldwork-statistics-table th:nth-child(4){width:150px}.fieldwork-statistics-table th:nth-child(5){width:300px}.fieldwork-statistics-table th:nth-child(6){width:130px}.fieldwork-statistics-table th:nth-child(7){width:105px}.fieldwork-statistics-table th:nth-child(8){width:280px}.fieldwork-statistics-table th:nth-child(9){width:110px}.fieldwork-statistics-table td:nth-child(5),.fieldwork-statistics-table .work-dates{text-align:left}.fieldwork-statistics-table .person-subtotal td{background:#eef4f7;font-weight:800;border-top:2px solid #c4d4de}.fieldwork-statistics-table .person-subtotal td:first-child{text-align:right}.fieldwork-statistics-table tfoot th,.fieldwork-statistics-table tfoot td{background:#dceaf2;font-weight:850;border-top:2px solid #adc6d5}.fieldwork-statistics-table tfoot th{text-align:right}.fieldwork-statistics-table tfoot td{text-align:center}
.fieldwork-statistics-table{min-width:1060px}.fieldwork-statistics-table th:nth-child(3){width:150px}.fieldwork-statistics-table th:nth-child(4){width:300px}.fieldwork-statistics-table th:nth-child(5){width:130px}.fieldwork-statistics-table th:nth-child(6){width:105px}.fieldwork-statistics-table th:nth-child(7){width:280px}.fieldwork-statistics-table th:nth-child(8){width:110px}.fieldwork-statistics-table td:nth-child(4){text-align:left}.fieldwork-statistics-table td:nth-child(5){text-align:center}
#view-monthly .section-note{font-size:1rem;line-height:1.7}#view-monthly .statistics-range,#view-monthly .statistics-range select,#view-monthly .statistics-range .btn{font-size:.95rem}#view-monthly .metric-card span{font-size:.88rem}#view-monthly .metric-card strong{font-size:1.65rem}#view-monthly .statistics-tab{font-size:.98rem}#view-monthly .panel-head .eyebrow{font-size:.8rem}#view-monthly .panel-head h3{font-size:1.15rem}#view-monthly .report-head-status .status-chip{font-size:.78rem}#view-monthly .cycle-difference-table,#view-monthly .fieldwork-statistics-table{font-size:.96rem}#view-monthly .cycle-difference-table th,#view-monthly .fieldwork-statistics-table th{font-size:.9rem;line-height:1.45}#view-monthly .cycle-difference-table td,#view-monthly .fieldwork-statistics-table td{padding:14px 13px;line-height:1.6}#view-monthly .cycle-difference-table{min-width:1670px}#view-monthly .cycle-difference-table th:nth-child(1){width:280px}#view-monthly .cycle-difference-table th:nth-child(4),#view-monthly .cycle-difference-table th:nth-child(6){width:225px}#view-monthly .cycle-difference-table th:nth-child(9){width:235px}#view-monthly .cycle-difference-table th:nth-child(10){width:210px}#view-monthly .cycle-row-actions{gap:8px}#view-monthly .cycle-row-actions .mini-btn{min-width:76px;padding:7px 10px;font-size:.82rem;white-space:nowrap}#view-monthly .panel-foot{font-size:.84rem;line-height:1.6}
#view-monthly .cycle-difference-table th:nth-child(2),#view-monthly .cycle-difference-table td:nth-child(2),#view-monthly .cycle-difference-table td:nth-child(3),#view-monthly .cycle-difference-table td:nth-child(5),#view-monthly .cycle-difference-table td:nth-child(7),#view-monthly .cycle-difference-table td:nth-child(8){white-space:nowrap}#view-monthly .cycle-project-cell strong,#view-monthly .cycle-project-cell span,#view-monthly .cycle-project-cell small{display:block}#view-monthly .cycle-project-cell span{margin-top:3px;line-height:1.55}#view-monthly .cycle-project-cell small{margin-top:5px}#view-monthly .people-summary{display:flex;flex-wrap:wrap;align-content:center;gap:5px 10px}#view-monthly .people-summary-item{display:inline-block;white-space:nowrap}#view-monthly .project-reason-text{overflow-wrap:anywhere}#view-monthly .cycle-row-actions{flex-wrap:nowrap}
@media(max-width:760px){.report-head-status{align-items:flex-end;flex-direction:column}.cycle-reason-form{grid-template-columns:1fr}.cycle-reason-form>div .btn{flex:1}}

/* 项目排班浮层：项目信息与参与人员一次保存，总表仍可继续调整 */
.schedule-panel-actions{display:flex;align-items:center;gap:10px}#schedule-project-dialog{width:min(900px,calc(100% - 30px));max-height:calc(100vh - 30px);overflow:auto}.schedule-project-dialog-card{display:block!important;width:100%;border:0!important;margin:0!important;padding:0!important}.schedule-project-dialog-card .dialog-head{padding:18px 22px}.schedule-project-fields{display:grid;grid-template-columns:minmax(300px,1.3fr) 190px 140px;gap:13px;padding:16px 22px}.schedule-project-fields label{display:grid;gap:7px;color:#526775;font-size:.8rem;font-weight:750}.schedule-project-fields input,.schedule-project-fields select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 10px}.schedule-project-fields .requirements-field{grid-column:1/-1}.schedule-participant-head{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:14px 22px 10px;border-top:1px solid var(--line)}.schedule-participant-head strong,.schedule-participant-head span{display:block}.schedule-participant-head strong{margin-top:3px}.schedule-participant-head small{color:var(--muted)}.schedule-participant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:230px;margin:0 22px;overflow:auto;border:1px solid var(--line);border-radius:7px;background:#fbfdfe}.schedule-participant-row{display:grid;grid-template-columns:22px minmax(0,1fr) 92px;align-items:center;gap:9px;min-height:54px;padding:7px 11px;border-bottom:1px solid #e8eef2;cursor:pointer}.schedule-participant-row:nth-child(odd){border-right:1px solid #e8eef2}.schedule-participant-row:hover{background:#f1f7fa}.schedule-participant-row>input[type="checkbox"]{width:17px;height:17px}.schedule-participant-row span strong,.schedule-participant-row span small{display:block}.schedule-participant-row span strong{font-size:.86rem}.schedule-participant-row span small{margin-top:2px;color:var(--muted);font-size:.68rem}.schedule-participant-days{width:82px!important;min-height:34px!important;text-align:center}.schedule-participant-days:disabled{background:#edf1f3!important;color:#9da8af}.schedule-project-actions{position:absolute;right:-4px;top:-5px;display:flex;align-items:center;gap:4px}.schedule-project-actions .edit-project,.schedule-project-actions .remove-project{position:static;width:auto;height:25px;border:1px solid #b9d2e1;border-radius:5px;background:#f7fbfd;color:#17699f;font-size:.67rem;font-weight:750;line-height:1;padding:0 6px}.schedule-project-actions .remove-project{width:25px;border-color:#e7b2b2;background:#fff8f8;color:#c44949;font-size:.9rem}.schedule-table .schedule-project-head{padding-right:62px;padding-left:18px}

.sidebar-foot{grid-template-columns:36px 1fr auto 28px;gap:8px}.sidebar-foot .password-btn{border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:4px 6px;color:#b6c7d3;font-size:.68rem}.sidebar-foot .password-btn:hover{border-color:#72d7c3;color:#72d7c3}.password-fields{grid-template-columns:1fr}.password-fields+.form-error{padding:0 24px;margin:8px 0 0}
@media(max-width:760px){.schedule-panel-actions{width:100%;align-items:flex-end;flex-direction:column}.schedule-project-fields,.schedule-participant-list{grid-template-columns:1fr}.schedule-project-fields{padding:14px}.schedule-participant-list{margin:0 14px}.schedule-participant-row:nth-child(odd){border-right:0}.schedule-participant-head{align-items:flex-start;flex-direction:column;padding:12px 14px 9px}}

/* 排班浮层的可搜索项目选择与人员多选 */
.schedule-project-combobox,.schedule-participant-picker{position:relative}.schedule-project-combobox>input[type="search"]{padding-right:34px}.schedule-project-picker>#schedule-project-search-count{justify-self:end;color:var(--muted);font-size:.7rem;font-weight:500}.schedule-project-options{position:absolute;z-index:30;top:calc(100% + 5px);left:0;right:0;max-height:280px;overflow:auto;border:1px solid #b9cbd7;border-radius:7px;background:#fff;box-shadow:0 12px 28px rgba(20,52,75,.18)}.schedule-project-options button{width:100%;display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;border-bottom:1px solid #edf1f3;background:#fff;padding:9px 11px;text-align:left}.schedule-project-options button:hover{background:#edf6fb}.schedule-project-options button strong{color:#17699f}.schedule-project-options button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-project-options button small{color:#a56815}.schedule-project-options .empty{margin:0;padding:18px!important}.schedule-participant-picker{margin:0 22px}.schedule-participant-trigger{width:100%;min-height:42px;border:1px solid #b9cbd7;border-radius:6px;background:#fff;padding:9px 38px 9px 12px;color:#314b5c;font-weight:700;text-align:left}.schedule-participant-trigger:after{content:"⌄";position:absolute;right:14px;color:#657986}.schedule-participant-menu{position:absolute;z-index:30;top:calc(100% + 5px);left:0;right:0;border:1px solid #b9cbd7;border-radius:7px;background:#fff;box-shadow:0 12px 28px rgba(20,52,75,.18)}.schedule-participant-menu>input{width:calc(100% - 20px);min-height:38px;margin:10px;border:1px solid var(--line);border-radius:5px;padding:8px 10px}.schedule-participant-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:225px;overflow:auto;border-top:1px solid #edf1f3;border-bottom:1px solid #edf1f3}.schedule-participant-options label{display:flex;align-items:center;gap:9px;min-height:43px;padding:7px 11px;border-bottom:1px solid #edf1f3;cursor:pointer}.schedule-participant-options label:nth-child(odd){border-right:1px solid #edf1f3}.schedule-participant-options label:hover{background:#f1f7fa}.schedule-participant-options input{width:17px;height:17px}.schedule-participant-options .empty{grid-column:1/-1;margin:0;padding:18px!important}.schedule-participant-menu-actions{display:flex;align-items:center;justify-content:space-between;padding:9px 10px}.schedule-participant-menu-actions span{color:var(--muted);font-size:.78rem}.schedule-participant-menu-actions .btn{min-height:34px;padding:7px 14px}.schedule-participant-list{max-height:none;margin-top:12px;border:0;background:transparent;overflow:visible;gap:8px}.schedule-participant-list .schedule-participant-row{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;gap:11px;min-height:48px;border:1px solid var(--line)!important;border-radius:6px;background:#f8fbfc;padding:7px 9px;cursor:default}.schedule-participant-row>strong{padding-left:3px}.schedule-participant-row>label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.72rem}.schedule-participant-row>button{width:27px;height:27px;border:1px solid #e0b0b0;border-radius:5px;background:#fff7f7;color:#bd4646}.schedule-participant-empty{grid-column:1/-1;margin:0;padding:16px;border:1px dashed #cbd8df;border-radius:6px;color:#8a98a1;text-align:center}
@media(max-width:760px){.schedule-project-options button{grid-template-columns:100px minmax(0,1fr)}.schedule-project-options button small{display:none}.schedule-participant-picker{margin:0 14px}.schedule-participant-options{grid-template-columns:1fr}.schedule-participant-options label:nth-child(odd){border-right:0}.schedule-participant-list{margin-top:10px}.schedule-participant-list .schedule-participant-row{grid-template-columns:minmax(0,1fr) auto 28px}}

/* 增加排班浮层与人员下拉的可视高度 */
#schedule-project-dialog{max-height:calc(100vh - 12px)}.schedule-participant-options{max-height:300px}
