.attendance-replica-page{--replica-text: #10213b;--replica-secondary: #52627a;--replica-muted: #8a98b3;--replica-border: #e5ebf5;--replica-soft: #f8fbff;--replica-primary: #1677ff;--replica-punch: #d99632;display:flex;flex-direction:column;gap:14px;min-width:0}.attendance-replica-filters{display:grid;grid-template-columns:30px 144px 30px 124px 30px 124px 30px 124px 160px 58px 58px minmax(0,1fr);gap:8px;align-items:center;min-height:34px}.attendance-replica-filters .filter-label{color:var(--replica-text);font-size:13px;font-weight:500;text-align:right;white-space:nowrap}.attendance-replica-filters .ant-picker,.attendance-replica-filters .ant-select-selector,.replay-toolbar .ant-picker,.replay-toolbar .ant-select-selector{min-height:34px;border-color:#dbe5f2!important;border-radius:6px!important;background:#fff!important;box-shadow:0 1px 2px #14235008;font-size:12px}.attendance-replica-filters .ant-btn{height:34px;border-radius:6px;padding:0 12px;font-size:12px}.attendance-replica-filters .ant-btn-primary{border-color:#d7e7ff;background:#eaf3ff;color:#1677ff;font-weight:600;box-shadow:none}.attendance-search{height:34px;min-height:34px;display:inline-flex;align-items:center;gap:8px;min-width:0;padding:0 12px;border:1px solid #dbe5f2;border-radius:6px;background:#fff;box-shadow:0 1px 2px #14235008;color:#98a3bd;font-size:12.5px}.attendance-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--replica-text);font:inherit}.attendance-search input::placeholder{color:#98a3bd}.attendance-search svg{width:16px;height:16px;color:#9aabc6;flex:none}.attendance-replica-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.connection-alert-actions,.connection-alert-rules{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;color:var(--replica-secondary);font-size:12px}.connection-alert-actions{justify-content:flex-end}.connection-alert-rules{margin-top:12px}.connection-alert-updated{font-variant-numeric:tabular-nums}.connection-alert-table{margin-top:12px}.connection-alert-person,.connection-alert-duration{font-variant-numeric:tabular-nums}.connection-alert-person small,.connection-alert-duration small,.connection-alert-table td small{display:block;color:var(--replica-secondary);font-size:12px}.connection-alert-panel .ant-btn{min-height:32px}@media (max-width: 680px){.connection-alert-panel .replica-card-header{align-items:flex-start;flex-direction:column;gap:8px}.connection-alert-actions{justify-content:flex-start}}.replica-stat-card,.replica-card{min-width:0;border:1px solid var(--replica-border);border-radius:8px;background:#fff;box-shadow:0 8px 24px #0f172a0d}.replica-card.focus-pulse{border-color:#9dbbff;box-shadow:0 0 0 3px #2a6dff1f,0 8px 24px #0f172a0d;transition:border-color .2s ease,box-shadow .2s ease}.replica-stat-card{display:flex;flex-direction:column;justify-content:space-between;min-height:104px;padding:14px 18px 12px}.replica-stat-top{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px;align-items:center;min-width:0}.replica-stat-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#eaf2ff;color:#2a6dff}.replica-stat-card.green .replica-stat-icon{background:#d8f1ef;color:#14b8a6}.replica-stat-card.purple .replica-stat-icon{background:#ede8ff;color:#7c5cff}.replica-stat-card.danger .replica-stat-icon{background:#ffe4e4;color:#ef4444}.replica-stat-icon .ops-svg-icon,.replica-stat-icon svg{width:28px;height:28px}.replica-stat-title{display:block;margin-bottom:6px;color:var(--replica-secondary);font-size:13px}.replica-stat-card strong{display:flex;align-items:baseline;gap:4px;min-width:0;color:var(--replica-text);font-size:29px;line-height:1.05;letter-spacing:0}.replica-stat-card strong em{color:#1677ff;font-size:13px;font-style:normal;font-weight:500}.replica-stat-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center;margin-top:10px;color:#52627a;font-size:12px}.replica-stat-foot>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replica-stat-divider{display:none}.replica-stat-change{display:inline-flex;align-items:center;justify-self:start;gap:4px;min-width:0;font-size:12px;font-weight:600;white-space:nowrap}.replica-stat-change.up{color:#ef4444}.replica-stat-change.good,.replica-stat-change.down{color:#14b8a6}.replica-stat-change svg{width:12px;height:12px;flex:none;stroke-width:2.4}.replica-stat-change .mini-pin{width:10px;height:10px;color:currentColor;fill:currentColor;stroke:none}.attendance-replica-main{display:grid;grid-template-columns:minmax(292px,1fr) minmax(0,1.55fr) minmax(292px,1fr);grid-template-rows:276px 206px;grid-template-areas:"trend map today" "shift map detail";gap:14px;align-items:stretch}.trend-card{grid-area:trend}.map-card{grid-area:map}.today-card{grid-area:today}.shift-card{grid-area:shift}.person-card{grid-area:detail}.person-card .replica-card-header{border-bottom:1px solid #e1eaf7;border-radius:8px 8px 0 0;background:#eef5ff}.person-card .replica-card-pad{padding:6px 18px 8px}.replica-card{display:flex;flex-direction:column;overflow:hidden}.replica-card-header{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:14px 18px 8px;gap:12px}.replica-card-title{display:inline-flex;align-items:center;min-width:0;gap:6px;color:var(--replica-text);font-size:14px;font-weight:600}.title-dot{width:4px;height:14px;border-radius:2px;background:#2a6dff;flex:none}.title-suffix,.replica-card-action{color:var(--replica-muted);font-size:12px;font-weight:500;white-space:nowrap}.card-link-action{display:inline-flex;align-items:center;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.card-link-action:hover{color:#1769ff}.replica-card-pad{min-height:0;flex:1;padding:4px 14px 12px}.trend-card .replica-card-header{padding-bottom:5px}.trend-card .replica-card-pad{padding:4px 14px 12px}.map-card .replica-card-pad{padding:0 10px 10px}.map-card .replica-card-header{padding-bottom:8px}.trend-period{min-width:58px;height:28px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:1px solid #dbe5f2;border-radius:6px;background:#fff;color:#52627a;font-size:12px;line-height:1;cursor:default}.trend-period svg{width:12px;height:12px}.mini-chart{height:194px;margin:0 0 2px;border-radius:10px;position:relative}.trend-chart{width:100%;height:174px;display:block}.trend-grid-line{stroke:#edf2f8;stroke-width:1}.trend-line{fill:none;stroke:#1769ff;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.trend-point{fill:#fff;stroke:#1769ff;stroke-width:3}.trend-bar{fill:#43c9d0}.trend-axis-label{fill:#6b7a99;font-family:inherit;font-size:12px}.trend-x{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:4px;margin:-3px 25px 0 27px;color:var(--replica-secondary);font-size:10.5px;text-align:center}.trend-legend{display:flex;align-items:center;justify-content:center;gap:24px;margin:-2px 0 2px;color:var(--replica-secondary);font-size:12px}.trend-legend-item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.legend-line{position:relative;width:16px;height:0;border-top:3px solid #1769ff;border-radius:999px}.legend-line:after{content:"";position:absolute;top:-5px;left:5px;width:6px;height:6px;border:2px solid #1769ff;border-radius:50%;background:#fff}.legend-bar{width:12px;height:7px;border-radius:2px;background:#43c9d0}.map-tools{display:inline-flex;align-items:center;gap:6px}.map-tool{height:26px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border:1px solid #dbe5f2;border-radius:6px;background:#fff;color:#6b7a99;font-size:12px;font-family:inherit;line-height:1;cursor:pointer}.map-tool.active{border-color:#cdeee8;background:#e8faf6;color:#0b9c99;font-weight:600;cursor:default}.tool-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.map-tool.icon-only{width:28px;justify-content:center;padding:0}.map-tool svg{width:15px;height:15px}.map-layout{display:block;min-height:0}.map-wrap{position:relative;height:412px;min-height:0;overflow:hidden;border:1px solid #dfe7f4;border-radius:8px;background:#eef3fa}.map-wrap.modal-map-wrap,.map-wrap.modal-map-wrap .replica-map-shell,.map-wrap.modal-map-wrap .trajectory-map-shell,.map-wrap.modal-map-wrap .trajectory-map,.map-wrap.modal-map-wrap .worker-live-map-shell,.map-wrap.modal-map-wrap .worker-live-map{height:min(72vh,720px);min-height:520px}.replica-map-shell,.replica-map-shell .trajectory-map-shell,.replica-map-shell .trajectory-map,.replica-map-shell .worker-live-map-shell,.replica-map-shell .worker-live-map{height:412px}.replica-map-shell .trajectory-map-shell,.replica-map-shell .worker-live-map-shell,.replay-map .trajectory-map-shell{position:relative;border:1px solid #dfe7f4;border-radius:8px;overflow:hidden;background:#eef3fa}.replay-map .trajectory-map-shell:after,.map-wrap.modal-map-wrap .trajectory-map-shell:after,.map-wrap.modal-map-wrap .worker-live-map-shell:after{content:"";position:absolute;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(to bottom,#fff0,#ffffff59 60%,#ffffffb3)}.replay-map .trajectory-map-shell:after{height:44px}.map-wrap.modal-map-wrap .trajectory-map-shell:after{height:64px}.map-wrap.modal-map-wrap .worker-live-map-shell:after{height:64px}.map-card .replica-map-shell .trajectory-map-shell,.map-card .replica-map-shell .worker-live-map-shell{position:relative;border:0;border-radius:6px;overflow:hidden}.map-card .replica-map-shell .trajectory-map-shell:after,.map-card .replica-map-shell .worker-live-map-shell:after{content:"";position:absolute;right:0;bottom:0;left:0;height:56px;pointer-events:none;background:linear-gradient(to bottom,#fff0,#ffffff59 60%,#ffffffb3);z-index:1}.map-card .replica-map-shell .amap-logo,.map-card .replica-map-shell .amap-copyright{z-index:6!important;visibility:visible!important}.map-card .trajectory-map-legend{display:none}.worker-live-map-shell{position:relative;width:100%;min-height:260px;background:#eef3fa}.worker-live-map{width:100%}.worker-live-map-state{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;background:#f8fbffc2}.worker-live-marker{display:inline-flex;align-items:center;gap:8px;min-width:112px;max-width:218px;padding:5px 11px 5px 5px;border:1px solid #d8e5f4;border-radius:8px;background:#fff;box-shadow:0 10px 26px #0f172a33;color:#10213b;white-space:nowrap}.worker-live-dot{width:28px;height:28px;display:grid;place-items:center;flex:none;border-radius:50%;background:#2a6dff;color:#fff;font-size:12px;font-weight:700}.worker-live-dot:before{content:"运"}.worker-live-dot{font-size:0}.worker-live-dot:before{font-size:13px}.worker-live-label{display:grid;min-width:0;gap:1px}.worker-live-label strong,.worker-live-label em{overflow:hidden;max-width:152px;text-overflow:ellipsis;white-space:nowrap}.worker-live-label strong{color:#10213b;font-size:13px;line-height:1.15}.worker-live-label em{color:#6b7a99;font-size:11px;font-style:normal;line-height:1.15}.worker-live-marker.online .worker-live-dot{background:#10b981}.worker-live-marker.active .worker-live-dot{background:#2a6dff}.worker-live-marker.offline .worker-live-dot{background:#7f8ca8}.worker-live-marker.focused{border-color:#1677ff;box-shadow:0 0 0 4px #1677ff29,0 12px 28px #0f172a3d}.worker-live-marker.focused .worker-live-dot{background:#ef4444}.worker-live-marker.focused .worker-live-label strong{color:#0a5bff}.map-control{position:absolute;right:12px;bottom:54px;z-index:4;width:31px;overflow:hidden;border:1px solid #dce5f2;border-radius:6px;background:#fff;box-shadow:0 6px 18px #0f172a1a}.map-control span{height:31px;display:grid;place-items:center;border-bottom:1px solid #edf1f8;color:#52627a;font-size:18px;line-height:1}.map-control span:last-child{border-bottom:0;font-size:14px}.map-bottom-legend{position:absolute;top:12px;right:12px;z-index:4;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:min(460px,calc(100% - 24px));gap:8px 14px;padding:8px 10px;border:1px solid #edf0f5;border-radius:6px;background:#ffffffe5;box-shadow:0 6px 18px #0f172a14;color:#52627a;font-size:12px}.map-bottom-legend>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.map-bottom-legend .legend-dot{width:9px;height:9px;flex:none;border-radius:50%}.map-bottom-legend .dot-blue{background:#2a6dff}.map-bottom-legend .dot-gray{background:#7f8ca8}.map-bottom-legend .dot-red{background:#ff4d4f}.map-bottom-legend .dot-light-blue{background:#b8d4ff}.live-map-modal .ant-modal-content{padding:18px 18px 16px;border-radius:8px}.live-map-modal .ant-modal-header{margin-bottom:12px}.live-map-modal .ant-modal-title{color:var(--replica-text);font-size:16px;font-weight:700}.live-map-modal .ant-modal-body{padding:0}.today-card .replica-card-pad{display:flex;flex-direction:column;min-height:0;padding:5px 10px 8px}.today-card .replica-card-header{padding-bottom:5px}.today-card-actions{display:inline-flex;align-items:center;min-width:0;gap:8px}.today-refresh-meta{display:inline-flex;align-items:center;gap:5px;color:#7f8ca8;font-size:11px;font-weight:500;white-space:nowrap}.today-refresh-meta.live:before{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px #10b9811f;content:""}.today-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:5px;color:var(--replica-secondary);font-size:11.5px;text-align:center}.today-summary strong{display:block;margin-top:2px;color:#0a5bff;font-size:16px;line-height:1}.replica-table-wrap{flex:none;min-height:128px;margin-top:3px;overflow:hidden;border:1px solid #e6edf7;border-radius:6px;background:#fff}.replica-table-wrap table{width:100%;border-collapse:collapse;table-layout:fixed}.replica-table-wrap th{padding:3px 6px;border-bottom:1px solid #e8edf5;background:#eef5ff;color:var(--replica-secondary);font-size:12px;font-weight:500;line-height:1.05;text-align:left;white-space:nowrap}.replica-table-wrap td{overflow:hidden;padding:3px 6px;border-bottom:1px solid #eef1f7;color:var(--replica-text);font-size:12px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.today-person-col{width:42%}.today-shift-col{width:19%}.today-time-col{width:22%}.today-status-col{width:17%}.today-card .replica-table-wrap th:nth-child(2),.today-card .replica-table-wrap td:nth-child(2),.today-card .replica-table-wrap th:nth-child(3),.today-card .replica-table-wrap td:nth-child(3),.today-card .replica-table-wrap th:nth-child(4),.today-card .replica-table-wrap td:nth-child(4){text-align:center}.today-card .replica-table-wrap th,.today-card .replica-table-wrap td{max-width:0}.replica-table-wrap tr:last-child td{border-bottom:0}.today-card .replica-table-wrap tbody tr{cursor:pointer}.today-card .replica-table-wrap tbody tr:hover td,.today-card .replica-table-wrap tbody tr.selected td{background:#f5f8ff}.today-card .replica-table-wrap tbody tr.selected td:first-child{box-shadow:inset 3px 0 #2a6dff}.avatar-name{display:inline-flex;align-items:center;width:100%;min-width:0;max-width:100%;overflow:hidden;gap:6px}.avatar-mini{width:16px;height:16px;display:inline-block;border-radius:50%;background:radial-gradient(circle at 50% 34%,#ffd9c2 0 22%,transparent 23%),radial-gradient(ellipse at 50% 100%,#2c78c9 0 34%,transparent 35%),linear-gradient(135deg,#dbe8ff,#8cb5ff);box-shadow:inset 0 0 0 2px #fff;flex:none}.avatar-mini.warm{background:radial-gradient(circle at 50% 34%,#ffe0c7 0 22%,transparent 23%),radial-gradient(ellipse at 50% 100%,#e58a34 0 34%,transparent 35%),linear-gradient(135deg,#fff1d6,#ffd29a)}.avatar-mini.cool{background:radial-gradient(circle at 50% 34%,#ffd9c2 0 22%,transparent 23%),radial-gradient(ellipse at 50% 100%,#0aa39a 0 34%,transparent 35%),linear-gradient(135deg,#d7f7f3,#9be0db)}.avatar-mini.image{object-fit:cover;background:#edf2f8}.avatar-name-text{display:block;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-name-tooltip .ant-tooltip-inner{max-width:260px;padding:6px 10px;border-radius:6px;background:#10213b;color:#fff;font-size:12px;line-height:1.4;box-shadow:0 8px 22px #0f172a2e}.attendance-name-tooltip .ant-tooltip-arrow:before{background:#10213b}.replica-tag{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:500}.replica-tag.green{background:#dff6eb;color:#047857}.replica-tag.orange{background:#fff5d6;color:#b45309}.replica-tag.red{background:#ffe7e7;color:#dc2626}.replica-tag.gray{background:#edf2f8;color:#64748b}.today-more{flex:none;min-height:20px;display:flex;align-items:center;justify-content:flex-end;width:100%;margin-top:5px;padding:0;border:0;background:transparent;color:#1769ff;cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;line-height:20px}.shift-donut-body{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;height:142px}.shift-donut{position:relative;width:92px;height:92px;display:grid;place-items:center;border-radius:50%}.shift-donut:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:50%;background:#fff}.shift-donut span{position:relative;z-index:1;color:var(--replica-text);font-size:18px;font-weight:700}.shift-legend-list{display:grid;gap:9px;min-width:0}.shift-legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto 48px;gap:7px;align-items:center;color:var(--replica-secondary);font-size:12px}.shift-legend-row>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-legend-row strong{color:var(--replica-text);font-size:12px;font-weight:700;white-space:nowrap}.legend-dot{width:8px;height:8px;border-radius:50%}.person-profile{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center;padding-bottom:6px;border-bottom:1px solid #eef2f7}.person-avatar{width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 50% 32%,#f4c2a1 0 20%,transparent 21%),linear-gradient(170deg,transparent 0 49%,#1f5fbf 50% 78%,transparent 79%),radial-gradient(ellipse at 50% 92%,#2b68c9 0 38%,transparent 39%),linear-gradient(135deg,#d8e8ff,#8eb7ff);box-shadow:inset 0 0 0 3px #fff,0 4px 12px #182c541f}.person-avatar.image{object-fit:cover;background:#edf2f8}.person-sub{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-name{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;color:var(--replica-text);font-size:14px;font-weight:700}.person-name-text{display:block;min-width:0;max-width:126px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-sub{margin-top:3px;color:var(--replica-muted);font-size:11.5px;max-width:100%}.online-badge,.offline-badge{flex:none;display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:12px;font-weight:600}.online-badge{background:#dff6eb;color:#047857}.offline-badge{background:#edf2f8;color:#64748b}.online-badge:before,.offline-badge:before{content:"";width:11px;height:11px;display:inline-block;background:currentColor;-webkit-mask:radial-gradient(circle at 50% 32%,#000 0 23%,transparent 24%),radial-gradient(ellipse at 50% 100%,#000 0 44%,transparent 45%);mask:radial-gradient(circle at 50% 32%,#000 0 23%,transparent 24%),radial-gradient(ellipse at 50% 100%,#000 0 44%,transparent 45%)}.person-detail-list{margin-top:6px;display:grid;gap:3px}.person-detail-row{display:grid;grid-template-columns:66px minmax(0,1fr);gap:8px;color:var(--replica-muted);font-size:11.5px;line-height:1.15}.person-detail-row strong{min-width:0;overflow:hidden;color:var(--replica-text);font-weight:540;text-align:left;text-overflow:ellipsis;white-space:nowrap}.person-detail-row strong .person-link{max-width:72px}.person-detail-row strong.accent-green{color:#0b9c99}.person-detail-row .person-link{float:right;margin-left:8px;padding:0;border:0;background:transparent;color:#1769ff;cursor:pointer;font:inherit;font-weight:600;text-align:right}.attendance-replica-bottom{display:grid;grid-template-columns:minmax(420px,1fr) minmax(560px,1.1fr);gap:14px}.anomaly-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.anomaly-card{min-width:0;min-height:234px;padding:11px 10px;border:1px solid #e9eef7;border-radius:8px;background:#fcfeff}.anomaly-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:10px;border-radius:50%}.anomaly-icon svg{width:28px;height:28px}.anomaly-icon.red{background:#ffe4e4;color:#ef4444}.anomaly-icon.orange{background:#fff1d6;color:#f59e0b}.anomaly-icon.purple{background:#ede8ff;color:#7c5cff}.anomaly-icon.blue{background:#e0ecff;color:#2a6dff}.anomaly-title{margin-bottom:8px;color:var(--replica-text);font-size:13px;font-weight:700}.anomaly-stat-row{display:grid;grid-template-columns:minmax(54px,max-content) minmax(0,1fr);gap:8px;align-items:end;margin-bottom:8px}.anomaly-value{color:var(--replica-text);font-size:18px;font-weight:700;line-height:1.1;white-space:nowrap}.anomaly-meta{overflow:hidden;color:#ef4444;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.anomaly-ratio-row{display:grid;grid-template-columns:minmax(0,76px) 42px;gap:5px;align-items:center;margin-bottom:9px}.anomaly-ratio{overflow:hidden;color:var(--replica-muted);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.anomaly-spark{width:42px;height:22px;color:#7fb2ff}.anomaly-spark path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.anomaly-top-title{margin-bottom:6px;color:var(--replica-secondary);font-size:11px;font-weight:700}.anomaly-empty{min-height:46px;display:grid;place-items:center;border:1px dashed #d9e3f0;border-radius:6px;background:#f8fbff;color:var(--replica-muted);font-size:12px}.replay-toolbar{display:grid;grid-template-columns:30px minmax(150px,1fr) 30px 128px 30px 132px;gap:8px;align-items:center;margin-bottom:10px;color:var(--replica-secondary);font-size:12px}.replay-body{display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:12px;align-items:stretch}.replay-map,.replay-map .trajectory-map-shell,.replay-map .trajectory-map{height:236px}.replay-map .amap-logo,.replay-map .amap-copyright,.live-map-modal .amap-logo,.live-map-modal .amap-copyright{z-index:6!important;visibility:visible!important}.replay-map .amap-copyright{bottom:2px!important}.replay-timeline{position:relative;display:grid;align-content:start;min-height:236px;padding:13px 12px;border:1px solid #e6edf7;border-radius:10px;background:#fff;color:var(--replica-secondary);font-size:12px}.replay-timeline.empty{place-items:center}.timeline-row{position:relative;display:grid;grid-template-columns:18px 48px minmax(0,1fr) 88px;gap:7px;align-items:center;min-height:26px}.timeline-row.active{color:#1769ff;font-weight:600}.timeline-row:not(:last-child):before{content:"";position:absolute;left:8px;top:calc(50% + 5px);width:2px;height:calc(100% - 10px);background:#9aa8bf}.timeline-dot{width:10px;height:10px;justify-self:center;border:2px solid #2a7cff;border-radius:50%;background:#fff;z-index:1}.timeline-dot.done{border-color:#9aa8bf}.timeline-row.active .timeline-dot{width:12px;height:12px;border-color:#1769ff;box-shadow:0 0 0 4px #1769ff29}.timeline-row span:nth-child(n+2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playback-bar{display:grid;grid-template-columns:30px 68px 40px minmax(0,1fr) 40px 132px;gap:10px;align-items:center;margin-top:10px;color:var(--replica-secondary);font-size:12px}.play-btn{width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#1677ff;color:#fff;cursor:pointer;font-family:inherit;font-size:11px}.play-btn:disabled{background:#b8c6dc;cursor:not-allowed}.play-speed .ant-select-selector{min-height:30px!important;border-radius:6px!important}.range-track{height:6px;display:block;padding:0;overflow:hidden;border:0;border-radius:999px;background:#e4ebf5;cursor:pointer}.range-track span{display:block;height:100%;border-radius:inherit;background:#1677ff}.range-track:disabled{cursor:not-allowed}.playback-progress-meta{overflow:hidden;color:var(--replica-muted);text-overflow:ellipsis;white-space:nowrap}@media (max-width: 900px){.attendance-replica-main{grid-template-columns:minmax(260px,1fr) minmax(0,1.35fr);grid-template-rows:auto;grid-template-areas:"trend map" "today map" "shift detail"}.attendance-replica-bottom{grid-template-columns:minmax(0,1fr)}}@media (max-width: 760px){.attendance-replica-filters,.replay-toolbar{grid-template-columns:42px minmax(140px,1fr) 42px minmax(140px,1fr)}.attendance-replica-stats,.anomaly-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-replica-main{grid-template-columns:minmax(0,1fr);grid-template-areas:"trend" "map" "today" "shift" "detail"}.replay-body{grid-template-columns:minmax(0,1fr)}.replica-map-shell,.replica-map-shell .trajectory-map-shell,.replica-map-shell .trajectory-map,.replica-map-shell .worker-live-map-shell,.replica-map-shell .worker-live-map{height:340px}}@media (max-width: 720px){.attendance-replica-stats,.anomaly-grid,.attendance-replica-filters,.replay-toolbar,.playback-bar{grid-template-columns:minmax(0,1fr)}.attendance-replica-filters .filter-label,.replay-toolbar>span{text-align:left}.shift-donut-body{grid-template-columns:minmax(0,1fr);height:auto}.shift-donut{margin:0 auto}.replica-table-wrap{overflow-x:auto}}.attendance-data-notes{display:flex;flex-wrap:wrap;gap:4px 24px;padding:10px 14px;border:1px solid var(--replica-border);border-radius:8px;background:var(--replica-soft);color:var(--replica-secondary);font-size:12px;line-height:1.7}.attendance-panel-note{margin-top:10px;color:var(--replica-secondary, #52627a);font-size:12px;line-height:1.6}.attendance-feedback-alert{flex-shrink:0}.attendance-replica-page .map-tools,.map-card .replica-card-header{flex-wrap:wrap}.map-card .replica-card-action{min-width:0;max-width:100%;white-space:normal}.person-detail-row-wrap strong{white-space:normal;line-height:1.4}.map-bottom-legend .dot-punch{background:var(--replica-punch, #d99632)}.worker-live-marker.punch-position:not(.focused) .worker-live-dot{background:var(--replica-punch, #d99632)}.worker-live-marker.punch-position{max-width:260px}.worker-live-marker.punch-position .worker-live-label em{max-width:200px;white-space:normal;line-height:1.4}.live-map-show-all{margin-bottom:12px}.anomaly-card{display:flex;flex-direction:column}.anomaly-meta{white-space:normal;overflow:visible;line-height:1.5}.anomaly-meta.ready{color:#158b80}.anomaly-meta.partial,.anomaly-meta.not_configured{color:#ad6b12}.anomaly-meta.no_data{color:var(--replica-secondary)}.anomaly-ratio-row{display:flex;flex-wrap:wrap;gap:4px 8px;color:var(--replica-secondary);font-size:11px}.anomaly-ratio{white-space:normal;overflow:visible;font-size:11px}.anomaly-reason{margin-bottom:12px;min-height:42px;color:var(--replica-secondary);font-size:11px;line-height:1.6;overflow-wrap:anywhere}.anomaly-top-list{margin:0 0 8px;padding:0;list-style:none}.anomaly-top-list li{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--replica-secondary);font-size:12px}.anomaly-top-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.anomaly-top-list strong{flex-shrink:0;font-weight:600;font-variant-numeric:tabular-nums}.anomaly-empty{padding:8px;text-align:center}.anomaly-detail-action{min-height:40px;margin-top:auto;padding:8px 0 0;border:0;background:none;color:var(--replica-primary);font:inherit;font-size:12px;text-align:left;cursor:pointer}.anomaly-detail-action:hover{text-decoration:underline}.anomaly-detail-action:disabled{color:var(--replica-muted);cursor:default}.anomaly-detail-action:focus-visible{outline:2px solid var(--replica-primary);outline-offset:2px}.anomaly-rule{margin-top:8px}.anomaly-evidence-table{margin-top:16px}.replica-stat-content strong,.today-summary strong,.anomaly-value{font-variant-numeric:tabular-nums}.shift-legend-list{max-height:230px;overflow:auto}@media (min-width: 761px) and (max-width: 1360px){.attendance-replica-filters{display:flex;flex-wrap:wrap;gap:8px}.attendance-replica-filters .replica-date{width:144px}.attendance-replica-filters .replica-shift,.attendance-replica-filters .replica-org,.attendance-replica-filters .replica-status{width:120px}.attendance-replica-filters .attendance-search{width:190px}.attendance-replica-main{grid-template-columns:minmax(260px,1fr) minmax(0,1.35fr);grid-template-rows:auto;grid-template-areas:"trend map" "today map" "shift detail"}.attendance-replica-bottom{grid-template-columns:minmax(0,1fr)}.replica-stat-foot{display:flex;align-items:flex-start;flex-direction:column;gap:4px}.replica-stat-foot>span:first-child{max-width:100%}}.owner-workflow-panel{min-width:0}.owner-sync-options{display:grid;gap:12px;margin-bottom:16px;width:100%}.owner-sync-options .ant-radio-wrapper{align-items:flex-start;margin:0;padding:16px;border:1px solid var(--ops-border, #e5ebf5);border-radius:8px}.owner-sync-options .ant-radio{margin-top:4px}.owner-sync-options strong,.owner-sync-options span>span{display:block}.owner-sync-options strong{margin-bottom:6px;color:var(--ops-text, #10213b)}.owner-sync-options span>span{color:var(--ops-text-secondary, #52627a);line-height:1.7}.owner-workflow-actions{margin-top:16px}.owner-workflow-stack{display:flex;flex-direction:column;gap:16px}.owner-workflow-stack .ant-descriptions-item-content{overflow-wrap:anywhere;white-space:pre-wrap}.owner-workflow-records{overflow-x:auto}.owner-workflow-records table{min-width:680px}.owner-publication-records{display:grid;gap:8px;margin:12px 0 16px}.owner-record-media{display:flex;flex-wrap:wrap;gap:8px}.owner-private-video{display:block;width:min(320px,100%);max-height:220px;border-radius:6px;background:#111}.owner-media-unavailable{color:var(--ops-text-secondary, #52627a);font-size:12px}.owner-instruction-original{padding:12px 16px;border-radius:8px;background:var(--ops-surface-muted, #f8fbff);margin-bottom:20px}.owner-instruction-original p{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.owner-report-route{position:relative;min-height:300px;overflow:hidden;border-radius:8px}.owner-report-route-map{height:300px}.owner-report-route-state{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#ffffffeb;padding:16px}.owner-report-summary{display:flex;flex-wrap:wrap;gap:12px 24px;font-variant-numeric:tabular-nums}.owner-report-summary span{color:var(--ops-text-secondary, #52627a)}.owner-report-summary b{color:var(--ops-text, #10213b);margin-left:8px}@media (max-width:640px){.owner-sync-options .ant-radio-wrapper{padding:12px}.owner-workflow-actions{width:100%}.owner-workflow-actions .ant-space-item{flex:1}.owner-workflow-actions button{width:100%}}.owner-workflow-menu-backdrop{display:none}@media (max-width:767px){.owner-workflow-shell .app-sider{z-index:102}.owner-workflow-shell .app-sider.ant-layout-sider-collapsed{transform:translate(-100%)}.owner-workflow-shell>.ant-layout{margin-left:0!important;width:100%;min-width:0}.owner-workflow-shell .owner-workflow-menu-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:101;background:#10213b59;border:0}.owner-workflow-shell .app-header{padding:0 12px;gap:8px}.owner-workflow-shell .app-header-left{gap:8px;flex-shrink:0}.owner-workflow-shell .app-header-right{min-width:0;gap:4px}.owner-workflow-shell .app-header-right>.topbar-icon-btn,.owner-workflow-shell .user-chip-name,.owner-workflow-shell .user-chip-arrow,.owner-workflow-shell .access-context .access-muted{display:none}.owner-workflow-shell .access-context{min-width:0}.owner-workflow-shell .access-tenant-name{max-width:100px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.owner-workflow-shell .access-company-select,.owner-workflow-shell .access-scope-select{max-width:110px;min-width:0}.owner-workflow-shell .app-content,.owner-workflow-shell .page-body,.owner-workflow-shell .access-panel{padding:12px}.owner-workflow-shell .access-toolbar{flex-wrap:wrap;gap:12px;margin-bottom:16px}.owner-workflow-shell .integration-heading h1{font-size:20px}}body:has(.owner-workflow-shell){min-width:0}.owner-workflow-shell .app-content,.owner-workflow-shell .page-body,.owner-workflow-shell .owner-workflow-stack>*,.owner-workflow-shell .access-panel{min-width:0}@media (max-width:767px){.owner-workflow-shell .app-sider.ant-layout-sider-collapsed{visibility:hidden}}.integration-settings{display:flex;flex-direction:column;gap:20px}.integration-heading h1{margin:0 0 8px;font-size:22px;font-weight:650;color:#10213b}.integration-heading p,.integration-panel .access-toolbar p{margin:0;color:#52627a;line-height:1.7}.integration-panel .access-toolbar h2{margin:0 0 8px;font-size:17px}.integration-active{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 16px;margin-bottom:16px;background:#f8fbff;border:1px solid #e5ebf5;border-radius:8px}.integration-active span:last-child{color:#52627a;font-size:12px}.integration-mask{overflow-wrap:anywhere}.integration-panel small{color:#52627a;line-height:1.8}@media (max-width: 640px){.integration-panel .access-toolbar{align-items:flex-start;flex-direction:column;gap:12px}}.ios-devices-page{--ios-device-text: #10213b;--ios-device-muted: #52627a;--ios-device-border: #e5ebf5;--ios-device-subtle: #f8fbff;display:flex;flex-direction:column;gap:20px;min-width:0}body:has(.ios-devices-page),.app-sider+.ant-layout:has(.ios-devices-page),.app-content:has(.ios-devices-page){min-width:0}.ios-devices-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.ios-devices-heading h1{margin:0 0 8px;color:var(--ios-device-text);font-size:22px;font-weight:650}.ios-devices-heading p{margin:0;color:var(--ios-device-muted);line-height:1.7}.ios-devices-page .access-panel{min-width:0}.ios-devices-page .access-toolbar{align-items:flex-start}.ios-devices-page .access-toolbar>.ant-btn{flex-shrink:0}.ios-devices-page .ant-btn{min-height:36px}.ios-devices-link-row{display:flex;align-items:stretch;gap:12px}.ios-devices-link-row>.ant-input{min-width:0;font-size:13px}.ios-devices-link-row>.ant-btn{flex-shrink:0}.ios-devices-current{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;margin-bottom:16px;background:var(--ios-device-subtle);border:1px solid var(--ios-device-border);border-radius:8px}.ios-devices-current>div{min-width:0}.ios-devices-current .ant-btn{flex-shrink:0}.ios-devices-eyebrow{display:block;margin-bottom:7px;color:var(--ios-device-muted);font-size:12px}.ios-devices-current strong{color:var(--ios-device-text);font-size:19px;font-weight:600}.ios-devices-current p{margin:7px 0 0;color:var(--ios-device-muted);font-size:13px;line-height:1.6}.ios-devices-guidance{margin-bottom:20px}.ios-devices-guidance .ant-alert-description{margin-top:4px;font-size:13px;color:var(--ios-device-muted)}.ios-devices-table-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;color:var(--ios-device-text);font-weight:600}.ios-devices-table-caption small,.ios-release-version small{color:var(--ios-device-muted);font-size:12px;font-weight:400}.ios-release-version{display:flex;flex-direction:column;gap:5px}.ios-release-version strong span{font-weight:400}.ios-devices-page .ant-table{font-variant-numeric:tabular-nums}.ios-device-identifier{display:flex;gap:4px;align-items:center}.ios-device-identifier code{white-space:nowrap;font-size:12px}.ios-device-identifier .ant-btn{flex-shrink:0;min-width:36px}.ios-devices-hash{overflow-wrap:anywhere;font-size:12px}.ios-devices-count{display:inline-block;margin-left:5px;color:var(--ios-device-muted);font-size:14px;font-weight:400;font-variant-numeric:tabular-nums}.ios-devices-search{max-width:280px;min-width:200px}.ios-devices-upload{padding:12px 16px;margin-bottom:20px;background:var(--ios-device-subtle);border-radius:8px}.ios-devices-upload strong{display:block;overflow-wrap:anywhere;font-size:13px}.ios-devices-upload>span{color:var(--ios-device-muted);font-size:13px}.ios-devices-confirm{line-height:1.75}.ios-devices-copy-retry{margin-top:12px}.ios-devices-copy-proxy{position:fixed;top:0;left:0;width:1px;height:1px;padding:0;border:0;opacity:0}@media (max-width: 760px){.ios-devices-page{gap:16px}.ios-devices-page .access-panel{padding:16px}.ios-devices-page .access-toolbar{flex-direction:column;gap:12px}.ios-devices-link-row,.ios-devices-current{flex-direction:column;align-items:stretch;gap:12px}.ios-devices-search{max-width:none;width:100%;min-width:0}.ios-devices-page .ant-btn{min-height:40px}.ios-devices-current{padding:16px}.ios-devices-heading{align-items:flex-start}.ios-devices-heading h1{font-size:20px}.ios-devices-heading>.ant-btn{flex-shrink:0}.ios-devices-table-caption{flex-wrap:wrap;gap:4px}}.screen-track-map{--map-surface: #0b1d2a;--map-panel: rgba(12, 31, 45, .94);--map-ink: #e1f0f6;--map-secondary: #9ab5c6;--map-muted: #6f91a7;--map-border: rgba(138, 191, 218, .2);--map-focus: #28c9da;--map-attendance: #28c9da;--map-patrol: #efb454;position:relative;width:100%;height:100%;min-height:260px;overflow:hidden;isolation:isolate;color:var(--map-ink);background:var(--map-surface);font-variant-numeric:tabular-nums}.screen-track-map--light{--map-surface: #e9f0f4;--map-panel: rgba(255, 255, 255, .96);--map-ink: #1d3343;--map-secondary: #536d7f;--map-muted: #718591;--map-border: rgba(46, 83, 107, .19);--map-focus: #008ca8}.screen-track-map .screen-track-map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:260px}.screen-track-map .screen-track-map-legend{position:absolute;z-index:110;top:12px;left:12px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;max-width:calc(100% - 244px);padding:12px;border:1px solid var(--map-border);border-radius:4px;background:var(--map-panel);font-size:12px;line-height:18px;color:var(--map-secondary);pointer-events:none}.screen-track-map .screen-track-map-legend>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.screen-track-map .screen-track-map-legend i{width:16px;height:3px;border-radius:2px;background:var(--map-attendance)}.screen-track-map .screen-track-map-legend i.patrol{background:var(--map-patrol)}.screen-track-map .screen-track-map-controls{position:absolute;z-index:110;top:12px;right:12px;display:flex;align-items:center;gap:6px}.screen-track-map .screen-track-map-zoom-pair{display:flex;align-items:center;justify-content:center;gap:6px}.screen-track-map .screen-track-map-control{position:static;display:inline-flex;justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:10px 12px;border:1px solid var(--map-border);border-radius:4px;color:var(--map-ink);background:var(--map-panel);font:inherit;font-size:12px;cursor:pointer;transition:color .16s ease,border-color .16s ease}.screen-track-map .screen-track-map-fit{width:44px;height:44px;min-width:44px;padding:10px}.screen-track-map .screen-track-map-zoom{width:44px;height:44px;padding:10px}.screen-track-map .screen-track-map-control svg{width:17px;height:17px;flex:none}.screen-track-map .screen-track-map-control:hover:enabled{color:var(--map-focus);border-color:var(--map-focus)}.screen-track-map .screen-track-map-control:disabled{opacity:.55;cursor:default}.screen-track-map .screen-track-map-control:active:enabled{transform:scale(.97)}.screen-track-map button:focus-visible{outline:2px solid var(--map-focus);outline-offset:3px}.screen-track-map .screen-track-map-state{position:absolute;z-index:105;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:72px 20px 40px;background:color-mix(in srgb,var(--map-surface) 55%,transparent);pointer-events:none}.screen-track-map .screen-track-map-state-body{display:flex;flex-direction:column;align-items:center;width:min(360px,100%);padding:20px;border:1px solid var(--map-border);border-radius:6px;background:var(--map-panel);text-align:center;overflow-wrap:anywhere}.screen-track-map .screen-track-map-state-body>svg{width:36px;height:36px;margin-bottom:12px;color:var(--map-muted);flex:none}.screen-track-map .screen-track-map-state-body strong{font-size:14px;font-weight:600;line-height:22px}.screen-track-map .screen-track-map-state-body p{margin:6px 0 0;color:var(--map-secondary);font-size:12px;line-height:20px}.screen-track-map .screen-track-map-state-body button{margin-top:12px;min-height:44px;padding:10px 18px;border:1px solid var(--map-border);border-radius:4px;background:transparent;color:var(--map-focus);font:inherit;font-size:12px;cursor:pointer;pointer-events:auto}.screen-track-map .screen-track-map-state-body button:hover{border-color:var(--map-focus)}.screen-track-map .screen-track-map-loading{animation:screen-track-map-spin 1.4s linear infinite}.screen-track-map .screen-track-map-observation{position:absolute;z-index:110;left:12px;right:12px;bottom:36px;display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--map-border);border-radius:4px;background:var(--map-panel);font-size:12px;line-height:18px;pointer-events:none;overflow-wrap:anywhere}.screen-track-map .screen-track-map-observation-label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600}.screen-track-map .screen-track-map-observation-label em{font-style:normal;font-size:10px;font-weight:500;line-height:16px;padding:1px 5px;color:var(--map-secondary);border:1px solid var(--map-border);border-radius:2px}.screen-track-map .screen-track-map-observation-data{color:var(--map-secondary)}.screen-track-map .screen-track-map-observation-data>span{color:var(--map-muted)}.screen-track-map .screen-track-map-observation-meta{color:var(--map-muted);font-size:11px}.screen-track-map .screen-track-map-marker{display:inline-flex;align-items:flex-start;gap:7px;color:var(--map-ink)}.screen-track-map .screen-track-map-marker-dot{width:18px;height:18px;flex:none;border:3px solid var(--map-panel);border-radius:50%;background:var(--map-attendance);box-shadow:0 0 0 1px var(--map-attendance)}.screen-track-map .screen-track-map-marker.punch .screen-track-map-marker-dot{background:var(--map-patrol);box-shadow:0 0 0 1px var(--map-patrol)}.screen-track-map .screen-track-map-marker.historical .screen-track-map-marker-dot{background:var(--map-muted);box-shadow:0 0 0 1px var(--map-muted)}.screen-track-map .screen-track-map-marker-label{display:flex;flex-direction:column;gap:2px;width:max-content;max-width:204px;flex-shrink:0;margin-top:-4px;padding:7px 9px;border:1px solid var(--map-border);border-radius:6px;background:var(--map-panel);line-height:16px}.screen-track-map .screen-track-map-marker-label strong{max-width:184px;overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap;font-weight:600}.screen-track-map .screen-track-map-marker-label em{font-size:10px;font-style:normal;color:var(--map-secondary);overflow-wrap:anywhere}.screen-track-map .screen-track-map-marker-label time{font-size:10px;color:var(--map-muted)}.screen-track-map .screen-track-map-marker.is-focused .screen-track-map-marker-label{border-color:var(--map-focus)}.screen-track-map .screen-track-map-marker:not(.is-focused) .screen-track-map-marker-label em,.screen-track-map .screen-track-map-marker:not(.is-focused) .screen-track-map-marker-label time{display:none}.screen-track-map .screen-track-map-marker.is-focused .screen-track-map-marker-label{min-width:168px}.screen-track-map .screen-track-map-point{display:block;width:10px;height:10px;border:2px solid var(--map-panel);border-radius:50%;background:var(--map-attendance)}.screen-track-map .screen-track-map-point.patrol{background:var(--map-patrol)}@keyframes screen-track-map-spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.screen-track-map,.screen-track-map .screen-track-map-canvas{min-height:320px}.screen-track-map .screen-track-map-legend{gap:4px 10px;padding:8px 10px;font-size:11px;max-width:calc(100% - 140px)}.screen-track-map .screen-track-map-controls{flex-direction:column;align-items:stretch}.screen-track-map .screen-track-map-observation{padding:10px}.screen-track-map .screen-track-map-marker-label{max-width:164px}.screen-track-map .screen-track-map-marker-label strong{max-width:144px}.screen-track-map .screen-track-map-marker.is-focused{position:relative}.screen-track-map .screen-track-map-marker.is-focused .screen-track-map-marker-label{position:absolute;left:9px;top:24px;transform:translate(-50%);margin-top:0;min-width:150px;max-width:164px}}@media (prefers-reduced-motion: reduce){.screen-track-map .screen-track-map-loading{animation:none}.screen-track-map .screen-track-map-control{transition:none}}body:has(.ops-screen){min-width:0;background:#061321}.ops-screen{--screen-canvas: #061321;--screen-panel: rgba(12, 32, 50, .63);--screen-raised: rgba(105, 172, 204, .09);--screen-ink: #edf8ff;--screen-secondary: #b4cede;--screen-muted: #789aac;--screen-line: rgba(160, 212, 237, .14);--screen-accent: #56ddec;--screen-warning: #f5bd70;min-height:760px;height:100dvh;width:100%;padding:20px 24px 12px;display:flex;flex-direction:column;gap:16px;background:var(--screen-canvas);color:var(--screen-ink);font-family:PingFang SC,Microsoft YaHei,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow:hidden;position:relative;isolation:isolate}.ops-screen--light{--screen-canvas: #dceaf0;--screen-panel: rgba(250, 254, 255, .69);--screen-raised: rgba(57, 134, 157, .08);--screen-ink: #173c4e;--screen-secondary: #3d687c;--screen-muted: #5e8191;--screen-line: rgba(40, 115, 142, .17);--screen-accent: #058c9d;--screen-warning: #b06d18}.ops-screen *,.ops-screen *:before,.ops-screen *:after{box-sizing:border-box}.ops-screen h1,.ops-screen h2,.ops-screen p{margin:0}.ops-screen button:focus-visible,.ops-screen a:focus-visible{outline:2px solid var(--screen-accent);outline-offset:3px}.screen-header{display:flex;gap:24px;align-items:center;min-width:0;flex-shrink:0;z-index:3}.screen-brand{display:flex;gap:14px;align-items:center;flex:1;min-width:0}.screen-brand-mark{display:flex;width:48px;height:48px;flex-shrink:0;padding:5px;border-radius:12px;background:#54c9e412;border:1px solid rgba(117,220,243,.2)}.screen-brand-mark .ops-brand-mark{width:100%;height:100%;object-fit:contain}.screen-brand h1{font-size:27px;letter-spacing:2px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.screen-brand p{color:var(--screen-muted);font-size:11px;overflow-wrap:anywhere}.screen-header-context{display:flex;flex-direction:column;gap:7px;text-align:right;color:var(--screen-secondary);font-size:11px;max-width:300px}.screen-header-context time{font-size:18px;color:var(--screen-ink);letter-spacing:1px}.screen-actions{display:flex;align-items:center;gap:8px;padding:4px;border:1px solid var(--screen-line);border-radius:12px;background:#589fb809}.screen-actions .ant-btn,.screen-control-link{width:44px;min-width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--screen-secondary);box-shadow:none}.screen-control-link{display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:7px;font-size:16px;text-decoration:none}.screen-control-link:hover{color:var(--screen-accent);background:var(--screen-raised)}.screen-stage{position:relative;flex:1;min-height:0;border-radius:18px;overflow:hidden;background:#071828;border:1px solid var(--screen-line);isolation:isolate}.screen-scene-vignette{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,15,28,.43),transparent 33%,transparent 67%,rgba(3,15,28,.43)),linear-gradient(0deg,rgba(3,15,28,.4),transparent 28%,transparent 75%,rgba(3,15,28,.16))}.ops-screen--light .screen-scene-vignette{background:linear-gradient(90deg,rgba(211,235,244,.3),transparent 30%,transparent 70%,rgba(211,235,244,.3))}.screen-stage>.screen-panel--map{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border:0;border-radius:0;background:transparent;padding:0}.screen-stage>.screen-panel--map>.screen-panel-heading{display:none}.screen-stage>.screen-panel--map>.screen-panel-body{padding:0;overflow:hidden}.screen-float-rail{position:absolute;top:20px;bottom:20px;width:var(--rail-width);z-index:2;display:flex;flex-direction:column;gap:16px;pointer-events:none}.screen-float-rail--left{left:20px}.screen-float-rail--right{right:20px}.screen-panel{--panel-color: 76, 213, 231;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-radius:14px;border:1px solid rgba(var(--panel-color),.3);position:relative;background:linear-gradient(135deg,rgba(var(--panel-color),.12),#07182ba6 80%);box-shadow:inset 0 1px #ebfcff1a,0 8px 32px #000a1924}.screen-float-rail>.screen-panel{flex:1;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto}.screen-panel:before{content:"";position:absolute;top:0;left:22px;right:22px;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--panel-color),.65),transparent);pointer-events:none}.screen-panel--overview{--panel-color: 76, 213, 231}.screen-panel--workers{--panel-color: 127, 167, 255}.screen-panel--patrol{--panel-color: 66, 215, 171}.screen-panel--workOrders{--panel-color: 244, 181, 85}.screen-panel--alerts{--panel-color: 245, 124, 163}.screen-float-rail>.screen-panel--wide{flex:1.45}.ops-screen--map-focus .screen-float-rail{top:28px;bottom:28px;gap:20px}.ops-screen--analytics .screen-float-rail,.screen-stage--compact-map .screen-float-rail{width:var(--rail-width)}.screen-stage--no-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:24px;background:radial-gradient(ellipse at 50% 0%,rgba(50,128,164,.15),transparent 65%),var(--screen-canvas)}.screen-stage--no-map .screen-float-rail{position:relative;inset:auto;width:auto;min-height:0}.screen-panel-heading{padding:16px 18px 12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:7px;flex-shrink:0}.screen-panel h2{font-size:14px;font-weight:500;letter-spacing:1px}.screen-panel-body{flex:1;min-height:0;padding:0 18px 16px;display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(var(--panel-color),.25) transparent}.screen-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px;column-gap:12px;padding:4px 0 16px}.screen-metric>span{font-size:11px;color:var(--screen-secondary)}.screen-metric>div{display:flex;align-items:baseline;gap:7px;margin-top:5px}.screen-metric strong{font-family:DIN Alternate,Avenir Next,sans-serif;font-weight:500;font-size:34px;line-height:1.1;letter-spacing:-.7px;color:rgb(var(--panel-color))}.screen-metric small{font-size:10px;color:var(--screen-muted)}.screen-metric--warning strong{color:var(--screen-warning)}.screen-inline-summary{display:flex;gap:12px;justify-content:space-between;padding-top:12px;margin-top:auto;border-top:1px solid var(--screen-line);color:var(--screen-muted);font-size:10px}.screen-inline-summary b{color:var(--screen-secondary);margin-left:5px}.screen-worker-counts{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--screen-line);padding:4px 0 14px}.screen-worker-counts>div{display:flex;align-items:baseline;gap:7px;font-size:10px;color:var(--screen-muted)}.screen-worker-counts strong{font-size:26px;color:var(--screen-ink);font-weight:500}.screen-worker-dot{width:5px;height:5px;border-radius:50%;background:var(--screen-muted);align-self:center}.screen-worker-dot--0{background:#62dcb6}.screen-worker-dot--1{background:var(--screen-warning)}.screen-worker-list{display:flex;flex-direction:column;overflow:auto;min-height:0;flex:1;padding-top:5px}.screen-worker-list button{width:100%;flex-shrink:0;display:flex;align-items:center;gap:10px;border:0;border-radius:6px;padding:8px 4px;background:transparent;color:var(--screen-ink);text-align:left;cursor:pointer;min-height:48px}.screen-worker-list button:not(:disabled):hover,.screen-worker-list .selected{background:rgba(var(--panel-color),.1)}.screen-worker-list button:disabled{cursor:default}.screen-worker-avatar{display:inline-flex;justify-content:center;align-items:center;width:30px;height:30px;border-radius:9px;background:rgba(var(--panel-color),.13);color:rgb(var(--panel-color));font-size:12px;flex-shrink:0}.screen-worker-list button>span:nth-child(2){flex:1;min-width:0}.screen-worker-list strong{display:block;font-size:12px;font-weight:500}.screen-worker-list small{display:block;font-size:9px;color:var(--screen-muted);margin-top:4px}.screen-worker-status{font-size:10px;flex-shrink:0;color:var(--screen-muted)}.screen-worker-status--online{color:#62dcb6}.screen-worker-status--active{color:var(--screen-warning)}.screen-map-content{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.screen-stage .screen-map-toolbar{position:absolute;top:24px;left:calc(var(--rail-width) + 48px);right:calc(var(--rail-width) + 48px);z-index:5}.screen-map-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--screen-secondary);font-size:11px}.screen-map-toolbar>span{white-space:nowrap;padding:10px 12px;border:1px solid var(--screen-line);border-radius:8px;background:#081d2dc7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.screen-map-toolbar b{color:var(--screen-accent);font-size:20px;padding-right:4px}.screen-map-toolbar .ant-select{width:230px;flex:1;min-width:130px;max-width:280px}.screen-stage .screen-track-map{flex:1}.screen-stage .screen-track-map-legend{left:calc(var(--rail-width) + 48px);top:82px;padding:9px 12px;max-width:calc(100% - var(--rail-width) * 2 - 220px);font-size:10px}.screen-stage .screen-track-map-fit{right:calc(var(--rail-width) + 48px);top:82px;min-width:44px}.screen-stage .screen-track-map-observation{left:calc(var(--rail-width) + 48px);right:calc(var(--rail-width) + 48px);bottom:104px;font-size:11px;border-radius:8px;background:#091f31bd;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.screen-stage .screen-track-status{position:absolute;bottom:16px;left:calc(var(--rail-width) + 48px);right:calc(var(--rail-width) + 48px);z-index:2;text-align:center}.screen-track-status{font-size:10px;color:var(--screen-muted);line-height:1.6}.screen-task-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px}.screen-task-summary>div{display:flex;align-items:baseline;gap:10px}.screen-task-summary strong{font-family:DIN Alternate,Avenir Next,sans-serif;font-size:32px;font-weight:500;color:rgb(var(--panel-color))}.screen-task-summary span{color:var(--screen-muted);font-size:10px}.screen-task-summary b{color:rgb(var(--panel-color))}.screen-task-bars{display:flex;flex-direction:column;gap:9px}.screen-task-bars>div{display:flex;align-items:center;gap:10px;color:var(--screen-secondary);font-size:10px}.screen-task-bars span{width:36px;flex-shrink:0}.screen-task-bars i{flex:1;display:block;height:4px;background:rgba(var(--panel-color),.08);overflow:hidden;border-radius:4px}.screen-task-bars i b{display:block;height:100%;background:rgb(var(--panel-color));box-shadow:0 0 8px rgba(var(--panel-color),.25)}.screen-task-bars strong{width:28px;text-align:right;font-weight:500}.screen-task-list{margin-top:14px;padding-top:8px;border-top:1px solid var(--screen-line);overflow:auto;min-height:0;flex:1}.screen-task-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0}.screen-task-list>div>div{min-width:0}.screen-task-list strong{display:block;font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-task-list span{display:block;color:var(--screen-muted);font-size:9px;margin-top:4px}.screen-task-list small{color:rgb(var(--panel-color));font-size:9px;flex-shrink:0}.screen-task-list small.warning{color:var(--screen-warning)}.screen-task-list .screen-empty-line{padding:16px 0;text-align:center}.screen-alert-list{overflow:auto;min-height:0;flex:1}.screen-alert-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--screen-line)}.screen-alert-mark{flex-shrink:0;width:24px;height:24px;display:inline-flex;justify-content:center;align-items:center;border-radius:7px;color:rgb(var(--panel-color));background:rgba(var(--panel-color),.13);font-weight:600;font-size:12px}.screen-alert-item>div{min-width:0;flex:1}.screen-alert-item strong{font-size:11px;font-weight:500}.screen-alert-item b{color:rgb(var(--panel-color));font-weight:500}.screen-alert-item p{font-size:10px;color:var(--screen-secondary);line-height:1.6;margin-top:5px}.screen-alert-item time{color:var(--screen-muted);font-size:9px}.screen-all-clear,.screen-source-state{display:flex;flex-direction:column;flex:1;align-items:center;justify-content:center;text-align:center;gap:12px;min-height:120px;color:var(--screen-muted);font-size:11px}.screen-all-clear>span{font-size:28px;color:var(--screen-accent)}.screen-all-clear strong,.screen-source-state strong{font-weight:500;color:var(--screen-secondary)}.screen-source-state-symbol{font-size:28px;color:var(--screen-warning)}.screen-partial-hint{padding-bottom:8px;font-size:10px;color:var(--screen-warning)}.screen-trend{display:flex;gap:8px;align-items:end;margin-top:auto;min-height:60px}.screen-trend>div{flex:1;display:flex;flex-direction:column;gap:4px;align-items:center}.screen-trend span,.screen-trend small{color:var(--screen-muted);font-size:9px}.screen-trend i{display:block;width:50%;background:rgb(var(--panel-color));border-radius:2px;opacity:.8}.screen-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:10px;color:var(--screen-muted);flex-shrink:0}.screen-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--screen-accent);margin-right:8px;box-shadow:0 0 8px #46d8eb40}.screen-status-dot--warning{background:var(--screen-warning)}.screen-initial-state{flex:1;min-height:65dvh;display:flex;align-items:center;justify-content:center}.screen-mobile-tabs,.screen-mobile-pagination{display:none}.ops-screen--light .screen-panel{background:linear-gradient(135deg,rgba(var(--panel-color),.12),#fbffffc2 80%)}.ops-screen--light .screen-panel--overview{--panel-color: 7, 146, 171}.ops-screen--light .screen-panel--workers{--panel-color: 74, 119, 211}.ops-screen--light .screen-panel--patrol{--panel-color: 18, 157, 121}.ops-screen--light .screen-panel--workOrders{--panel-color: 180, 114, 22}.ops-screen--light .screen-panel--alerts{--panel-color: 196, 71, 117}.ops-screen--light .screen-map-toolbar>span,.ops-screen--light .screen-track-map-observation{background:#f5fdffcc}@media (max-width: 1199px) and (min-width: 768px){.ops-screen{padding:16px;gap:12px}.screen-header{flex-wrap:wrap;gap:12px}.screen-brand h1{font-size:22px}.screen-header-context,.screen-actions{margin-left:auto}.screen-float-rail{left:12px;top:12px;bottom:12px;gap:12px}.screen-float-rail--right{left:auto;right:12px}.screen-panel-heading{padding:12px}.screen-panel-body{padding:0 12px 12px}.screen-metric strong{font-size:28px}.screen-stage .screen-map-toolbar{left:calc(var(--rail-width) + 28px);right:calc(var(--rail-width) + 28px);flex-wrap:wrap;gap:8px}.screen-map-toolbar>span{padding:6px 10px}.screen-map-toolbar .ant-select{width:100%;max-width:none;flex-basis:100%}.screen-stage .screen-track-map-legend{left:calc(var(--rail-width) + 28px);top:130px;max-width:calc(100% - var(--rail-width) * 2 - 56px)}.screen-stage .screen-track-map-fit{top:182px;right:calc(var(--rail-width) + 28px)}.screen-stage .screen-track-map-observation{left:calc(var(--rail-width) + 28px);right:calc(var(--rail-width) + 28px);bottom:104px}.screen-worker-counts>div{gap:4px}.screen-worker-counts strong{font-size:23px}}@media (max-width: 767px){.ops-screen{height:auto;min-height:100dvh;overflow:visible;padding:max(16px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom));gap:16px;background:radial-gradient(ellipse at 10% 35%,rgba(62,144,179,.12),transparent 55%),var(--screen-canvas)}.screen-header{flex-wrap:wrap;gap:12px}.screen-brand{flex-basis:100%;gap:12px}.screen-brand h1{font-size:21px;line-height:1.7}.screen-brand p{font-size:10px}.screen-brand-mark{width:40px;height:40px;flex-shrink:0;padding:4px}.screen-header-context{order:3;margin:0;max-width:none;width:100%;flex-direction:row;align-items:center;justify-content:space-between;text-align:left;font-size:10px}.screen-header-context time{font-size:11px;letter-spacing:0;white-space:nowrap}.screen-header-context>span{flex:1;overflow-wrap:anywhere}.screen-actions{margin:0;width:100%;justify-content:space-between;gap:4px;padding:4px}.screen-control-link{flex:0 0 44px;padding:0}.screen-actions .ant-btn{flex-shrink:0;width:44px;height:44px}.screen-control-link{min-height:44px}.screen-mobile-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 4px;scrollbar-width:thin}.screen-mobile-tabs button{border:1px solid var(--screen-line);border-radius:9px;height:44px;flex-shrink:0;padding:0 16px;background:#529cbb0d;color:var(--screen-secondary);font-size:12px;cursor:pointer}.screen-mobile-tabs button[aria-current]{color:var(--screen-accent);border-color:#5ad5e880;background:#49d1e71a}.screen-mobile-page{display:flex;flex-direction:column;min-height:400px;flex:1}.screen-mobile-page>.screen-panel{flex:1;min-height:400px}.screen-panel-heading{padding:16px}.screen-panel-body{padding:0 16px 16px;overflow:visible}.screen-mobile-page .screen-panel--map{background:transparent;border-color:#59d7ef3d}.screen-panel--map .screen-panel-body{padding:0}.screen-map-toolbar{padding:0 16px 12px;flex-wrap:wrap;justify-content:space-between}.screen-map-toolbar>span{padding:4px 0;background:transparent;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}.screen-map-toolbar .ant-select{max-width:none;width:100%;height:44px;flex-basis:100%}.screen-track-status{padding:12px 16px;font-size:10px}.screen-map-content>.screen-track-map{flex:1;min-height:360px}.screen-metrics{padding:12px 0 24px;gap:28px 16px}.screen-metric>span{font-size:12px}.screen-metric strong{font-size:42px}.screen-metric small,.screen-inline-summary{font-size:12px}.screen-worker-counts strong{font-size:32px}.screen-worker-counts>div{font-size:12px}.screen-worker-list{max-height:420px}.screen-worker-list button{min-height:64px}.screen-worker-list strong{font-size:14px}.screen-worker-list small,.screen-worker-status{font-size:11px}.screen-task-summary{padding:12px 0 24px}.screen-task-summary strong{font-size:40px}.screen-task-summary span{font-size:12px}.screen-task-bars{gap:16px}.screen-task-bars>div{font-size:12px}.screen-task-bars i{height:6px}.screen-task-list{margin-top:24px}.screen-task-list strong{font-size:13px}.screen-task-list>div{padding:12px 0}.screen-task-list span,.screen-task-list small{font-size:11px}.screen-alert-list{max-height:500px}.screen-alert-item strong{font-size:13px}.screen-alert-item p{font-size:11px}.screen-all-clear{min-height:300px}.screen-trend{min-height:100px}.screen-trend span,.screen-trend small{font-size:10px}.screen-mobile-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px}.screen-mobile-pagination .ant-btn{height:44px;width:44px;min-width:44px;padding:0;border-color:var(--screen-line);background:var(--screen-raised)}.screen-mobile-pagination>span{color:var(--screen-muted);font-size:12px}.screen-footer{font-size:10px;line-height:1.7}}@media (prefers-reduced-motion: reduce){.ops-screen *,.ops-screen *:before,.ops-screen *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body:has(.ops-screen--light){background:#eaf2f6}.ops-screen--light{--screen-canvas: #eaf2f6;--screen-secondary: #365f74;--screen-muted: #607f8f}.ops-screen--light .screen-stage{background:#dfeef4;border-color:#579db72b;box-shadow:0 4px 24px #3879980f}.ops-screen--light .screen-panel{box-shadow:inset 0 1px #fffffff0,0 8px 24px #2d6c8812}.ops-screen--light .screen-panel:before{background:linear-gradient(90deg,transparent,rgba(var(--panel-color),.38),transparent)}.ops-screen--light .screen-worker-status--online{color:#188e71}.ops-screen--light .screen-worker-dot--0{background:#20a682}@media (max-width: 767px){.ops-screen{padding-bottom:calc(94px + env(safe-area-inset-bottom))}.screen-mobile-pagination{position:fixed;z-index:8;bottom:max(12px,env(safe-area-inset-bottom));left:16px;right:16px;padding:8px;border:1px solid var(--screen-line);border-radius:12px;background:#f7fdffdb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 4px 20px #40728817}.screen-mobile-pagination .ant-btn{width:44px;min-width:44px;padding:0}.ops-screen--light{background:radial-gradient(ellipse at 0% 30%,rgba(79,189,214,.09),transparent 60%),#edf4f7}}.screen-title{flex:1;min-width:0;text-align:left}.screen-title h1{margin:0;font-size:27px;font-weight:600;letter-spacing:1px;line-height:1.5;overflow-wrap:anywhere}.screen-brand{flex:1}.screen-org-name{display:block;margin-top:4px;color:var(--screen-muted);font-size:11px}.screen-header-utility{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:0 0 auto}.screen-header-context{flex-direction:row;align-items:center;gap:12px;max-width:none}.screen-header-context>span{max-width:160px;line-height:1.5}.screen-header-context time{font-size:14px;letter-spacing:0;white-space:nowrap}.screen-actions{border-radius:24px;padding:4px 8px;background:#ffffffa6;border-color:#fffffff2;box-shadow:inset 0 1px 1px #fff,0 4px 16px #3168820d}.screen-control-link,.screen-actions .ant-btn{border-radius:20px}.screen-control-link:hover,.screen-actions .ant-btn:hover{background:#2d9fb41a!important}.screen-panel{border-radius:22px}.ops-screen--light .screen-panel{background:linear-gradient(145deg,#ffffffd6,rgba(var(--panel-color),.16) 62%,#ffffffb8);border-color:#ffffffd9;box-shadow:inset 0 1px 1px #fff,inset 0 -1px 1px rgba(var(--panel-color),.1),0 12px 32px #3961741f}.ops-screen--light .screen-panel--workOrders{--panel-color: 218, 105, 42}.ops-screen--light .screen-panel--alerts{--panel-color: 185, 86, 132}.screen-panel:before{display:none}.screen-panel-heading{padding:17px 18px 13px}.screen-panel h2{font-size:15px;letter-spacing:.3px;font-weight:600}.screen-metrics{gap:8px;padding:0 0 12px}.screen-metric{padding:13px 12px;border-radius:15px;background:linear-gradient(135deg,#ffffffc2,rgba(var(--panel-color),.06));border:1px solid rgba(255,255,255,.66);box-shadow:inset 0 1px #fffc}.screen-metric>span{font-size:11px}.screen-metric strong{font-size:32px;font-weight:600;font-style:normal}.screen-worker-counts{padding:10px 0 15px}.screen-worker-avatar{border-radius:50%;background:#ffffffb8;border:1px solid rgba(var(--panel-color),.14)}.screen-worker-list button{padding:9px 7px;border-radius:12px}.screen-task-summary{padding:9px 12px;margin-bottom:14px;border-radius:16px;background:#ffffff8f;border:1px solid rgba(255,255,255,.66)}.screen-task-summary>div:first-child{flex-direction:column;align-items:flex-start;gap:5px}.screen-task-summary strong{font-size:34px;font-weight:600}.screen-task-completion{position:relative;width:60px;height:60px;flex-shrink:0;display:grid!important;place-items:center}.screen-task-completion svg{position:absolute;top:0;right:0;bottom:0;left:0;width:60px;height:60px;transform:rotate(-90deg)}.screen-task-completion circle{fill:none;stroke:rgb(var(--panel-color));stroke-width:3.4;stroke-linecap:round}.screen-task-completion circle.screen-task-completion-base{stroke:rgba(var(--panel-color),.12)}.screen-task-completion>span{display:flex;flex-direction:column;align-items:center;gap:1px}.screen-task-completion b{font-size:15px;line-height:1.2}.screen-task-completion small{font-size:8px;font-weight:400}.screen-task-bars i{height:5px}.screen-task-list strong{font-size:12px}.screen-alert-item{margin-bottom:8px;padding:12px;border-radius:14px;background:#ffffff75;border:1px solid rgba(255,255,255,.65)}.screen-alert-mark{border-radius:50%}.screen-map-toolbar{border:1px solid rgba(255,255,255,.9);border-radius:26px;padding:6px;background:#ffffffad;box-shadow:0 5px 20px #30678214;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.screen-map-toolbar>span{border:0;border-radius:22px;background:#ffffffe0!important}.screen-map-toolbar .ant-select-selector{border-radius:22px!important;background:#ffffffb8!important}.screen-stage .screen-track-map-controls{right:calc(var(--rail-width) + 48px);top:82px}.screen-stage .screen-track-map-fit{position:static}.screen-stage .screen-track-map-legend{border-radius:16px;border-color:#ffffffd9;background:#ffffffc4}.screen-stage .screen-track-map-observation{right:auto;bottom:32px;width:340px;max-width:calc((100% - var(--rail-width) * 2 - 96px) / 2 - 16px);border-radius:16px;padding:14px;border-color:#ffffffe6;background:#ffffffc4}.screen-footer{position:relative;z-index:3}@media (min-width: 1200px){.ops-screen{padding:34px 42px 12px;background:#e8eff2}.screen-header{min-height:134px;align-items:flex-start;position:relative;gap:20px}.screen-brand,.screen-header-utility{position:relative;z-index:3}.screen-header-utility{margin-left:auto}.screen-stage:not(.screen-stage--no-map) .screen-float-rail{top:140px;bottom:40px;gap:16px}.screen-stage .screen-map-toolbar{top:156px;left:50%;right:auto;transform:translate(-50%);width:min(480px,calc(100% - var(--rail-width) * 2 - 96px))}.screen-stage .screen-track-map-legend,.screen-stage .screen-track-map-controls{top:224px}.screen-scene-vignette{background:linear-gradient(180deg,rgba(239,247,249,.93),rgba(238,248,250,.6) 140px,transparent 260px)!important}.screen-footer{margin-top:auto}}@media (min-width: 768px) and (max-width: 1199px){.screen-header{gap:12px;align-items:center}.screen-title h1{font-size:23px}.screen-header-utility{margin-left:auto}.screen-control-link,.screen-actions .ant-btn{width:44px;min-width:44px;padding:0}.screen-header-context>span{font-size:10px;max-width:130px}.screen-map-toolbar{border-radius:18px}.screen-stage .screen-track-map-controls{top:182px;right:calc(var(--rail-width) + 28px)}.screen-stage .screen-track-map-observation{left:calc(var(--rail-width) + 28px);right:calc(var(--rail-width) + 28px);bottom:36px;width:auto;max-width:none}.screen-metric{padding:10px 7px}.screen-metric strong{font-size:27px}}@media (max-width: 767px){.screen-header{gap:12px;align-items:center}.screen-brand{flex:1 1 100%}.screen-title h1{font-size:21px;line-height:1.5;letter-spacing:.5px}.screen-header-utility{width:100%;flex-basis:100%;gap:8px}.screen-header-context{order:2;width:100%;font-size:9px;gap:8px}.screen-header-context>span{max-width:none}.screen-header-context time{font-size:10px}.screen-mobile-tabs{gap:6px}.screen-mobile-tabs button{border-radius:24px;padding:0 15px;background:#ffffffad}.screen-mobile-tabs button[aria-current]{color:#fff;border-color:#188d9f;background:#188d9f;box-shadow:0 3px 10px #0e879a33}.screen-panel-heading{padding:18px 16px 14px}.screen-mobile-page>.screen-panel{border-radius:24px}.screen-metrics{gap:10px}.screen-metric{padding:20px 14px}.screen-metric strong{font-size:38px}.screen-task-summary{padding:18px}.screen-task-summary strong{font-size:42px}.screen-map-toolbar{border:0;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;padding:0 16px 12px}.screen-map-toolbar>span{padding:4px 0;background:transparent!important}.screen-map-toolbar .ant-select-selector{border-radius:14px!important}.screen-mobile-pagination{border-radius:24px}.screen-mobile-pagination .ant-btn{border-radius:20px}}.screen-error{position:relative;z-index:4;flex-shrink:0}@media (min-width: 1200px){.screen-error{align-self:center;width:min(700px,60%);margin:12px 0}}.ops-screen--night{--screen-canvas: #071724;--screen-secondary: #b5cedd;--screen-muted: #87a7ba}.ops-screen--night .screen-actions{background:#0f2639a6;border-color:#acdaf126;box-shadow:inset 0 1px #d3f2ff17,0 5px 20px #00071124}.ops-screen--night .screen-metric{background:linear-gradient(135deg,#d5f0ff17,rgba(var(--panel-color),.07));border-color:#b5def21f;box-shadow:inset 0 1px #e0f7ff1a}.ops-screen--night .screen-task-summary{background:#e0f3ff0f;border-color:#bee5f821}.ops-screen--night .screen-worker-avatar{background:rgba(var(--panel-color),.1);border-color:rgba(var(--panel-color),.2)}.ops-screen--night .screen-alert-item{background:rgba(var(--panel-color),.07);border-color:rgba(var(--panel-color),.13)}.ops-screen--night .screen-map-toolbar{background:#092235ad;border-color:#a5ddf52e}.ops-screen--night .screen-map-toolbar>span{background:#102e40bf!important}.ops-screen--night .screen-map-toolbar .ant-select-selector{background:#102e409e!important}.ops-screen--night .screen-track-map-legend,.ops-screen--night .screen-track-map-observation{background:#0a2031d1;border-color:#a6d7f030}.ops-screen--night .screen-mobile-pagination{background:#0a2235eb;border-color:#aedef533}.ops-screen--night .screen-mobile-tabs button{background:#82beda14}.ops-screen--night .screen-mobile-tabs button[aria-current]{background:#297d90;border-color:#65c9df;color:#f0fbff}@media (min-width: 1200px){.ops-screen--night{background:#07131e}.ops-screen--night .screen-scene-vignette{background:linear-gradient(180deg,rgba(8,27,42,.96),rgba(8,30,47,.64) 140px,transparent 260px)!important}}@media (max-width: 767px){.ops-screen--night .screen-map-toolbar{background:transparent;border:0}.ops-screen--night .screen-map-toolbar>span{background:transparent!important}}@media (min-width: 768px){.ops-screen:has(>.screen-stage:not(.screen-stage--no-map)){min-height:0}.ops-screen .screen-stage:not(.screen-stage--no-map){position:absolute;top:0;right:0;bottom:0;left:0;flex:none;border:0;border-radius:0;box-shadow:none}.ops-screen:has(>.screen-stage:not(.screen-stage--no-map))>.screen-footer{position:absolute;bottom:8px;right:24px;margin:0;justify-content:flex-end}}@media (min-width: 768px) and (max-width: 1199px){.screen-stage:not(.screen-stage--no-map) .screen-float-rail{top:124px;bottom:40px}.screen-stage .screen-map-toolbar{top:136px}.screen-stage .screen-track-map-legend{top:242px}.screen-stage .screen-track-map-controls{top:294px}}@media (max-width: 767px){.screen-mobile-page:has(>.screen-panel--map){margin-inline:-16px}.screen-mobile-page>.screen-panel--map{border:0;border-radius:0;box-shadow:none}}.screen-management{--screen-manager-ink: #10213b;--screen-manager-secondary: #52627a;--screen-manager-muted: #7b889c;--screen-manager-border: #e7edf5;--screen-manager-surface: #f7f9fc;--screen-manager-accent: #1768d1;display:flex;flex-direction:column;gap:24px;color:var(--screen-manager-ink)}.screen-management-heading,.screen-management-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.screen-management-heading{align-items:flex-start}.screen-management-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--screen-manager-accent);font-size:12px;font-weight:600}.screen-management-heading h1{margin:0 0 8px;font-size:24px;font-weight:650;letter-spacing:-.5px}.screen-management-heading p,.screen-management-section-heading p{margin:0;color:var(--screen-manager-secondary);font-size:13px;line-height:1.7}.screen-management-section-heading{margin-bottom:20px}.screen-management-section-heading h2{margin:0 0 4px;font-size:17px;font-weight:600}.screen-management-settings{padding:24px;background:var(--screen-manager-surface);border:1px solid var(--screen-manager-border);border-radius:8px}.screen-layout-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.screen-layout-option{display:flex;align-items:center;gap:12px;min-width:0;min-height:84px;padding:16px;background:#fff;color:var(--screen-manager-ink);border:1px solid var(--screen-manager-border);border-radius:6px;cursor:pointer;text-align:left;font:inherit;transition:border-color .16s,background-color .16s}.screen-layout-option:hover:not(:disabled){border-color:#93b8ed}.screen-layout-option.is-selected{background:#f0f6ff;border-color:var(--screen-manager-accent)}.screen-layout-option:focus-visible{outline:2px solid var(--screen-manager-accent);outline-offset:3px}.screen-layout-option:disabled{cursor:default}.screen-layout-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.screen-layout-copy strong{font-size:14px;font-weight:600}.screen-layout-copy small{font-size:12px;line-height:1.5;color:var(--screen-manager-secondary)}.screen-layout-check{margin-left:auto;color:var(--screen-manager-accent)}.screen-layout-icon{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:3px;width:48px;height:36px;flex-shrink:0}.screen-layout-icon i{border-radius:2px;background:#aabed9}.screen-layout-icon i:first-child{grid-column:span 2;grid-row:span 2;background:var(--screen-manager-accent)}.screen-layout-icon i:last-child{display:none}.screen-layout-icon--map-focus{grid-template-columns:repeat(3,1fr)}.screen-layout-icon--map-focus i:first-child{grid-column:span 3;grid-row:span 1}.screen-layout-icon--map-focus i:last-child{display:block}.screen-layout-icon--analytics{grid-template-columns:repeat(2,1fr)}.screen-layout-icon--analytics i:first-child{grid-column:span 1;grid-row:span 1}.screen-layout-icon--analytics i:last-child{display:block}.screen-settings-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:16px}.screen-settings-form .ant-form-item{min-width:0;margin-bottom:0}.screen-settings-form .ant-form-item:first-child{grid-column:span 2}.screen-settings-form .ant-form-item:nth-child(2){grid-column:span 4}.screen-settings-form .ant-form-item:nth-child(n+3){grid-column:span 2;margin-top:16px}.screen-settings-form .ant-select{width:100%}.screen-management-scope-note{margin:12px 0 0;color:var(--screen-manager-muted);font-size:12px;line-height:1.7}.screen-management-workspace{display:grid;grid-template-columns:minmax(390px,.88fr) minmax(0,1.35fr);gap:28px;align-items:start}.screen-management-components,.screen-management-preview-column{min-width:0}.screen-management-components>.ant-alert{margin-bottom:16px}.screen-widget-list{display:flex;flex-direction:column;gap:12px;padding:0;margin:0;list-style:none}.screen-widget-card{padding:16px;border:1px solid var(--screen-manager-border);border-radius:8px;background:#fff;transition:border-color .16s,background-color .16s,opacity .16s}.screen-widget-card.is-hidden{background:var(--screen-manager-surface)}.screen-widget-card.is-hidden h3,.screen-widget-card.is-hidden p{color:var(--screen-manager-muted)}.screen-widget-card.is-dragging{opacity:.5}.screen-widget-card.is-drop-target{border-color:var(--screen-manager-accent);background:#f0f6ff}.screen-widget-header{display:flex;align-items:center;gap:8px}.screen-widget-header h3{margin:0;font-size:14px;font-weight:600}.screen-widget-header .ant-switch{margin-left:auto;flex-shrink:0}.screen-widget-drag{display:grid;place-items:center;width:24px;height:32px;margin-left:-4px;color:var(--screen-manager-muted);cursor:grab}.screen-widget-drag[draggable=false]{cursor:default}.screen-widget-drag:active{cursor:grabbing}.screen-widget-number{color:var(--screen-manager-muted);font-size:12px;font-variant-numeric:tabular-nums}.screen-widget-card>p{margin:6px 0 16px;color:var(--screen-manager-secondary);font-size:12px;line-height:1.65}.screen-widget-controls{display:flex;align-items:flex-end;gap:12px}.screen-widget-controls label{display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.screen-widget-controls label>span{font-size:12px;color:var(--screen-manager-secondary)}.screen-widget-controls .ant-select{width:100%}.screen-widget-controls label.screen-widget-size{flex:0 0 88px}.screen-widget-move{display:flex;flex-shrink:0;gap:4px}.screen-widget-move .ant-btn{width:32px}.screen-management-preview-sticky{position:sticky;top:24px}.screen-preview{--preview-base: #0e2035;--preview-panel: #142a43;--preview-ink: #e3edf9;--preview-muted: #93aac5;--preview-border: #27415d;--preview-route: #52d4bd;--preview-road: #304a62;--preview-water: #173c5b;padding:20px;background:var(--preview-base);color:var(--preview-ink);border-radius:8px;min-height:480px}.screen-preview--light{--preview-base: #edf3fa;--preview-panel: #fff;--preview-ink: #18344f;--preview-muted: #6c839a;--preview-border: #d5e2ef;--preview-route: #178e8a;--preview-road: #cedbe9;--preview-water: #b9d9ef}.screen-preview-topline,.screen-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:var(--preview-muted)}.screen-preview-heading{margin:24px 0;text-align:center}.screen-preview-heading h3{margin:0 0 6px;color:var(--preview-ink);font-size:21px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}.screen-preview-heading p{margin:0 0 6px;color:var(--preview-muted);font-size:11px;line-height:1.6;overflow-wrap:anywhere}.screen-preview-heading>span{font-size:10px;color:var(--preview-muted)}.screen-preview-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row;grid-auto-rows:minmax(94px,auto);gap:8px}.screen-preview-widget{min-width:0;min-height:0;padding:12px;border:1px solid var(--preview-border);border-radius:4px;background:var(--preview-panel);overflow:hidden;grid-column:span 4}.screen-preview-widget--wide{grid-column:span 8}.screen-preview-widget--map{grid-column:span 4;grid-row:span 2;display:flex;flex-direction:column}.screen-preview-widget--map.screen-preview-widget--wide{grid-column:span 8}.screen-preview--map-focus .screen-preview-grid{grid-auto-rows:minmax(71px,auto)}.screen-preview--map-focus .screen-preview-widget{grid-column:span 3}.screen-preview--map-focus .screen-preview-widget--wide{grid-column:span 6}.screen-preview--map-focus .screen-preview-widget--map{grid-column:span 6;grid-row:span 3}.screen-preview--map-focus .screen-preview-widget--map.screen-preview-widget--wide{grid-column:span 9;grid-row:span 5}.screen-preview--analytics .screen-preview-widget{grid-column:span 3}.screen-preview--analytics .screen-preview-widget--wide{grid-column:span 6}.screen-preview--analytics .screen-preview-widget--map{grid-row:span 2}.screen-preview-widget-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-bottom:12px;font-size:11px;font-weight:600}.screen-preview-widget-label small{margin-left:auto;color:var(--preview-muted);font-size:9px;font-weight:400}.screen-preview-map{flex:1;position:relative;min-height:0;background:var(--preview-base);border-radius:3px;overflow:hidden}.screen-preview-map svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.screen-preview-water{fill:none;stroke:var(--preview-water);stroke-width:30}.screen-preview-road{fill:none;stroke:var(--preview-road);stroke-width:8}.screen-preview-route{fill:none;stroke:var(--preview-route);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.screen-preview-point{fill:var(--preview-route);stroke:var(--preview-panel);stroke-width:2}.screen-preview-map-caption{position:absolute;bottom:8px;left:8px;display:inline-flex;gap:4px;align-items:center;color:var(--preview-muted);font-size:10px}.screen-preview-metrics{display:flex;gap:16px;justify-content:space-between;padding-top:4px}.screen-preview-metrics>div{flex:1;min-width:0}.screen-preview-metrics strong{display:block;margin-top:4px;font-size:23px;color:var(--preview-ink);font-variant-numeric:tabular-nums}.screen-preview-placeholder{display:block;height:4px;width:65%;background:var(--preview-border);border-radius:2px}.screen-preview-bars{display:flex;flex-direction:column;gap:10px;padding-top:4px}.screen-preview-bars>div{display:flex;align-items:center;gap:8px}.screen-preview-bars .screen-preview-placeholder{width:20%;height:3px}.screen-preview-bars i{display:block;height:5px;border-radius:2px;background:var(--preview-route);opacity:.65}.screen-preview-list{display:flex;flex-direction:column;gap:10px;padding-top:4px}.screen-preview-list>div{display:flex;align-items:center;gap:8px}.screen-preview-list i{width:4px;height:4px;flex-shrink:0;border-radius:50%;background:var(--preview-route)}.screen-preview-list span{width:80%;height:4px;background:var(--preview-border);border-radius:2px}.screen-preview-footer{margin-top:16px}.screen-preview-empty{display:grid;place-items:center;min-height:260px}.screen-preview-empty .ant-empty-description{color:var(--preview-muted)}.screen-management-preview-note{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:12px 16px;color:var(--screen-manager-secondary);background:var(--screen-manager-surface);border-radius:6px}.screen-management-preview-note>.anticon{margin-top:4px;color:var(--screen-manager-accent)}.screen-management-preview-note p{margin:0;font-size:12px;line-height:1.75}.screen-management-preview-note p+p{margin-top:4px}.screen-management-save-status{margin-top:12px;color:var(--screen-manager-muted);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.screen-management-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:260px;color:var(--screen-manager-secondary)}@media (min-width: 1600px){.screen-management-workspace{grid-template-columns:minmax(450px,.75fr) minmax(0,1.4fr)}.screen-preview{padding:24px}}@media (max-width: 1200px){.screen-management-workspace{grid-template-columns:minmax(0,1fr);gap:24px}.screen-management-preview-column{grid-row:1}.screen-management-preview-sticky{position:static}.screen-widget-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.screen-layout-option{padding:12px}.screen-layout-icon{width:36px}}@media (max-width: 800px){.screen-management-settings{padding:16px}.screen-layout-options{grid-template-columns:1fr;gap:8px}.screen-layout-option{min-height:68px}.screen-layout-icon{width:48px}.screen-settings-form{grid-template-columns:repeat(2,minmax(0,1fr))}.screen-settings-form .ant-form-item:first-child,.screen-settings-form .ant-form-item:nth-child(2){grid-column:span 2}.screen-settings-form .ant-form-item:nth-child(2){margin-top:16px}.screen-settings-form .ant-form-item:nth-child(n+3){grid-column:span 1}.screen-widget-list{grid-template-columns:1fr}.screen-management .ant-btn,.screen-management .ant-input{min-height:44px}.screen-management .ant-select-single,.screen-management .ant-select-single .ant-select-selector{height:44px}.screen-management .ant-select-single .ant-select-selection-item,.screen-management .ant-select-single .ant-select-selection-placeholder{line-height:42px}.screen-widget-move .ant-btn{width:44px}.screen-widget-header{min-height:44px}.screen-widget-header .ant-switch:before{content:"";position:absolute;top:-11px;right:0;bottom:-11px;left:0}.screen-widget-controls label.screen-widget-size{flex-basis:88px}}@media (max-width: 540px){.screen-management-heading,.screen-management-section-heading{align-items:flex-start;flex-wrap:wrap}.screen-management-heading h1{font-size:22px}.screen-management{gap:20px}.screen-settings-form{grid-template-columns:1fr}.screen-settings-form .ant-form-item:nth-child(n){grid-column:span 1}.screen-preview{padding:12px;min-height:0}.screen-preview-heading{margin:20px 0}.screen-preview-heading h3{font-size:18px}.screen-preview-grid{gap:4px}.screen-preview-widget{padding:6px}.screen-preview-widget-label{font-size:9px;gap:4px;margin-bottom:8px;overflow-wrap:anywhere}.screen-preview-widget-label small{display:none}.screen-preview-map-caption{left:4px;bottom:4px;font-size:8px}.screen-preview-metrics{gap:4px}.screen-preview-metrics strong{font-size:16px}.screen-preview-topline,.screen-preview-footer{font-size:9px}.screen-widget-card{padding:12px}.screen-widget-controls{gap:8px;flex-wrap:wrap}.screen-widget-controls label{min-width:140px}.screen-widget-controls label.screen-widget-size{min-width:80px}.screen-widget-move{margin-left:auto}}@media (prefers-reduced-motion: reduce){.screen-layout-option,.screen-widget-card{transition:none}}.screen-preview-mode{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.screen-preview-scene{position:relative;min-height:510px;border-radius:12px;overflow:hidden;background:#091b2b;border:1px solid rgba(98,182,213,.14)}.screen-preview-scene>.screen-preview-widget--map{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:transparent;min-height:0;border-radius:0}.screen-preview-scene>.screen-preview-widget--map .screen-preview-widget-label{display:none}.screen-preview-scene>.screen-preview-widget--map .screen-preview-map{height:100%;flex:1}.screen-preview-scene .screen-preview-map svg{height:100%;transform:perspective(650px) rotateX(36deg) scale(1.3);opacity:.85}.screen-preview-rail{position:absolute;top:12px;bottom:12px;width:31%;display:flex;flex-direction:column;gap:10px;z-index:1}.screen-preview-rail--left{left:12px}.screen-preview-rail--right{right:12px}.screen-preview--map-focus .screen-preview-rail{width:27%}.screen-preview--analytics .screen-preview-rail{width:34%}.screen-preview-rail>.screen-preview-widget{--preview-color: 76, 213, 231;flex:1;min-height:0;overflow:hidden;border-radius:10px;border:1px solid rgba(var(--preview-color),.35);background:linear-gradient(135deg,rgba(var(--preview-color),.17),#061a2ba6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px #f0feff1a}.screen-preview-rail>.screen-preview-widget--wide{flex:1.45}.screen-preview-rail>.screen-preview-widget--workers{--preview-color: 127, 167, 255}.screen-preview-rail>.screen-preview-widget--patrol{--preview-color: 66, 215, 171}.screen-preview-rail>.screen-preview-widget--workOrders{--preview-color: 244, 181, 85}.screen-preview-rail>.screen-preview-widget--alerts{--preview-color: 245, 124, 163}.screen-preview-widget-label{flex-direction:column;align-items:flex-start;gap:4px}.screen-preview-widget-label small{font-size:8px;margin:0}.screen-preview-3d-label{position:absolute;bottom:24px;left:50%;transform:translate(-50%);color:#7bd4e3;font-size:11px;white-space:nowrap}.screen-preview-scene .screen-preview-map-caption{display:none}.screen-preview-scene--no-map{display:grid;grid-template-columns:repeat(2,1fr);padding:12px;gap:12px}.screen-preview-scene--no-map .screen-preview-rail{position:static;width:auto}.screen-preview--light .screen-preview-scene{background:#ddeef5}.screen-preview--light .screen-preview-rail>.screen-preview-widget{background:linear-gradient(135deg,rgba(var(--preview-color),.18),#ffffffb8)}.screen-preview--mobile{width:min(350px,100%);margin-inline:auto}.screen-preview-mobile-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:12px}.screen-preview-mobile-tabs button{flex-shrink:0;border:1px solid rgba(136,201,225,.2);border-radius:6px;background:transparent;color:inherit;padding:8px 10px;font-size:10px;cursor:pointer;min-height:40px}.screen-preview-mobile-tabs button[aria-current]{color:#5adbec;border-color:#5adbec}.screen-preview-mobile-page .screen-preview-widget{min-height:320px}.screen-preview-mobile-page .screen-preview-map{min-height:270px}@media (max-width: 540px){.screen-preview-scene{min-height:400px}.screen-preview-widget-label small{display:none}.screen-preview-rail{width:30%;left:8px;top:8px;bottom:8px;gap:8px}.screen-preview-rail--right{left:auto;right:8px}.screen-preview-rail .screen-preview-widget{padding:8px}.screen-preview-widget-label span{font-size:9px}}.screen-preview--light{border-radius:24px;background:#eaf3f6}.screen-preview--light .screen-preview-scene{border-radius:22px;border-color:#ffffffe6}.screen-preview--light .screen-preview-rail>.screen-preview-widget{border-radius:16px;border-color:#ffffffd9;background:linear-gradient(145deg,#ffffffe0,rgba(var(--preview-color),.18) 62%,#ffffffad);box-shadow:inset 0 1px #fff,0 5px 18px #3a647714}.screen-preview--light .screen-preview-rail>.screen-preview-widget--overview{--preview-color: 7, 146, 171}.screen-preview--light .screen-preview-rail>.screen-preview-widget--workers{--preview-color: 74, 119, 211}.screen-preview--light .screen-preview-rail>.screen-preview-widget--patrol{--preview-color: 18, 157, 121}.screen-preview--light .screen-preview-rail>.screen-preview-widget--workOrders{--preview-color: 218, 105, 42}.screen-preview--light .screen-preview-rail>.screen-preview-widget--alerts{--preview-color: 185, 86, 132}.screen-preview--light .screen-preview-metrics>div{padding:6px;border-radius:10px;background:#ffffff8c}.screen-preview--light .screen-preview-3d-label{color:#16889c;padding:8px 12px;border-radius:20px;background:#ffffffbf}.screen-preview--light .screen-preview-mobile-tabs button{border-radius:22px;border-color:#c6dfe7;background:#ffffffa8}.screen-preview--light .screen-preview-mobile-tabs button[aria-current]{background:#188d9f;color:#fff;border-color:#188d9f}.screen-preview--light .screen-preview-mobile-page .screen-preview-widget{border-radius:18px;background:#f8fcfd}.screen-preview--night{border-radius:24px;background:#0d2235}.screen-preview--night .screen-preview-scene{border-radius:22px}.screen-preview--night .screen-preview-rail>.screen-preview-widget{border-radius:16px}.screen-preview--night .screen-preview-metrics>div{padding:6px;border-radius:10px;background:#add6ee14}.screen-preview--night .screen-preview-mobile-tabs button{border-radius:22px}*{box-sizing:border-box}body{margin:0;min-width:1440px;background:#f1f4f9;color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body:has(.login-page){min-width:0}.page-loading,.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-page{position:relative;overflow:hidden;width:100vw;padding:42px 32px;background:radial-gradient(circle at 50% 42%,#fffffff5 0,#ffffff85 38%,#ecf3ffdb),linear-gradient(135deg,#f8fbff,#edf4ff 48%,#f7fbff)}.login-page:before{content:"";position:absolute;top:-80px;right:-80px;bottom:-80px;left:-80px;background:radial-gradient(circle at 47% 45%,rgba(255,255,255,.96) 0 34%,rgba(255,255,255,.18) 55%,transparent 72%),linear-gradient(120deg,#ffffffd1,#fff0 34%);opacity:.76;pointer-events:none}.login-shell{position:relative;width:min(1240px,calc(100vw - 64px));min-height:min(760px,calc(100vh - 84px));display:grid;grid-template-columns:minmax(0,1fr) 470px;align-items:center;gap:44px;padding:44px 72px;overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:22px;background:linear-gradient(90deg,#ffffff4d,#ffffffd1),#ffffff75;box-shadow:0 28px 80px #3f5b8c29,inset 0 1px #ffffffe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/admin/assets/login-left-background-CoAYnWBB.webp) center center / cover no-repeat}.login-brand-panel{position:relative;z-index:1;align-self:stretch;min-height:590px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:transparent}.login-brand-panel:before{content:"";position:absolute;inset:0 auto 0 -40px;width:320px;background:linear-gradient(116deg,rgba(255,255,255,.9) 0 11%,transparent 11.5% 100%),linear-gradient(118deg,transparent 0 27%,rgba(255,255,255,.7) 27.6% 29.1%,transparent 29.8% 100%),linear-gradient(116deg,transparent 0 45%,rgba(255,255,255,.58) 45.6% 47%,transparent 47.6% 100%);opacity:.98}.login-brand-panel:after{content:"";position:absolute;inset:auto 0 0;height:210px;background:linear-gradient(180deg,#fff0,#eaf1fa75 62%,#dae5f461);pointer-events:none}.login-brand-panel:before,.login-brand-panel:after,.login-skyline{display:none}.login-brand-content{position:relative;z-index:2;width:100%;max-width:570px;margin-top:-24px;text-align:center}.login-mark{position:relative;width:142px;height:86px;margin:0 auto 24px;filter:drop-shadow(0 13px 17px rgba(47,118,255,.18))}.login-mark img{width:100%;height:100%;display:block;object-fit:contain}.login-brand-content h1{margin:0;color:#1a2435;font-size:44px;font-weight:800;line-height:1.16;white-space:nowrap}.login-brand-content p{margin:22px 0 0;color:#52617a;font-size:20px;letter-spacing:4px}.login-brand-content i,.login-card-head span{display:block;width:42px;height:4px;margin:24px auto 0;border-radius:999px;background:linear-gradient(90deg,#8ec5ff,#2a6dff)}.login-skyline{position:absolute;inset:auto -30px -6px 116px;height:214px;opacity:.62;background:linear-gradient(to bottom,#d6e1f0b8 0,#d6e1f0b8 48%,#d6e1f03d 49%,#d6e1f03d 70%,#d6e1f014),linear-gradient(90deg,transparent 0 5%,rgba(205,218,236,.94) 5% 7%,transparent 7% 12%,rgba(206,219,236,.92) 12% 16%,transparent 16% 25%,rgba(196,213,233,.95) 25% 27%,transparent 27% 39%,rgba(202,217,235,.94) 39% 43%,transparent 43% 50%,rgba(184,204,228,.98) 50% 52%,transparent 52% 64%,rgba(198,215,234,.94) 64% 70%,transparent 70% 80%,rgba(203,218,235,.92) 80% 87%,transparent 87% 100%);clip-path:polygon(0 78%,5% 69%,7% 78%,12% 62%,16% 75%,25% 64%,27% 78%,39% 58%,43% 76%,50% 28%,52% 76%,64% 63%,70% 78%,80% 50%,87% 76%,100% 62%,100% 100%,0 100%)}.login-skyline:after{content:"";position:absolute;left:-70px;right:0;bottom:4px;height:80px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.58) 0 2px,transparent 2px 12px),linear-gradient(180deg,#d6e1f02e,#d6e1f000);transform:skew(-6deg)}.login-card{position:relative;z-index:2;width:470px;min-height:620px;padding:52px 40px 40px;border:1px solid rgba(232,238,248,.92);border-radius:8px;background:#fffffff0;box-shadow:0 24px 68px #2740691f,inset 0 1px #fffffff0}.login-card-head{margin-bottom:30px;text-align:center}.login-card-head h2{margin:0;color:#1a2435;font-size:30px;font-weight:800;line-height:1.2}.login-card-head p{margin:14px 0 0;color:#52617a;font-size:16px}.login-card .ant-form-item{margin-bottom:22px}.login-input,.login-input.ant-input-affix-wrapper{height:58px;border-color:#d8e1ee;border-radius:5px;background:#fff;box-shadow:none}.login-input:hover,.login-input.ant-input-affix-wrapper:hover{border-color:#a8c5ff}.login-input.ant-input-affix-wrapper-focused,.login-input:focus{border-color:#2f76ff;background:#fff;box-shadow:0 0 0 3px #2f76ff1a}.login-input .ant-input-prefix{width:24px;margin-inline-end:18px;color:#8797b2;font-size:18px;justify-content:center}.login-input.ant-input-affix-wrapper .ant-input{background:transparent!important}.login-input.ant-input-affix-wrapper input,.login-input.ant-input-affix-wrapper input:hover,.login-input.ant-input-affix-wrapper input:focus,.login-input.ant-input-affix-wrapper input:active,.login-input.ant-input-affix-wrapper .ant-input,.login-input.ant-input-affix-wrapper .ant-input:hover,.login-input.ant-input-affix-wrapper .ant-input:focus{background:transparent!important;box-shadow:none!important}.login-input.ant-input-affix-wrapper input:-webkit-autofill,.login-input.ant-input-affix-wrapper input:-webkit-autofill:hover,.login-input.ant-input-affix-wrapper input:-webkit-autofill:focus{-webkit-text-fill-color:#1a2435;caret-color:#1a2435;box-shadow:0 0 0 1000px #fff inset!important;transition:background-color 9999s ease-out}.login-field-icon{position:relative;width:20px;height:20px;display:inline-block;color:#8797b2}.login-user-icon:before{content:"";position:absolute;left:6px;top:1px;width:8px;height:8px;border:2px solid currentColor;border-radius:50%;background:#fff}.login-user-icon:after{content:"";position:absolute;left:2px;top:13px;width:16px;height:6px;border:2px solid currentColor;border-radius:10px 10px 4px 4px}.login-user-icon{transform:translateY(1px)}.login-lock-icon:before{content:"";position:absolute;left:5px;top:1px;width:10px;height:10px;border:2px solid currentColor;border-bottom:0;border-radius:8px 8px 0 0}.login-lock-icon:after{content:"";position:absolute;left:1px;top:9px;width:18px;height:10px;border:2px solid currentColor;border-radius:5px;background:radial-gradient(circle at 50% 48%,currentColor 0 1.5px,transparent 1.8px),#fff}.login-lock-icon{transform:translateY(1px)}.login-input input,.login-input.ant-input{color:#1a2435;font-size:15px}.login-input input::placeholder,.login-input.ant-input::placeholder{color:#8997ad}.login-captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 126px 72px;gap:14px;align-items:center;margin-bottom:28px}.login-captcha-code{height:58px;border:1px solid #d8e1ee;border-radius:5px;background:linear-gradient(70deg,transparent 0 48%,rgba(120,190,150,.34) 48% 49%,transparent 49% 100%),linear-gradient(160deg,transparent 0 44%,rgba(230,110,110,.28) 44% 45%,transparent 45% 100%),#f8fafc;color:#273b6b;cursor:pointer;font-size:24px;font-weight:500;letter-spacing:10px;text-align:center}.login-code-refresh{height:58px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:#697a94;cursor:pointer;font-size:14px;white-space:nowrap}.login-options{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px;color:#52617a}.login-options .ant-checkbox-wrapper{color:#52617a}.login-options button{border:0;background:transparent;color:#2a6dff;cursor:pointer;font-size:14px}.login-submit.ant-btn{height:58px;border:0;border-radius:5px;background:linear-gradient(180deg,#4b8dff,#2e73f5);box-shadow:0 12px 24px #2f76ff38;font-size:18px;font-weight:700}.login-submit.ant-btn:hover{background:linear-gradient(180deg,#5a96ff,#3478f7)!important}.login-other{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin:30px 0 22px;color:#697a94;font-size:15px}.login-other span{height:1px;background:#dce4ef}.login-other em{font-style:normal}.login-sso-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.login-sso-row button{height:52px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d8e1ee;border-radius:5px;background:#fff;color:#2f3d52;font-size:14px;white-space:nowrap}.login-sso-row button .anticon{color:#2a6dff;font-size:18px}.login-sso-row button .login-sso-wechat{color:#2f7dff;font-size:19px}.login-sso-row button .login-sso-dingtalk{color:#2f73ff;font-size:20px}.login-footer{position:absolute;left:0;right:0;bottom:18px;color:#6c7890;font-size:14px;text-align:center}.login-footer span{margin:0 16px;color:#9aa8bc}.app-shell{min-height:100vh;background:#f1f4f9}.app-sider{position:fixed!important;inset:0 auto 0 0;z-index:100;min-height:100vh;height:100vh;overflow:hidden;background:linear-gradient(105deg,#02336f,#012d66 40%,#04234f),linear-gradient(180deg,#03346f,#012c63 58%,#062f5d)!important}.app-sider+.ant-layout{min-height:100vh;margin-left:220px;transition:margin-left .2s}.app-sider.ant-layout-sider-collapsed{flex:0 0 72px!important;max-width:72px!important;min-width:72px!important;width:72px!important}.app-sider.ant-layout-sider-collapsed+.ant-layout{margin-left:72px}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100vh}.brand{height:70px;display:flex;align-items:center;gap:10px;padding:18px 16px 16px;color:#fff}.brand-logo{width:46px;height:36px;display:grid;place-items:center;flex:none;color:#fff}.brand-logo svg{width:46px;height:36px}.brand-logo img{display:block;width:46px;max-width:none;height:auto}.ops-svg-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;color:currentColor;line-height:1}.ops-svg-icon svg{display:block;width:100%;height:100%}.brand-name{color:#fff;font-size:18px;font-weight:700;letter-spacing:0;line-height:1;white-space:nowrap}.app-sider.ant-layout-sider-collapsed .brand{justify-content:center;gap:0;padding:18px 0 16px}.app-sider.ant-layout-sider-collapsed .brand-name{display:none}.app-sider .ant-menu{flex:1;overflow-y:auto;padding:6px 12px;border-inline-end:0!important;background:transparent!important}.app-sider .ant-menu::-webkit-scrollbar{width:0}.app-sider .ant-menu-item,.app-sider .ant-menu-submenu-title{width:auto;height:40px;margin:0 0 2px!important;padding-inline:12px!important;border-radius:6px;color:#d7e6fb!important;font-size:13.5px;line-height:40px}.app-sider .ant-menu-item .ant-menu-item-icon,.app-sider .ant-menu-submenu-title .ant-menu-item-icon,.app-sider .ant-menu-item .ops-svg-icon,.app-sider .ant-menu-submenu-title .ops-svg-icon{width:16px;min-width:16px;height:16px;color:inherit;font-size:16px}.app-sider .ant-menu-item:hover,.app-sider .ant-menu-submenu-title:hover{background:#ffffff14!important;color:#fff!important}.app-sider .ant-menu-submenu{padding:0}.app-sider .ant-menu-sub{background:transparent!important}.app-sider .ant-menu-submenu-arrow{color:#9fb8dc!important}.app-sider .ant-menu-submenu-selected>.ant-menu-submenu-title{color:#fff!important}.app-sider .ant-menu-sub .ant-menu-item{height:34px;margin:0 0 2px!important;padding-left:38px!important;border-radius:6px;color:#c5d9f4!important;font-size:12.5px;line-height:34px}.app-sider .ant-menu-sub .ant-menu-item .ant-menu-item-icon,.app-sider .ant-menu-sub .ant-menu-item .ops-svg-icon{width:14px;min-width:14px;height:14px;font-size:14px}.app-sider .ant-menu-sub .ant-menu-title-content{margin-inline-start:8px}.app-sider .ant-menu-item-selected{color:#2a6dff!important;background:#fff!important;font-weight:500;box-shadow:0 4px 12px #2a6dff2e}.app-sider .ant-menu-title-content{margin-inline-start:10px}.app-sider.ant-layout-sider-collapsed .ant-menu{padding:6px 8px}.app-sider.ant-layout-sider-collapsed .ant-menu-item,.app-sider.ant-layout-sider-collapsed .ant-menu-submenu-title{display:flex;align-items:center;justify-content:center!important;padding-inline:0!important}.app-sider.ant-layout-sider-collapsed .ant-menu-item .ant-menu-item-icon,.app-sider.ant-layout-sider-collapsed .ant-menu-submenu-title .ant-menu-item-icon{margin:0!important;margin-inline-end:0!important}.app-sider.ant-layout-sider-collapsed .ant-menu-item .ops-svg-icon,.app-sider.ant-layout-sider-collapsed .ant-menu-submenu-title .ops-svg-icon{width:18px;min-width:18px;height:18px;font-size:18px}.app-sider.ant-layout-sider-collapsed .ant-menu-title-content{display:none!important;width:0!important;margin:0!important;opacity:0!important}.app-sider.ant-layout-sider-collapsed .ant-menu-submenu-arrow{display:none!important}.sidebar-collapse{display:flex;align-items:center;justify-content:flex-start;gap:10px;height:46px;margin:10px 12px 16px;padding:0 18px;flex:none;border:0;border-radius:6px;background:#4987d33d;color:#c7d8f3;font-size:13px;font-weight:500;transition:background .15s,color .15s}.sidebar-collapse:hover{color:#fff;background:#5699e952}.collapse-icon{width:18px;display:inline-flex;align-items:center;flex:none}.collapse-icon .anticon,.collapse-icon .ops-svg-icon{width:13px;height:13px;flex:none}.collapse-icon .anticon+.anticon{margin-left:-8px}.collapse-icon .ops-svg-icon+.ops-svg-icon{margin-left:-8px}.app-sider.ant-layout-sider-collapsed .sidebar-collapse{justify-content:center;gap:0;margin:10px 10px 16px;padding:0}.app-sider.ant-layout-sider-collapsed .sidebar-collapse>span:last-child{display:none}.app-sider.ant-layout-sider-collapsed .collapse-icon{width:auto;transform:rotate(180deg)}.app-header{height:56px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e6edf7;line-height:normal}.app-header-left{display:flex;align-items:center;gap:12px}.app-header-right{display:flex;align-items:center;gap:8px}.topbar-icon-btn{width:32px;height:32px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:#52627a;font-size:18px;transition:background .15s,color .15s}.topbar-icon-btn:hover{color:#10213b;background:#f1f4f9}.topbar-icon-btn .ops-svg-icon{width:18px;height:18px}.app-breadcrumb{color:#10213b;font-size:14px;font-weight:500}.user-chip{height:40px;padding:0 4px!important;color:#10213b}.user-chip .ant-space{gap:10px!important}.user-chip-name{font-size:13px;font-weight:600}.user-chip-arrow{color:#6f7f95;font-size:12px}.app-content{padding:16px 20px 24px;background:#f1f4f9}.page-container{min-height:calc(100vh - 104px)}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.page-heading .ant-typography{margin:8px 0 0}.page-body{background:#fff;border:1px solid #edf0f5;border-radius:8px;padding:16px}.dashboard-stats .ant-card{height:100%}.dashboard-trend{height:260px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:end}.dashboard-trend-item{height:100%;display:grid;grid-template-rows:1fr auto auto;gap:8px;justify-items:center}.dashboard-trend-bar-wrap{width:100%;min-height:180px;display:flex;align-items:end;justify-content:center;padding:0 8px;border-radius:6px;background:#f8fafc}.dashboard-trend-bar{width:100%;max-width:36px;min-height:4px;border-radius:6px 6px 0 0;background:#1677ff}.blank-panel{min-height:360px;display:flex;align-items:center;justify-content:center}.filter-bar{margin-bottom:16px}.trajectory-panel{height:420px;margin-bottom:16px;overflow:hidden;border:1px solid #edf0f5;border-radius:8px;background:#f8fafc}.trajectory-map-shell,.trajectory-map{width:100%;height:100%}.trajectory-map-shell{position:relative}.trajectory-map-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f8fafcb8}.trajectory-map-legend{position:absolute;top:12px;right:12px;display:flex;gap:12px;padding:8px 10px;border:1px solid #edf0f5;border-radius:6px;background:#ffffffeb;box-shadow:0 6px 18px #0f172a14}.trajectory-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#475569}.trajectory-legend-dot{width:10px;height:10px;border-radius:50%}.trajectory-map-empty{pointer-events:none}.trajectory-marker{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;color:#fff;font-size:12px;font-weight:700;box-shadow:0 6px 18px #0f172a33;transform:translate(-50%,-50%)}.trajectory-marker-start{background:#16a34a}.trajectory-marker-end{background:#dc2626}.section-title{margin:12px 0;font-weight:600}.checkpoint-row{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr .7fr auto auto;gap:12px;align-items:end;padding:12px;margin-bottom:12px;border:1px solid #edf0f5;border-radius:8px}.ai-list-card{overflow:hidden}.ai-list-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:2px 2px 14px}.ai-list-card-title{display:flex;align-items:center;gap:7px;color:#10213b;font-size:15px;font-weight:700}.ai-list-title-icon{width:18px;height:18px;display:grid;place-items:center;color:#7c5cff}.ai-list-title-icon .ops-svg-icon{width:16px;height:16px}.ai-filter-select{width:136px}.ai-table-wrap{min-height:360px}.ai-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.ai-col-code{width:13%}.ai-col-content{width:38%}.ai-col-type{width:10%}.ai-col-risk{width:9%}.ai-col-time,.ai-col-status{width:15%}.ai-table th{padding:9px 10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.ai-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.ai-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.ai-table td{padding:11px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.ai-table td:first-child{padding-left:14px}.ai-table td:last-child{padding-right:14px}.ai-table tbody tr{transition:background .12s}.ai-table tbody tr:hover{background:#fafbff}.ai-table tbody tr:last-child td{border-bottom:0}.ai-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.ai-content-cell{min-width:0}.ai-content-link{max-width:100%;display:block;overflow:hidden;padding:0;border:0;background:transparent;color:#10213b;font:inherit;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ai-content-link:hover{color:#2a6dff}.ai-content-sub{max-width:100%;overflow:hidden;margin-top:3px;color:#6f7f95;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ai-muted{color:#52627a!important;white-space:nowrap}.ai-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.ai-badge.high{color:#ef4444;background:#ffe4e4}.ai-badge.mid{color:#d97706;background:#fff1d6}.ai-badge.low{color:#0b9c99;background:#d6f4f0}.ai-badge.pending{color:#2a6dff;background:#e0ecff}.ai-badge.done{color:#0b9c99;background:#d6f4f0}.ai-badge.rejected{color:#52627a;background:#eef2f7}.ai-dispatch{color:#52627a;font-size:12px;font-weight:500;white-space:nowrap}.ai-dispatch.suggest{color:#ef4444}.ai-row-actions{display:flex;align-items:center;gap:8px;min-height:22px;margin-top:4px;white-space:nowrap}.ai-row-actions .ant-btn{height:auto;padding-inline:0;font-size:12px}.ai-list-empty{min-height:320px;display:flex;align-items:center;justify-content:center}.ai-list-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.ops-dashboard{min-height:calc(100vh - 104px)}.ops-dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:24px;margin-bottom:14px}.ops-dashboard-welcome{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;color:#52627a;font-size:14px;line-height:1.4}.ops-dashboard-welcome-main{color:#52627a;white-space:nowrap}.ops-dashboard-welcome-name{color:#10213b;font-weight:600}.ops-dashboard-date{color:#7b8798;font-size:13px;white-space:nowrap}.ops-dashboard-alert{margin-bottom:14px}.ops-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:14px}.ops-stat-card,.ops-card{background:#fff;border:1px solid #e6edf7;border-radius:8px;box-shadow:0 10px 24px #182c540d}.ops-stat-card{min-height:126px;display:flex;flex-direction:column;justify-content:center;padding:16px 18px 14px}.ops-stat-top{display:flex;align-items:center;gap:14px}.ops-stat-icon{width:62px;height:62px;display:grid;place-items:center;flex:none;border-radius:14px;font-size:30px}.ops-stat-content{min-width:0;flex:1}.ops-stat-card{justify-content:flex-start}.ops-stat-people-card,.ops-stat-patrol-card,.ops-stat-card:not(.ops-stat-people-card):not(.ops-stat-patrol-card){justify-content:flex-start}.ops-stat-people-card .ops-stat-top,.ops-stat-patrol-card .ops-stat-top,.ops-stat-card:not(.ops-stat-people-card):not(.ops-stat-patrol-card) .ops-stat-top{align-items:flex-start}.ops-stat-people-card .ops-stat-icon,.ops-stat-patrol-card .ops-stat-icon,.ops-stat-card:not(.ops-stat-people-card):not(.ops-stat-patrol-card) .ops-stat-icon{width:52px;height:52px;border-radius:12px}.ops-stat-people-card .ops-stat-icon svg,.ops-stat-purple .ops-stat-icon svg,.ops-stat-orange .ops-stat-icon svg,.ops-stat-red .ops-stat-icon svg{width:34px;height:34px}.ops-stat-patrol-card .ops-stat-icon svg{width:36px;height:36px}.ops-stat-blue .ops-stat-icon{color:#1f78ff;background:linear-gradient(135deg,#e0ecff,#c5d8ff)}.ops-stat-teal .ops-stat-icon{color:#078f9b;background:linear-gradient(135deg,#d7f3f0,#b8e7e2)}.ops-stat-purple .ops-stat-icon{color:#7c5cff;background:linear-gradient(135deg,#ede8ff,#d4caff)}.ops-stat-orange .ops-stat-icon{color:#e77616;background:linear-gradient(135deg,#fff1d6,#ffd9a3)}.ops-stat-red .ops-stat-icon{color:#ef4444;background:linear-gradient(135deg,#ffe4e4,#ffc1c1)}.ops-stat-title{color:#52627a;font-size:13px}.ops-stat-value{margin-top:4px;color:#10213b;font-size:30px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}.ops-stat-value span{margin-left:5px;color:#52627a;font-size:13px;font-weight:400}.ops-stat-value .ops-stat-sep{margin-left:6px;color:#7b8798;font-size:18px;font-weight:500}.ops-stat-value .ops-stat-total{margin-left:0;color:#52627a;font-size:18px;font-weight:600}.ops-stat-fraction-label{margin-top:2px;color:#7b8798;font-size:11px}.ops-stat-delta-label{margin-left:6px;color:#6f7f95;font-size:12px;font-weight:400;white-space:nowrap}.ops-stat-delta{margin-left:4px;font-weight:600}.ops-stat-delta.up{color:#ef4444}.ops-stat-delta.down{color:#0b9c99}.ops-stat-delta.flat{color:#52627a}.ops-stat-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:#6f7f95;font-size:12px;white-space:nowrap}.ops-stat-people-card .ops-stat-foot{margin-top:12px;padding-top:10px;border-top:1px solid #edf2f8}.ops-stat-summary-foot{margin-top:auto;min-height:18px;justify-content:flex-start;color:#6f7f95}.ops-stat-foot b{color:#10213b;font-weight:600}.ops-stat-rate{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0;flex:1}.ops-stat-progress{width:64px;flex:0 1 64px;height:4px;display:inline-flex;overflow:hidden;border-radius:2px;background:#e6edf7}.ops-stat-progress span{height:100%;border-radius:2px;background:linear-gradient(90deg,#4d8dff,#2a6dff)}.ops-stat-patrol-foot{gap:12px}.ops-stat-patrol-progress{width:auto;max-width:110px;display:block;flex:1 1 auto;margin-left:auto;height:10px;padding:2px;border:1px solid #d6e7f4;border-radius:999px;background:#eef7fb;box-shadow:inset 0 1px 2px #063a610f}.ops-stat-patrol-progress span{display:block;border-radius:999px;background:#078f9b}.ops-dashboard-grid{display:grid;grid-template-columns:1.2fr 1.25fr 1.6fr;gap:14px;align-items:stretch}.ops-dashboard-third-grid,.ops-dashboard-bottom-grid{margin-top:14px}.ops-dashboard-third-grid{grid-template-columns:1fr 1fr 1.25fr}.ops-dashboard-bottom-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:14px;align-items:stretch}.ops-ai-list-card{min-height:0;margin-top:14px}.ops-dashboard-bottom-grid .ops-ai-list-card{margin-top:0}.ops-ai-list-header{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.ops-ai-list-title-icon{color:#7c5cff}.ops-card-action-btn{padding:0;border:0;background:transparent;cursor:pointer}.ops-ai-list-wrap{padding:4px 18px 16px}.ops-ai-list-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.ops-ai-code-col{width:15%}.ops-ai-content-col{width:43%}.ops-ai-type-col{width:12%}.ops-ai-risk-col{width:10%}.ops-ai-time-col{width:12%}.ops-ai-status-col{width:8%}.ops-ai-list-table th{padding:9px 10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.ops-ai-list-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.ops-ai-list-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.ops-ai-list-table td{padding:11px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.ops-ai-list-table td:first-child{padding-left:14px}.ops-ai-list-table td:last-child{padding-right:14px}.ops-ai-list-table tbody tr{transition:background .12s}.ops-ai-list-table tbody tr:hover{background:#fafbff}.ops-ai-list-table tbody tr:last-child td{border-bottom:0}.ops-ai-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.ops-ai-content{min-width:0}.ops-ai-content span{display:block;overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.ops-ai-muted{overflow:hidden;color:#52627a!important;text-overflow:ellipsis;white-space:nowrap}.ops-ai-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.ops-ai-badge.high{color:#ef4444;background:#ffe4e4}.ops-ai-badge.mid{color:#d97706;background:#fff1d6}.ops-ai-badge.low{color:#0b9c99;background:#d6f4f0}.ops-ai-badge.pending{color:#2a6dff;background:#e0ecff}.ops-ai-badge.done{color:#0b9c99;background:#d6f4f0}.ops-ai-badge.rejected{color:#52627a;background:#eef2f7}.ops-ai-list-empty{min-height:210px;display:flex;align-items:center;justify-content:center}.ops-card{min-height:298px;overflow:hidden}.ops-card-header{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.ops-card-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:14px;font-weight:700}.ops-card-title-subtle{margin-left:4px;color:#98a3bd;font-size:12px;font-weight:400}.ops-card-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.ops-card-action{color:#5b7fc8;font-size:12px}.ops-card-action-link,.ops-card-action-static{display:inline-flex;align-items:center;gap:2px}.ops-card-action-link{padding:0;border:0;background:transparent;cursor:pointer}.ops-card-action-link:hover{color:#2a6dff}.ops-card-action-icon{width:12px;height:12px}.ops-pending-header-action{display:inline-flex;align-items:center;gap:8px;min-width:0}.ops-pending-api-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px dashed #b8c7dc;border-radius:4px;background:#f8fbff;color:#6f7f95;font-size:12px;font-weight:500;white-space:nowrap}.ops-period-switch{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid #e6edf7;border-radius:4px;background:#fff;color:#52627a;font-size:12px;line-height:1.5;cursor:pointer;transition:border-color .15s,color .15s}.ops-period-switch:hover{border-color:#2a6dff;color:#2a6dff}.ops-people-body{display:grid;grid-template-columns:116px minmax(0,1fr);grid-template-rows:minmax(188px,1fr) auto;align-items:center;gap:0 10px;min-height:252px;padding:6px 14px 0}.ops-people-chart{width:116px;min-height:172px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.ops-people-total-card{position:relative;min-width:100px;min-height:auto;align-self:flex-start;padding:8px 10px 7px;border-radius:8px;background:linear-gradient(135deg,#e9f2ff,#f4f8ff);box-shadow:0 8px 18px #2a6dff14;z-index:1}.ops-people-total-num{color:#10213b;font-size:21px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.ops-people-total-num span{margin-left:4px;color:#98a3bd;font-size:11px;font-weight:400}.ops-people-total-label{margin-top:3px;color:#6f7f95;font-size:11px}.ops-mini-donut{position:relative;flex:none}.ops-mini-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ops-mini-donut-center span{color:#6f7f95;font-size:11px}.ops-mini-donut-center strong{margin-top:3px;color:#10213b;font-size:24px;line-height:1}.ops-people-legend{min-width:0;display:flex;flex-direction:column;gap:8px;grid-column:2;grid-row:1;margin-top:0}.ops-legend-row{display:grid;grid-template-columns:9px minmax(52px,1fr) 44px 40px;column-gap:4px;align-items:center;color:#52627a;font-size:12px;padding:3px 0}.ops-legend-swatch{width:9px;height:9px;display:inline-block;flex:none;border-radius:2px}.ops-legend-label,.ops-legend-value,.ops-legend-pct{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-legend-value{color:#10213b;font-weight:600;text-align:right}.ops-legend-pct{color:#6f7f95;text-align:right}.ops-people-foot{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:10px 0 14px;border-top:1px dashed #eef2f7;color:#6f7f95;font-size:11.5px}.ops-people-foot div{min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-people-foot span{color:#10213b;font-weight:600}.ops-alert-trend-body{min-height:252px;padding:4px 12px 14px}.ops-alert-legend{display:flex;gap:18px;padding:0 8px 4px;color:#52627a;font-size:12px}.ops-alert-legend-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.ops-alert-swatch{position:relative;width:16px;height:2px;display:inline-block;flex:none}.ops-alert-swatch:after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:inherit;transform:translate(-50%,-50%)}.ops-alert-chart{position:relative;width:100%;height:210px;overflow:visible}.ops-alert-chart svg{width:100%;height:100%;display:block}.ops-chart-tooltip{position:absolute;width:92px;padding:7px 8px;border:1px solid #e6edf7;border-radius:6px;background:#fffffffa;box-shadow:0 8px 24px #1f29371f;color:#52627a;font-size:11.5px;pointer-events:none;z-index:10}.ops-chart-tooltip-title{margin-bottom:4px;color:#10213b;font-size:11.5px;font-weight:600}.ops-chart-tooltip-row{display:flex;align-items:center;gap:5px;padding:1px 0;white-space:nowrap}.ops-chart-tooltip-dot{width:6px;height:6px;flex:none;border-radius:50%}.ops-chart-tooltip-value{margin-left:auto;color:#10213b;font-weight:600}.ops-chart-tooltip-total{margin-top:4px;padding-top:4px;border-top:1px solid #eef2f7;color:#10213b;font-weight:600;text-align:right}.ops-classification-body{min-height:252px;padding:0}.ops-classification-tabs{display:flex;gap:6px;padding:0 18px 10px}.ops-classification-tabs button{padding:5px 12px;border:0;border-radius:4px;background:#f1f4f9;color:#52627a;font-size:12px;font-weight:400;line-height:1.4;cursor:pointer;transition:background .15s,color .15s}.ops-classification-tabs button.active{color:#fff;background:#2a6dff}.ops-classification-main{display:flex;gap:16px;align-items:center;padding:0 18px 16px}.ops-classification-list{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.ops-classification-row{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;gap:10px;align-items:center;color:#52627a;font-size:12px}.ops-classification-name,.ops-classification-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-classification-bar{height:6px;overflow:hidden;border-radius:3px;background:#eef2f7}.ops-classification-bar span{display:block;height:100%;border-radius:3px}.ops-classification-meta{color:#10213b;font-weight:500;text-align:right}.ops-classification-meta span{margin-left:4px;color:#98a3bd;font-weight:400}.ops-alert-list-card{min-height:0}.ops-alert-title-icon{color:#ef4444}.ops-alert-table-wrap{padding:4px 18px 16px;overflow-x:auto}.ops-alert-table{width:100%;min-width:560px;border-collapse:collapse;font-size:12.5px}.ops-alert-table th{padding:9px 10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.ops-alert-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.ops-alert-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.ops-alert-table td{padding:11px 10px;border-bottom:1px solid #eef2f7;color:#10213b;vertical-align:middle}.ops-alert-table td:first-child{padding-left:14px}.ops-alert-table tbody tr:last-child td{border-bottom:0}.ops-alert-table tbody tr{transition:background .12s}.ops-alert-table tbody tr:hover{background:#fafbff}.ops-alert-code{color:#52627a!important;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.ops-alert-muted{color:#52627a!important;white-space:nowrap}.ops-alert-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.ops-alert-badge.severe{color:#fff;background:#ef4444}.ops-alert-badge.normal{color:#d97706;background:#fff1d6}.ops-alert-badge.info{color:#2a6dff;background:#e0ecff}.ops-alert-status{font-size:12.5px;font-weight:500;white-space:nowrap}.ops-alert-status.unprocessed{color:#ef4444}.ops-alert-status.processing{color:#f59e0b}.ops-alert-status.done{color:#10b981}.ops-placeholder-line{display:block;height:10px;border-radius:999px;background:linear-gradient(90deg,#eef2f7,#f7f9fd)}.ops-placeholder-line.short{width:64px}.ops-placeholder-line.medium{width:78px}.ops-placeholder-line.long{width:min(100%,180px)}.patrol-task-card{min-height:0}.patrol-task-card-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.patrol-task-card-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.patrol-task-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.patrol-task-toolbar{justify-content:flex-end}.patrol-task-filter{width:132px}.patrol-task-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.patrol-task-create-btn .ops-svg-icon{width:16px;height:16px}.patrol-task-table-wrap{overflow-x:auto}.patrol-task-table{width:100%;min-width:880px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.patrol-task-code-col{width:15%}.patrol-task-plan-col{width:24%}.patrol-task-worker-col{width:13%}.patrol-task-time-col{width:18%}.patrol-task-progress-col{width:14%}.patrol-task-status-col{width:9%}.patrol-task-action-col{width:7%}.patrol-task-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.patrol-task-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.patrol-task-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.patrol-task-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.patrol-task-table td:first-child{padding-left:14px}.patrol-task-table td:last-child{padding-right:14px}.patrol-task-table tbody tr{transition:background .12s}.patrol-task-table tbody tr:hover{background:#fafbff}.patrol-task-table tbody tr:last-child td{border-bottom:0}.patrol-task-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.patrol-task-name-link,.patrol-task-action{padding:0;border:0;background:transparent;cursor:pointer}.patrol-task-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.patrol-task-name-link:hover,.patrol-task-action:hover{color:#2a6dff}.patrol-task-worker{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.patrol-task-sub,.patrol-task-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.patrol-task-sub{margin-top:4px;font-size:12px}.patrol-task-progress{display:flex;align-items:center;gap:8px;color:#52627a;font-size:12px}.patrol-task-progress b{min-width:38px;color:#10213b;font-weight:600;text-align:right}.patrol-task-progress-track{width:72px;height:6px;display:block;overflow:hidden;border-radius:999px;background:#e6edf7}.patrol-task-progress-track span{height:100%;display:block;border-radius:999px;background:#078f9b}.patrol-task-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.patrol-task-badge.pending{color:#52627a;background:#eef2f7}.patrol-task-badge.running{color:#2a6dff;background:#e0ecff}.patrol-task-badge.done{color:#0b9c99;background:#d6f4f0}.patrol-task-badge.danger{color:#ef4444;background:#ffe4e4}.patrol-task-action{color:#2a6dff;font-size:12px;font-weight:500}.patrol-task-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.patrol-task-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.attendance-record-card{min-height:0}.attendance-record-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.attendance-record-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.attendance-record-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.attendance-record-toolbar{justify-content:flex-end}.attendance-record-toolbar .ant-form-item{margin-inline-end:0}.attendance-record-worker{width:150px}.attendance-record-date{width:154px}.attendance-record-table-wrap{overflow-x:auto}.attendance-record-table{width:100%;min-width:920px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.attendance-record-code-col{width:15%}.attendance-record-worker-col{width:13%}.attendance-record-type-col{width:9%}.attendance-record-shift-col{width:16%}.attendance-record-status-col{width:9%}.attendance-record-location-col{width:23%}.attendance-record-time-col{width:15%}.attendance-record-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.attendance-record-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.attendance-record-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.attendance-record-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.attendance-record-table td:first-child{padding-left:14px}.attendance-record-table td:last-child{padding-right:14px}.attendance-record-table tbody tr{transition:background .12s}.attendance-record-table tbody tr:hover{background:#fafbff}.attendance-record-table tbody tr:last-child td{border-bottom:0}.attendance-record-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.attendance-record-person,.attendance-record-shift{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.attendance-record-sub,.attendance-record-location,.attendance-record-time{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.attendance-record-sub{margin-top:4px;font-size:12px}.attendance-record-type,.attendance-record-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.attendance-record-type.checkin{color:#2a6dff;background:#e0ecff}.attendance-record-type.checkout,.attendance-record-badge.normal{color:#0b9c99;background:#d6f4f0}.attendance-record-badge.warning{color:#d97706;background:#fff1d6}.attendance-record-badge.danger{color:#ef4444;background:#ffe4e4}.attendance-record-badge.pending{color:#52627a;background:#eef2f7}.attendance-record-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.attendance-record-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.trajectory-replay-card,.trajectory-replay-map-card,.trajectory-replay-list-card{background:#fff;border:1px solid #e6edf7;border-radius:8px;box-shadow:0 10px 24px #182c540d}.trajectory-replay-card{margin-bottom:14px;padding:14px 16px}.trajectory-replay-map-card,.trajectory-replay-list-card{margin-bottom:14px;padding:0 16px 16px}.trajectory-replay-header,.trajectory-replay-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.trajectory-replay-header{min-height:36px}.trajectory-replay-card-head{min-height:46px}.trajectory-replay-title,.trajectory-replay-card-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.trajectory-replay-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.trajectory-replay-toolbar{justify-content:flex-end}.trajectory-replay-toolbar .ant-form-item{margin-inline-end:0}.trajectory-replay-worker{width:150px}.trajectory-replay-range{width:340px}.trajectory-replay-type{width:132px}.trajectory-replay-search{height:34px;border-radius:6px;box-shadow:none}.trajectory-replay-meta{color:#6f7f95;font-size:12px}.trajectory-replay-meta b{color:#10213b;font-weight:600}.trajectory-replay-map{height:420px;overflow:hidden;border:1px solid #e6edf7;border-radius:8px;background:#f8fafc}.trajectory-replay-map .trajectory-map-shell,.trajectory-replay-map .trajectory-map{height:100%}.trajectory-replay-table-wrap{overflow-x:auto}.trajectory-replay-table{width:100%;min-width:880px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.trajectory-replay-code-col{width:16%}.trajectory-replay-type-col{width:12%}.trajectory-replay-location-col{width:24%}.trajectory-replay-accuracy-col{width:10%}.trajectory-replay-client-col,.trajectory-replay-server-col{width:19%}.trajectory-replay-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.trajectory-replay-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.trajectory-replay-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.trajectory-replay-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.trajectory-replay-table td:first-child{padding-left:14px}.trajectory-replay-table td:last-child{padding-right:14px}.trajectory-replay-table tbody tr{transition:background .12s}.trajectory-replay-table tbody tr:hover{background:#fafbff}.trajectory-replay-table tbody tr:last-child td{border-bottom:0}.trajectory-replay-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.trajectory-replay-location,.trajectory-replay-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.trajectory-replay-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.trajectory-replay-badge.attendance{color:#2a6dff;background:#e0ecff}.trajectory-replay-badge.patrol{color:#0b9c99;background:#d6f4f0}.trajectory-replay-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.trajectory-replay-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.attendance-track-page{display:flex;flex-direction:column;gap:16px}.attendance-track-filter-card,.attendance-track-panel,.attendance-track-stat-card{border:1px solid #e4eaf3;border-radius:14px;background:#fff;box-shadow:0 8px 24px #0f172a0d}.attendance-track-filter-card{padding:14px 16px}.attendance-track-filter{display:grid;grid-template-columns:36px 160px 36px 160px 36px 190px auto;gap:10px;align-items:center;color:#52627a;font-size:13px}.attendance-track-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.attendance-track-stat-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;min-height:108px;padding:18px}.attendance-track-stat-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#eef5ff;color:#1677ff}.attendance-track-stat-card.danger .attendance-track-stat-icon{background:#fff1e8;color:#ef4444}.attendance-track-stat-icon .ops-svg-icon,.attendance-track-stat-icon svg{width:24px;height:24px}.attendance-track-stat-title{display:block;margin-bottom:6px;color:#52627a;font-size:13px}.attendance-track-stat-card strong{display:flex;align-items:baseline;gap:4px;color:#10213b;font-size:28px;line-height:1.05}.attendance-track-stat-card strong em{color:#1677ff;font-size:13px;font-style:normal;font-weight:500}.attendance-track-stat-card small{display:block;margin-top:8px;color:#8a98b3;font-size:12px}.attendance-track-main-grid{display:grid;grid-template-columns:1fr 1.7fr 1.05fr;gap:16px}.attendance-track-bottom-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:16px}.attendance-track-panel{min-width:0;padding:14px}.attendance-track-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.attendance-track-panel-head h3{margin:0;color:#10213b;font-size:15px;font-weight:700}.attendance-track-panel-head span{color:#8a98b3;font-size:12px}.attendance-track-trend{height:210px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:end;padding:12px 4px 0}.attendance-track-trend-item{display:grid;justify-items:center;gap:8px;color:#6b7a99;font-size:11px}.attendance-track-trend-bar{width:22px;max-height:150px;border-radius:999px 999px 4px 4px;background:linear-gradient(180deg,#3cc9d1,#1677ff)}.attendance-track-map,.attendance-track-map .trajectory-map-shell,.attendance-track-map .trajectory-map{height:284px}.attendance-track-checkin-list{display:grid;gap:8px}.attendance-track-checkin-row{display:grid;grid-template-columns:1fr 1fr 52px 58px;gap:8px;align-items:center;min-height:34px;padding:0 8px;border-radius:8px;background:#f8fbff;color:#52627a;font-size:12px}.attendance-track-checkin-row span:first-child{color:#10213b;font-weight:600}.attendance-track-shifts{display:grid;gap:10px}.attendance-track-shift-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:10px;border-radius:10px;background:#f8fbff}.attendance-track-shift-row span{color:#10213b;font-weight:600}.attendance-track-shift-row strong{color:#1677ff}.attendance-track-shift-row small{grid-column:1 / -1;color:#8a98b3}.attendance-track-unsupported{min-height:154px;display:grid;place-items:center;align-content:center;gap:10px;color:#8a98b3;background:#f8fbff;border:1px dashed #d7e1ef;border-radius:12px}.attendance-track-unsupported .ops-svg-icon,.attendance-track-unsupported svg{width:28px;height:28px}.attendance-track-replay-head{display:grid;grid-template-columns:34px 1fr 34px 112px;gap:8px;align-items:center;margin-bottom:10px;color:#6b7a99;font-size:12px}.attendance-track-replay-head strong{color:#10213b;font-weight:600}.attendance-track-replay{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px}.attendance-track-replay-map,.attendance-track-replay-map .trajectory-map-shell,.attendance-track-replay-map .trajectory-map{height:210px}.attendance-track-replay-timeline{position:relative;display:grid;align-content:start;gap:0;padding:8px 10px;border:1px solid #e6edf7;border-radius:10px;background:#fff;color:#52627a;font-size:12px}.attendance-track-replay-row{position:relative;display:grid;grid-template-columns:18px 44px minmax(0,1fr) 74px;gap:8px;align-items:center;min-height:24px}.attendance-track-replay-row:not(:last-child):before{content:"";position:absolute;left:8px;top:50%;width:2px;height:24px;background:#9aa8bf}.attendance-track-replay-row .dot{width:10px;height:10px;border:2px solid #9aa8bf;border-radius:50%;background:#fff;justify-self:center;z-index:1}.attendance-track-replay-row .dot.active{border-color:#2a7cff}.attendance-track-replay-row span:nth-child(n+2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1280px){.attendance-track-stat-grid,.attendance-track-main-grid,.attendance-track-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-track-filter{grid-template-columns:36px minmax(140px,1fr) 36px minmax(140px,1fr)}}.patrol-plan-card{min-height:0}.patrol-plan-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.patrol-plan-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.patrol-plan-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.patrol-plan-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.patrol-plan-create-btn .ops-svg-icon{width:16px;height:16px}.patrol-plan-table-wrap{overflow-x:auto}.patrol-plan-table{width:100%;min-width:840px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.patrol-plan-code-col{width:16%}.patrol-plan-name-col{width:30%}.patrol-plan-frequency-col{width:11%}.patrol-plan-checkpoint-col{width:12%}.patrol-plan-time-col{width:18%}.patrol-plan-action-col{width:13%}.patrol-plan-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.patrol-plan-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.patrol-plan-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.patrol-plan-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.patrol-plan-table td:first-child{padding-left:14px}.patrol-plan-table td:last-child{padding-right:14px}.patrol-plan-table tbody tr{transition:background .12s}.patrol-plan-table tbody tr:hover{background:#fafbff}.patrol-plan-table tbody tr:last-child td{border-bottom:0}.patrol-plan-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.patrol-plan-name-link,.patrol-plan-action{padding:0;border:0;background:transparent;cursor:pointer}.patrol-plan-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.patrol-plan-name-link:hover,.patrol-plan-action:hover{color:#2a6dff}.patrol-plan-sub,.patrol-plan-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.patrol-plan-sub{margin-top:4px;font-size:12px}.patrol-plan-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;color:#2a6dff;background:#e0ecff;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.patrol-plan-count{color:#10213b;font-size:16px;font-weight:700;line-height:1}.patrol-plan-action{color:#2a6dff;font-size:12px;font-weight:500}.patrol-plan-action.danger{color:#ef4444}.patrol-plan-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.patrol-plan-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.owner-report-card{min-height:0}.owner-report-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.owner-report-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.owner-report-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.owner-report-filter{width:132px}.owner-report-table-wrap{overflow-x:auto}.owner-report-table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.owner-report-code-col{width:14%}.owner-report-title-col{width:25%}.owner-report-status-col{width:9%}.owner-report-owner-col{width:12%}.owner-report-address-col{width:18%}.owner-report-order-col{width:8%}.owner-report-time-col{width:10%}.owner-report-action-col{width:8%}.owner-report-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.owner-report-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.owner-report-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.owner-report-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.owner-report-table td:first-child{padding-left:14px}.owner-report-table td:last-child{padding-right:14px}.owner-report-table tbody tr{transition:background .12s}.owner-report-table tbody tr:hover{background:#fafbff}.owner-report-table tbody tr:last-child td{border-bottom:0}.owner-report-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.owner-report-title-link,.owner-report-action{padding:0;border:0;background:transparent;cursor:pointer}.owner-report-title-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.owner-report-title-link:hover,.owner-report-action:hover{color:#2a6dff}.owner-report-sub,.owner-report-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.owner-report-sub{margin-top:4px;font-size:12px}.owner-report-owner{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.owner-report-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.owner-report-badge.pending{color:#52627a;background:#eef2f7}.owner-report-badge.assigned{color:#2a6dff;background:#e0ecff}.owner-report-badge.processing{color:#d97706;background:#fff1d6}.owner-report-badge.done{color:#0b9c99;background:#d6f4f0}.owner-report-badge.rated{color:#7c5cff;background:#ede8ff}.owner-report-count{color:#10213b;font-weight:700}.owner-report-action{color:#2a6dff;font-size:12px;font-weight:500}.owner-report-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.owner-report-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.work-order-card{min-height:0}.work-order-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.work-order-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.work-order-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.work-order-toolbar{justify-content:flex-end}.work-order-filter{width:132px}.work-order-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.work-order-create-btn .ops-svg-icon{width:16px;height:16px}.work-order-table-wrap{overflow-x:auto}.work-order-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.work-order-code-col{width:14%}.work-order-title-col{width:24%}.work-order-priority-col{width:8%}.work-order-type-col,.work-order-status-col{width:9%}.work-order-source-col{width:10%}.work-order-owner-col{width:13%}.work-order-time-col{width:10%}.work-order-action-col{width:13%}.work-order-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.work-order-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.work-order-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.work-order-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.work-order-table td:first-child{padding-left:14px}.work-order-table td:last-child{padding-right:14px}.work-order-table tbody tr{transition:background .12s}.work-order-table tbody tr:hover{background:#fafbff}.work-order-table tbody tr:last-child td{border-bottom:0}.work-order-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap}.work-order-title-link,.work-order-action{padding:0;border:0;background:transparent;cursor:pointer}.work-order-title-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.work-order-title-link:hover,.work-order-action:hover{color:#2a6dff}.work-order-sub,.work-order-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.work-order-sub{margin-top:4px;font-size:12px}.work-order-person{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.work-order-priority,.work-order-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.work-order-priority.low,.work-order-badge.pending,.work-order-badge.closed{color:#52627a;background:#eef2f7}.work-order-priority.medium,.work-order-badge.assigned{color:#2a6dff;background:#e0ecff}.work-order-priority.high,.work-order-badge.processing{color:#d97706;background:#fff1d6}.work-order-priority.urgent{color:#ef4444;background:#ffe4e4}.work-order-badge.done{color:#0b9c99;background:#d6f4f0}.work-order-action{color:#2a6dff;font-size:12px;font-weight:500}.work-order-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.work-order-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.worker-status-card{min-height:0}.worker-status-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.worker-status-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.worker-status-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.worker-status-refresh{height:34px;border-radius:6px;box-shadow:none}.worker-status-table-wrap{overflow-x:auto}.worker-status-table{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.worker-status-person-col{width:17%}.worker-status-org-col{width:18%}.worker-status-state-col{width:10%}.worker-status-track-col{width:13%}.worker-status-location-col{width:20%}.worker-status-accuracy-col{width:10%}.worker-status-time-col{width:12%}.worker-status-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.worker-status-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.worker-status-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.worker-status-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.worker-status-table td:first-child{padding-left:14px}.worker-status-table td:last-child{padding-right:14px}.worker-status-table tbody tr{transition:background .12s}.worker-status-table tbody tr:hover{background:#fafbff}.worker-status-table tbody tr:last-child td{border-bottom:0}.worker-status-person{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.worker-status-sub,.worker-status-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.worker-status-sub{margin-top:4px;font-size:12px}.worker-status-badge,.worker-status-track{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.worker-status-badge.online,.worker-status-track.patrol{color:#0b9c99;background:#d6f4f0}.worker-status-badge.active,.worker-status-track.attendance{color:#2a6dff;background:#e0ecff}.worker-status-badge.offline,.worker-status-track.none{color:#52627a;background:#eef2f7}.worker-status-copy{max-width:100%;padding:0;overflow:hidden;border:0;color:#52627a;background:transparent;cursor:pointer;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.worker-status-copy:hover{color:#2a6dff}.worker-status-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.worker-status-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.geofence-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.geofence-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.geofence-summary-item span{color:#6f7f95;font-size:12px}.geofence-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.geofence-card{min-height:0}.geofence-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.geofence-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.geofence-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.geofence-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.geofence-create-btn .ops-svg-icon{width:16px;height:16px}.geofence-table-wrap{overflow-x:auto}.geofence-table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.geofence-name-col{width:22%}.geofence-type-col{width:11%}.geofence-area-count-col{width:13%}.geofence-area-preview-col{width:19%}.geofence-status-col{width:10%}.geofence-time-col{width:12%}.geofence-action-col{width:13%}.geofence-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.geofence-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.geofence-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.geofence-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.geofence-table td:first-child{padding-left:14px}.geofence-table td:last-child{padding-right:14px}.geofence-table tbody tr{transition:background .12s}.geofence-table tbody tr:hover{background:#fafbff}.geofence-table tbody tr:last-child td{border-bottom:0}.geofence-name-link,.geofence-action{padding:0;border:0;background:transparent;cursor:pointer}.geofence-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.geofence-name-link:hover,.geofence-action:hover{color:#2a6dff}.geofence-sub,.geofence-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.geofence-sub{margin-top:4px;font-size:12px}.geofence-location,.geofence-area-preview{overflow:hidden;color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.geofence-radius,.geofence-area-count{color:#10213b;font-weight:600}.geofence-type,.geofence-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.geofence-type.inclusion,.geofence-status.enabled{color:#0b9c99;background:#d6f4f0}.geofence-type.exclusion{color:#d97706;background:#fff1d6}.geofence-status.disabled{color:#52627a;background:#eef2f7}.geofence-action{color:#2a6dff;font-size:12px;font-weight:500}.geofence-action.danger{color:#ef4444}.geofence-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.geofence-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.geofence-modal .ant-modal-content{border-radius:8px}.geofence-modal .ant-modal-body{max-height:calc(100vh - 210px);overflow-y:auto;padding-right:4px}.geofence-form .ant-form-item-label>label{color:#52627a;font-size:12px}.geofence-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.geofence-picker{width:100%}.geofence-picker-map{width:100%;height:360px;overflow:hidden;border:1px solid #e2eaf5;border-radius:8px;background:#f6f8fc}.geofence-picker-actions{color:#6f7f95;font-size:12px}.geofence-picker-center{height:32px;border-radius:6px;box-shadow:none}.geofence-picker-hint{color:#6f7f95}.geofence-polygon-toolbar{display:flex;align-items:center;justify-content:space-between}.geofence-area-panel{border:1px solid #e6edf7;border-radius:8px;background:#f8fbff;padding:10px 12px}.geofence-area-panel-title{margin-bottom:8px;color:#10213b;font-size:13px;font-weight:600}.geofence-area-list{display:grid;gap:8px}.geofence-area-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:8px;align-items:center;min-height:30px}.geofence-area-color{width:10px;height:10px;border-radius:50%}.geofence-area-name{overflow:hidden;color:#10213b;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.geofence-area-meta,.geofence-area-empty,.geofence-draft-meta{color:#6f7f95;font-size:12px}.geofence-draft-meta{margin-top:8px}.geofence-draft-meta.invalid{color:#cf1322;font-weight:600}.geofence-point-marker{min-width:20px;height:20px;border:2px solid #fff;border-radius:50%;background:#fa541c;box-shadow:0 2px 6px #10213b33;color:#fff;font-size:11px;font-weight:700;line-height:16px;text-align:center}.fence-violation-filter-card,.fence-violation-card{border:1px solid #e6edf7;border-radius:8px;background:#fff;box-shadow:0 10px 24px #182c540d}.fence-violation-filter-card{margin-bottom:14px;padding:14px 16px}.fence-violation-card{padding:0 16px 16px}.fence-violation-filter-head,.fence-violation-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.fence-violation-filter-head{margin-bottom:12px}.fence-violation-header{min-height:46px}.fence-violation-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.fence-violation-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.fence-violation-meta,.fence-violation-stats{color:#6f7f95;font-size:12px}.fence-violation-meta b,.fence-violation-stats b{color:#10213b;font-weight:700}.fence-violation-stats{display:flex;align-items:center;gap:14px}.fence-violation-toolbar{justify-content:flex-end}.fence-violation-toolbar .ant-form-item{margin-inline-end:0}.fence-violation-worker{width:160px}.fence-violation-time{width:190px}.fence-violation-search,.fence-violation-reset{height:34px;border-radius:6px;box-shadow:none}.fence-violation-table-wrap{overflow-x:auto}.fence-violation-table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.fence-violation-code-col{width:16%}.fence-violation-fence-col{width:22%}.fence-violation-worker-col{width:18%}.fence-violation-location-col{width:20%}.fence-violation-type-col{width:11%}.fence-violation-time-col{width:13%}.fence-violation-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.fence-violation-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.fence-violation-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.fence-violation-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.fence-violation-table td:first-child{padding-left:14px}.fence-violation-table td:last-child{padding-right:14px}.fence-violation-table tbody tr{transition:background .12s}.fence-violation-table tbody tr:hover{background:#fafbff}.fence-violation-table tbody tr:last-child td{border-bottom:0}.fence-violation-code,.fence-violation-location{overflow:hidden;color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.fence-violation-fence,.fence-violation-worker-name{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.fence-violation-sub,.fence-violation-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.fence-violation-sub{margin-top:4px;font-size:12px}.fence-violation-type{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.fence-violation-type.inclusion{color:#0b9c99;background:#d6f4f0}.fence-violation-type.exclusion{color:#d97706;background:#fff1d6}.fence-violation-type.unknown{color:#52627a;background:#eef2f7}.fence-violation-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.fence-violation-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.course-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.course-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.course-summary-item span{color:#6f7f95;font-size:12px}.course-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.course-card{min-height:0}.course-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.course-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.course-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.course-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.course-create-btn .ops-svg-icon{width:16px;height:16px}.course-table-wrap{overflow-x:auto}.course-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.course-name-col{width:24%}.course-category-col{width:11%}.course-duration-col{width:10%}.course-status-col{width:9%}.course-learner-col,.course-cert-col{width:10%}.course-time-col{width:12%}.course-action-col{width:14%}.course-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.course-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.course-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.course-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.course-table td:first-child{padding-left:14px}.course-table td:last-child{padding-right:14px}.course-table tbody tr{transition:background .12s}.course-table tbody tr:hover{background:#fafbff}.course-table tbody tr:last-child td{border-bottom:0}.course-name-link,.course-action{padding:0;border:0;background:transparent;cursor:pointer}.course-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.course-name-link:hover,.course-action:hover{color:#2a6dff}.course-sub,.course-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.course-sub{margin-top:4px;font-size:12px}.course-category,.course-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.course-category{max-width:100%;overflow:hidden;color:#2a6dff;background:#e0ecff;text-overflow:ellipsis}.course-status.published{color:#0b9c99;background:#d6f4f0}.course-status.draft{color:#52627a;background:#eef2f7}.course-duration,.course-count{color:#10213b;font-weight:600}.course-action{color:#2a6dff;font-size:12px;font-weight:500}.course-action.danger{color:#ef4444}.course-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.course-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.course-modal .ant-modal-content{border-radius:8px}.course-form .ant-form-item-label>label{color:#52627a;font-size:12px}.course-form-grid{display:grid;grid-template-columns:1fr 160px 140px;gap:12px}.knowledge-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.knowledge-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.knowledge-summary-item span{color:#6f7f95;font-size:12px}.knowledge-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.knowledge-card{min-height:0}.knowledge-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.knowledge-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.knowledge-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.knowledge-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.knowledge-create-btn .ops-svg-icon{width:16px;height:16px}.knowledge-table-wrap{overflow-x:auto}.knowledge-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.knowledge-title-col{width:25%}.knowledge-category-col{width:11%}.knowledge-tags-col{width:18%}.knowledge-views-col,.knowledge-status-col{width:8%}.knowledge-time-col{width:13%}.knowledge-action-col{width:17%}.knowledge-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.knowledge-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.knowledge-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.knowledge-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.knowledge-table td:first-child{padding-left:14px}.knowledge-table td:last-child{padding-right:14px}.knowledge-table tbody tr{transition:background .12s}.knowledge-table tbody tr:hover{background:#fafbff}.knowledge-table tbody tr:last-child td{border-bottom:0}.knowledge-name-link,.knowledge-action{padding:0;border:0;background:transparent;cursor:pointer}.knowledge-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.knowledge-name-link:hover,.knowledge-action:hover{color:#2a6dff}.knowledge-sub,.knowledge-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.knowledge-sub{margin-top:4px;font-size:12px}.knowledge-category,.knowledge-status,.knowledge-tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.knowledge-category{max-width:100%;overflow:hidden;color:#2a6dff;background:#e0ecff;text-overflow:ellipsis}.knowledge-status.published{color:#0b9c99;background:#d6f4f0}.knowledge-status.hidden{color:#52627a;background:#eef2f7}.knowledge-tags,.knowledge-detail-tags{min-width:0;display:flex;flex-wrap:wrap;gap:5px}.knowledge-tag{max-width:86px;overflow:hidden;color:#52627a;background:#eef2f7;text-overflow:ellipsis}.knowledge-views{color:#10213b;font-weight:600}.knowledge-action{color:#2a6dff;font-size:12px;font-weight:500}.knowledge-action.danger{color:#ef4444}.knowledge-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.knowledge-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.knowledge-modal .ant-modal-content,.knowledge-detail .ant-drawer-content{border-radius:8px}.knowledge-form .ant-form-item-label>label{color:#52627a;font-size:12px}.knowledge-form-grid{display:grid;grid-template-columns:180px 1fr 130px;gap:12px}.knowledge-detail-body{display:flex;flex-direction:column;gap:14px}.knowledge-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e6edf7}.knowledge-detail-head h3{margin:0;color:#10213b;font-size:18px;line-height:1.45}.knowledge-detail-meta{display:flex;flex-wrap:wrap;gap:10px;color:#6f7f95;font-size:12px}.knowledge-detail-content{min-height:280px;padding:14px;border:1px solid #e6edf7;border-radius:8px;color:#10213b;background:#f8fbff;font-size:13px;line-height:1.8;white-space:pre-wrap}.certificate-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.certificate-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.certificate-summary-item span{color:#6f7f95;font-size:12px}.certificate-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.certificate-filter-card,.certificate-card{border:1px solid #e6edf7;border-radius:8px;background:#fff;box-shadow:0 10px 24px #182c540d}.certificate-filter-card{margin-bottom:14px;padding:14px 16px}.certificate-card{padding:0 16px 16px}.certificate-filter-head,.certificate-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.certificate-filter-head{margin-bottom:12px}.certificate-header{min-height:46px}.certificate-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.certificate-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.certificate-meta{color:#6f7f95;font-size:12px}.certificate-meta b{color:#10213b;font-weight:700}.certificate-toolbar{width:100%}.certificate-search-input{width:340px}.certificate-reset{height:34px;border-radius:6px;box-shadow:none}.certificate-table-wrap{overflow-x:auto}.certificate-table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.certificate-no-col{width:20%}.certificate-user-col{width:18%}.certificate-course-col{width:26%}.certificate-issued-col,.certificate-expire-col{width:13%}.certificate-status-col{width:10%}.certificate-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.certificate-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.certificate-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.certificate-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.certificate-table td:first-child{padding-left:14px}.certificate-table td:last-child{padding-right:14px}.certificate-table tbody tr{transition:background .12s}.certificate-table tbody tr:hover{background:#fafbff}.certificate-table tbody tr:last-child td{border-bottom:0}.certificate-no{overflow:hidden;color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.certificate-user,.certificate-course{overflow:hidden;color:#10213b;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.certificate-sub,.certificate-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.certificate-sub{margin-top:4px;font-size:12px}.certificate-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.certificate-status.valid{color:#0b9c99;background:#d6f4f0}.certificate-status.invalid{color:#52627a;background:#eef2f7}.certificate-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.certificate-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.user-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.user-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.user-summary-item span{color:#6f7f95;font-size:12px}.user-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.user-filter-card,.user-card{border:1px solid #e6edf7;border-radius:8px;background:#fff;box-shadow:0 10px 24px #182c540d}.user-filter-card{margin-bottom:14px;padding:14px 16px}.user-card{padding:0 16px 16px}.user-filter-head,.user-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.user-filter-head{margin-bottom:12px}.user-header{min-height:46px}.user-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.user-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.user-meta{color:#6f7f95;font-size:12px}.user-meta b{color:#10213b;font-weight:700}.user-toolbar{justify-content:flex-end}.user-toolbar .ant-form-item{margin-inline-end:0}.user-search-input{width:260px}.user-role-filter{width:180px}.user-status-filter{width:150px}.user-reset{height:34px;border-radius:6px;box-shadow:none}.user-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.user-create-btn .ops-svg-icon{width:16px;height:16px}.user-table-wrap{overflow-x:auto}.user-table{width:100%;min-width:1140px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.user-name-col{width:18%}.user-role-col{width:10%}.user-org-col{width:16%}.user-phone-col{width:13%}.user-wechat-col{width:14%}.user-status-col{width:8%}.user-action-col{width:21%}.user-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.user-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.user-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.user-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.user-table td:first-child{padding-left:14px}.user-table td:last-child{padding-right:14px}.user-table tbody tr{transition:background .12s}.user-table tbody tr:hover{background:#fafbff}.user-table tbody tr:last-child td{border-bottom:0}.user-name-link,.user-action{padding:0;border:0;background:transparent;cursor:pointer}.user-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.user-name-link:hover,.user-action:hover{color:#2a6dff}.user-sub,.user-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.user-sub{margin-top:4px;font-size:12px}.user-role,.user-wechat,.user-status{display:inline-flex;align-items:center;max-width:100%;padding:3px 10px;overflow:hidden;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.user-role.admin{color:#2a6dff;background:#e0ecff}.user-role.supervisor{color:#7c3aed;background:#ede9fe}.user-role.worker,.user-status.enabled,.user-wechat.bound{color:#0b9c99;background:#d6f4f0}.user-role.owner{color:#d97706;background:#fff1d6}.user-wechat.unbound,.user-status.disabled{color:#52627a;background:#eef2f7}.user-action{color:#2a6dff;font-size:12px;font-weight:500}.user-action.danger{color:#ef4444}.user-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.user-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.user-modal .ant-modal-content{border-radius:8px}.user-form .ant-form-item-label>label{color:#52627a;font-size:12px}.org-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.org-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.org-summary-item span{color:#6f7f95;font-size:12px}.org-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.org-card{min-height:0}.org-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.org-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.org-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.org-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.org-create-btn .ops-svg-icon{width:16px;height:16px}.org-table-wrap{overflow-x:auto}.org-table{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.org-name-col{width:28%}.org-parent-col{width:18%}.org-child-col,.org-user-col{width:11%}.org-time-col{width:15%}.org-action-col{width:17%}.org-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.org-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.org-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.org-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.org-table td:first-child{padding-left:14px}.org-table td:last-child{padding-right:14px}.org-table tbody tr{transition:background .12s}.org-table tbody tr:hover{background:#fafbff}.org-table tbody tr:last-child td{border-bottom:0}.org-name-cell{min-width:0;display:flex;align-items:center;gap:8px;padding-left:0}.org-level-dot{width:10px;height:10px;flex:none;border-radius:3px;background:#2a6dff}.org-level-dot.child{background:#0b9c99}.org-name-link,.org-action{padding:0;border:0;background:transparent;cursor:pointer}.org-name-link{min-width:0;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.org-name-link:hover,.org-action:hover{color:#2a6dff}.org-sub,.org-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.org-sub{margin-top:4px;font-size:12px}.org-code{padding-left:18px}.org-count{color:#10213b;font-weight:600}.org-action{color:#2a6dff;font-size:12px;font-weight:500}.org-action.danger{color:#ef4444}.org-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.org-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.org-modal .ant-modal-content{border-radius:8px}.org-form .ant-form-item-label>label{color:#52627a;font-size:12px}.shift-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.shift-summary-item{min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border:1px solid #e8eef7;border-radius:8px;background:#f7f9fd}.shift-summary-item span{color:#6f7f95;font-size:12px}.shift-summary-item strong{color:#10213b;font-size:24px;font-weight:700;line-height:1}.shift-card{min-height:0}.shift-header{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 14px}.shift-title{display:flex;align-items:center;gap:8px;color:#10213b;font-size:15px;font-weight:700}.shift-title-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:#2a6dff}.shift-header-actions{display:flex;align-items:center;gap:10px}.shift-status-filter{background:#f1f4f9;font-size:12px}.shift-status-filter .ant-segmented-item{min-width:52px}.shift-create-btn{display:inline-flex;align-items:center;gap:6px;height:34px;border-radius:6px;box-shadow:none}.shift-create-btn .ops-svg-icon{width:16px;height:16px}.shift-table-wrap{overflow-x:auto}.shift-table{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.shift-name-col{width:24%}.shift-period-col{width:32%}.shift-grace-col{width:12%}.shift-status-col{width:8%}.shift-time-col,.shift-action-col{width:14%}.shift-table th{padding:10px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:500;text-align:left}.shift-table th:first-child{padding-left:14px;border-radius:4px 0 0 4px}.shift-table th:last-child{padding-right:14px;border-radius:0 4px 4px 0}.shift-table td{padding:12px 10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle}.shift-table td:first-child{padding-left:14px}.shift-table td:last-child{padding-right:14px}.shift-table tbody tr{transition:background .12s}.shift-table tbody tr:hover{background:#fafbff}.shift-table tbody tr:last-child td{border-bottom:0}.shift-name-link,.shift-action{padding:0;border:0;background:transparent;cursor:pointer}.shift-name-link{max-width:100%;display:block;overflow:hidden;color:#10213b;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.shift-name-link:hover,.shift-action:hover{color:#2a6dff}.shift-sub,.shift-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.shift-sub{margin-top:4px;font-size:12px}.shift-periods{display:flex;flex-wrap:wrap;gap:6px}.shift-period{min-height:25px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;color:#52627a;background:#eef2f7;font-size:12px;white-space:nowrap}.shift-period b{color:#2a6dff;font-weight:600}.shift-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.shift-status.enabled{color:#0b9c99;background:#d6f4f0}.shift-status.disabled{color:#52627a;background:#eef2f7}.shift-grace{color:#10213b;font-weight:600}.shift-action{color:#2a6dff;font-size:12px;font-weight:500}.shift-action.danger{color:#ef4444}.shift-empty{min-height:260px;display:flex;align-items:center;justify-content:center}.shift-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #eef2f7;color:#6f7f95;font-size:12px}.shift-modal .ant-modal-content{border-radius:8px}.shift-form .ant-form-item-label>label{color:#52627a;font-size:12px}.shift-form-grid{display:grid;grid-template-columns:1fr 160px;gap:12px}.shift-form-periods{width:100%}.shift-form-period-row{display:grid;grid-template-columns:minmax(130px,1fr) 120px 120px 34px;gap:10px;align-items:start}.shift-period-remove{margin-top:30px;color:#ef4444}.shift-add-period{width:fit-content;height:34px;border-radius:6px;box-shadow:none}.ops-modal .ant-modal-content{overflow:hidden;border:1px solid #e6edf7;border-radius:8px;box-shadow:0 18px 46px #182c5429}.ops-modal .ant-modal-header{min-height:48px;margin:0;padding:14px 18px 10px;border-bottom:1px solid #eef2f7;background:#fff}.ops-modal .ant-modal-title{color:#10213b;font-size:15px;font-weight:700}.ops-modal .ant-modal-body{padding:16px 18px}.ops-modal .ant-modal-footer{margin:0;padding:12px 18px 16px;border-top:1px solid #eef2f7}.ops-modal .ant-btn{height:34px;border-radius:6px;box-shadow:none}.ops-form .ant-form-item{margin-bottom:14px}.ops-form .ant-form-item-label{padding-bottom:5px}.ops-form .ant-form-item-label>label{color:#52627a;font-size:12px}.ops-form .ant-input,.ops-form .ant-input-number,.ops-form .ant-select-selector,.ops-form .ant-input-affix-wrapper{border-color:#dbe5f2;border-radius:6px;box-shadow:none}.ops-form-section-title{margin:2px 0 10px;color:#10213b;font-size:13px;font-weight:700}.ops-detail-drawer .ant-drawer-content{background:#fff}.ops-detail-drawer .ant-drawer-header{min-height:54px;padding:16px 20px 12px;border-bottom:1px solid #eef2f7}.ops-detail-drawer .ant-drawer-title{color:#10213b;font-size:16px;font-weight:700}.ops-detail-drawer .ant-drawer-body{padding:18px 20px;background:#f8fbff}.ops-detail-body{display:flex;flex-direction:column;gap:14px}.ops-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ops-detail-item{min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:10px 12px;border:1px solid #e6edf7;border-radius:8px;background:#fff}.ops-detail-item.wide{grid-column:1 / -1}.ops-detail-item span{color:#6f7f95;font-size:12px}.ops-detail-item strong{min-width:0;overflow-wrap:anywhere;color:#10213b;font-size:13px;font-weight:600;line-height:1.55}.ops-detail-section{padding:12px;border:1px solid #e6edf7;border-radius:8px;background:#fff}.ops-detail-section-title{margin-bottom:10px;color:#10213b;font-size:13px;font-weight:700}.ops-detail-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.ops-detail-table th{padding:9px 10px;background:#f7f9fd;color:#52627a;font-weight:500;text-align:left}.ops-detail-table th:first-child{border-radius:4px 0 0 4px}.ops-detail-table th:last-child{border-radius:0 4px 4px 0}.ops-detail-table td{padding:10px;border-bottom:1px solid #e6edf7;color:#10213b;vertical-align:middle;overflow-wrap:anywhere}.ops-detail-table tbody tr:last-child td{border-bottom:0}.ops-detail-empty-cell{color:#6f7f95!important;text-align:center}.ops-detail-photo{border:1px solid #e6edf7;border-radius:6px;object-fit:cover}.ops-detail-photo.small{border-radius:5px}.ops-detail-preview{overflow:hidden;border:1px solid #e6edf7;border-radius:8px;object-fit:cover}.ops-detail-url{margin-top:8px;overflow:hidden;color:#6f7f95;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ops-detail-list{display:flex;flex-direction:column;gap:8px}.ops-detail-list-item{display:grid;grid-template-columns:145px 120px minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;border-radius:6px;background:#f7f9fd;font-size:12px}.ops-detail-list-item span{color:#6f7f95}.ops-detail-list-item strong{color:#10213b;font-weight:600}.ops-detail-list-item em{overflow:hidden;color:#52627a;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.patrol-plan-modal .ant-modal-body{max-height:calc(100vh - 210px);overflow-y:auto}.patrol-plan-form .checkpoint-row,.patrol-plan-checkpoint-row{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(110px,1fr) minmax(110px,1fr) 90px 78px 58px 58px;gap:10px;align-items:start;padding:10px;border:1px solid #e6edf7;border-radius:8px;background:#f8fbff}.patrol-plan-checkpoint-row.active{border-color:#9ec9ff;background:#f3f8ff;box-shadow:inset 3px 0 #1677ff}.patrol-plan-pick-checkpoint,.patrol-plan-remove-checkpoint{margin-top:30px;border-radius:6px}.patrol-plan-pick-checkpoint{color:#1677ff;border-color:#bfd9ff;background:#f7fbff}.patrol-plan-add-checkpoint{height:34px;margin-top:10px;border-radius:6px;box-shadow:none}.checkpoint-picker{margin-top:14px;display:grid;gap:10px}.checkpoint-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e6edf7;border-radius:8px;background:#f8fbff}.checkpoint-picker-title{color:#10213b;font-size:13px;font-weight:700}.checkpoint-picker-sub,.checkpoint-picker-location,.checkpoint-picker-hint{color:#6f7f95;font-size:12px}.checkpoint-picker-location{padding:5px 8px;border-radius:6px;background:#eef5ff;color:#315d94;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}.checkpoint-picker-map{width:100%;height:360px;overflow:hidden;border:1px solid #e2eaf5;border-radius:8px;background:#f6f8fc}.checkpoint-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.checkpoint-picker-chip{border-radius:6px;box-shadow:none}.checkpoint-map-marker{width:24px;height:24px;border:2px solid #fff;border-radius:50%;background:#10b981;box-shadow:0 3px 8px #10213b2e;color:#fff;font-size:12px;font-weight:800;line-height:20px;text-align:center}.checkpoint-map-marker.active{width:28px;height:28px;background:#1677ff;box-shadow:0 4px 12px #1677ff4d;line-height:24px}.ops-task-body{display:flex;gap:10px;padding:8px 12px 16px}.ops-task-summary{width:98px;flex:none;text-align:center}.ops-task-summary-label{color:#6f7f95;font-size:12px}.ops-task-total{margin:3px 0 8px;color:#10213b;font-size:30px;font-weight:700}.ops-progress-donut{position:relative;margin:0 auto}.ops-progress-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ops-progress-center strong{color:#10213b;font-size:17px}.ops-progress-center span{color:#6f7f95;font-size:11px}.ops-task-list{flex:1;display:flex;flex-direction:column;gap:11px;padding-left:12px;border-left:1px solid #e6edf7}.ops-task-row{display:grid;grid-template-columns:minmax(54px,1fr) 42px 42px;column-gap:6px;row-gap:5px;align-items:center;color:#52627a;font-size:12px}.ops-task-name{white-space:nowrap}.ops-task-num{color:#10213b;font-weight:600;text-align:right}.ops-task-pct{color:#6f7f95;text-align:right}.ops-task-bar{grid-column:1 / -1;height:5px;overflow:hidden;border-radius:999px;background:#e5ecf5}.ops-task-fill{display:block;height:100%;border-radius:999px}.ops-todo-list{display:flex;flex-direction:column;gap:8px;padding:4px 16px 16px}.ops-todo-item{min-height:38px;display:flex;align-items:center;gap:10px;padding:5px 8px;border:1px solid #edf2f8;border-radius:999px;background:#f5f8fc}.ops-todo-dot{width:26px;height:26px;display:grid;place-items:center;flex:none;border-radius:50%;font-size:13px}.ops-todo-main{min-width:0;display:flex;flex:1;flex-direction:column}.ops-todo-label,.ops-todo-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-todo-label{color:#10213b;font-size:12.5px;font-weight:600}.ops-todo-meta{color:#6f7f95;font-size:11px}.ops-todo-count{min-width:34px;padding:2px 8px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px #edf2f8;font-size:12px;font-weight:700;text-align:center}.ops-patrol-body{display:flex;gap:12px;padding:4px 16px 16px}.ops-patrol-map{position:relative;height:226px;min-width:0;flex:1;overflow:hidden;border:1px solid #e6edf7;border-radius:8px;background:#f6f8fc}.ops-patrol-map .trajectory-map-shell,.ops-patrol-map .trajectory-map{height:100%}.ops-patrol-side{width:148px;flex:none;padding:10px 10px 12px;border:1px solid #e2eaf5;border-radius:8px;background:#fffffff0}.ops-patrol-user{display:grid;grid-template-columns:36px 1fr;column-gap:8px;align-items:center;padding-bottom:10px;border-bottom:1px solid #e7edf6}.ops-patrol-avatar{width:36px;height:36px;display:grid;place-items:center;overflow:hidden;border-radius:50%;color:#fff;background:linear-gradient(135deg,#cfe0ff,#8db4ff);box-shadow:inset 0 0 0 2px #fff,0 1px 4px #1423501f}.ops-patrol-avatar img{width:100%;height:100%;object-fit:cover}.ops-patrol-name{color:#10213b;font-size:13px;font-weight:700;line-height:1.1}.ops-patrol-role{margin-top:4px;color:#6f7f95;font-size:11px}.ops-patrol-info{display:flex;flex-direction:column;gap:7px;padding-top:10px}.ops-patrol-info-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.ops-patrol-info-row span{flex:none;color:#6f7f95}.ops-patrol-info-row strong{min-width:0;overflow:hidden;color:#10213b;font-weight:600;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ops-dashboard-deferred{margin-top:14px;padding:10px 12px;border:1px dashed #dbe5f2;border-radius:8px;color:#6f7f95;background:#f8fbff;font-size:12px}.ops-hydrology-actions{display:flex;align-items:center;gap:7px}.ops-hydrology-actions .ant-input-number-group-wrapper{width:116px}.ops-hydrology-actions .ant-btn{height:30px;padding-inline:10px}.ops-hydrology-card-body{min-height:254px}.ops-hydrology-summary{min-height:24px;display:flex;align-items:center;gap:10px;margin-bottom:4px;color:#6f7f95;font-size:12px}.ops-hydrology-state{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;color:#52627a;background:#eef2f7;font-weight:700}.ops-hydrology-state.active{color:#0b9c99;background:#d6f4f0}.ops-hydrology-error{min-width:0;overflow:hidden;color:#ef4444;text-overflow:ellipsis;white-space:nowrap}.ops-hydrology-tabs .ant-tabs-nav{margin-bottom:4px;padding-left:8px}.ops-hydrology-tabs .ant-tabs-tab{padding:6px 0 8px}.ops-hydrology-tabs .ant-tabs-nav-list{transform:translate(8px)}.ops-hydrology-chart-panel{min-height:210px;position:relative}.ops-hydrology-chart-toolbar{min-height:26px;display:flex;justify-content:flex-end;align-items:center;margin:-2px 2px 4px 0}.ops-hydrology-filterbar{width:auto;max-width:54%;display:inline-grid;grid-template-columns:74px 88px auto;gap:6px;align-items:center}.ops-hydrology-town-select,.ops-hydrology-station-select{min-width:0}.ops-hydrology-town-select .ant-select-selection-item,.ops-hydrology-station-select .ant-select-selection-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-hydrology-filterbar .ant-select-selector,.ops-hydrology-filterbar .ant-segmented{min-height:26px;border-radius:6px!important}.ops-hydrology-chart-toolbar .ant-segmented{background:#f2f5fa;color:#52627a;font-size:12px}.ops-hydrology-chart-legend{min-height:18px;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:14px;padding-left:36px;padding-right:16px;color:#6f7f95;font-size:12px}.ops-hydrology-chart-legend.dense{gap:8px 10px;padding-left:36px;padding-right:12px;font-size:11.5px}.ops-hydrology-chart-legend span{display:inline-flex;align-items:center;gap:6px}.ops-hydrology-chart-legend i{width:16px;height:3px;display:inline-block;border-radius:999px;position:relative}.ops-hydrology-chart-legend i:after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:inherit;transform:translate(-50%,-50%)}.ops-hydrology-chart-legend .rain-now,.ops-hydrology-chart-legend .water-inner{background:#2a6dff}.ops-hydrology-chart-legend .rain-day,.ops-hydrology-chart-legend .water-outer{background:#14b8a6}.ops-hydrology-chart{width:100%;height:210px;display:block}.ops-hydrology-tooltip{width:148px}.ops-hydrology-tooltip .ops-chart-tooltip-row{gap:4px}.ops-hydrology-tooltip .ops-chart-tooltip-row>span:nth-child(2){max-width:72px;overflow:hidden;text-overflow:ellipsis}.ops-hydrology-tooltip-unit{margin-top:4px;padding-top:4px;border-top:1px solid #eef2f7;color:#7f8ca8;font-size:11px;text-align:right}.ops-hydrology-empty{height:236px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#8a96ad;font-size:13px}.ops-hydrology-empty-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#2a6dff;background:#eef5ff;font-size:20px}.ops-hydrology-latest{display:grid;gap:7px;padding-top:7px}.ops-hydrology-latest-row{min-height:34px;display:grid;grid-template-columns:minmax(0,1.2fr) .72fr .72fr .72fr;gap:8px;align-items:center;padding:8px 10px;border:1px solid #e6edf7;border-radius:6px;background:#fbfdff;color:#10213b;font-size:12px}.ops-hydrology-latest-row strong{color:#2a6dff;font-size:13px;white-space:nowrap}.ops-hydrology-list{display:flex;flex-direction:column;gap:8px}.ops-hydrology-row{min-height:34px;display:grid;grid-template-columns:1.1fr .8fr .8fr .8fr .8fr;gap:8px;align-items:center;padding:8px 10px;border:1px solid #e6edf7;border-radius:6px;color:#10213b;background:#fbfdff;font-size:12px}.ops-hydrology-rain-row{grid-template-columns:1.2fr .8fr .8fr .7fr}.ops-hydrology-name{min-width:0;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.ops-hydrology-muted{color:#6f7f95}.ops-hydrology-diff{color:#0b9c99;font-weight:700}.ops-hydrology-diff.negative{color:#d97706}.hydrology-page{display:flex;flex-direction:column;gap:14px}.hydrology-status-card,.hydrology-config-card,.hydrology-data-card,.hydrology-log-card{padding:16px;border:1px solid #e1e9f5;border-radius:8px;background:#fff;box-shadow:0 6px 18px #15315c0d}.hydrology-status-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.hydrology-status-main{min-width:0;display:flex;align-items:center;gap:12px}.hydrology-status-icon{width:42px;height:42px;display:grid;flex:none;place-items:center;border-radius:8px;color:#0b9c99;background:#d6f4f0}.hydrology-status-icon .ops-svg-icon{width:22px;height:22px}.hydrology-status-title{color:#10213b;font-size:16px;font-weight:700}.hydrology-status-sub{margin-top:5px;color:#6f7f95;font-size:12px}.hydrology-status-actions{justify-content:flex-end}.hydrology-alert{border-radius:8px}.hydrology-config-form{row-gap:12px}.hydrology-api-input{width:360px}.hydrology-tabs .ant-tabs-nav{margin-bottom:12px}.hydrology-table-wrap{overflow-x:auto}.hydrology-table,.hydrology-log-table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed}.hydrology-table th,.hydrology-log-table th{padding:10px 12px;border:0;background:#f7f9fd;color:#52627a;font-size:12px;font-weight:700;text-align:left}.hydrology-table th:first-child,.hydrology-log-table th:first-child{border-radius:4px 0 0 4px}.hydrology-table th:last-child,.hydrology-log-table th:last-child{border-radius:0 4px 4px 0}.hydrology-table td,.hydrology-log-table td{padding:12px;border-bottom:1px solid #e6edf7;color:#10213b;font-size:13px}.hydrology-table tbody tr:hover,.hydrology-log-table tbody tr:hover{background:#fafbff}.hydrology-code{color:#52627a;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px}.hydrology-name{font-weight:700}.hydrology-muted{overflow:hidden;color:#6f7f95;text-overflow:ellipsis;white-space:nowrap}.hydrology-water-groups{display:flex;flex-direction:column;gap:14px}.hydrology-town{padding-top:2px}.hydrology-town-title,.hydrology-section-title{margin-bottom:10px;color:#10213b;font-size:14px;font-weight:700}.hydrology-diff{color:#0b9c99;font-weight:700}.hydrology-diff.negative{color:#d97706}.hydrology-log-table{min-width:980px}@media (max-width: 900px){.hydrology-status-card{align-items:flex-start;flex-direction:column}.hydrology-status-actions{width:100%;justify-content:flex-start}.hydrology-api-input{width:100%}}body:has(:is(.attendance-replica-page,.integration-settings,.ops-dashboard)){min-width:0}.app-sider+.ant-layout:has(:is(.attendance-replica-page,.integration-settings,.ops-dashboard)){min-width:0}.app-content:has(:is(.attendance-replica-page,.integration-settings,.ops-dashboard)){min-width:0;overflow-x:auto}.integration-settings,.integration-panel{min-width:0}@media (max-width: 1360px){.ops-dashboard .ops-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-dashboard .ops-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-dashboard .ops-dashboard-grid>:last-child:nth-child(odd){grid-column:1 / -1}.ops-dashboard .ops-dashboard-grid>*,.ops-dashboard .ops-dashboard-bottom-grid>*{min-width:0}}@media (max-width: 900px){.ops-dashboard .ops-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-dashboard .ops-dashboard-grid,.ops-dashboard .ops-dashboard-bottom-grid{grid-template-columns:minmax(0,1fr)}}.access-context{display:flex;align-items:center;gap:12px;min-width:0}.access-tenant-name{font-size:14px;font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-scope-select,.access-company-select{width:208px}.access-panel{background:#fff;border:1px solid #e7edf5;border-radius:8px;padding:24px}.access-toolbar,.access-section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.access-toolbar h2,.access-section-heading h3{margin:0;color:#1f2937;font-size:17px;font-weight:600}.access-toolbar p{margin:8px 0 0;color:#65748a;font-size:13px;line-height:1.6}.access-search{width:280px;flex-shrink:0}.access-muted{color:#65748a;font-size:13px;line-height:1.6}.access-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.access-permission-tags{display:flex;flex-wrap:wrap;gap:8px;line-height:1.7}.access-note{margin-top:24px}.access-grant-row{border:1px solid #e7edf5;border-radius:6px;padding:16px;margin-bottom:16px;background:#fbfcfe}.access-grant-number{font-weight:600;margin-bottom:16px}.access-grant-remove{margin-top:8px;padding-left:0}.access-preview{margin-top:32px}.access-audit-detail{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.8;background:#f6f8fc;padding:20px;border-radius:6px}.access-section-heading>span{color:#65748a;font-size:13px}.platform-data-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:24px}.platform-data-filter{display:flex;flex-direction:column;gap:8px;width:240px;max-width:100%;font-size:13px}.platform-data-filter>span{font-weight:500;color:#65748a}.platform-data-filter .ant-select{width:100%}.platform-data-total{margin-left:auto;padding-bottom:6px;font-variant-numeric:tabular-nums}.platform-data-value{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.platform-data-error{margin-bottom:16px}.platform-data-detail-loading{display:flex;justify-content:center;padding:48px 0}.company-assignment-form .platform-data-filter{width:100%;margin:20px 0 12px}@media (max-width: 800px){.access-form-grid{grid-template-columns:1fr;gap:0}.access-toolbar{flex-wrap:wrap}.access-search{width:100%}}@media (max-width: 600px){.platform-data-panel{padding:16px}.platform-data-filter{width:100%}.platform-data-total{margin-left:0}}.owner-account-guide{margin-bottom:20px}
