:root{--ink: #20242a;--muted: #6d747d;--line: #e3e6e9;--surface: #fff;--canvas: #f7f8f9;--accent: #b95575;--accent-soft: #fff1f4;--danger: #b84242;--good: #267259;color:var(--ink);background:var(--canvas);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid #2c3137;outline-offset:2px}.table-shell,.metric strong,.sync-stamp,.pagination,.source-grid{font-variant-numeric:tabular-nums}.app-shell{min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;inset:0 auto 0 0;padding:20px 10px 14px;position:fixed;width:200px;z-index:4}.brand{align-items:center;color:var(--ink);display:flex;font-size:18px;font-weight:750;gap:8px;letter-spacing:-.4px;padding:2px 10px 20px}.brand em{color:var(--accent);font-style:normal}.brand-icon{align-items:center;background:#fff0f4;border-radius:9px;color:var(--accent);display:inline-flex;height:32px;justify-content:center;width:32px}.brand-icon svg{height:24px;width:24px}.brand-mark{display:inline-block;height:18px;position:relative;width:18px}.brand-mark i,.brand-mark b{background:var(--accent);border-radius:4px;height:12px;position:absolute;transform:rotate(35deg);width:12px}.brand-mark i{left:0;opacity:.65;top:5px}.brand-mark b{right:0;top:0}.nav-label{color:#858c94;font-size:12px;margin:13px 10px 8px}.sidebar nav{display:grid;gap:2px}.nav-item{align-items:center;background:transparent;border:0;border-radius:6px;color:#565e67;display:flex;font-size:14px;gap:10px;height:42px;padding:0 11px;text-align:left;width:100%}.nav-item:hover{background:#f5f6f7;color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:#ae3158;font-weight:700}.nav-item small{font-size:12px;margin-left:auto}.sidebar-bottom{border-top:1px solid var(--line);margin-top:auto;padding:11px 10px 0}.sync-dot{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:7px}.local-status{color:var(--muted);display:grid;font-size:12px;gap:2px}.local-status span{color:#424a53;font-weight:650}.local-status small{color:var(--muted);font-size:12px}.sync-dot span{background:#8c949d;border-radius:50%;height:7px;width:7px}.demo-dot{background:var(--accent)!important}.mini-action,.link-button{background:transparent;border:0;color:#4c555f;font-size:13px;padding:5px 0;text-decoration:underline;text-underline-offset:3px}.mini-action{margin-top:6px}.profile{display:none}.main-panel{margin-left:200px;min-width:0}.topbar{align-items:center;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;min-height:96px;padding:18px 32px}.crumb{color:#858d95;font-size:12px;margin-bottom:3px}.crumb b{color:#57616b;font-weight:600}.topbar h1{font-size:22px;letter-spacing:-.6px;line-height:1.2;margin:0}.topbar p{color:var(--muted);font-size:13px;margin:5px 0 0}.top-actions{align-items:center;display:flex;flex-shrink:0;gap:10px}.sync-stamp{color:var(--muted);display:flex;font-size:12px;gap:5px;white-space:nowrap}.button{align-items:center;border:1px solid transparent;border-radius:6px;display:inline-flex;font-size:14px;font-weight:650;gap:7px;height:38px;justify-content:center;padding:0 14px;white-space:nowrap}.button.primary{background:var(--accent);color:#fff}.button.primary:hover{background:#c23d65}.button.secondary{background:#fff;border-color:#d8dde2;color:#30363d}.button.secondary:hover{background:#f6f7f8;border-color:#bfc6cd}.page-content{margin:0 auto;max-width:1600px;padding:24px 32px 48px}.section-top{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin:24px 0 12px}.section-top h2{font-size:18px;margin:0}.section-top h2 span{color:var(--muted);font-size:13px;font-weight:500;margin-left:5px}.section-top p{color:var(--muted);font-size:13px;margin:4px 0 0}.summary-strip,.dashboard-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.summary-strip{background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden}.metric{border-right:1px solid var(--line);display:flex;min-height:90px;padding:17px 19px}.metric:last-child{border-right:0}.metric-icon{display:none}.metric>div:last-child{display:grid;gap:3px}.metric span{color:var(--muted);font-size:13px}.metric strong{font-size:24px;letter-spacing:-.6px;line-height:1.1}.metric small{color:#858c94;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric.warning strong{color:#9a5d22}.quick-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.quick-tabs button{background:#fff;border:1px solid #dfe3e7;border-radius:5px;color:#505861;font-size:13px;height:34px;padding:0 11px}.quick-tabs button.selected{background:var(--accent-soft);border-color:#ecb6c6;color:#ae3158;font-weight:650}.quick-tabs b{background:var(--accent);border-radius:10px;color:#fff;font-size:12px;margin-left:5px;padding:1px 6px}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.search{align-items:center;background:#fff;border:1px solid #dfe3e7;border-radius:8px;color:var(--muted);display:flex;gap:9px;height:44px;padding:0 12px;width:280px}.search input{background:transparent;border:0;color:var(--ink);font-size:15px;min-width:0;outline:0;width:100%}.date-filter{align-items:center;background:#fff;border:1px solid #dfe3e7;border-radius:8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:4px;min-height:44px;padding:0 6px 0 11px;width:354px}.date-filter-label{align-items:center;color:var(--muted);display:inline-flex;font-size:13px;gap:7px;padding-right:4px;white-space:nowrap}.date-filter .date-picker{background:transparent;border:0;border-radius:6px;min-height:42px;padding:0}.date-filter .date-picker:focus-within{box-shadow:0 0 0 1px var(--accent),0 0 0 3px #b9557518}.date-filter .date-picker-input{font-size:14px;padding:8px 2px;text-align:center}.date-filter .date-picker-toggle{display:none}.date-range-separator{color:#a5adb7;padding:0 1px}.table-shell{background:#fff;border:1px solid var(--line);border-radius:7px;overflow-x:auto}.table-shell table{border-collapse:collapse;min-width:880px;text-align:left;width:100%}.table-shell th{background:#fafbfc;border-bottom:1px solid var(--line);color:#66707a;font-size:12px;font-weight:650;height:46px;padding:0 12px;white-space:nowrap}.table-shell td{border-bottom:1px solid #edf0f2;color:#2f353b;font-size:14px;height:78px;padding:10px 12px;vertical-align:middle}.table-shell tbody tr:hover{background:#fafbfc}.table-shell tr:last-child td{border-bottom:0}.brand-cell,.task-cell,.source-count,.money-cell,.deadline{display:grid;gap:3px}.brand-cell b,.task-cell b{color:#272d33;font-size:14px;font-weight:650}.brand-cell span,.task-cell span,.source-count span,.money-cell span,.deadline span{color:#737b84;font-size:12px}.task-cell b,.task-cell small{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-cell small{color:#8b929a;font-size:12px}.source-count b,.progress-cell b{font-size:15px}.source-count small,.progress-cell small{color:#7f8790;font-size:12px}.progress-cell{min-width:0}.progress-cell>div:first-child{align-items:baseline;display:flex;gap:5px}.progress-cell span{color:#727a83;font-size:12px}.progress-cell strong{color:#9f3d5b;font-size:13px;margin-left:auto}.progress-cell strong.good{color:var(--good)}.progress-cell strong.muted{color:#7d858e}.progress-track{background:#e9ecef;border-radius:99px;height:5px;margin:7px 0 5px;overflow:hidden;width:100%}.progress-track i{background:var(--accent);border-radius:inherit;display:block;height:100%}.money-cell{min-width:0}.money-cell b{font-size:14px}.bd-cell{align-items:center;display:flex;gap:7px;white-space:nowrap}.bd-cell i{align-items:center;background:#69717a!important;border-radius:50%;color:#fff;display:inline-flex;font-size:12px;font-style:normal;font-weight:700;height:24px;justify-content:center;width:24px}.deadline.warning b,.deadline.overdue b{color:var(--danger)}.deadline.warning span,.deadline.overdue span{color:#a76343}.priority,.status,.alert-tag,.scope-tag{border-radius:4px;display:inline-flex;font-size:12px;font-weight:650;padding:4px 7px;white-space:nowrap;width:fit-content}.priority{background:#f2f3f5;color:#525a64}.priority.p0{background:#fff0f0;color:#b54141}.priority.p1{background:#fff8eb;color:#966614}.priority.p2{background:#f3f4f6;color:#59616a}.priority.p3{background:#f7f8f9;color:#78808a}.status{background:#f3f4f6;color:#59616a}.status.sample{background:#fff7e8;color:#956615}.status.shoot{background:#edf8f3;color:#297056}.status.draft{background:#f2f3f5;color:#56606a}.status.end{background:#f3f4f5;color:#747d86}.row-more,.icon-button{background:transparent;border:0;border-radius:5px;color:#68717a;padding:6px}.row-more:hover,.icon-button:hover{background:#f0f2f4;color:var(--ink)}.pagination{align-items:center;color:var(--muted);display:flex;font-size:13px;justify-content:space-between;margin-top:14px}.pagination>div{display:flex;gap:4px}.pagination button{background:#fff;border:1px solid #dfe3e7;border-radius:5px;color:#4e565f;height:31px;min-width:31px}.pagination button.current{background:#30363d;border-color:#30363d;color:#fff}.empty-state{align-content:center;background:#fff;border:1px dashed #d8dde2;border-radius:7px;display:grid;justify-items:center;min-height:280px;padding:30px;text-align:center}.empty-icon{align-items:center;background:#f1f3f5;border-radius:50%;color:#68717a;display:inline-flex;height:46px;justify-content:center;width:46px}.empty-state h3{font-size:17px;margin:14px 0 5px}.empty-state p{color:var(--muted);font-size:13px;line-height:1.65;margin:0 0 16px;max-width:none;white-space:nowrap}.app-notice,.inline-error{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:flex;font-size:13px;gap:10px;margin:16px 32px 0;padding:10px 14px}.app-notice span,.inline-error span{flex:1}.app-notice button{background:none;border:0;color:var(--muted);display:flex;padding:3px}.inline-error{color:var(--danger);border-color:#e8caca;background:snow}.demo-banner{align-items:center;background:#f5f6f7;border-bottom:1px solid var(--line);color:#505861;display:flex;font-size:13px;gap:8px;justify-content:center;min-height:36px;padding:8px 24px}.demo-banner button{background:transparent;border:0;color:#30363d;font-weight:650;text-decoration:underline;text-underline-offset:3px}.dashboard-filter-wrap>.page-content{padding-top:18px}.dashboard-filter{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:18px auto 0;max-width:1600px;padding:0 32px}.dashboard-filter>span{color:var(--muted);font-size:13px;margin-right:4px}.dashboard-filter .link-button{margin-left:auto}.dashboard-cards{background:transparent;border:0;gap:10px;margin-bottom:14px}.dashboard-cards .metric{background:#fff;border:1px solid var(--line);border-radius:7px;min-height:88px}.dashboard-grid{display:grid;gap:14px;grid-template-columns:1.45fr 1fr;margin-bottom:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:7px;padding:18px}.panel-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:17px}.panel h3{font-size:15px;margin:0 0 4px}.panel p{color:var(--muted);font-size:13px;margin:0}.rank-list{display:grid;gap:16px}.rank-row{align-items:center;display:grid;font-size:13px;gap:10px;grid-template-columns:28px 110px minmax(120px,1fr) 105px}.rank-no{color:#889099}.bar-track{background:#edf0f2;height:5px;overflow:hidden}.bar-track i{background:#59616a!important;display:block;height:100%}.rank-row>b{text-align:right}.donut-wrap{align-items:center;display:flex;gap:22px}.donut{border-radius:50%;display:grid;flex:none;height:130px;place-items:center;width:130px}.donut>div{background:#fff;border-radius:50%;display:grid;height:86px;place-content:center;text-align:center;width:86px}.donut b{font-size:23px}.donut span{color:var(--muted);font-size:12px}.legend{display:grid;flex:1;gap:11px}.legend>div{align-items:center;display:grid;font-size:13px;gap:7px;grid-template-columns:9px 1fr auto}.legend i{background:var(--accent);border-radius:50%;height:8px;width:8px}.legend .legend-1{background:#8c949f}.legend .legend-2{background:#b3bac3}.legend .legend-3{background:#d6dbe1}.legend em{color:var(--muted);font-style:normal;font-weight:400}.bd-table .table-shell{border:0;border-radius:0;margin:0 -18px -18px}.scope-tag{background:#f3f4f5;color:#65707a}.compact-progress{align-items:center;display:flex;gap:8px}.compact-progress span{background:#e9ecef;height:5px;overflow:hidden;width:90px}.compact-progress i{background:#59616a;display:block;height:100%}.bd-task-link{background:transparent;border:0;color:inherit;font-weight:650;padding:2px 0;text-align:left}.bd-task-link:hover{text-decoration:underline;text-underline-offset:3px}.panel-empty{align-items:center;color:var(--muted);display:flex;font-size:13px;justify-content:center;min-height:170px;text-align:center}.team-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.team-card,.add-bd-card{background:#fff;border:1px solid var(--line);border-radius:7px;min-height:205px;padding:17px}.team-card.inactive{opacity:.65}.team-card-top{align-items:flex-start;display:flex;justify-content:space-between}.team-card h3{font-size:15px;margin:0}.team-card span{color:var(--muted);font-size:12px}.switch{background:#c8ced4;border:0;border-radius:999px;display:flex;height:22px;padding:3px;width:38px}.switch i{background:#fff;border-radius:50%;display:block;height:16px;width:16px}.switch[aria-pressed=true]{background:#59616a;justify-content:flex-end}.team-numbers{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);margin:16px 0 13px;padding:10px 0}.team-numbers div{display:grid;gap:3px;justify-items:center}.team-numbers div+div{border-left:1px solid var(--line)}.team-numbers strong{font-size:17px}.team-numbers span{font-size:12px}.team-progress>div:first-child,.team-footer{display:flex;justify-content:space-between}.team-progress b{font-size:13px}.team-footer{border-top:1px solid var(--line);color:var(--muted);font-size:12px;margin-top:14px;padding-top:11px}.team-footer b{color:var(--ink)}.add-bd-card{align-content:center;display:grid;justify-items:center;text-align:center}.add-bd-card>span{align-items:center;background:#f1f3f5;border-radius:50%;color:#606973;display:flex;height:36px;justify-content:center;width:36px}.add-bd-card h3{margin:10px 0 2px}.add-bd-card p{color:var(--muted);font-size:13px;margin:0 0 10px}.add-bd-card input{border:1px solid #d9dde2;border-radius:5px;height:36px;margin-bottom:8px;padding:0 10px;width:100%}.add-bd-card .button{width:100%}.team-toolbar{align-items:end;display:flex;gap:8px;margin-bottom:14px}.team-list table{min-width:850px}.bd-name-form{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.bd-name-form input{border:1px solid #cfd5db;border-radius:4px;height:31px;padding:0 7px;width:100px}.bd-name-form small{color:var(--danger);width:100%}.team-toolbar p,.section-note,.cell-note{color:var(--muted);font-size:12px}.team-toolbar p{flex:1;margin:0 0 9px}.team-toolbar form{align-items:center;display:flex;gap:8px}.team-toolbar input{border:1px solid #cfd5db;border-radius:6px;height:38px;padding:0 10px;width:190px}.team-list .number{text-align:right}.team-list td.number{font-weight:600}.team-list .cell-note{display:block;margin-top:3px}.section-note{margin:12px 0 0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);white-space:nowrap}.sync-grid,.connection-card,.settings-panel,.log-panel,.period-note,.sync-page{display:none}.sync-control{display:inline-block;position:relative}.sync-control:focus-within .sync-tooltip,.sync-control:hover .sync-tooltip{opacity:1;pointer-events:auto;transform:translateY(0)}.sync-tooltip{background:#252a30;border-radius:6px;color:#fff;font-size:13px;line-height:1.55;opacity:0;padding:12px 14px;pointer-events:none;position:absolute;right:0;top:calc(100% + 9px);transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease;width:320px;z-index:20}.sync-tooltip strong{display:block;font-size:13px;margin-bottom:4px}.sync-tooltip p{color:#dce0e4;font-size:12px;margin:0}.sync-feedback{color:var(--muted);font-size:13px;margin:16px 32px 0;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.task-dialog{background:transparent;border:0;max-height:100%;max-width:100%;overflow:auto;padding:24px;width:min(720px,100%)}.task-dialog::backdrop,.dialog-backdrop{background:#14181c61}.dialog-card{background:#fff;border:1px solid #dfe3e7;border-radius:8px;overflow:hidden}.dialog-card>header,.drawer>header{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:21px 24px 17px}.eyebrow{color:var(--muted);font-size:12px;font-weight:650}.dialog-card h2,.drawer h2{font-size:20px;margin:4px 0}.dialog-card header p,.drawer header p{color:var(--muted);font-size:13px;margin:0}.dialog-body{max-height:min(64vh,620px);overflow:auto;padding:22px 24px}.dialog-body fieldset{border:0;margin:0 0 23px;padding:0}.dialog-body legend{font-size:14px;font-weight:700;margin-bottom:11px}.dialog-body legend small{color:var(--muted);font-weight:400}.form-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.field{color:#505861;display:grid;font-size:13px;gap:7px}.field em{color:var(--danger);font-style:normal}.field input,.field select,.field textarea{background:#fff;border:1px solid #cfd5db;border-radius:5px;color:var(--ink);font-size:14px;min-height:38px;outline:0;padding:0 10px;width:100%}.field textarea{padding:9px 10px;resize:vertical}.form-hint,.field-note{color:var(--muted);font-size:12px;line-height:1.55}.form-error{align-items:center;background:#fff3f3;border:1px solid #efcdcd;color:#a13939;display:flex;font-size:13px;gap:7px;margin-bottom:14px;padding:9px 10px}.validate-row{display:flex;gap:8px}.validate-row input{min-width:0}.preview-result{align-items:flex-start;background:#f2f7f4;border:1px solid #d6e8dc;color:#2b694d;display:flex;font-size:12px;gap:6px;line-height:1.5;margin-top:8px;padding:8px 9px}.dialog-card footer,.drawer footer{border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;padding:14px 24px}.drawer-layer{background:#14181c52;display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:8}.drawer{background:#fff;box-shadow:-10px 0 30px #14181c1f;display:flex;flex-direction:column;height:100%;width:min(540px,100%)}.drawer-body{flex:1;overflow:auto;padding:21px 24px}.drawer-tags{align-items:center;display:flex;gap:7px}.alert-tag.warning{background:#fff6e9;color:#946116}.alert-tag.overdue{background:#fff0f0;color:#ad4141}.alert-tag.unknown{background:#f3f4f5;color:#5f6871}.delivery-focus{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin:17px 0;padding:0 0 17px}.delivery-focus>div:first-child{display:grid;gap:4px}.delivery-focus span{color:var(--muted);font-size:13px}.delivery-focus strong{font-size:30px}.delivery-focus p{color:var(--muted);font-size:13px;margin:0}.round-progress{align-items:center;display:flex;height:68px;justify-content:center;position:relative;width:68px}.round-progress>i{background:conic-gradient(#59616a var(--p),#e8ebee 0);border-radius:50%;inset:0;position:absolute}.round-progress>i:after{background:#fff;border-radius:inherit;content:"";inset:7px;position:absolute}.round-progress b{font-size:13px;position:relative;z-index:1}.round-progress small{color:var(--muted);font-size:12px}.detail-section{border-bottom:1px solid var(--line);padding:17px 0}.detail-section h3{font-size:14px;margin:0 0 12px}.detail-section h3 small{color:var(--muted);font-size:12px;font-weight:400}.detail-section dl{display:grid;gap:14px;grid-template-columns:1fr 1fr;margin:0}.detail-section dl div{display:grid;gap:4px}.detail-section dt,.source-grid span,.source-grid small,.source-id{color:var(--muted);font-size:12px}.detail-section dd{font-size:14px;margin:0}.source-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.source-grid>div{border:1px solid var(--line);display:grid;gap:5px;padding:10px}.source-grid b{font-size:15px}.source-id{margin-top:10px}.note-text{color:#4f5963;font-size:14px;line-height:1.65}.load-screen{color:var(--muted);display:grid;gap:12px;justify-items:center;min-height:100vh;place-content:center;text-align:center}.load-screen h1{color:var(--ink);font-size:20px;margin:0}.load-screen p{font-size:14px;margin:0}.connection-error>div{display:flex;gap:8px}.spin{animation:spin .8s linear infinite}.skip-link{background:#fff;border:1px solid #2c3137;color:var(--ink);left:12px;padding:8px 11px;position:fixed;top:-50px;z-index:30}.skip-link:focus{top:12px}@media(max-width:1080px){.sidebar{padding:18px 8px 12px;width:64px}.brand{justify-content:center;padding:3px 0 20px}.brand>strong,.nav-label,.nav-item span,.nav-item small,.sidebar-bottom,.topbar>div>p,.sync-stamp{display:none}.nav-item{justify-content:center;padding:0}.main-panel{margin-left:64px}.topbar,.page-content{padding-left:24px;padding-right:24px}.summary-strip,.dashboard-cards{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(n+3){border-top:1px solid var(--line)}.dashboard-grid{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{border-right:0;border-top:1px solid var(--line);display:flex;height:62px;inset:auto 0 0;padding:5px 7px;position:fixed;width:100%}.sidebar .brand,.sidebar-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;width:100%}.nav-item{flex:1;flex-direction:column;font-size:12px;gap:1px;height:51px;padding:5px 2px}.nav-item span{display:block}.nav-item svg{height:18px;width:18px}.main-panel{margin:0 0 62px}.topbar{align-items:flex-start;min-height:82px;padding:17px 16px}.topbar h1{font-size:20px}.top-actions{gap:7px}.top-actions .button.secondary{font-size:0;padding:0;width:38px}.top-actions .button.primary{padding:0 10px}.page-content{padding:18px 14px 30px}.summary-strip,.dashboard-cards{grid-template-columns:1fr 1fr}.metric{min-height:82px;padding:13px}.metric strong{font-size:21px}.metric small{white-space:normal}.section-top{margin-top:19px}.filter-bar{display:grid;grid-template-columns:1fr 1fr}.search{grid-column:1/-1;width:auto}.date-filter{grid-column:1/-1;justify-content:space-between}.date-filter input{width:43%}.quick-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.dashboard-filter{padding:0 14px}.dashboard-filter>span{width:100%}.dashboard-grid,.team-grid{grid-template-columns:1fr}.donut-wrap{justify-content:center}.task-dialog{padding:8px}.dialog-card>header,.dialog-body,.dialog-card footer{padding-left:16px;padding-right:16px}.form-grid,.source-grid,.detail-section dl{grid-template-columns:1fr}.validate-row{align-items:stretch;flex-direction:column}.validate-row .button,.drawer{width:100%}.drawer>header,.drawer-body,.drawer footer{padding-left:17px;padding-right:17px}.rank-row{font-size:12px;grid-template-columns:26px 82px minmax(80px,1fr) 78px}.sync-tooltip{left:auto;right:0;top:calc(100% + 8px);transform:translateY(-4px);width:min(320px,calc(100vw - 28px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.table-shell .task-table{table-layout:fixed;min-width:1285px}.task-table .task-name{display:block;border:0;background:transparent;padding:0;color:var(--ink);font-weight:650;font-size:14px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.task-table .task-name:hover{color:var(--accent)}.task-table .task-cell{min-width:0}.task-table .task-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-table .owner-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-table .progress-cell strong{flex-shrink:0}.task-table .money-cell b{white-space:nowrap}.bd-table .table-shell table{min-width:850px}.bd-table th:first-child,.bd-table td:first-child{min-width:130px}.team-list th:first-child,.team-list td:first-child{width:130px}.team-list h3{margin:0;font-size:14px;font-weight:650}.team-list .compact-progress b{white-space:nowrap}@media(max-width:760px){.app-notice,.inline-error,.sync-feedback{margin:12px 14px 0}.team-toolbar{align-items:stretch;flex-direction:column}.team-toolbar form{display:flex}.team-toolbar input{flex:1;min-width:0}.team-toolbar p{margin-bottom:4px}}.section-top .link-button{white-space:nowrap;flex-shrink:0}@media(max-width:760px){.topbar{position:relative}.sync-control{position:static}.sync-tooltip{left:14px;right:14px;top:calc(100% + 6px);width:auto}.sync-tooltip p{display:block}}.bd-delivery{min-width:0}.bd-summary-wrap{overflow-x:auto;margin:0 -18px -18px}.bd-summary-table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:800px;font-variant-numeric:tabular-nums}.bd-summary-table>thead>tr>th{height:46px;padding:10px 18px;background:#fafbfc;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:650;text-align:right;white-space:nowrap}.bd-summary-table>thead>tr>th:first-child{text-align:left;min-width:170px}.bd-summary-table>tbody>tr>td{border-bottom:1px solid var(--line);padding:14px 18px;height:68px;font-size:14px;text-align:right;vertical-align:middle}.bd-summary-table>tbody>tr>td:first-child{text-align:left}.bd-summary-table>tbody>tr:last-child>td{border-bottom:0}.bd-summary-row{cursor:pointer}.bd-summary-row:hover,.bd-summary-row.expanded{background:#fcf7f9}.bd-expand{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:4px 0;font:inherit;font-weight:650;color:var(--ink);text-align:left}.bd-expand svg{color:var(--muted);flex-shrink:0}.bd-expand:hover{color:var(--accent)}.bd-expand small{font-size:12px;font-weight:400;color:var(--muted)}.bd-total{display:grid;gap:4px}.bd-total strong{font-size:14px;font-weight:650}.bd-total small{font-size:12px;font-weight:400;line-height:1.5;color:var(--muted)}.bd-summary-table>tbody>tr>td.bd-expanded-cell{padding:0;height:auto;text-align:left}.bd-task-section{padding:16px 18px 18px;background:#f7f8fa}.bd-task-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:12px}.bd-task-heading strong{font-size:14px}.bd-task-heading span{font-size:12px;color:var(--muted)}.bd-task-table-wrap{min-width:0;width:100%;max-height:480px;overflow:auto;border:1px solid var(--line);border-radius:7px;background:#fff;overscroll-behavior:contain}.bd-task-table{border-collapse:separate;border-spacing:0;min-width:1060px;width:100%;font-variant-numeric:tabular-nums}.bd-task-table th{position:sticky;top:0;z-index:1;background:#fafbfc;padding:11px 12px;border-bottom:1px solid var(--line);font-size:12px;font-weight:650;text-align:right;color:var(--muted);white-space:nowrap}.bd-task-table td{padding:12px;border-bottom:1px solid #edf0f2;font-size:14px;text-align:right;vertical-align:middle;white-space:nowrap}.bd-task-table th:first-child,.bd-task-table td:first-child{text-align:left;min-width:230px}.bd-task-table th:nth-child(2),.bd-task-table td:nth-child(2),.bd-task-table th:last-child,.bd-task-table td:last-child{text-align:left}.bd-task-table tbody tr:last-child td{border-bottom:0}.bd-task-table tbody tr:hover{background:#fdfbfc}.bd-task-identity{display:grid;gap:4px;min-width:200px;max-width:250px}.bd-task-identity button{background:none;border:0;padding:0;font:inherit;font-weight:650;text-align:left;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bd-task-identity button:hover{color:var(--accent)}.bd-task-identity span,.bd-task-identity small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bd-task-identity .bd-source-warning{color:var(--danger)}.bd-delivery .bd-task-footnote{color:var(--muted);font-size:12px;line-height:1.6;margin:10px 0 0}@media(max-width:760px){.bd-task-section{padding:12px}.bd-task-table-wrap{max-height:400px}}.binding-warning{padding:10px 12px;border:1px solid #ead9b8;border-radius:7px;background:#fffaf0;color:#805f2f;font-size:13px;line-height:1.6}.spend-ranking{min-width:0;container-type:inline-size}.spend-ranking .panel-head{align-items:flex-start;gap:16px;margin-bottom:20px}.ranking-heading{min-width:0}.ranking-heading h3{line-height:1.5}.ranking-heading p{line-height:1.6;margin-top:5px}.spend-range-select{flex:0 0 148px;width:148px}.ranking-coverage{background:#f7f8fa;border-radius:7px;display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 8px;padding:10px 12px}.ranking-coverage span{color:var(--muted);font-size:12px;line-height:1.6}.ranking-coverage span:first-child{color:#4c555f;font-weight:600}.ranking-coverage .ranking-warning{color:#a35a31}.spend-ranking .rank-list{gap:0}.spend-ranking .rank-row{gap:12px;grid-template-columns:24px minmax(88px,112px) minmax(30px,1fr) minmax(110px,max-content);min-height:76px;padding:14px 0}.spend-ranking .rank-row+.rank-row{border-top:1px solid #f0f2f4}.spend-ranking .rank-no{font-size:13px;font-variant-numeric:tabular-nums}.spend-ranking .bd-cell{min-width:0;font-size:14px;font-weight:600}.spend-ranking .bd-cell i{flex:0 0 28px;height:28px}.spend-ranking .bd-cell>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spend-ranking .bar-track{border-radius:999px;height:6px}.spend-ranking .bar-track i{background:var(--accent)!important;border-radius:inherit}.rank-amount{display:grid;gap:4px;min-width:0;text-align:right}.rank-amount b{font-size:15px;font-variant-numeric:tabular-nums;line-height:1.4;white-space:nowrap}.rank-amount small{color:var(--muted);font-size:12px;line-height:1.5}.spend-ranking .ranking-updated{align-items:flex-start;border-top:1px solid var(--line);display:flex;font-size:12px;gap:7px;line-height:1.6;margin:8px 0 0;padding-top:12px}.ranking-updated svg{flex:0 0 14px;margin-top:2px}.ranking-empty{min-height:170px;padding:24px 12px;line-height:1.7}.ranking-message{align-items:flex-start;background:#fff8ed;border:1px solid #efd9bc;border-radius:7px;color:#96572d;display:flex;font-size:13px;gap:8px;line-height:1.6;margin-bottom:12px;padding:10px 12px}.ranking-message svg{flex:0 0 16px;margin-top:2px}.rank-amount .ranking-failure{color:#a35a31;cursor:help;outline-offset:2px}@container (max-width: 460px){.spend-ranking .panel-head{flex-wrap:wrap}.ranking-heading{flex:1 1 180px}.spend-range-select{flex-basis:132px;width:132px}.spend-ranking .rank-row{grid-template-columns:22px minmax(0,1fr) minmax(108px,max-content);gap:8px 10px;padding:14px 0}.spend-ranking .rank-row .bar-track{grid-column:2 / -1;grid-row:2}.rank-amount{grid-column:3;grid-row:1}}.select-control,.date-picker{min-width:0;position:relative}.filter-select{min-width:112px}.select-trigger,.date-picker{align-items:center;background:#fff;border:1px solid #dfe3e7;border-radius:8px;color:var(--ink);display:flex;font-size:15px;gap:9px;min-height:44px;padding:0 12px;text-align:left;width:100%}.select-trigger>svg{color:#7d858f;flex-shrink:0}.select-trigger>svg:last-child{margin-left:auto}.select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger:hover:not(:disabled),.date-picker:hover:not(.is-invalid){border-color:#c9adb7}.select-trigger[aria-expanded=true],.date-picker:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #b955751c}.select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.select-trigger:disabled{background:#f7f8f9;color:#858c94;opacity:1}.date-picker{padding:0 5px 0 12px}.date-picker.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px #c14b4b14}.date-picker-input:focus-visible{outline:0}.date-picker-input{background:transparent;border:0;color:var(--ink);flex:1;font-family:inherit;font-size:15px;font-variant-numeric:tabular-nums;min-width:0;outline:0;padding:11px 0;width:100%}.date-picker-input::placeholder{color:#8a929d}.date-picker-input:disabled{color:#858c94}.date-picker:has(.date-picker-input:disabled){background:#f7f8f9}.date-picker-toggle{align-items:center;background:transparent;border:0;border-radius:6px;color:#7d858f;display:inline-flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.date-picker-toggle:hover:not(:disabled){background:#f2f4f6;color:var(--accent)}.date-picker-toggle[aria-expanded=true]{background:var(--accent-soft);color:var(--accent)}.date-picker-toggle:disabled{color:#b9bfc6}.control-popover{background:#fff;border:1px solid #e1e4e8;border-radius:12px;box-shadow:0 8px 30px #27202b18,0 2px 6px #27202b08;color:var(--ink);color-scheme:light;font-family:inherit;font-size:15px;max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain;z-index:100}.select-options{max-height:min(320px,calc(100dvh - 16px));padding:6px}.select-option{align-items:center;border-radius:7px;cursor:pointer;display:flex;gap:12px;min-height:42px;padding:9px 11px}.select-option>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-option svg{flex-shrink:0}.select-option.is-active{background:#f5f6f8}.select-option.is-selected{color:var(--accent);font-weight:650}.select-option.is-selected.is-active{background:var(--accent-soft)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.date-calendar-title{align-items:center;display:flex;gap:2px}.date-calendar-title select{-webkit-appearance:none;appearance:none;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--ink);cursor:pointer;font-family:inherit;font-size:16px;font-variant-numeric:tabular-nums;font-weight:650;padding:3px 4px;text-align:center}.date-calendar-title select:hover{background:var(--accent-soft);border-color:#e7bdca;color:var(--accent)}.date-calendar-title select:focus-visible{border-color:var(--accent);outline:2px solid var(--accent-soft)}.date-calendar-title span{color:var(--muted);font-size:14px}.date-calendar-hint{color:#98a0a9;font-size:12px;margin:8px 0 0;text-align:center}.date-calendar-hint b{color:#6f7780;font-weight:600}.date-calendar{padding:14px}.date-calendar-header{align-items:center;display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.date-calendar-nav{display:flex;gap:6px}.date-calendar-header button{align-items:center;background:#fff;border:1px solid #e4e7eb;border-radius:7px;color:#626c77;display:inline-flex;height:34px;justify-content:center;min-width:34px;padding:0}.date-calendar-header button:hover:not(:disabled){background:var(--accent-soft);border-color:#e7bdca;color:var(--accent)}.date-calendar-header button:disabled{color:#c3c9cf;cursor:not-allowed;opacity:.55}.date-calendar-header strong,.date-calendar-header h3{font-size:16px;font-weight:650;margin:0}.date-calendar-weekdays,.date-calendar-grid{display:grid;gap:3px;grid-template-columns:repeat(7,minmax(0,1fr))}.date-calendar-weekdays{color:#88909a;font-size:13px;margin-bottom:5px;text-align:center}.date-calendar-weekdays>*{padding:7px 0}.date-calendar-day{background:#fff;border:1px solid transparent;border-radius:8px;color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums;height:40px;min-width:0;padding:0}.date-calendar-day.is-outside{color:#aab1bb}.date-calendar-day.is-today{border-color:#dc9bb0;color:var(--accent)}.date-calendar-day:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.date-calendar-day.is-selected,.date-calendar-day.is-selected:hover{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}.date-calendar-day:disabled{color:#c6cbd2;cursor:not-allowed;opacity:1}.date-calendar-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.date-calendar-footer{align-items:center;border-top:1px solid #edf0f2;display:flex;justify-content:space-between;margin-top:11px;padding-top:10px}.date-calendar-footer button{background:#fff;border:0;border-radius:6px;color:var(--accent);font-size:14px;min-height:34px;padding:5px 10px}.date-calendar-footer button:hover:not(:disabled){background:var(--accent-soft)}.field{align-content:start;font-size:14px;min-width:0}.field-wide{grid-column:1 / -1}.field input,.field select,.field textarea{border-radius:8px;font-size:15px;min-height:44px}.field input,.field select{height:44px}.field-note{font-weight:400}.field .select-control,.field .date-picker{width:100%}.empty-state p{font-size:14px}@media(max-width:760px){.filter-bar .search{width:auto}.date-filter{width:100%}.filter-select{min-width:0}.empty-state p{max-width:100%;white-space:normal}.control-popover{border-radius:10px}}.member-delivery-chart{min-width:0;container-type:inline-size}.member-chart-content{align-items:center;display:grid;gap:24px;grid-template-columns:148px minmax(0,1fr);min-height:190px}.member-donut{height:148px;width:148px}.member-donut>div{height:102px;width:102px}.member-donut b{font-size:27px;font-variant-numeric:tabular-nums}.member-donut span{font-size:12px;margin-top:3px}.member-chart-legend{display:grid;gap:0;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.member-chart-legend li{align-items:center;border-bottom:1px solid #f0f2f4;display:grid;gap:10px;grid-template-columns:8px minmax(0,1fr) auto 48px;min-height:52px;padding:10px 0}.member-chart-legend li:last-child{border-bottom:0}.member-chart-legend li>i{border-radius:50%;height:8px;width:8px}.member-chart-name{display:grid;gap:3px;min-width:0}.member-chart-name>span{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-chart-name small{color:var(--muted);font-size:12px}.member-chart-legend strong{font-size:14px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.member-chart-legend strong small{color:var(--muted);font-size:12px;font-weight:400;margin-left:4px}.member-chart-share{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.member-delivery-chart .member-chart-note{border-top:1px solid var(--line);font-size:12px;line-height:1.6;margin-top:16px;padding-top:12px}@container (max-width: 340px){.member-chart-content{gap:16px;grid-template-columns:1fr;justify-items:center}.member-chart-legend{width:100%}}@media(max-width:380px){.date-filter-label>span{display:none}}.dashboard-overview{grid-auto-rows:minmax(110px,auto)}.dashboard-overview .metric{min-width:0}.dashboard-overview .metric>div{min-width:0;width:100%}.dashboard-overview .metric-counts{padding-left:15px;padding-right:15px}.metric-counts>div{align-content:space-between}.metric-counts dl{display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr));margin:7px 0 0}.metric-counts dl>div{display:flex;flex-direction:column-reverse;gap:5px;min-width:0;text-align:center}.metric-counts dt{color:var(--muted);font-size:12px;white-space:nowrap}.metric-counts dd{color:var(--ink);font-size:22px;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1;margin:0}@media(max-width:760px){.dashboard-overview .metric-counts{padding:13px}.metric-counts dl{gap:12px 8px;grid-template-columns:repeat(2,minmax(0,1fr))}.metric-counts dd{font-size:20px}}.team-list table{min-width:1010px;table-layout:fixed}.team-list th,.team-list td{padding-left:10px;padding-right:10px}.team-list th{height:56px}.team-list th small{color:#858d97;display:block;font-size:11px;font-weight:400;margin-top:3px}.team-list td{height:84px}.team-list .team-count,.team-list .team-action{text-align:center}.team-list td.team-count{font-weight:600}.team-list .cell-note{font-weight:400;line-height:1.5;margin-top:5px}.team-material-total{align-items:baseline;display:inline-flex;font-variant-numeric:tabular-nums;white-space:nowrap}.team-material-total strong{font-size:15px}.team-material-total>span{color:var(--muted);font-size:13px;font-weight:400}.team-list .money-note{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-list .compact-progress{gap:8px;min-width:0}.team-list .compact-progress>span{border-radius:99px;flex:1;min-width:36px;width:auto}.team-list .compact-progress i{background:var(--accent);border-radius:inherit}.team-list .compact-progress b{flex:none;min-width:36px;text-align:right}.team-list h3{align-items:center;display:flex;gap:8px;min-width:0}.team-list h3>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-list h3 .link-button{flex:none;font-size:12px;font-weight:400}.team-list th:first-child,.team-list td:first-child{background:#fff;box-shadow:1px 0 0 var(--line);left:0;position:sticky;z-index:1}.team-list th:first-child{background:#fafbfc;z-index:2}.team-list tbody tr:hover td:first-child{background:#fafbfc}.team-list .bd-name-form input{max-width:100%}.multi-select .select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select.has-selection .select-trigger{border-color:#c9adb7;background:#fdf7f9}.multi-count{align-items:center;background:var(--accent);border-radius:9px;color:#fff;display:inline-flex;flex-shrink:0;font-size:11px;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:0 5px}.multi-options{min-width:200px}.multi-option{gap:9px}.multi-check{align-items:center;border:1.5px solid #cfd5db;border-radius:4px;display:inline-flex;flex-shrink:0;height:17px;justify-content:center;width:17px}.multi-option.is-selected .multi-check{background:var(--accent);border-color:var(--accent);color:#fff}.multi-clear{align-items:center;background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);cursor:pointer;display:flex;font-size:12px;gap:5px;margin-bottom:4px;padding:7px 9px;text-align:left;width:100%}.multi-clear:hover{color:var(--accent)}.export-dialog{width:min(460px,100%)}.export-dialog .dialog-card{padding:22px 24px}.export-dialog h2{font-size:18px;margin:0 0 8px}.export-note{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 12px}.export-summary{border:1px solid var(--line);border-radius:8px;display:grid;gap:0;margin:0 0 14px;overflow:hidden}.export-summary>div{align-items:baseline;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:8px 12px}.export-summary>div:last-child{border-bottom:0}.export-summary dt{color:var(--muted);flex-shrink:0;font-size:12px;width:72px}.export-summary dd{font-size:13px;margin:0;word-break:break-all}.export-summary .export-count dd strong{color:var(--accent);font-size:16px}.export-done{align-items:center;color:#2b694d;display:flex;font-size:14px;gap:7px;margin:0 0 8px;word-break:break-all}.dialog-actions{border-top:0;display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.spend-period-picker{align-items:center;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.spend-period-icon{color:var(--muted);display:inline-flex}.spend-period-apply{min-height:36px}.materials-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr}.materials .panel{background:#fff;border:1px solid var(--line);border-radius:12px;margin-top:16px;padding:20px 22px}.materials .panel h3{font-size:15px;margin:0}.panel-note{color:var(--muted);font-size:12.5px;line-height:1.55;margin:5px 0 14px}.split-bar{border-radius:6px;display:flex;height:14px;margin:4px 0 12px;overflow:hidden}.split-bar .split-original{background:#e65c87}.split-bar .split-authorized{background:#6f7dd6}.split-table{border-collapse:collapse;width:100%}.split-table th,.split-table td{border-bottom:1px solid var(--line);font-size:13px;padding:9px 10px;text-align:left}.split-table th{color:var(--muted);font-weight:600}.split-table td.number,.split-table th.number{text-align:right;font-variant-numeric:tabular-nums}.split-table tr:last-child td{border-bottom:0}.split-table .dot{border-radius:50%;display:inline-block;height:9px;margin-right:7px;width:9px}.dot-original{background:#e65c87}.dot-authorized{background:#6f7dd6}.analysis-panel{background:#fdf8f3;border-color:#ecd9c3!important}.analysis-panel h3{align-items:center;display:flex;gap:6px}.analysis-list{color:#6b5335;font-size:13.5px;line-height:1.7;margin:0;padding-left:18px}.analysis-list li+li{margin-top:6px}.arpu-task-name{display:block;font-weight:650;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arpu-bar-head{width:120px}.materials .bar-track{background:#f1e3e8;border-radius:4px;height:8px;overflow:hidden}.materials .bar-track i{background:var(--accent);display:block;height:100%}.metric-icon{color:#d9aebc}@media(max-width:1080px){.materials-grid{grid-template-columns:1fr}}.materials-status{align-items:center;background:#f7f9fb;border:1px solid var(--line);border-radius:10px;display:flex;font-size:13px;gap:14px;margin-top:16px;padding:10px 14px}.materials-status .ok{color:#2b694d}.materials-status .err{color:#b34a4a}.materials-status .materials-cover{color:var(--muted);flex:1}.materials-status .button{margin-left:auto}.button.small{align-items:center;display:inline-flex;gap:6px;font-size:13px;padding:7px 12px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.type-bar-stack{display:flex;flex-direction:column;gap:10px}.type-bar-row{align-items:center;display:grid;font-size:13px;gap:10px;grid-template-columns:90px 1fr 92px 52px}.type-label{align-items:center;color:#3d3d3d;display:flex;gap:6px}.type-label i{border-radius:50%;display:inline-block;height:9px;width:9px}.type-track{background:#f2f0f4;border-radius:4px;height:10px;overflow:hidden}.type-track i{border-radius:4px;display:block;height:100%;transition:width .4s ease}.type-val{color:#3d3d3d;font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.type-share{color:var(--muted);font-size:12px;text-align:right}.deliver-foot{border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;margin-top:12px;padding-top:10px}.mat-kpis{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.mat-kpi{background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:6px;padding:16px 18px;transition:box-shadow .2s ease,transform .2s ease}.mat-kpi:hover{box-shadow:0 6px 18px #78506414;transform:translateY(-1px)}.mat-kpi.is-accent{background:linear-gradient(135deg,#fdf5f8,#fff 65%);border-color:#f0d8e2}.mat-kpi-head{align-items:center;display:flex;gap:8px}.mat-kpi-icon{align-items:center;background:#fbeef3;border-radius:8px;color:var(--accent);display:inline-flex;height:26px;justify-content:center;width:26px}.mat-kpi-icon svg{height:14px;width:14px}.mat-kpi-label{color:var(--muted);font-size:12.5px}.mat-kpi-value{color:#2f2a2d;font-size:25px;font-variant-numeric:tabular-nums;letter-spacing:-.4px;line-height:1.15}.mat-kpi-value small{color:var(--muted);font-size:12px;font-weight:500;margin-left:3px}.mat-kpi-note{color:#9a8f95;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-strip{border-radius:5px;display:flex;gap:2px;height:9px;margin:0 0 14px;overflow:hidden}.share-strip i{display:block;height:100%;min-width:2px;transition:opacity .2s ease}.share-strip i:hover{opacity:.78}.type-bar-row.is-zero{opacity:.45}@media(max-width:1180px){.mat-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.sync-tasks-dialog{width:min(1140px,100%)}.sync-tasks-dialog .dialog-card{padding:0}.sync-body{padding:16px 22px 4px}.sync-summary{color:var(--muted);font-size:13px;margin:0 0 12px}.sync-summary strong{color:var(--ink)}.sync-table-shell{border:1px solid var(--line);border-radius:10px;max-height:min(54vh,460px);overflow:auto}.sync-table{border-collapse:collapse;font-size:13px;min-width:1040px;table-layout:fixed;width:100%}.sync-table thead th{background:#fafbfc;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:650;padding:9px 10px;position:sticky;text-align:left;top:0;white-space:nowrap;z-index:1}.sync-table thead th em{color:var(--danger);font-style:normal}.sync-table td{border-bottom:1px solid #f1f3f5;padding:8px 10px;vertical-align:middle}.sync-table tbody tr:last-child td{border-bottom:0}.sync-table tbody tr.unselected{opacity:.45}.sync-table input:not([type=checkbox]),.sync-table select{background:#fff;border:1px solid #dfe3e7;border-radius:6px;color:var(--ink);min-width:0;padding:6px 8px;width:100%}.sync-table input:not([type=checkbox]):focus,.sync-table select:focus{border-color:var(--accent);outline:2px solid var(--accent-soft)}.sync-table .sync-number{width:100%}.sync-table input[type=checkbox]{accent-color:var(--accent);height:15px;width:15px}.sync-task-cell{display:grid;gap:2px;max-width:260px}.sync-task-cell span{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;font-weight:620;overflow:hidden}.sync-task-cell small{color:var(--muted);font-size:11px}.sync-window{color:#4e565f;font-size:12px;white-space:nowrap}.sync-window small{align-items:center;color:#946116;display:flex;font-size:11px;gap:3px;margin-top:2px}.sync-loading,.sync-done,.sync-error,.sync-warn{align-items:flex-start;border-radius:10px;display:flex;font-size:13px;gap:10px;margin:16px 22px 0;padding:13px 15px}.sync-loading{background:#f7f8f9;color:var(--muted)}.sync-loading strong,.sync-done strong{color:var(--ink);font-size:14px}.sync-loading p,.sync-done p,.sync-error p,.sync-warn p{color:var(--muted);font-size:12.5px;margin:4px 0 0}.sync-done{background:#f2f8f5;color:var(--good)}.sync-error{background:#fff4f4;color:var(--danger)}.sync-warn{background:#fff8ee;color:#946116;margin:14px 22px 0}.sync-warn strong{color:#7d5312;font-size:13px}.sync-hint{color:var(--muted);font-size:12px;margin:8px 0 0}.sync-progress{color:var(--accent);font-size:13px;margin:10px 0 0}.sync-tasks-dialog .dialog-actions{padding:14px 22px 18px}.daily-video{overflow:hidden}.dv-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.dv-head h3{align-items:center;display:flex;gap:6px;margin:0}.dv-actions{align-items:center;display:flex;gap:10px}.dv-range{background:#f2f3f5;border-radius:8px;display:inline-flex;padding:2px}.dv-range button{background:transparent;border:0;border-radius:6px;color:var(--muted);font-size:13px;padding:6px 12px;transition:background .15s ease,color .15s ease}.dv-range button:hover{color:var(--ink)}.dv-range button.is-on{background:#fff;box-shadow:0 1px 3px #00000014;color:var(--ink);font-weight:600}.dv-status{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:10px}.dv-status>span{color:var(--muted);font-size:12.5px}.dv-status>span.ok{color:var(--good)}.dv-status>span.err{color:var(--danger)}.dv-toggle{align-items:center;color:var(--muted);display:inline-flex;font-size:12.5px;gap:6px}.dv-error{background:#fdf1f1;border-radius:8px;color:var(--danger);font-size:13px;margin-top:10px;padding:8px 12px}.dv-kpis{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.dv-kpi{background:#fafbfc;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:12px 14px}.dv-kpi>span{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:6px}.dv-kpi strong{color:#2f2a2d;font-size:22px;font-weight:700;letter-spacing:-.5px}.dv-kpi strong small{color:var(--muted);font-size:12px;font-weight:500;letter-spacing:0;margin-left:4px}.dv-kpi em{color:#9aa1a9;font-size:11.5px;font-style:normal}.dv-bd-chart{background:#fbfbfc;border:1px solid var(--line);border-radius:10px;display:grid;gap:8px;margin-top:12px;padding:12px 14px}.dv-bd-row-bar{align-items:center;display:grid;gap:10px;grid-template-columns:160px 1fr 78px}.dv-bd-label{align-items:center;display:flex;font-size:13px;gap:6px}.dv-bd-label i{border-radius:50%;display:inline-block;height:8px;width:8px}.dv-bd-label small{color:var(--muted);font-size:11.5px}.dv-bd-track{background:#eef0f2;border-radius:999px;height:8px;overflow:hidden}.dv-bd-track i{border-radius:999px;display:block;height:100%;min-width:2px}.dv-bd-value{color:var(--ink);font-size:12.5px;text-align:right}.dv-table-shell{border:1px solid var(--line);border-radius:10px;margin-top:12px;max-height:580px;overflow:auto}.dv-table{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content}.dv-table th,.dv-table td{border-bottom:1px solid var(--line);font-size:12.5px;padding:7px 8px;white-space:nowrap}.dv-table thead th{background:#fafbfc;position:sticky;top:0;z-index:3}.dv-table .dv-name-col{background:#fff;left:0;min-width:236px;position:sticky;text-align:left;z-index:2}.dv-table thead .dv-name-col{z-index:4}.dv-table .dv-day{min-width:44px;text-align:center}.dv-table .dv-day span{display:block;font-size:11.5px}.dv-table .dv-day small{color:#a2a8af;display:block;font-size:10.5px;font-weight:500}.dv-table .dv-day.is-weekend{background:#fdf7f9}.dv-table .dv-sum-col{background:#fff;border-left:1px solid var(--line);font-weight:600;position:sticky;right:0;text-align:right;z-index:2}.dv-table thead .dv-sum-col{z-index:4}.dv-table tbody td,.dv-table tbody td.number{text-align:center}.dv-table .dv-bd-total td,.dv-table .dv-bd-total .dv-name-col,.dv-table .dv-bd-total .dv-sum-col{background:#f5f6f8;font-weight:650}.dv-table .dv-bd-total .dv-name-col{text-align:left}.dv-table .dv-name-col small{color:var(--muted);font-size:11px;font-weight:500;margin-left:6px}.dv-task{display:flex;flex-direction:column;gap:1px;max-width:236px}.dv-task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-task small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-zero{color:#d6dade}.dv-hit{color:#94405c;font-weight:650}.dv-table tfoot td,.dv-table tfoot td.number{background:#fbfbfc;border-top:1px solid var(--line);font-weight:650;text-align:center}.dv-table tfoot .dv-name-col{text-align:left}.dv-table tfoot .dv-sum-col{background:#fbfbfc}@media(max-width:1080px){.dv-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dv-bd-row-bar{grid-template-columns:120px 1fr 70px}}.login-screen{align-items:center;background:var(--canvas);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #20242a14;display:flex;flex-direction:column;gap:14px;max-width:360px;padding:32px 30px 26px;text-align:center;width:100%}.login-card .brand-mark{margin:0 auto}.login-card h1{font-size:20px;letter-spacing:-.4px;margin:8px 0 0}.login-card p{color:var(--muted);font-size:13px;margin:0}.login-field{align-items:center;background:#f7f8f9;border:1px solid var(--line);border-radius:8px;display:flex;gap:9px;padding:0 12px}.login-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #b9557518}.login-field svg{color:var(--muted);flex-shrink:0}.login-field input{background:transparent;border:0;flex:1;height:44px;outline:0}.login-error{background:#fff0f0;border-radius:6px;color:var(--danger);font-size:13px;margin:0;padding:8px 12px}.login-submit{height:44px;width:100%}.login-note{color:#9aa1a9;font-size:12px;margin:2px 0 0}.read-only-banner{background:#fff7e8;border:0;border-bottom:1px solid #f0d9a8;color:#8a5a12}
