body{margin:0;background:#071426}*{box-sizing:border-box}.login-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;background:linear-gradient(rgba(24,65,105,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(24,65,105,.16) 1px,transparent 1px),radial-gradient(circle at 50% 18%,rgba(30,137,199,.16),transparent 42%),linear-gradient(145deg,#07111f,#0b1d34 48%,#06101f);background-size:62px 62px,62px 62px,auto,auto}.login-shell{width:min(518px,calc(100vw - 32px));padding:38px 42px 28px;border:1px solid rgba(41,165,230,.34);border-radius:16px;background:#051225eb;box-shadow:0 26px 80px #00000061,inset 0 1px #ffffff0a}.login-brand{margin:0 0 28px;padding:0;text-align:center;border:0;border-radius:0;background:transparent}.portal-title{display:block;color:#21d3ff;font-size:12px;font-weight:700;letter-spacing:8px;line-height:1}.slogan{margin:16px 0 6px!important;color:#fff!important;font-family:"'Microsoft YaHei'",Segoe UI,sans-serif!important;font-size:clamp(26px,4.2vw,31px)!important;font-weight:900!important;letter-spacing:0;line-height:1.1!important;text-shadow:0 0 18px rgba(80,201,255,.24);white-space:nowrap}.portal-subtitle{display:block;color:#7f93aa;font-size:11px;letter-spacing:3px;line-height:1.4}.login-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:26px}.login-badge{display:flex;align-items:center;gap:12px;min-height:60px;padding:11px 14px;border:1px solid rgba(28,139,209,.55);border-radius:8px;background:#082342d1;color:#23c9f2}.login-badge .anticon{font-size:20px}.login-badge span{display:grid;gap:2px}.login-badge .ant-typography{color:#6e8fab;font-size:11px;line-height:1}.login-badge strong{color:#fff;font-size:14px}.login-form .ant-form-item{margin-bottom:16px}.login-form .ant-form-item-label{display:none}.login-form .ant-input-affix-wrapper{height:40px;border:1px solid rgba(28,139,209,.58);border-radius:7px;background:#061f3ed6;color:#dceeff}.login-form .ant-input,.login-form .ant-input-password input{background:transparent;color:#eaf7ff}.login-form .ant-input::placeholder,.login-form .ant-input-password input::placeholder{color:#6685a5}.login-form .anticon{color:#1d91c7}.login-form .ant-btn-primary{height:44px;margin-top:4px;border:0;border-radius:7px;background:linear-gradient(90deg,#24c6ec,#087ec7);box-shadow:0 12px 30px #16b8e842;font-size:15px;font-weight:700;letter-spacing:12px;text-indent:12px}.login-links{display:grid;justify-items:center;gap:8px;margin:14px 0 2px}.login-links button{padding:0;border:0;background:transparent;color:#28b8e5;cursor:pointer;font:inherit;font-size:12px}.login-footer{display:flex;align-items:center;justify-content:center;gap:14px;margin:20px auto 0;color:#4e6680;font-size:12px}.login-footer a{color:#4e6680;text-decoration:none}.shell{height:100vh;min-height:100vh;width:100%;overflow:hidden}.main-layout{min-height:0;min-width:0;max-width:100%;overflow:hidden}.sidebar{background:#17201b!important;overflow:hidden}.sidebar .ant-layout-sider-children{display:flex;flex-direction:column;height:100%;min-height:0}.sidebar-menu-scroll{min-height:0;flex:1 1 auto;overflow-x:hidden;overflow-y:auto;scrollbar-color:#93a7b5 #071b2b;scrollbar-width:thin}.sidebar-menu-scroll::-webkit-scrollbar{width:8px}.sidebar-menu-scroll::-webkit-scrollbar-thumb{border-radius:8px;background:#496172}.sidebar-menu-scroll .ant-menu{min-height:100%}.sidebar-resize-handle{position:relative;z-index:2;flex:0 0 8px;margin:0 -4px;cursor:col-resize;touch-action:none}.sidebar-resize-handle:after{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#e3e8e0;content:"";transform:translate(-50%)}.sidebar-resize-handle:hover:after,.sidebar-resize-handle:active:after{width:2px;background:#16b8e8}.sidebar-title{height:64px;display:flex;align-items:center;padding:0 24px;color:#fff;font-size:20px;font-weight:900}.topbar{display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e3e8e0;padding:0 24px}.mobile-menu-button{display:none}.mobile-nav-drawer .ant-drawer-body{padding:0;background:#071b2b}.mobile-nav-drawer .ant-menu{min-height:100%}.content{min-height:0;min-width:0;max-width:100%;padding:24px;overflow-x:hidden;overflow-y:auto}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.app-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:18px 0}.app-card .ant-card-body{display:grid;gap:10px;min-height:132px}.app-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#e8f5f2;color:#008f7f;font-size:20px}.workspace-apps{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px}.workspace-app-card{display:grid;justify-items:start;gap:10px;min-height:132px;padding:16px;border:1px solid #e4ecef;border-radius:8px;background:#fff;color:#1d252b;cursor:pointer;text-align:left}.workspace-app-card:disabled{cursor:not-allowed;opacity:.58}.workspace-app-card strong{font-size:16px}.workspace-app-card span:last-child{color:#6a7d88;font-size:12px}.admin-section{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:18px}.directory-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.crud-toolbar{display:grid;gap:14px;margin-bottom:18px}.crud-toolbar .ant-input-affix-wrapper{max-width:560px}.member-detail,.excel-import{display:grid;gap:12px}.hr-card .ant-card-body{padding-top:10px}.hr-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}.hr-scan-panel{display:grid;align-content:start;gap:12px;padding:14px;border:1px solid #e6eef2;border-radius:6px;background:#f8fbfc}.hr-scan-panel .ant-upload,.hr-scan-panel .ant-btn{width:100%}.hr-preview{padding:12px;border-radius:6px;background:#eef9ff;border:1px solid #cdefff}.hr-preview span{display:block;color:#5f7380;font-size:12px}.hr-preview strong{display:block;margin-top:3px;color:#0793c8;font-size:22px}.hr-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}.hr-wide{grid-column:span 3}.hr-query{margin-bottom:14px;align-items:center;width:100%}.hr-query-field{width:150px}.hr-query-id-card{width:220px}.hr-status-filter{width:140px}.hr-qr-toolbar{padding:12px;border:1px solid #d9e2e8;background:#f7fafb}.hr-selection-summary{margin:2px 0 10px;color:#52626d;font-size:13px;display:flex;gap:16px}.hr-selection-summary strong{color:#103f55}.hr-agent-status{margin-left:auto;padding:2px 9px;border-radius:999px;font-weight:600}.hr-agent-status.is-online{color:#237804;background:#f6ffed;border:1px solid #b7eb8f}.hr-agent-status.is-offline{color:#8c8c8c;background:#fafafa;border:1px solid #d9d9d9}.hr-submit-actions{display:flex}.hr-uninitialized-warning{color:#cf1322;font-size:13px}.employee-no-sequence-rows{display:grid;gap:12px}.employee-no-sequence-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) auto;align-items:end;gap:10px;padding:10px;border:1px solid #e6edf0;border-radius:6px}.employee-no-sequence-status{display:grid;gap:4px}.employee-no-sequence-status>span{color:#5f7380;font-size:12px}.employee-no-sequence-row .ant-form-item{margin-bottom:0}.hr-workstation-admin{display:grid;gap:14px}.hr-workstation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #d9e8ee;border-radius:8px;background:linear-gradient(180deg,#f8fcfd,#f1f8fb)}.hr-workstation-toolbar>div{display:grid;gap:3px}.station-qr-layout{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:18px}.station-qr-panel,.station-attendance-panel{min-width:0}.station-qr-control,.station-qr-control .ant-select{width:100%}.station-qr-display{display:grid;gap:8px;justify-items:center;padding:18px;border:1px solid #d8edf3;border-radius:12px;background:linear-gradient(180deg,#f8fcff,#eef9fd);text-align:center}.station-qr-display h3{margin:0!important}.station-qr-image-frame{display:grid;place-items:center;width:min(100%,320px);min-height:320px;padding:14px;border:1px solid #d7e7ed;border-radius:12px;background:#fff}.station-qr-image-frame img{width:100%;max-width:292px;height:auto;display:block}.station-attendance-toolbar{width:100%;margin-bottom:14px;padding:12px;border:1px solid #d9e2e8;background:#f7fafb}.public-attendance-page{min-height:100vh;padding:24px;background:linear-gradient(135deg,#071824,#0f2b3f 48%,#f3f6f8 48%,#f3f6f8)}.public-self-query-page{min-height:100vh;padding:24px;background:#f3f6f8}.attendance-scan-card{max-width:680px;margin:0 auto}.hr-self-query-card{max-width:880px;margin:0 auto}.hr-self-query-notice{margin-top:14px}.hr-self-query-results{display:grid;gap:18px;margin-top:18px}.hr-self-query-results h5{margin-bottom:10px!important}.hr-self-query-scroll-tip{display:none}@media (min-width: 701px){.hr-hours-query-card{max-width:1320px}.hr-hours-query-detail-table .ant-table-content>table{min-width:1320px}.hr-hours-query-detail-table .ant-table-cell{white-space:nowrap}}.attendance-scan-layout{display:grid;gap:16px;width:100%}.attendance-scan-copy h4,.attendance-scan-copy p{margin-bottom:8px!important}.attendance-scanner{position:relative;display:flex;flex-direction:column;gap:16px;min-width:0}.attendance-scanner video.is-active{display:block;width:100%;max-width:520px;min-height:0;aspect-ratio:3 / 4;border-radius:16px;background:#08131d;object-fit:cover}.attendance-scanner video.is-inactive{position:absolute;left:-9999px;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none}.attendance-scan-actions{display:flex;flex-direction:column;gap:8px}.attendance-action-row{display:flex;align-items:center;gap:6px;min-height:32px}.attendance-action-row .ant-btn{padding-inline:10px}.attendance-action-number{flex:0 0 22px;color:#1f2933;text-align:center}.attendance-image-upload-label{display:inline-flex;white-space:nowrap;cursor:pointer}.attendance-image-upload-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.attendance-scan-result{display:grid;align-content:start;gap:10px;min-height:180px;padding:10px;border:1px solid #202020;background:#fff}.attendance-scan-result-content{display:grid;gap:10px}.inventory-eyebrow{display:block;color:#078db9;font-size:10px;font-weight:800;letter-spacing:3px}.inventory-scan-card{max-width:720px;margin:0 auto;overflow:hidden;border-color:#cddde3;box-shadow:0 18px 50px #07273917}.inventory-scan-card .ant-card-head{border-bottom-color:#d7e5ea;background:linear-gradient(90deg,#f6fbfc,#fff 70%)}.inventory-scan-layout{display:grid;gap:16px}.inventory-scan-header,.inventory-management-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.inventory-scan-header h3,.inventory-management-heading h3{margin:5px 0 0!important;color:#112f3d}.inventory-stage-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.inventory-camera-frame{position:relative;display:grid;place-items:center;width:min(100%,520px);aspect-ratio:3 / 4;margin:0 auto;overflow:hidden;border:1px solid #294f60;border-radius:16px;background:linear-gradient(rgba(56,191,224,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(56,191,224,.08) 1px,transparent 1px),#081923;background-size:36px 36px;box-shadow:inset 0 0 0 6px #49c7e20a}.inventory-camera-frame:after{position:absolute;top:12%;right:10%;bottom:12%;left:10%;border:2px solid rgba(64,211,239,.72);border-radius:12px;content:"";pointer-events:none}.inventory-scan-video.is-active{display:block;width:100%;height:100%;object-fit:cover}.inventory-scan-video.is-inactive{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.inventory-camera-placeholder{display:grid;justify-items:center;gap:10px;color:#82adba;font-size:13px;letter-spacing:1px}.inventory-camera-placeholder .anticon{color:#27bddf;font-size:34px}.inventory-camera-frame.is-active .inventory-camera-placeholder{display:none}.inventory-scan-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.inventory-scan-actions .ant-btn{min-height:46px}.inventory-scan-notices{display:grid;gap:8px}.inventory-scan-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;border:1px solid #dbe7eb;border-radius:12px;background:#f8fbfc}.inventory-readonly-field,.inventory-edit-grid label,.inventory-settings-grid label{display:grid;gap:6px;color:#314b57;font-size:12px;font-weight:700}.inventory-readonly-value{min-height:32px;padding:4px 11px;border:1px solid #d9d9d9;border-radius:6px;color:#173a49;background:#fff;font-weight:400;line-height:1.5;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.inventory-quantity-panel{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr);align-items:center;gap:16px;padding:14px;border-left:4px solid #17b7df;background:#eaf7fb}.inventory-quantity-panel>div{display:grid;gap:3px}.inventory-quantity-panel .ant-input{height:44px;font-size:20px;font-weight:800;text-align:right}.inventory-count-date{grid-column:1 / -1;padding:10px 12px;border-radius:7px;background:#edf2ff;color:#28465c;font-weight:700}.inventory-scan-form>.ant-btn{grid-column:1 / -1;min-height:48px;font-weight:800}.inventory-management-page{display:grid;gap:16px;min-width:0;width:100%;max-width:100%}.inventory-management-heading{padding:4px 2px}.inventory-settings-card,.inventory-data-card{min-width:0;max-width:100%;overflow:hidden;border-color:#d8e5e9;box-shadow:0 9px 28px #183b4c0d}.inventory-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:12px}.inventory-settings-grid>.ant-btn{height:32px}.inventory-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin-bottom:12px}.inventory-management-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-bottom:14px;padding:10px;border:1px solid #dce7eb;border-radius:8px;background:#f7fafb}.inventory-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inventory-edit-grid .ant-select{width:100%}.inventory-permission-checkboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.inventory-permission-checkboxes .ant-checkbox-wrapper{margin-inline-start:0}.inventory-hub-page{display:grid;gap:18px;max-width:1180px;margin:0 auto}.inventory-hub-heading,.inventory-hub-group-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.inventory-hub-heading .ant-typography,.inventory-hub-group-heading .ant-typography{margin:0}.inventory-hub-intro{color:#617b88}.inventory-hub-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.inventory-hub-group{overflow:hidden;border:1px solid #d7e6eb;box-shadow:0 16px 38px #143b4d14}.inventory-hub-group:before{display:block;height:5px;margin:-24px -24px 20px;background:linear-gradient(90deg,#13b9df,#33d4c4);content:""}.inventory-hub-group-wip:before{background:linear-gradient(90deg,#536ee8,#7b61d9)}.inventory-hub-group-heading{justify-content:flex-start;margin-bottom:18px}.inventory-hub-group-mark{display:grid;width:48px;height:48px;place-items:center;border-radius:12px;background:#e5f8fb;color:#087c96;font-size:13px;font-weight:900}.inventory-hub-group-wip .inventory-hub-group-mark{background:#eeebff;color:#5746bd}.inventory-hub-actions{display:grid;gap:10px}.inventory-hub-action{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:76px;padding:12px 14px;border:1px solid #deeaee;border-radius:10px;background:#fff;color:#153442;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.inventory-hub-action:hover,.inventory-hub-action:focus-visible{border-color:#1bb9dd;box-shadow:0 8px 20px #1bb9dd24;outline:none;transform:translateY(-1px)}.inventory-hub-action-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:9px;background:#edf8fa;color:#0c91ad;font-size:20px}.inventory-hub-group-wip .inventory-hub-action-icon{background:#f1efff;color:#6652c8}.inventory-hub-action span:nth-child(2){display:grid;gap:3px}.inventory-hub-action strong{font-size:15px}.inventory-hub-action small{color:#718791}.inventory-hub-action-arrow{color:#92a6ae}.excel-import{display:grid;gap:12px}.excel-import-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}@media (max-width: 900px){.hr-layout,.hr-form-grid,.employee-no-sequence-row,.station-qr-layout{grid-template-columns:1fr}.public-attendance-page,.public-self-query-page{padding:12px}.hr-wide{grid-column:span 1}.hr-submit-actions{justify-content:center}.inventory-settings-grid,.inventory-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 700px){body:has(.public-self-query-page){background:#fff}.public-self-query-page{max-width:100%;padding:0;background:#fff}.public-self-query-page .hr-self-query-card{max-width:none;border:0;border-radius:0;box-shadow:none}.public-self-query-page .hr-self-query-card .ant-card-head{min-height:58px;padding:0 16px}.public-self-query-page .hr-self-query-card .ant-card-body{padding:16px}.hr-self-query-table-view{display:block;max-width:100%;margin:0 -16px;padding:0 16px;overflow-x:auto;background:#fff;-webkit-overflow-scrolling:touch}.hr-self-query-table-view .ant-table-content{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.hr-self-query-table-view .ant-table-content>table{min-width:900px!important}.hr-self-query-table-view .ant-table-cell{padding:10px 8px!important;font-size:13px;white-space:nowrap}.hr-self-query-scroll-tip{display:block;margin-top:8px;color:#6c7f88;font-size:12px;text-align:center}.inventory-scan-card .ant-card-body{padding:10px}.inventory-data-card .ant-card-body,.inventory-settings-card .ant-card-body{padding:14px}.inventory-scan-layout{gap:10px}.inventory-scan-heading-copy{display:none}.inventory-scan-header{justify-content:flex-end;min-height:22px}.inventory-scan-header,.inventory-management-heading,.inventory-hub-heading{align-items:flex-start}.inventory-hub-groups{grid-template-columns:1fr}.inventory-hub-action{min-height:84px}.excel-import-heading{align-items:stretch;flex-direction:column}.inventory-camera-frame{width:100%;max-height:66svh}.inventory-camera-frame.is-idle{display:none}.inventory-camera-frame.is-active{width:min(100%,360px);max-height:360px;aspect-ratio:1 / 1}.inventory-settings-grid,.inventory-filter-grid,.inventory-edit-grid,.inventory-permission-checkboxes,.inventory-scan-actions{grid-template-columns:1fr}.inventory-scan-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.inventory-readonly-field{gap:4px}.inventory-readonly-field.is-wide,.inventory-quantity-panel,.inventory-count-date,.inventory-scan-form>.ant-btn{grid-column:1 / -1}.inventory-readonly-value{min-height:36px;padding-block:6px}.inventory-scan-actions .ant-btn,.inventory-settings-grid>.ant-btn{width:100%;min-height:44px}.inventory-quantity-panel{grid-template-columns:1fr;gap:8px;padding:10px 12px}.inventory-quantity-panel>div{grid-template-columns:minmax(0,1fr) auto;align-items:baseline}.inventory-quantity-panel .ant-input{height:44px;text-align:left}.inventory-count-date{padding:8px 10px}.inventory-management-toolbar,.inventory-management-toolbar .ant-space{width:100%}.inventory-management-toolbar .ant-space-item,.inventory-management-toolbar .ant-btn{flex:1 1 100%;width:100%}}@media (max-width: 360px){.inventory-scan-form{grid-template-columns:1fr}.inventory-readonly-field.is-wide{grid-column:auto}}.excel-import input[type=file]{padding:12px;border:1px dashed #8bb8d8;border-radius:6px;background:#f8fbfd}.avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#008f7f;color:#fff;font-size:24px;font-weight:800}@media (max-width: 980px){.dashboard-grid,.app-grid,.workspace-apps,.admin-section,.directory-layout{grid-template-columns:1fr}.sidebar,.sidebar-resize-handle{display:none}.mobile-menu-button{display:inline-flex}.topbar{padding:0 14px;gap:10px}.topbar>.ant-space:first-child{min-width:0}.topbar strong{display:inline-block;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width: 560px){.login-page{padding:22px 12px}.login-shell{width:100%;padding:30px 18px 24px;border-radius:14px}.login-brand{margin-bottom:24px}.login-badges{grid-template-columns:1fr;gap:10px;margin-bottom:22px}.slogan{font-size:clamp(20px,6.4vw,25px)!important}.login-footer{flex-wrap:wrap;gap:8px 12px;margin-top:24px}.content{padding:14px}.attendance-scan-card .ant-card-body{padding:16px}.attendance-action-row{flex-wrap:wrap}.attendance-action-row .ant-btn{max-width:calc(100vw - 74px)}.attendance-camera-actions .ant-btn{flex:0 1 auto}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
