:root{--navy:#082a67;--blue:#154e9d;--red:#e03c31;--ink:#111827;--muted:#6b7280;--line:#e6eaf0;--paper:#f4f6f9;--green:#15945d;--orange:#d97706}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:linear-gradient(125deg,#eef3fa 0 50%,#fff 50%)}.login-brand{padding:54px 6vw;display:flex;align-items:flex-start;gap:18px;color:var(--navy);font-weight:800}.login-brand img{width:155px;height:46px;object-fit:contain;object-position:left center}.login-brand span{border-left:1px solid #b7c2d3;padding-left:18px;margin-top:10px}.login-card{align-self:center;width:min(440px,82%);padding:46px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 26px 70px #09265b18}.eyebrow{color:var(--red);font-size:11px;font-weight:900;letter-spacing:.14em}.login-card h1{font-size:34px;margin:12px 0 8px}.login-card>p{color:var(--muted);margin:0 0 30px}.login-card label,.dialog-body label{display:block;font-size:13px;font-weight:700;margin:18px 0}.login-card input,.filters input,.filters select,.dialog-body textarea{display:block;width:100%;margin-top:8px;border:1px solid #d8dee8;border-radius:11px;padding:13px;background:#fff;outline:none}.login-card input:focus,.filters input:focus,.dialog-body textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #154e9d12}.login-card button,.primary{border:0;background:var(--navy);color:#fff;border-radius:11px;padding:13px 19px;font-weight:800;cursor:pointer}.login-card button{width:100%;margin-top:10px}.login-card small{display:block;text-align:center;color:#9aa2ae;margin-top:16px}.app{min-height:100vh;display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:#071d43;color:#fff;padding:24px 16px;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:12px;padding:0 8px 28px;font-size:18px;font-weight:900}.logo img{width:104px;height:34px;object-fit:contain;filter:brightness(0) invert(1)}.logo span{border-left:1px solid #ffffff30;padding-left:12px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{border:0;background:transparent;color:#aebbd0;text-align:left;padding:13px 14px;border-radius:10px;cursor:pointer;display:flex;gap:12px;align-items:center}.sidebar nav button i{font-style:normal;font-size:19px;width:20px}.sidebar nav button.active{background:#ffffff14;color:#fff;font-weight:800}.badge{margin-left:auto;background:var(--red);color:#fff;padding:2px 7px;border-radius:20px;font-size:10px}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff14;padding:19px 8px 4px;display:flex;align-items:center;gap:10px}.sidebar-foot b,.sidebar-foot small{display:block}.sidebar-foot b{font-size:12px}.sidebar-foot small{font-size:10px;color:#8fa0ba;margin-top:3px}.online-dot{width:9px;height:9px;border-radius:50%;background:#43d48a;box-shadow:0 0 0 5px #43d48a18}main{margin-left:232px;min-width:0}header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;position:sticky;top:0;z-index:10}header>div:first-of-type{flex:1}header span{font-size:11px;color:#8b95a4}header h2{font-size:18px;margin:4px 0 0}.admin{display:flex;align-items:center;gap:10px}.admin>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#e8eef8;color:var(--navy);font-weight:900}.admin b,.admin small{display:block}.admin small{color:#8b95a4;margin-top:2px}.admin button{border:0;background:transparent;color:#8b95a4;margin-left:12px;cursor:pointer}.menu{display:none}.page{display:none;padding:30px;max-width:1500px;margin:auto}.active-page{display:block}.welcome{border-radius:20px;background:linear-gradient(115deg,#082a67,#174f9c);color:#fff;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 18px 36px #082a6721}.welcome span{font-size:12px;color:#b8cbe9}.welcome h1{font-size:28px;margin:8px 0}.welcome p{margin:0;color:#d9e3f2}.welcome .primary{background:#fff;color:var(--navy)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;grid-template-columns:1fr 44px}.metric span,.metric small{color:var(--muted);font-size:12px}.metric b{font-size:29px;margin-top:9px}.metric i{width:44px;height:44px;border-radius:13px;background:#edf2fa;color:var(--blue);display:grid;place-items:center;font-style:normal;font-size:21px}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.panel,.table-wrap{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.panel-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-head h3{margin:0 0 5px}.panel-head p,.toolbar p{margin:0;color:var(--muted);font-size:12px}.link{border:0;background:transparent;color:var(--blue);font-size:12px;cursor:pointer}.project-row,.review-row{padding:16px 22px;border-bottom:1px solid #eff1f4;display:flex;gap:14px;align-items:center}.project-row:last-child,.review-row:last-child{border-bottom:0}.project-row>div:first-child,.review-row>div:nth-child(2){flex:1}.project-row b,.project-row span,.review-row b,.review-row span{display:block}.project-row span,.review-row span{font-size:11px;color:var(--muted);margin-top:4px}.progress{width:120px}.progress div{height:6px;border-radius:5px;background:#e5e9ef;overflow:hidden;margin-top:6px}.progress i{display:block;height:100%;background:var(--blue)}.status{padding:5px 9px;border-radius:20px;font-size:11px!important;font-weight:700}.status-active{background:#eaf1fb;color:var(--blue)}.status-submitted,.status-pending{background:#fff3dc;color:var(--orange)}.status-completed,.status-approved{background:#e6f7ef;color:var(--green)}.status-rework{background:#fdebea;color:#bf3028}.mini-photo,.photo-visual{background:linear-gradient(140deg,#d7c3a6,#8a7156);position:relative;overflow:hidden}.mini-photo{width:58px;height:48px;border-radius:9px}.mini-photo:after,.photo-visual:after{content:"店装现场";position:absolute;bottom:7px;left:8px;color:#fff;font-size:9px;background:#0007;padding:3px 5px;border-radius:4px}.toolbar{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.toolbar h1{font-size:27px;margin:0 0 5px}.secondary,.danger{border:1px solid #d8dee8;background:#fff;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer}.danger{border-color:#efb3af;color:#bd3028}.filters{display:flex;gap:10px;margin-bottom:15px}.filters input{width:360px;margin:0}.filters select{width:150px;margin:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:15px 18px;border-bottom:1px solid #edf0f4;font-size:13px}th{font-size:11px;color:#798391;background:#fafbfc}td small{display:block;color:var(--muted);margin-top:4px}.table-link{border:0;background:transparent;color:var(--blue);cursor:pointer}.filter-tabs{display:flex;gap:6px;margin-bottom:16px}.filter-tabs button{border:0;background:#e9edf3;color:#657083;border-radius:9px;padding:9px 16px;cursor:pointer}.filter-tabs button.active{background:var(--navy);color:#fff}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:15px}.photo-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.photo-select{position:absolute;top:10px;left:10px;z-index:2;width:18px;height:18px}.photo-visual{height:175px;cursor:pointer}.photo-visual.warm{background:linear-gradient(145deg,#cfa76e,#4a3629)}.photo-visual.blue{background:linear-gradient(145deg,#dbe7ef,#5f7a8d)}.photo-visual.gray{background:linear-gradient(145deg,#d8d5d0,#6f6a65)}.photo-visual.night{background:linear-gradient(145deg,#45536b,#101827)}.photo-visual.wood{background:linear-gradient(145deg,#d5b68a,#755333)}.photo-visual.light{background:linear-gradient(145deg,#eee9df,#b8a990)}.photo-copy{padding:14px}.photo-copy h3{margin:0;font-size:14px}.photo-copy p{margin:7px 0;color:var(--muted);font-size:11px;line-height:1.5}.photo-foot{display:flex;align-items:center;justify-content:space-between}.worker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.worker-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.worker-top{display:flex;gap:12px;align-items:center}.avatar{width:48px;height:48px;border-radius:14px;background:#e9eff8;color:var(--navy);display:grid;place-items:center;font-weight:900;font-size:18px}.worker-card h3{margin:0}.worker-card p{color:var(--muted);font-size:12px;margin:5px 0}.worker-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.worker-meta div{background:#f6f7f9;padding:10px;border-radius:9px}.worker-meta span,.worker-meta b{display:block;font-size:11px}.worker-meta span{color:var(--muted);margin-bottom:4px}.worker-actions{display:flex;justify-content:space-between;align-items:center}.enabled{color:var(--green);font-size:12px}dialog{border:0;border-radius:20px;padding:0;width:min(880px,90vw);box-shadow:0 28px 90px #0005}dialog::backdrop{background:#07152b99}dialog form{display:grid;grid-template-columns:1.05fr .95fr;position:relative}.dialog-visual{min-height:520px;background:linear-gradient(145deg,#cfa76e,#4a3629)}.dialog-body{padding:34px}.dialog-body h2{font-size:24px}.dialog-meta{display:grid;gap:8px;background:#f5f7fa;padding:14px;border-radius:11px;font-size:12px;color:#5f6977}.dialog-body textarea{min-height:92px;resize:vertical}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}.dialog-close{position:absolute;right:14px;top:12px;border:0;background:#edf0f4;border-radius:50%;width:32px;height:32px;z-index:3;cursor:pointer}.toast{position:fixed;right:25px;bottom:24px;background:#101c2f;color:#fff;padding:13px 18px;border-radius:11px;box-shadow:0 15px 40px #0003;transform:translateY(100px);opacity:0;transition:.25s;z-index:50}.toast.show{transform:translateY(0);opacity:1}@media(max-width:1100px){.photo-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.worker-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app{display:block}.sidebar{transform:translateX(-100%);z-index:30;transition:.2s}.sidebar.open{transform:none}main{margin:0}header{padding:0 16px}.menu{display:block;border:0;background:transparent;font-size:22px;margin-right:10px}.admin>div{display:none}.page{padding:18px}.metrics{grid-template-columns:repeat(2,1fr)}.welcome{padding:22px;align-items:flex-start}.welcome .primary{display:none}.photo-grid,.worker-grid{grid-template-columns:1fr}.table-wrap{overflow:auto}.login-page{display:block;padding:20px}.login-brand{padding:20px}.login-card{margin:10vh auto;width:100%}dialog form{grid-template-columns:1fr}.dialog-visual{min-height:260px}.filters{display:grid}.filters input,.filters select{width:100%}}

 .capacity-state{margin-top:4px;min-width:150px}.capacity-state span{display:block;font-size:10px;color:#8fa0ba;white-space:nowrap}.capacity-state i{display:block;width:120px;height:4px;margin-top:5px;background:#ffffff25;border-radius:5px;overflow:hidden}.capacity-state em{display:block;height:100%;background:#43d48a;border-radius:5px}.filters{min-width:0;flex-wrap:wrap}.filters input,.filters select{min-width:0;overflow:hidden;text-overflow:ellipsis}
html,body{overflow-x:hidden}main{overflow-x:hidden}.filters{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(150px,180px)!important;width:100%!important;max-width:100%!important}.filters input,.filters select{width:100%!important;max-width:100%!important;min-width:0!important}.page{max-width:100%;overflow:hidden}@media(max-width:600px){.filters{grid-template-columns:minmax(0,1fr)!important}}
