.company-page{color:#102033;background:#f4f7fb;min-height:100vh}.company-top{justify-content:space-between;align-items:center;padding:20px 8vw;display:flex}.company-brand{font-size:20px;font-weight:700}.company-hero{padding:48px 8vw 24px}.company-hero h1{margin:0 0 12px;font-size:40px}.company-hero p{color:#4b5d73;max-width:640px;font-size:18px}.company-products{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:12px 8vw 48px;display:grid}.company-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 8px 24px #1020330f}.company-card h2{margin:0 0 8px}.company-login{background:#fff;border-radius:16px;max-width:480px;margin:0 8vw 48px;padding:20px}.factory-login{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.factory-login-box{background:#fffffff5;border-radius:20px;width:min(900px,100%);min-height:460px;display:flex;overflow:hidden;box-shadow:0 20px 40px #0000001f}.factory-login-side{color:#fff;background:linear-gradient(135deg,#4a90e2 0%,#357abd 100%);flex-direction:column;flex:1;justify-content:center;padding:48px 36px;display:flex}.factory-login-side h1{margin:8px 0;font-size:28px}.factory-login-form{flex:1;padding:48px 36px}@media (width<=800px){.factory-login-box{flex-direction:column}}.yisu-portal{color:#222;background:#f5f7fa;flex-direction:column;min-height:100%;display:flex}.yisu-portal-top{background:#fff;border-bottom:1px solid #e8ecf1;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex;box-shadow:0 1px #1028480a}.yisu-portal-brand{align-items:center;gap:12px;display:flex}.yisu-portal-mark{color:#fff;letter-spacing:.02em;background:linear-gradient(145deg,#1456f0,#0b3ea8);border-radius:10px;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.yisu-portal-title{color:#0f2744;font-size:17px;font-weight:700;line-height:1.2}.yisu-portal-sub{color:#8a93a3;margin-top:2px;font-size:12px}.yisu-portal-user{color:#556174;align-items:center;gap:4px;font-size:14px;display:flex}.yisu-portal-main{width:min(1080px,100%);margin:0 auto;padding:36px 24px 56px}.yisu-portal-hello{color:#0f2744!important;margin:0 0 6px!important;font-weight:700!important}.yisu-portal-hint{margin-bottom:28px!important}.yisu-portal-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.yisu-portal-card{appearance:none;text-align:left;cursor:pointer;background:#fff;border:1px solid #e6ebf2;border-radius:14px;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;padding:20px 18px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;box-shadow:0 8px 24px #0f27440a}.yisu-portal-card:hover{border-color:color-mix(in srgb, var(--card-accent,#1456f0) 35%, #e6ebf2);transform:translateY(-2px);box-shadow:0 14px 32px #0f27441a}.yisu-portal-card-icon{color:#fff;background:var(--card-accent,#1456f0);border-radius:12px;place-items:center;width:52px;height:52px;font-size:24px;display:grid}.yisu-portal-card-name{color:#0f2744;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.yisu-portal-card-blurb{color:#6b7485;margin-top:4px;font-size:13px;line-height:1.45}.yisu-portal-card-go{color:var(--card-accent,#1456f0);white-space:nowrap;font-size:13px;font-weight:600}.yisu-portal-badge{color:#9a6b12;background:#fff4d6;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.yisu-portal-empty,.yisu-shell-panel{text-align:center;background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:40px 32px;box-shadow:0 8px 24px #0f27440a}.yisu-shell-main{place-items:center;min-height:calc(100vh - 70px);display:grid}.yisu-shell-icon{margin-bottom:8px;font-size:42px}@media (width<=640px){.yisu-portal-top{padding:12px 16px}.yisu-portal-main{padding:24px 16px 40px}.yisu-portal-card{grid-template-columns:48px 1fr}.yisu-portal-card-go{display:none}}.yisu-vendor{color:#222;background:radial-gradient(1200px 480px at 10% -10%,#1456f014,#0000 55%),linear-gradient(#eef2f7 0%,#f5f7fa 40% 100%);flex-direction:column;min-height:100%;display:flex}.yisu-vendor-top{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-bottom:1px solid #e8ecf1;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex}.yisu-vendor-brand{align-items:center;gap:12px;display:flex}.yisu-vendor-mark{color:#fff;background:linear-gradient(145deg,#1456f0,#0b3ea8);border-radius:10px;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.yisu-vendor-title{color:#0f2744;font-size:17px;font-weight:700;line-height:1.2}.yisu-vendor-sub{color:#8a93a3;margin-top:2px;font-size:12px}.yisu-vendor-user{color:#556174;align-items:center;gap:4px;font-size:14px;display:flex}.yisu-vendor-main{width:min(1200px,100%);margin:0 auto;padding:28px 24px 56px}.yisu-vendor-hero{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.yisu-vendor-hello{color:#0f2744!important;margin:0 0 6px!important;font-weight:700!important}.yisu-vendor-hint{max-width:42rem;margin:0!important}.yisu-vendor-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.yisu-vendor-kpi{background:#fff;border:1px solid #e8ecf1;border-radius:12px;padding:14px 16px}.yisu-vendor-kpi-value{color:#0f2744;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1}.yisu-vendor-kpi-value.warn{color:#c23b22}.yisu-vendor-kpi-value.muted{color:#6b7788}.yisu-vendor-kpi-label{color:#8a93a3;margin-top:6px;font-size:12px}.yisu-vendor-product-bar{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.yisu-vendor-product-chip{color:#556174;background:#fff;border:1px solid #e8ecf1;border-radius:999px;padding:4px 12px;font-size:13px}.yisu-vendor-product-chip strong{color:#1456f0;margin-left:4px}.yisu-vendor-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.yisu-vendor-table{background:#fff;border:1px solid #e8ecf1;border-radius:12px;overflow:hidden}.yisu-vendor-table .ant-table{background:0 0}.yisu-vendor-name{color:#0f2744;font-weight:600}.yisu-vendor-slug{color:#8a93a3;margin-top:2px;font-size:12px}.yisu-vendor-sync{color:#556174;white-space:nowrap;font-size:12px}@media (width<=960px){.yisu-vendor-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.yisu-vendor-hero{flex-direction:column}.yisu-vendor-top{padding:12px 16px}.yisu-vendor-main{padding:20px 16px 40px}}:root{color:#13233b;font-family:Inter,Segoe UI,Microsoft YaHei UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;max-height:100%;overflow:hidden}#root{flex-direction:column;display:flex}.app-keep-shell{flex-direction:column;flex:1;height:100%;min-height:0;max-height:100%;display:none;overflow:hidden}.app-keep-shell.is-active{display:flex}.app-keep-shell.is-active .ant-app{flex:1;min-height:0}body{background:#f5f7fa;margin:0}#root .ant-app{flex-direction:column;height:100%;max-height:100%;display:flex;overflow:hidden}.login-shell{background:#eef3f8;flex:1;place-items:center;min-height:0;padding:16px;display:grid}.login-shell-cloud{background:radial-gradient(1200px 480px at 12% -10%,#1456f024,#0000 60%),radial-gradient(900px 420px at 100% 0,#1ebfae1a,#0000 55%),#f5f7fa}.login-card{width:min(400px,100%)}.admin-shell{flex:1;height:100%;min-height:0;max-height:100%;overflow:hidden}.admin-shell>.ant-layout{min-width:0;height:100%;min-height:0;overflow:hidden}.admin-sider{align-self:stretch;max-height:100%;top:0;box-shadow:2px 0 12px #0a23371f;height:100%!important;position:sticky!important;overflow:auto!important}.admin-brand{color:#fff;letter-spacing:.04em;align-items:center;gap:10px;height:56px;padding:0 16px;font-weight:700;display:flex}.admin-brand-mark{border:2px solid #fff;border-radius:6px;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:13px;display:grid}.admin-header{background:#fff;border-bottom:1px solid #f0f0f0;flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:0 16px;line-height:1.4;display:flex;height:auto!important}.admin-header-left,.admin-header-right{flex-wrap:wrap;align-items:center;display:flex}.admin-header-extra{flex-shrink:0;align-items:center;margin-inline-start:2px;display:inline-flex}.admin-header-filter-actions{flex-shrink:0}.admin-header-filter-actions .ant-btn{color:#0000008c;padding-inline:4px}.admin-shell.is-embedded{background:#f5f7fa;height:100%;min-height:0}.embed-toolbar{justify-content:flex-end;gap:8px;padding:8px 16px 0;display:flex}.admin-content{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding:16px;overflow:auto}.admin-nav-drawer .admin-brand{color:#13233b;height:auto;padding:0}.admin-nav-drawer .admin-brand-mark{border-color:#13233b}.admin-shell.is-narrow{min-height:100dvh}.workshop-shift-card .ant-card-body{padding:12px 16px}.workshop-shift-form{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.workshop-shift-form .ant-form-item{margin-inline-end:0;margin-bottom:0}.workshop-shift-form .workshop-shift-range{flex-wrap:nowrap;align-items:flex-end;gap:6px;display:inline-flex}.workshop-shift-form .workshop-shift-range .ant-form-item-label{padding:0}.workshop-shift-form .workshop-shift-tilde.ant-form-item .ant-form-item-label>label{color:#00000073;justify-content:center;min-width:1em}.workshop-shift-form .ant-picker{width:112px}.workshop-shift-form .ant-picker-input>input{cursor:pointer}.workshop-shift-actions{margin-left:auto}.workshop-shift-hint{margin-top:10px;font-size:12px;line-height:1.5;display:block}.employees-list-card .employee-grid-item{background:#fafafa;border:1px solid #f0f0f0;border-radius:8px;align-items:center;gap:8px;width:100%;min-width:0;padding:8px 10px;display:flex}.employees-list-card .employee-grid-item.is-unbound{background:#fff7e6;border-color:#ffe7ba}.employees-layout.is-phone-landscape{align-items:flex-start}.employees-layout.is-phone-landscape .employees-side-panels{width:200px}.employees-layout.is-phone-landscape .employees-list-card{min-width:0}.employees-list-card .employee-grid-item-main{flex:auto;grid-template-columns:minmax(56px,1.1fr) minmax(48px,.7fr) minmax(64px,1.2fr);align-items:center;column-gap:10px;min-width:0;line-height:1.3;display:grid}.employees-list-card .employee-grid-item-name{text-align:left;min-width:0}.employees-list-card .employee-grid-item-job,.employees-list-card .employee-grid-item-dept{color:#00000073;text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.employees-list-card .employee-grid-item-job{font-variant-numeric:tabular-nums}.employees-list-card .employee-grid-item-actions{flex:none}.manager-list-item{grid-template-columns:minmax(52px,1fr) minmax(56px,1.2fr) auto;align-items:center;column-gap:8px;width:100%;min-width:0;display:grid}.manager-list-item.has-dept{grid-template-columns:minmax(48px,.9fr) minmax(48px,1fr) minmax(48px,1fr) auto}.manager-list-item.has-dept.hide-user{grid-template-columns:minmax(56px,1.1fr) minmax(48px,1fr) auto}.manager-list-item-user,.manager-list-item-name,.manager-list-item-dept{text-align:left;min-width:0}.manager-list-item-name,.manager-list-item-dept{font-size:12px}.manager-list-item-actions{justify-self:end}.machine-form-modal .ant-input-number{width:100%!important}.machine-form-modal .ant-col>.ant-form-item{width:100%}.machine-form-modal .machine-form-collapse-item{flex:0 0 100%!important;width:100%!important;max-width:100%!important}.machine-form-modal .machine-form-collapse{width:100%}.machine-form-modal .machine-form-collapse-item+.machine-form-collapse-item{margin-top:0}.machines-page .ant-pro-table-list-toolbar-left{flex:auto;min-width:0;max-width:100%}.machines-page .ant-pro-table-list-toolbar-container{flex-wrap:nowrap;align-items:center;gap:8px}.machines-page .ant-pro-table-list-toolbar-right{flex-wrap:nowrap;flex-shrink:0;justify-content:flex-end;max-width:none}.machines-page .ant-pro-table-list-toolbar-right>*{flex-wrap:nowrap}.machines-page .ant-pro-table-list-toolbar-title{max-width:100%}.reports-page .reports-tabs{margin-bottom:0}.reports-page .reports-tabs .ant-tabs-nav{margin-bottom:8px}.reports-page .reports-tabs-range{color:#00000073;white-space:nowrap;padding-inline-start:12px;font-size:13px}.reports-filter-desktop .reports-filter-machines{min-width:220px}.reports-filter-desktop .reports-filter-employee{min-width:160px}.reports-filter-desktop .reports-filter-presets,.reports-filter-desktop .reports-filter-dates{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.reports-filter-hide-idle{white-space:nowrap;color:#000000bf;-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.reports-page.is-narrow .reports-filter-stack{flex-direction:column;gap:8px;display:flex}.reports-page.is-narrow .reports-filter-row-primary{align-items:center;gap:6px;min-width:0;display:flex}.reports-page.is-narrow .reports-filter-machines{flex:auto;min-width:0}.reports-page.is-narrow .reports-filter-employee{flex:0 120px;width:120px;min-width:96px;max-width:140px}.reports-page.is-narrow .reports-filter-presets{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.reports-page.is-narrow .reports-filter-presets .ant-btn{width:100%;padding-inline:0}.reports-page.is-narrow .reports-filter-dates{grid-template-columns:1fr 1fr;gap:6px;display:grid}.reports-page.is-narrow .reports-filter-date{width:100%}.reports-page .ant-pro-card .ant-pro-card-body,.reports-page .ant-pro-table-list-toolbar{padding-block:0}.reports-page .ant-table-thead>tr>th{white-space:nowrap}.reports-page .ant-table-thead>tr>th,.reports-page .ant-table-tbody>tr>td,.reports-page .ant-table-summary .ant-table-cell{text-align:center}.reports-page .ant-table-cell .ant-space{justify-content:center}.reports-page .ant-table-cell .ant-space-vertical{align-items:center}.reports-page th.reports-col-fit,.reports-page td.reports-col-fit{white-space:nowrap;width:1%}.reports-page.is-narrow .ant-table-cell-fix-left{z-index:2;background:#fff!important}.reports-page.is-narrow .ant-table-thead>tr>th.ant-table-cell-fix-left{z-index:3}.reports-page.is-narrow .ant-table-summary .ant-table-cell-fix-left,.reports-page.is-narrow .ant-table-tbody>tr.ant-table-row:hover>td.ant-table-cell-fix-left{background:#fafafa!important}.tools-page .ant-table-thead>tr>th,.tools-page .ant-table-tbody>tr>td{text-align:center}.tools-page .ant-table-cell .ant-space{justify-content:center}.tools-page .ant-table-cell .ant-space-vertical{align-items:center}.tools-page .ant-table-wrapper .ant-table{table-layout:fixed!important;width:100%!important}.tools-page .ant-table-tbody .ant-progress{width:100%;max-width:140px;margin-inline:auto}.tools-page th.tools-col-fit,.tools-page td.tools-col-fit{white-space:nowrap;overflow:hidden}.tools-page th.tools-col-share,.tools-page td.tools-col-share{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tools-page .tools-model-cell{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.reports-page{--reports-feed-head:#efe6d6;--reports-feed-bg:#faf6ef;--reports-feed-hover:#f3eadc;--reports-state-head:#d9ebe2;--reports-state-bg:#eef7f2;--reports-state-hover:#e2f0e8;--reports-time-head:#d7e4f4;--reports-time-bg:#eef4fb;--reports-time-hover:#e1ebf6;--reports-rate-head:#eadfd6;--reports-rate-bg:#f8f2ed;--reports-rate-hover:#f0e6dd}.reports-page th.reports-group-feed,.reports-page td.reports-group-feed{background:var(--reports-feed-bg)!important}.reports-page thead th.reports-group-feed{background:var(--reports-feed-head)!important}.reports-page th.reports-group-state,.reports-page td.reports-group-state{background:var(--reports-state-bg)!important}.reports-page thead th.reports-group-state{background:var(--reports-state-head)!important}.reports-page th.reports-group-time,.reports-page td.reports-group-time{background:var(--reports-time-bg)!important}.reports-page thead th.reports-group-time{background:var(--reports-time-head)!important}.reports-page th.reports-group-rate,.reports-page td.reports-group-rate{background:var(--reports-rate-bg)!important}.reports-page thead th.reports-group-rate{background:var(--reports-rate-head)!important}.reports-page .ant-table-tbody>tr.ant-table-row:hover>td.reports-group-feed{background:var(--reports-feed-hover)!important}.reports-page .ant-table-tbody>tr.ant-table-row:hover>td.reports-group-state{background:var(--reports-state-hover)!important}.reports-page .ant-table-tbody>tr.ant-table-row:hover>td.reports-group-time{background:var(--reports-time-hover)!important}.reports-page .ant-table-tbody>tr.ant-table-row:hover>td.reports-group-rate{background:var(--reports-rate-hover)!important}.reports-chart-shift-bar{flex-wrap:wrap;align-items:center;gap:12px 16px;padding:2px 0 4px;display:flex}.reports-chart-shift-label{flex-shrink:0;font-size:13px;line-height:1}.reports-chart-shift-segmented.ant-segmented{background:#0000000a;padding:3px}.reports-chart-shift-segmented .ant-segmented-item{min-width:64px}.reports-chart-shift-segmented .ant-segmented-item-label{min-height:30px;padding:0 18px;line-height:30px}@media (width<=960px){.reports-page .reports-tabs-range{padding-inline-start:0;font-size:12px}.reports-chart-shift-bar{gap:10px 12px}.reports-chart-shift-segmented .ant-segmented-item-label{padding:0 14px}}.machines-table-header{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}.machines-table-filters{flex:auto;min-width:0}.machines-table-filters .ant-space-item:has(.machines-filter-control){min-width:0}.machines-filter-control.machines-filter-code{width:132px;min-width:96px}.machines-filter-control.machines-filter-state{width:112px}.machines-filter-control.machines-filter-department{width:128px}.machines-filter-dropdown.ant-select-dropdown{max-width:min(90vw,360px);width:max-content!important;min-width:0!important}.machines-filter-dropdown .ant-select-item-option-content{white-space:nowrap}.machines-page.is-narrow .machines-table-filters{width:100%}.machines-page.is-narrow .machines-table-filters.ant-space{flex-wrap:wrap;width:100%;display:flex;gap:4px!important}.machines-page.is-narrow .machines-filter-control.machines-filter-code{width:96px;min-width:96px;max-width:96px}.machines-page.is-narrow .machines-filter-control.machines-filter-state{width:88px;min-width:88px;max-width:88px}.machines-page.is-narrow .machines-filter-control.machines-filter-department{width:96px;min-width:96px;max-width:96px}.machines-page.is-narrow .machines-table-filters .ant-space-item:has(.machines-filter-control){flex:none;min-width:0}.machines-page.is-narrow .machines-table-filters .ant-space-item:has(.ant-btn){flex:none}.machines-page.is-narrow .machines-table-filters .ant-btn{padding-inline:4px}.machines-page .ant-table-cell{text-overflow:unset;white-space:normal;overflow:visible}.machine-drag-handle{color:#00000073;cursor:grab;touch-action:none;padding:4px;font-size:16px}.machine-drag-handle:active{cursor:grabbing;color:#1677ff}.machine-drag-handle-disabled{cursor:default;color:#00000040}.machine-row-dragging td{background:#f0f7ff!important}.machine-code-cell{justify-items:start;gap:0;display:grid}.machine-code-cell .ant-btn{height:auto;padding-inline:0}.machine-code-cell.is-inline{white-space:nowrap;flex-direction:row;align-items:center;gap:0;min-width:0;max-width:100%;display:flex}.machine-code-cell.is-inline .machine-code-text{text-overflow:ellipsis;flex:auto;min-width:0;font-size:13px;line-height:1.2;overflow:hidden}.machine-code-cell.is-inline .ant-btn{flex:none;min-width:22px;padding-inline:2px}.machine-shift-staff{color:#000000e0;text-align:left;flex-direction:row;align-items:stretch;gap:4px;font-size:12px;line-height:1.25;display:flex}.machine-shift-names{flex-direction:column;flex:auto;align-items:flex-start;gap:2px;min-width:0;display:flex}.machine-shift-names>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.machine-shift-swap-btn.ant-btn{color:#1677ff;white-space:normal;background:#e6f4ff;border:1px solid #91caff;border-radius:4px;flex:none;justify-content:center;align-self:stretch;align-items:center;width:40px;min-height:0;line-height:1.2;display:inline-flex;height:auto!important;padding:0 4px!important}.machine-shift-swap-btn.ant-btn:hover:not(:disabled){color:#0958d9!important;background:#bae0ff!important;border-color:#69b1ff!important}.machine-shift-swap-btn.ant-btn:disabled{color:#00000040;background:#f5f5f5;border-color:#d9d9d9}.machine-shift-change-label{flex-direction:column;justify-content:center;align-items:center;gap:0;font-size:12px;line-height:1.2;display:inline-flex}.shift-modal-swap-row{justify-content:center;display:flex}.shift-modal-swap-btn.ant-btn{color:#1677ff;background:#e6f4ff;border-color:#91caff;min-width:96px}.shift-modal-swap-btn.ant-btn:hover:not(:disabled){color:#0958d9!important;background:#bae0ff!important;border-color:#69b1ff!important}.alarm-count-cell{justify-items:start;display:grid}.alarm-count-cell .alarm-count-total{height:auto;padding:0;font-size:18px;font-weight:600;line-height:1.2}.machine-state-cell{justify-items:start;gap:4px;max-width:360px;display:grid}.machine-state-alarm{color:#cf1322;word-break:break-word;white-space:pre-wrap;font-size:12px;line-height:1.35}.machine-state-offline-reason{color:#8b98a5;word-break:break-word;white-space:pre-wrap;font-size:12px;line-height:1.35}.alarm-message-multiline{white-space:pre-wrap;word-break:break-word;line-height:1.45}.alarm-detail-modal-root,.alarm-detail-modal .ant-modal-content{color:#000000e0}.alarm-detail-modal .ant-modal-content,.alarm-detail-modal .ant-modal-header,.alarm-detail-modal .ant-modal-body,.alarm-detail-modal .ant-modal-footer{color:#000000e0!important;background:#f0fdf4!important}.alarm-detail-modal .ant-modal-title,.alarm-detail-modal .ant-modal-close,.alarm-detail-modal .ant-modal-close-x,.alarm-detail-modal .ant-typography,.alarm-detail-modal .ant-typography-secondary,.alarm-detail-modal .ant-table,.alarm-detail-modal .ant-table-thead>tr>th,.alarm-detail-modal .ant-table-tbody>tr>td,.alarm-detail-modal .ant-table-cell,.alarm-detail-modal .ant-pagination,.alarm-detail-modal .ant-pagination-total-text,.alarm-detail-modal .ant-pagination-item a,.alarm-detail-modal .ant-pagination-item-link,.alarm-detail-modal .ant-select-selector,.alarm-detail-modal .ant-select-selection-item,.alarm-detail-modal .ant-picker,.alarm-detail-modal .ant-picker input,.alarm-detail-modal .ant-picker-separator,.alarm-detail-modal .ant-input,.alarm-detail-modal .ant-input-affix-wrapper,.alarm-detail-modal .ant-input::placeholder,.alarm-detail-modal .ant-btn-default{color:#000000e0!important}.alarm-detail-modal .ant-typography-secondary{color:#000000a6!important}.alarm-detail-modal .ant-table-thead>tr>th{background:#e8f8ee!important}.alarm-detail-modal .ant-table-tbody>tr>td{background:#f0fdf4!important}.alarm-detail-modal .ant-table-tbody>tr:hover>td{background:#e2f7ea!important}.alarm-detail-modal .ant-picker,.alarm-detail-modal .ant-input,.alarm-detail-modal .ant-input-affix-wrapper,.alarm-detail-modal .ant-select-selector,.alarm-detail-modal .ant-btn-default,.alarm-detail-modal .ant-pagination-item{background:#fff!important;border-color:#d9d9d9!important}.alarm-detail-modal .ant-pagination-item-active{border-color:#00d4ff!important}.alarm-detail-modal .ant-pagination-item-active a{color:#0891b2!important}.alarm-row-motor>td,.alarm-detail-modal .ant-table-tbody>tr.alarm-row-motor>td{color:#1f1f1f!important;background:#ffe1de!important}.alarm-row-motor>td .ant-typography,.alarm-row-motor>td a,.alarm-row-motor>td .ant-btn-link{color:#1f1f1f!important}.alarm-row-motor:hover>td,.alarm-detail-modal .ant-table-tbody>tr.alarm-row-motor:hover>td{color:#1f1f1f!important;background:#ffccc7!important}.machines-page{--machines-detail-bg:#eef6ff;--machines-detail-head:#e3f0fc;--machines-detail-hover:#e4f0fb}.machines-page th.machines-detail-col,.machines-page td.machines-detail-col{background:var(--machines-detail-bg)!important}.machines-page thead th.machines-detail-col{background:var(--machines-detail-head)!important}.machines-page .ant-table-tbody>tr.ant-table-row:hover>td.machines-detail-col{background:var(--machines-detail-hover)!important}.machine-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 0;width:100%;margin:0;display:grid}.machine-metric-grid>div{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:2px 16px;display:flex}.machine-metric-grid>div:not(:nth-child(3n)){border-right:1px solid #94a3b847}.machine-metric-grid>div:nth-child(3n+1){padding-left:0}.machine-metric-grid>div:nth-child(3n){padding-right:0}.machine-metric-grid dt{color:#64748b;flex-shrink:0;margin:0;font-size:12px;line-height:1.3}.machine-metric-grid dd{color:#0f172a;font-variant-numeric:tabular-nums;text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;font-weight:700;line-height:1.3;overflow:hidden}.machine-metric-nc-preview .machine-nc-preview-btn{height:auto;padding-inline:0;font-size:14px;font-weight:600}.nc-preview-body{max-height:min(70vh,640px);overflow:auto}.nc-preview-block+.nc-preview-block{margin-top:16px}.nc-preview-code{color:#e2e8f0;white-space:pre-wrap;word-break:break-all;background:#0f172a;border-radius:6px;max-height:none;margin:8px 0 0;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45}.machine-status-stats .stat-value-tip,.machine-metric-grid .stat-value-tip,.stat-value-tip{cursor:help;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.modal-g-tooltip{white-space:pre-line;line-height:1.45;display:block}.machine-status-stat.stat-tappable{cursor:pointer;-webkit-tap-highlight-color:#00d2ff26}.stat-full-value{word-break:break-all;white-space:pre-wrap;font-weight:700;display:block}.machine-expand-status{color:#8c8c8c;align-items:center;gap:8px;display:flex}.gantt-empty{text-align:center;color:#7ea8c9;padding:24px}.machine-status-card{-webkit-backdrop-filter:blur(14px)saturate(140%);color:#dff4ff;flex-direction:column;height:auto;min-height:0;display:flex;overflow:hidden;box-shadow:inset 0 1px #00d2ff1f,0 8px 24px #00061459;container-type:inline-size;background:linear-gradient(#122a5c94 0%,#08122eb8 100%)!important;border:1px solid #00d2ff38!important}.machine-status-card .ant-card-head{color:#dff4ff;background:0 0;border-top:3px solid #8b98a5;border-bottom-color:#00d2ff1f;flex:0 0 40px;height:40px;min-height:40px;padding:0 10px}.machine-status-card .ant-card-head-wrapper{width:100%}.machine-status-card .ant-card-head-title{white-space:nowrap;padding:0;overflow:hidden}.machine-status-card .ant-card-body{color:#dff4ff;background:0 0;flex-direction:column;flex:auto;gap:2px;min-height:0;padding:6px 10px 0;display:flex;position:relative;overflow:hidden}.machine-status-card.state-Running{--status-glow:34, 197, 94}.machine-status-card.state-Stopped{--status-glow:245, 165, 36}.machine-status-card.state-Alarm{--status-glow:239, 68, 68}.machine-status-card.state-Offline{--status-glow:139, 152, 165}.machine-status-card.state-Running .ant-card-head{background:rgba(var(--status-glow), .12);border-top-color:#22c55e}.machine-status-card.state-Stopped .ant-card-head{background:rgba(var(--status-glow), .12);border-top-color:#f5a524}.machine-status-card.state-Alarm .ant-card-head{background:rgba(var(--status-glow), .12);border-top-color:#ef4444}.machine-status-card.state-Offline .ant-card-head{background:rgba(var(--status-glow), .12);border-top-color:#8b98a5}.machine-status-card.state-Running,.machine-status-card.state-Stopped,.machine-status-card.state-Alarm,.machine-status-card.state-Offline{animation:1.1s ease-in-out infinite machine-status-edge-pulse;border-color:rgba(var(--status-glow), .95)!important;box-shadow:0 0 0 2px rgba(var(--status-glow), .55), 0 0 22px rgba(var(--status-glow), .45), inset 0 1px 0 #ffffff1f, 0 8px 24px #00061459!important}@keyframes machine-status-edge-pulse{0%,to{box-shadow:0 0 0 2px rgba(var(--status-glow), .45), 0 0 12px rgba(var(--status-glow), .25), inset 0 1px 0 #ffffff1a, 0 8px 24px #00061459}50%{box-shadow:0 0 0 3px rgba(var(--status-glow), .95), 0 0 28px rgba(var(--status-glow), .75), inset 0 1px 0 #ffffff38, 0 8px 24px #00061459}}.important-alarm-overlay{z-index:11000;pointer-events:auto;background:#0208188c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.important-alarm-panel{color:#ffe4e6;background:linear-gradient(#300c12f5,#120810f5);border:2px solid #ef4444d9;border-radius:12px;flex-direction:column;gap:10px;width:min(720px,92vw);max-height:min(70vh,640px);padding:16px 18px 14px;animation:1.2s ease-in-out infinite important-alarm-panel-pulse;display:flex;box-shadow:0 0 0 1px #ff505059,0 0 40px #ef444459}@keyframes important-alarm-panel-pulse{0%,to{border-color:#ef4444b3;box-shadow:0 0 0 1px #ff505040,0 0 24px #ef444440}50%{border-color:#ff5a5a;box-shadow:0 0 0 2px #ff64648c,0 0 48px #ff32328c}}.important-alarm-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.important-alarm-panel-head strong{letter-spacing:.06em;color:#fecaca;font-size:20px}.important-alarm-close.ant-btn{color:#fecaca!important}.important-alarm-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.important-alarm-item{text-align:left;width:100%;color:inherit;cursor:pointer;background:#7f1d1d59;border:1px solid #f8717159;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.important-alarm-item:hover{background:#991b1b80;border-color:#fca5a5b3}.important-alarm-code{color:#fff;font-size:16px;font-weight:700}.important-alarm-vendor{color:#fda4af;margin-left:8px;font-size:12px;font-weight:500}.important-alarm-summary{color:#fecdd3;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.alarm-series-trigger{appearance:none;color:#1677ff;cursor:pointer;background:0 0;border:0;margin:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.alarm-series-trigger:hover{color:#0958d9}.alarm-series-popover{min-width:220px;max-height:280px;overflow:auto}.alarm-series-popover table{border-collapse:collapse;width:100%;font-size:12px}.alarm-series-popover th,.alarm-series-popover td{text-align:left;white-space:nowrap;padding:2px 8px}.alarm-series-popover th{color:#00000073;font-weight:600}.machine-status-card-title{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.machine-status-card-title>.ant-tag{flex-shrink:0}.machine-status-card-title-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.machine-status-card-title-right .machine-status-alarm-count{height:auto;padding:0 4px;line-height:1.2}.machine-status-card-identity{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.machine-status-card-identity .ant-typography{flex-shrink:0}.machine-status-note{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;margin-inline-end:0;overflow:hidden}.machine-status-stats{flex:0 auto;grid-template-columns:1fr 1fr;gap:2px 12px;min-height:0;margin:0;display:grid;overflow:hidden}.machine-status-stats div{grid-template-columns:4.6em minmax(0,1fr);align-items:center;gap:4px;display:grid}.machine-status-stats dt{box-sizing:border-box;white-space:nowrap;background:rgba(var(--status-glow), .14);color:rgb(var(--status-glow));border-radius:2px;margin:0;padding:1px 4px;font-size:12px}.machine-status-stats dd{color:#dff4ff;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:11px;font-weight:650;overflow:hidden}.machine-status-stats .stat-compact dd{letter-spacing:-.02em;font-size:10px;font-weight:600}.machine-status-stats .stat-value-only{grid-template-columns:minmax(0,1fr);gap:0}.machine-status-stats .stat-value-only dd{letter-spacing:0;color:#f0fbff;font-size:13px;font-weight:700}.machine-status-card.is-compact .machine-status-stats .stat-value-only dd{font-size:12px}.machine-status-card.is-compact .machine-status-stats .stat-value-only{grid-column:1/-1;grid-template-columns:minmax(0,1fr);gap:0}.machine-status-gauges{box-sizing:border-box;flex:auto;grid-template-columns:repeat(3,minmax(0,1fr));align-content:stretch;place-items:stretch stretch;gap:0 10px;min-height:0;margin:0;padding:2px 4px;display:grid}.machine-status-gauge{color:#7ea8c9;justify-content:center;align-items:flex-end;width:100%;min-width:0;height:100%;min-height:0;font-size:11px;line-height:0;display:flex}.machine-status-gauge .ant-progress{margin-inline-end:0;line-height:0}.machine-status-gauge .ant-progress-circle{line-height:0;display:block}.machine-status-gauge .ant-progress-text{justify-content:center;align-items:center;width:100%!important;display:flex!important}.machine-status-gauge-inner{color:#dff4ff;flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex}.machine-status-gauge-inner strong{font-variant-numeric:tabular-nums;font-size:clamp(11px,4.2cqi,16px);font-weight:700}.machine-status-gauge-inner em{color:#7ea8c9;white-space:nowrap;margin-top:1px;font-size:clamp(9px,3cqi,11px);font-style:normal}.machine-status-override-chips{flex-direction:column;gap:4px;margin:0;padding:2px 0 0;display:flex}.machine-status-override-chip{grid-template-columns:4.5em minmax(0,1fr);align-items:center;gap:6px;min-width:0;display:grid}.machine-status-override-chip-label{color:#7ea8c9;font-size:11px;line-height:1.2}.machine-status-override-chip-value{font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;min-height:22px;padding:2px 8px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.machine-status-card.is-compact .ant-card-head{flex-basis:32px;height:32px;min-height:32px;padding:0 8px}.machine-status-card.is-compact .ant-card-body{gap:3px;padding:4px 8px 6px}.machine-status-card.is-compact .machine-status-stats{gap:1px 8px}.machine-status-card.is-compact .machine-status-stats div{grid-template-columns:4.2em minmax(0,1fr);gap:4px}.machine-status-card.is-compact .machine-status-stats dt,.machine-status-card.is-compact .machine-status-stats dd{font-size:10px}.machine-status-footer.is-compact{justify-content:flex-end;margin-top:2px}.machine-status-strips{display:none}.machine-status-updated{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;margin-top:0;font-size:12px;line-height:1.3;display:block;overflow:hidden}.machine-status-footer{flex:none;justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-top:auto;padding-top:2px;display:flex}.machine-status-footer-alarms-only{z-index:2;pointer-events:none;justify-content:flex-end;margin:0;padding:0;position:absolute;bottom:2px;right:6px}.machine-status-footer-alarms-only .machine-status-alarm-count{pointer-events:auto}.machine-status-alarm-count{flex:none;height:auto;padding:0 2px;font-size:12px;line-height:1.3;color:#7ec8ff!important}.machine-status-alarm-count:hover{color:#b7e4ff!important}.machine-status-alarm-count-important{font-weight:600;color:#ef4444!important}.machine-status-alarm-count-important:hover{color:#f87171!important}.override-strip{color:#7ea8c9;grid-template-columns:4.6em minmax(0,1fr);align-items:center;gap:8px;font-size:11px;display:grid}.override-strip-bare{grid-template-columns:minmax(0,1fr);gap:0;height:100%;min-height:0}.override-strip-bare .override-track{border-radius:2px;height:100%}.override-track{cursor:crosshair;background:#040c208c;border:1px solid #00d2ff24;border-radius:3px;height:14px;position:relative;overflow:hidden}.override-bar{min-width:2px;position:absolute;inset:0 auto 0 0}.telemetry-hover-tip{gap:2px 0;min-width:220px;margin:0;display:grid}.telemetry-hover-tip>div{grid-template-columns:5.6em minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.telemetry-hover-tip dt{color:#7ea8c9;margin:0;font-size:12px}.telemetry-hover-tip dd{color:#dff4ff;font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:650}.board-timeline-hover-tip{z-index:11000;pointer-events:none;color:#dff4ff;background:#08122ef5;border:1px solid #00d2ff47;border-radius:4px;max-width:360px;padding:8px 10px;position:fixed;box-shadow:0 8px 24px #00061473}.gantt-chart-hitwrap{width:100%;min-width:0;min-height:0;position:relative}.gantt-chart-hitlayer{z-index:2;cursor:crosshair;position:absolute;inset:0}.board-hover-tooltip .ant-tooltip-inner{background:#08122ef5;border:1px solid #00d2ff47;max-width:360px;padding:8px 10px}.board-hover-tooltip{z-index:11000!important}.board-echarts-tooltip{max-width:360px;z-index:11000!important}.board-shell{--board-cyan:#00d4ff;--board-muted:#7ea8c9;--board-text:#dff4ff;--board-line:#00d2ff33;isolation:isolate;height:100%;min-height:0;color:var(--board-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(72% 58% at 50% 42%,#0084ff29,#0000 64%),radial-gradient(720px 280px at 12% 0,#00c4ff14,#0000 52%),radial-gradient(640px 260px at 92% 100%,#1446b424,#0000 55%),#060b1c;flex:1;grid-template-rows:auto minmax(0,6fr) minmax(0,4fr);display:grid;position:relative}.board-shell:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#00b4ff0a 1px,#0000 1px),linear-gradient(90deg,#00b4ff0a 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(68% 58% at 50% 42%,#000 18%,#0000 78%);mask-image:radial-gradient(68% 58% at 50% 42%,#000 18%,#0000 78%)}.board-shell>*{z-index:1;min-width:0;position:relative}.board-shell>.board-portal-root{z-index:3000;pointer-events:none;min-width:0;position:absolute;inset:0;overflow:visible}.board-portal-root>*{pointer-events:auto}.board-portal-root>.board-timeline-hover-tip{pointer-events:none}.board-shell.board-kind-machines{grid-template-rows:auto auto minmax(280px,1fr)}.board-shell.board-kind-machines.board-layout-cards,.board-shell.board-kind-machines.board-layout-gantt{grid-template-rows:auto minmax(0,1fr)}.board-shell.board-kind-tools{grid-template-rows:auto minmax(0,6fr) minmax(0,4fr)}.board-header{border-bottom:1px solid var(--board-line);-webkit-backdrop-filter:blur(16px)saturate(130%);background:#060e24b8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:4px 16px;display:flex}.board-brand,.board-header-meta{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.board-brand{flex:none}.board-header-title,.board-brand h1{letter-spacing:.08em;color:var(--board-text);text-shadow:0 0 18px #00d4ff2e;margin:0;font-size:16px}.board-brand span,.board-header-meta span,.board-header-meta time{color:var(--board-muted);font-variant-numeric:tabular-nums;font-size:12px}.board-department-filter.ant-select .ant-select-selector{color:var(--board-text)!important;background:#0a1824d9!important;border-color:#549ec459!important}.board-department-filter.ant-select .ant-select-selection-item{color:var(--board-text)!important}.board-department-filter.ant-select .ant-select-arrow{color:var(--board-muted)!important}.board-machine-filter.ant-select .ant-select-selector{color:var(--board-text)!important;background:#0a1824d9!important;border-color:#549ec459!important}.board-machine-filter.ant-select .ant-select-selection-item{color:var(--board-text)!important;background:#00a0ff2e!important;border-color:#00d2ff47!important}.board-machine-filter.ant-select .ant-select-selection-placeholder,.board-machine-filter.ant-select .ant-select-arrow,.board-machine-filter.ant-select .ant-select-clear{color:var(--board-muted)!important}.board-machine-filter-all{width:100%;color:var(--board-cyan,#00d4ff);text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #00d2ff24;margin:0;padding:6px 12px;font-size:12px;display:block}.board-machine-filter-all:hover{background:#00a0ff1f}.board-layout-switch.ant-segmented{color:var(--board-muted);background:#0a1824d9}.board-layout-switch.ant-segmented .ant-segmented-item-selected{color:var(--board-text);background:#00a0ff38}.board-hide-offline{flex:none}.board-hide-offline .ant-typography{margin:0}.board-build-stamp{letter-spacing:.02em;background:#00a0ff1f;border:1px solid #00d4ff59;border-radius:999px;padding:1px 8px;color:#9fe9ff!important;font-size:11px!important}.board-brand .brand-mark{border-color:var(--board-cyan);color:var(--board-cyan);border:2px solid;border-radius:6px;place-items:center;width:22px;height:22px;font-size:12px;display:grid;box-shadow:0 0 12px #00d4ff73}.board-header-meta{margin-left:auto}.board-speed{color:var(--board-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.board-shell:fullscreen{width:100%;height:100%;min-height:100%}.board-shell .ant-btn-default,.board-shell .ant-btn-background-ghost{color:var(--board-text);background:#00b4ff14;border-color:#00d2ff61}.board-shell .ant-btn-default:hover,.board-shell .ant-btn-background-ghost:hover{color:#fff;border-color:var(--board-cyan);background:#00d4ff2e}.service-health{white-space:nowrap;cursor:pointer;align-items:center;gap:8px;font-weight:560;display:flex}.service-health i{background:#e2a318;border-radius:50%;flex-shrink:0;width:8px;height:8px}.service-health.connected i{background:#22c55e}.service-health.disconnected i{background:#ef4444}.collection-health-details{min-width:220px;margin:0;padding:0;list-style:none}.collection-health-details li{padding:2px 0}.collection-health-details li[data-status=ok]{color:#15803d}.collection-health-details li[data-status=failed]{color:#b91c1c}.board-cards{flex-direction:column;gap:8px;min-height:0;padding:8px 12px;display:flex;overflow:hidden}.board-kind-machines .board-cards{height:auto;min-height:auto;overflow:visible}.board-layout-cards .board-cards{height:100%;min-height:0;overflow:hidden}.board-card-stage{flex-direction:column;flex:0 auto;gap:8px;min-height:0;display:flex}.board-kind-machines .board-card-stage{flex:none;min-height:auto}.board-layout-cards .board-card-stage{flex:auto;height:100%;min-height:0}.board-card-scroller{scrollbar-color:#7ea8c947 #060e2433;flex:1;gap:12px;min-height:0;padding-bottom:4px;display:flex;overflow:auto hidden}.board-card-scroller::-webkit-scrollbar{width:6px;height:6px}.board-card-scroller::-webkit-scrollbar-thumb{background:#7ea8c947;border-radius:3px}.board-card-scroller::-webkit-scrollbar-track{background:0 0}.board-kind-machines .board-card-scroller{flex:none;align-items:stretch;min-height:auto;overflow-y:visible}.board-layout-cards .board-card-scroller,.board-layout-cards .board-card-scroller-grid{flex:auto;align-items:stretch;gap:0;height:100%;min-height:0;overflow:auto hidden}.board-cards-page{box-sizing:border-box;flex:0 0 100%;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%;min-width:100%;height:100%;min-height:0;padding:2px 0 4px;display:grid}.board-card{box-sizing:border-box;flex:0 0 calc(25% - 9px);align-self:stretch;width:calc(25% - 9px);min-width:calc(25% - 9px);max-width:calc(25% - 9px);display:flex}.board-layout-cards .board-card{flex:unset;width:auto;min-width:0;max-width:none;height:100%;min-height:0;overflow:hidden}.board-card .ant-card{flex:auto;width:100%;height:auto;min-height:0}.board-layout-cards .board-card .ant-card{flex-direction:column;height:100%;display:flex;overflow:hidden}.board-card .ant-card.machine-status-card{flex-direction:column;display:flex}.board-card-loading{border:1px solid var(--board-line);background:linear-gradient(90deg,#0a18388c 25%,#00a0ff29 50%,#0a18388c 75%) 0 0/200% 100%;border-radius:6px;min-height:260px;animation:1.3s infinite shimmer}.board-empty{text-align:center;color:var(--board-muted);padding:28px}.board-gantt{--gantt-rate-h:11px;--gantt-state-h:calc(var(--gantt-rate-h) * 3);--gantt-load-h:32px;--gantt-track-gap:2px;--gantt-row-pad:6px;border-top:1px solid var(--board-line);-webkit-backdrop-filter:blur(14px)saturate(130%);touch-action:pan-y;background:#08122e9e;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:6px 16px 8px;display:grid}.board-gantt-toolbar{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-bottom:4px;display:flex}.board-shift-filter.ant-segmented{background:#060e248c;border:1px solid #00d2ff33}.board-shift-filter .ant-segmented-item-selected{color:#dff4ff;background:#00d4ff2e}.board-zoom-controls{background:#060e248c;border:1px solid #00d2ff33;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;display:inline-flex}.board-zoom-btn{color:#9fdfff;cursor:pointer;background:#00a0ff1f;border:0;border-radius:3px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:11px;line-height:1;display:inline-flex}.board-zoom-btn:hover:not(:disabled){background:#00a0ff38}.board-zoom-btn:disabled{opacity:.35;cursor:default}.board-zoom-label{text-align:center;color:#dff4ff;font-variant-numeric:tabular-nums;min-width:2.2em;font-size:12px}.gantt-pan-scroll{scrollbar-gutter:stable;background:#040c2073;border:1px solid #00d2ff29;border-radius:3px;flex:none;height:10px;margin:0 0 4px 88px;overflow:auto hidden}.gantt-pan-scroll-inner{pointer-events:none;height:1px}.board-gantt-title{color:var(--board-cyan);align-items:center;gap:8px;display:flex}.board-gantt-title h2{letter-spacing:.04em;text-shadow:0 0 12px #00d4ff47;margin:0;font-size:15px}.board-legend{color:var(--board-muted);flex-wrap:wrap;gap:8px 14px;margin-left:auto;font-size:12px;display:flex}.board-legend span{align-items:center;gap:6px;display:inline-flex}.board-legend-sep{background:#00d2ff47;width:1px;height:12px;margin:0 2px}.state-color{border-radius:2px;width:10px;height:10px;display:inline-block}.gantt-board{flex-direction:column;height:100%;min-height:0;display:flex}.gantt-board .gantt-row-tracks,.gantt-board .gantt-axis-row>:not(.gantt-row-label),.gantt-board .gantt-pan-scroll{touch-action:none;cursor:grab}.board-gantt.is-gesturing .gantt-row-tracks,.board-gantt.is-gesturing .gantt-axis-row>:not(.gantt-row-label),.board-gantt.is-gesturing .gantt-pan-scroll{cursor:grabbing}.board-gantt.is-gesturing .gantt-chart-hitlayer,.board-gantt.is-gesturing .override-track{pointer-events:none}.gantt-axis-row,.gantt-row{grid-template-columns:88px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.gantt-axis-row{scrollbar-gutter:stable;flex:none;align-items:center;overflow-y:hidden}.gantt-row{min-height:calc(var(--gantt-state-h) + var(--gantt-rate-h) * 2 + var(--gantt-track-gap) * 2 + var(--gantt-row-pad) * 2);height:auto;padding:var(--gantt-row-pad) 0;box-sizing:border-box;border-bottom:1px solid #00d2ff24;flex:none}.gantt-row-odd{background:#00a0ff0a}.gantt-row-even{background:#040c2047}.gantt-row-tracks{gap:var(--gantt-track-gap);flex-direction:column;min-width:0;min-height:0;display:flex}.gantt-track-state{height:var(--gantt-state-h);flex:0 0 var(--gantt-state-h);min-height:var(--gantt-state-h);position:relative;overflow:hidden}.gantt-track-rate{height:var(--gantt-rate-h);flex:0 0 var(--gantt-rate-h);min-height:var(--gantt-rate-h);overflow:hidden}.gantt-track-load{height:var(--gantt-load-h);flex:0 0 var(--gantt-load-h);min-height:var(--gantt-load-h);background:#040c2073;border:1px solid #00d2ff1f;border-radius:2px;position:relative;overflow:hidden}.gantt-track-load .echarts-for-react{min-width:0;height:100%!important;min-height:0!important}.override-strip-bare,.override-strip-bare .override-track{overflow:hidden}.gantt-track-state .echarts-for-react,.gantt-track-state .gantt-chart-hitwrap,.gantt-row .echarts-for-react{min-width:0;height:100%!important;min-height:0!important}.gantt-row-label{align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.gantt-row-expand{color:#9fdfff;cursor:pointer;background:#00a0ff1f;border:1px solid #00d2ff47;border-radius:3px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:10px;line-height:1;display:inline-flex}.gantt-row-expand:hover{color:#dff4ff;background:#00a0ff38}.gantt-row-expand:disabled{opacity:.35;cursor:default}.gantt-axis-label{justify-content:flex-start}.gantt-expand-all{background:#00a0ff2e;border-color:#00d2ff6b;width:20px;height:20px;font-size:11px}.gantt-row-label strong{color:#dff4ff;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:12px;font-weight:650;display:block;overflow:hidden}.gantt-row-stage{flex-direction:column;flex:1;min-height:0;display:flex}.gantt-row-scroller{scrollbar-gutter:stable;scrollbar-color:#7ea8c947 #060e2433;flex-direction:column;flex:1;gap:0;min-height:0;display:flex;overflow:hidden auto}.gantt-row-scroller::-webkit-scrollbar{width:6px;height:6px}.gantt-row-scroller::-webkit-scrollbar-thumb{background:#7ea8c947;border-radius:3px}.gantt-row-scroller::-webkit-scrollbar-track{background:0 0}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=960px){.admin-content{min-width:0;padding:12px}#root{min-height:100dvh}.admin-content .ant-pro-table-list-toolbar{flex-direction:column;align-items:stretch}.admin-content .ant-pro-table-list-toolbar-container{flex-direction:column;align-items:stretch;flex-wrap:wrap!important}.admin-content .ant-pro-table-list-toolbar-right{flex-wrap:wrap!important;justify-content:flex-start!important;max-width:100%!important;margin-inline-start:0!important}.admin-content .ant-pro-table-list-toolbar-right>*{flex-wrap:wrap!important}.admin-content .ant-table-wrapper .ant-table{font-size:13px}.admin-content .ant-card-extra{max-width:100%;margin-inline-start:0}.machines-page .ant-pro-table-list-toolbar,.machines-page .ant-pro-table-list-toolbar-container{flex-direction:column;align-items:stretch}.machines-page.is-narrow .ant-pro-table-list-toolbar-right:empty{display:none}.machines-page.is-narrow .ant-pro-table-list-toolbar-right:not(:has(*)){display:none}.machines-page .ant-pro-table-list-toolbar-right{margin-inline-start:0!important}.machines-page .ant-table-wrapper .ant-table{font-size:13px}.machine-state-cell{max-width:none}.machines-page.is-narrow .ant-table{table-layout:fixed;width:100%}.machines-page.is-narrow .machine-code-cell.is-inline{max-width:100%}.machines-page.is-narrow .machine-code-cell .ant-btn{min-width:22px}.machines-page.is-narrow .machine-staff-col,.machines-page.is-narrow td.machine-staff-col{width:auto!important}.machines-page.is-narrow .machine-shift-staff{width:100%;min-width:0}.machines-page.is-narrow .machine-shift-names{flex:auto;min-width:0}.machines-page.is-narrow .machine-shift-names>span{text-overflow:ellipsis;overflow:hidden}.machines-page.is-narrow .machine-shift-swap-btn.ant-btn{flex:none;width:36px}.board-shell{height:100dvh;min-height:100dvh;max-height:100dvh}.board-shell.is-narrow.board-kind-machines,.board-shell.board-kind-machines.board-layout-cards,.board-shell.board-kind-machines.board-layout-gantt{grid-template-rows:auto minmax(0,1fr)}.board-header{gap:6px 8px;padding:6px 10px}.board-header.is-narrow{flex-direction:column;align-items:stretch}.board-header.is-narrow .board-brand,.board-header.is-narrow .board-header-meta{gap:6px 8px;width:100%}.board-header.is-narrow .board-header-meta{justify-content:flex-start;margin-left:0}.board-header.is-narrow .board-layout-switch{flex:none}.board-brand h1,.board-header-title{font-size:14px}.board-layout-cards .board-cards{height:100%;min-height:0;overflow:hidden}.board-layout-cards .board-card-stage{height:100%;min-height:0}.board-layout-cards .board-card-scroller,.board-layout-cards .board-card-scroller-grid{-webkit-overflow-scrolling:touch;align-content:start;overflow:hidden auto}.board-layout-cards .board-cards-page{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;align-items:start;gap:8px;height:auto;min-height:0;overflow:visible}.board-layout-cards .board-card{flex:unset;align-self:start;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;overflow:visible}.board-layout-cards .board-card .ant-card,.board-layout-cards .board-card .ant-card.machine-status-card{height:auto;min-height:0;overflow:visible}.board-layout-cards .machine-status-card .ant-card-body{flex:none;overflow:visible}.board-layout-cards .machine-status-stats{flex:none;min-height:auto;overflow:visible}.board-layout-cards .machine-status-gauges{display:none}.board-card{flex:0 0 100%;width:100%;min-width:100%;max-width:100%}.board-layout-cards .board-card{flex:unset;width:auto;min-width:0;max-width:none}.board-gantt-toolbar{gap:8px 10px}.board-gantt{-webkit-overflow-scrolling:touch;min-height:0;overflow:auto}}@media (width<=960px) and (orientation:landscape){.board-layout-cards .board-cards-page{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=900px) and (width<=960px) and (orientation:landscape){.board-layout-cards .board-cards-page{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=720px){.board-card{flex:0 0 100%;width:100%;min-width:100%;max-width:100%}.board-layout-cards .board-card{flex:unset;width:auto;min-width:0;max-width:none}.board-layout-cards .machine-status-stats,.machine-status-stats,.board-layout-cards .machine-status-card.is-compact .machine-status-stats{grid-template-columns:1fr}.board-brand h1,.board-header-title{font-size:14px}.admin-header{padding:8px 12px}.machine-metric-grid{grid-template-columns:1fr}.machine-metric-grid>div{border-right:none;padding-inline:0}}.tool-board-main{flex-direction:column;min-height:0;padding:8px 12px 4px;display:flex;overflow:hidden}.tool-board-body{flex:1;grid-template-columns:minmax(0,1fr) 300px;gap:12px;min-height:0;display:grid}.tool-machine-cards-stage{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.tool-machine-cards-scroller{scrollbar-color:#7ea8c947 #060e2433;flex:1;gap:0;min-width:0;min-height:0;display:flex;overflow:auto hidden}.tool-machine-cards-scroller::-webkit-scrollbar{height:6px}.tool-machine-cards-scroller::-webkit-scrollbar-thumb{background:#7ea8c947;border-radius:3px}.tool-machine-cards-page{flex:0 0 100%;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;min-width:100%;min-height:0;display:grid}.tool-machine-card{border:1px solid var(--board-line);background:#08122eb8;border-radius:8px;flex-direction:column;min-height:0;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #00d4ff0a}.tool-machine-card header{border-bottom:1px solid var(--board-line);align-items:center;gap:8px;padding:8px 10px 6px;display:flex}.tool-machine-card header strong{letter-spacing:.04em;font-size:15px}.tool-machine-card header span{color:var(--board-muted);margin-left:auto;font-size:12px}.tool-machine-card-list{scrollbar-color:#7ea8c947 #060e2433;flex-direction:column;flex:1;gap:6px;min-height:0;padding:6px 8px 8px;display:flex;overflow-y:auto}.tool-row{grid-template-columns:minmax(88px,.9fr) minmax(0,1.4fr);align-items:center;gap:8px;display:grid}.tool-row-id{flex-direction:column;min-width:0;display:flex}.tool-row-id strong{font-size:13px}.tool-row-id span{color:var(--board-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.tool-machine-card .ant-tag,.tool-rank-item .ant-tag{margin-inline-end:0;padding:0 6px;font-size:11px;line-height:18px}.tool-row-empty,.tool-board-empty,.tool-rank-empty{color:var(--board-muted);text-align:center;padding:20px 8px}.tool-life-meter{color:var(--board-muted);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) 42px 64px;align-items:center;gap:6px;font-size:11px;display:grid}.tool-life-meter.compact{grid-template-columns:minmax(0,1fr) 40px 58px}.tool-life-bar{background:#040c208c;border:1px solid #00d2ff24;border-radius:3px;height:8px;overflow:hidden}.tool-life-bar>i{min-width:0;height:100%;display:block}.tool-life-bar.ok>i{background:#22c55e}.tool-life-bar.warn>i{background:#f5a524}.tool-life-bar.critical>i{background:#ef4444}.tool-life-bar.unknown>i{background:#64748b;width:0}.tool-rank-panel,.tool-chart-panel{border:1px solid var(--board-line);background:#08122eb8;border-radius:8px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.tool-panel-title{border-bottom:1px solid var(--board-line);justify-content:space-between;align-items:baseline;gap:8px;padding:8px 12px 6px;display:flex}.tool-panel-title h2{color:var(--board-cyan);letter-spacing:.04em;text-shadow:0 0 12px #00d4ff47;margin:0;font-size:14px}.tool-panel-title span{color:var(--board-muted);font-size:11px}.tool-rank-list{scrollbar-color:#7ea8c947 #060e2433;flex-direction:column;gap:6px;margin:0;padding:6px 8px 8px;list-style:none;display:flex;overflow-y:auto}.tool-rank-item{background:#040c2059;border-radius:6px;grid-template-columns:22px minmax(0,.9fr) minmax(0,1.2fr) auto;align-items:center;gap:8px;padding:6px;display:grid}.tool-rank-index{background:#94a3b840;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.tool-rank-index.rank-1{color:#fff;background:#ef4444}.tool-rank-index.rank-2{color:#fff;background:#f97316}.tool-rank-index.rank-3{color:#08122e;background:#f5a524}.tool-rank-copy{flex-direction:column;min-width:0;display:flex}.tool-rank-copy strong{font-size:12px}.tool-rank-copy em{color:var(--board-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-style:normal;overflow:hidden}.tool-board-charts{border-top:1px solid var(--board-line);background:#08122e9e;grid-template-columns:1fr 1.2fr;gap:12px;min-height:0;padding:6px 12px 10px;display:grid}.tool-chart-panel .echarts-for-react{flex:1;min-height:0}.board-kind-switch.ant-segmented{width:max-content;min-width:0}.board-kind-switch .ant-segmented-group{width:max-content;display:inline-flex}.board-kind-switch .ant-segmented-item{flex:none}@media (width<=1100px){.tool-board-body{grid-template-columns:1fr}.tool-rank-panel{max-height:220px}.tool-board-charts{grid-template-columns:1fr}}@media (width<=720px){.tool-machine-cards-page{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.tool-row{grid-template-columns:1fr}}.tool-life-current-row>td{background:#e6f4ff!important}.tool-life-current-row>td.ant-table-cell-fix-left{box-shadow:inset 3px 0 #1677ff}.tool-life-current-tag.ant-tag{color:#1677ff;background:#fff;border-color:#91caff;margin-inline-end:0}
