/* Shared desktop workspace and table presentation; print keeps its own layout. */
@media screen {
 :root{--blue:#1d5183;--ink:#20303f;--muted:#5c6b7a;--line:#e2e7ec;--bg:#eef1f5;--nav:#122c44;--red:#b03a37}
 [hidden]{display:none!important}
 .ui-icon{width:16px;height:16px;flex:0 0 16px;vertical-align:middle}
 button:has(.ui-icon){display:inline-flex;align-items:center;justify-content:center;gap:6px}
 button,input,select,textarea{border-radius:3px;font-size:14px}
 button{min-height:32px;padding:5px 12px;line-height:20px;border-color:#c9d2db;color:#5c6b7a}
 .primary{color:#fff;border-color:var(--blue)}.primary:hover{background:#2a659e;border-color:#2a659e}
 button:focus-visible,summary:focus-visible{outline:2px solid #c3d4e4;outline-offset:2px}
 input::placeholder,textarea::placeholder{color:#98a4b0}
 .shell{grid-template-columns:224px minmax(0,1fr)}
 .sidebar{background:#122c44}.sidebar .brand{height:52px;padding:0 14px;gap:9px;background:#0e2438;border:0}
 .sidebar .brand strong{font-size:15px;font-weight:600}.sidebar .brandmark{background:#16385a;width:28px;height:28px;border-radius:4px}
 .nav-search{margin:12px 12px 7px;width:calc(100% - 24px);height:32px;background:#0e2438;border-color:#122c44;font-size:13px}
 .nav{padding:0 0 16px;scrollbar-width:thin;scrollbar-color:#2a659e transparent}
 .nav details{margin:0}.nav summary{height:44px;padding:0 16px;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#c9d2db}
 .nav summary>span{flex:1}.nav summary:after{font-size:14px;content:'⌄';color:#c9d2db}
 .nav details[open]>summary:after{transform:rotate(180deg)}.nav details[open]{background:#0e2438}
 .nav button{font-size:14px;padding:10px 16px 10px 44px;min-height:42px;line-height:22px;border-radius:0;color:#98a4b0}
 .nav button.active{background:var(--blue);box-shadow:none;color:white}.nav button:hover{background:#122c44}.nav button.active:hover{background:var(--blue)}
 .sidebar-foot{font-size:12px;padding:10px 16px;border-color:#122c44;color:#8a97a3}
 .topbar{height:52px;padding:0 18px;background:#16385a;border-bottom:0;color:white}
 .header-title{display:flex;align-items:center;gap:14px;min-width:0}.product-title{font-size:15px;font-weight:500;white-space:nowrap}
 .sidebar-toggle{border:0;background:transparent;color:white;padding:4px;min-width:30px}.sidebar-toggle .ui-icon{width:22px;height:22px;flex-basis:22px}
 .sidebar-toggle:hover,.topbar .ghost:hover{background:#ffffff20;color:white}
 .top-right{gap:12px;font-size:13px}.company-select{height:32px;background:#fff;color:#5c6b7a;border-color:#c3d4e4;max-width:300px;font-size:13px}
 .avatar{background:#eaf1f8;color:#16385a;width:28px;height:28px}.topbar .ghost{color:white;font-size:13px}
 .tabs{height:44px;flex-basis:44px;padding:0 10px;box-shadow:0 2px 4px #122c4408;border-bottom:1px solid #e2e7ec;z-index:5}
 .tabs .tab-list button{height:43px;font-size:14px;padding:0 21px;gap:13px;color:#5c6b7a}
 .tabs .tab-list button.active{background:#fff;color:var(--blue);font-weight:500}.tabs .tab-list button.active:after{height:2px;left:12px;right:12px}
 .tabs [data-close]{font-size:13px;color:#98a4b0;width:14px}.tabs .tab-scroll{color:#8a97a3}
 .content,.content.table-page{padding:12px;gap:10px;background:var(--bg)}
 .page-panel{border:0;border-radius:3px;box-shadow:none}
 .table-page>.page-panel{flex:0 1 auto}.table-region>.table-wrap{min-height:160px}
 .page-panel.with-toolbar>.heading{position:absolute;width:1px;height:1px;min-height:0;padding:0;border:0;clip-path:inset(50%);overflow:hidden}
 .page-panel>.filters{padding:12px 16px;gap:10px 20px;border-bottom:10px solid var(--bg);background:white}
 .filter{font-size:14px;color:#5c6b7a;gap:8px}.filter input,.filter select{height:32px;font-size:14px}
 .filter select{max-width:310px}.range input{width:139px}.range>span{color:#98a4b0}#search{width:240px}
 .personnel-filters #search{width:220px}.personnel-filters #employee-department{width:210px}.personnel-filters #employee-type{width:180px}
 .toolbar,.page-panel>.toolbar{padding:8px 12px;gap:6px;min-height:48px;background:white}
 .toolbar button{font-size:14px}.toolbar>.spacer{flex:1}.toolbar>.page-help{margin-left:8px}
 .page-help>summary{font-size:12px;line-height:30px}.page-help>div{font-size:13px;color:#5c6b7a;top:34px;left:auto;right:0}
 .view-controls{display:flex;align-items:center;gap:7px;margin-left:4px}
 .view-controls .icon-button,.column-picker>summary,.density-picker>summary{width:30px;height:32px;min-height:32px;padding:6px;display:grid;place-items:center;background:transparent;border:0;cursor:pointer;border-radius:3px;color:#6b7a89;list-style:none}
 .view-controls .ui-icon{width:19px;height:19px}.view-controls summary:hover,.icon-button:hover{color:var(--blue);background:#eef3f8}
 .density-picker{position:relative}.density-options{position:absolute;right:0;top:36px;min-width:126px;z-index:35;background:white;border:1px solid var(--line);padding:4px;box-shadow:0 4px 16px #122c441a;border-radius:3px}
 .density-options button{display:block;text-align:left;width:100%;border:0;font-size:13px}.density-options button.active{background:#eaf1f8;color:var(--blue)}
 .column-options{top:36px;border-radius:3px;box-shadow:0 4px 16px #122c441a;font-size:13px}.column-options label{padding:6px}.table-help{font-size:12px}
 .page-panel:has(.density-picker[open]),.page-panel:has(.column-picker[open]),.page-panel:has(.page-help[open]){overflow:visible}
 .selection-bar{display:flex;align-items:center;gap:9px;flex:0 0 auto;min-height:34px;padding:5px 12px;margin:0 12px 8px;background:#eaf1f8;border:1px solid #c3d4e4;border-radius:3px;color:#5c6b7a;font-size:13px}
 .selection-info{width:15px;height:15px;border-radius:50%;background:var(--blue);color:white;text-align:center;font-size:11px;font-weight:600;line-height:15px}
 .selection-bar .ghost{font-size:12px;min-height:22px;padding:0 4px;color:var(--blue)}
 .table-region>.table-wrap{border:1px solid #e2e7ec;border-bottom:0;margin:0 12px;width:calc(100% - 24px);scroll-padding-top:43px;scrollbar-width:thin;scrollbar-color:#bfc4cc #f5f6f7}
 .table-wrap table{font-size:14px;color:#5c6b7a}
 th{font-size:14px;background:#f5f7fa;color:#20303f;font-weight:600;text-align:center;padding:10px 18px 10px 10px;line-height:20px;border-right:1px solid #e2e7ec;border-bottom:1px solid #e2e7ec}
 td,.table-region td{font-size:14px;padding:10px;line-height:20px;vertical-align:middle;border-right:1px solid #e2e7ec;border-bottom:1px solid #e2e7ec;background:white}
 .table-wrap tbody tr:nth-child(even)>td{background:white}.table-wrap tr:hover>td{background:#eef3f8}.table-wrap tr.is-selected>td{background:#eef3f8}
 td.center-cell{text-align:center}td.text-cell{text-align:left}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
 /* 我25（2026-10-18）：工时考勤分析表日格可钻取，需有明确的可点提示与键盘焦点态 */
 td.cell-drill{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;color:#1d5183}
 td.cell-drill:hover{background:#e7eef6}td.cell-drill:focus-visible{outline:2px solid #1d5183;outline-offset:-2px}
 .table-wrap th:last-child,.table-wrap td:last-child{border-right:0}.table-wrap th[data-sort]{cursor:pointer;outline-offset:-3px}
 .sort-indicator{display:inline-flex;position:absolute;right:7px;top:50%;height:16px;width:7px;transform:translateY(-50%);flex-direction:column;justify-content:center;gap:2px}
 .sort-indicator:before,.sort-indicator:after{content:'';width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent}
 .sort-indicator:before{border-bottom:4px solid #c9d2db}.sort-indicator:after{border-top:4px solid #c9d2db}
 [aria-sort=ascending] .sort-indicator:before{border-bottom-color:var(--blue)}[aria-sort=descending] .sort-indicator:after{border-top-color:var(--blue)}
 .resize{width:5px;z-index:3}.selection-cell{text-align:center;padding:8px!important;position:sticky;left:0;z-index:1;background:white}
 thead .selection-cell{z-index:4;background:#f5f7fa}.selection-cell input{width:15px;height:15px;margin:0;vertical-align:middle;cursor:pointer}
 .table-wrap td.actions{position:sticky;right:0;z-index:2;background:#fff;box-shadow:-3px 0 7px -4px #6b7a89;white-space:nowrap;text-align:center;padding:8px 4px}
 .table-wrap table:has(td.actions) th:last-child{right:0;z-index:4;background:#f5f7fa;box-shadow:-3px 0 7px -4px #6b7a89;padding-right:10px}
 .actions .ghost{color:var(--blue);font-size:13px;padding:0 8px;line-height:18px;min-height:18px;border-radius:0}
 .actions .ghost+.ghost{border-left:1px solid #e2e7ec}.actions .danger,.ghost.danger{color:var(--red)}
 .rowcode{font-size:12px;color:#5c6b7a}.reference-name{margin-left:6px}.badge{font-size:12px;border-radius:3px;background:#eef3f8;color:#2a659e}
 .tfoot,.table-region>.tfoot{min-height:50px;padding:9px 12px;font-size:13px;border-top:1px solid #e2e7ec;color:#5c6b7a;gap:10px}
 .pagination{gap:6px}.pagination button,.pagination select{height:28px;min-height:28px;font-size:13px;padding:3px 9px;line-height:20px}
 .page-number{min-width:28px}.page-number.active{background:var(--blue);border-color:var(--blue);color:white}.page-ellipsis{padding:0 2px;color:#98a4b0}
 .subnav,.page-panel>.subnav{background:white;border-bottom:1px solid var(--line);padding:8px 12px;gap:4px}
 .subnav button{font-size:13px;border-radius:3px;padding:5px 11px}.subnav button.active{background:#eaf1f8;color:var(--blue)}
 .report-summary{font-size:13px;background:#f5f7fa;padding:10px 12px;border-color:#e2e7ec}.notice{border-radius:3px;font-size:13px}
 .modal{border-radius:4px;box-shadow:0 10px 40px #122c4440}.modal-header{padding:13px 18px}.modal-header h2{font-size:16px;font-weight:500;color:#20303f}
 .modal-body{padding:16px 18px}.modal-foot{padding:10px 18px;background:#fff;border-color:#e2e7ec}.form-grid{gap:14px 20px}
 .form-grid>.field>label{font-size:13px;line-height:20px;padding-top:6px;color:#5c6b7a}.form-grid>.field>input,.form-grid>.field>select{font-size:13px}
 .detail-grid dt,.detail-grid dd{font-size:13px;padding:9px 12px;border-right:1px solid #e2e7ec;line-height:21px}.detail-grid dt{background:#f5f7fa;color:#5c6b7a}
 .metric-list div{background:#eef2f7;padding:13px}.metric-list strong{color:#20303f}.empty{color:#8a97a3}
 .shell.nav-collapsed{grid-template-columns:0 minmax(0,1fr)}.shell.nav-collapsed>.sidebar{visibility:hidden}
 html[data-density=compact] .table-wrap table,html[data-density=compact] .table-wrap td,html[data-density=compact] .table-wrap th{font-size:13px}
 html[data-density=compact] .table-wrap td{padding-top:6px;padding-bottom:6px}html[data-density=compact] .table-wrap th{padding-top:7px;padding-bottom:7px}
}
@media screen and (max-width:1200px){
 .shell{grid-template-columns:208px minmax(0,1fr)}.sidebar .brand{padding:0 10px;gap:7px}.sidebar .brand strong{font-size:14px}
 .topbar{padding:0 12px}.top-right{gap:8px}.company-select{max-width:250px}.filter select{max-width:250px}
 .product-title{font-size:14px}.toolbar,.page-panel>.toolbar{flex-wrap:wrap}
}
@media screen and (max-width:760px){
 .shell,.shell.nav-collapsed{grid-template-columns:minmax(0,1fr)}.shell>.sidebar{display:none}
 .shell.nav-open>.sidebar{display:flex;visibility:visible;position:fixed;left:0;top:52px;bottom:0;width:224px;z-index:60;box-shadow:3px 0 12px #122c4440}
 .topbar{position:relative;z-index:65;min-height:52px;height:auto;padding:8px 10px;gap:6px}.header-title{gap:8px}.product-title{font-size:14px}
 .top-right{gap:6px}.company-select{max-width:220px}.topbar .avatar{display:none}.top-right .username{display:none}
 .tabs .tab-list button{padding:0 14px}.content,.content.table-page{padding:8px}
 .page-panel>.filters{padding:10px;gap:8px 12px}.filter{font-size:13px}.filter input,.filter select{font-size:13px}#search{width:200px}.range input{width:130px}
 .toolbar,.page-panel>.toolbar{padding:8px 10px}.toolbar button{font-size:13px;padding:5px 9px}.view-controls{margin-left:auto}
 .selection-bar{margin:0 10px 8px;font-size:12px}.table-region>.table-wrap{margin:0 10px;width:calc(100% - 20px)}
 .table-wrap td.actions{position:static;box-shadow:none}.table-wrap table:has(td.actions) th:last-child{right:auto;box-shadow:none}
 .tfoot,.table-region>.tfoot{flex-wrap:wrap}.pagination{flex-wrap:wrap}.page-help>div{right:-80px;width:min(320px,85vw)}
 .personnel-filters .filter{width:100%;justify-content:space-between}.personnel-filters #search,.personnel-filters #employee-department,.personnel-filters #employee-type{width:calc(100% - 90px);max-width:none}
 .modal-header{padding:10px 12px}.modal-body{padding:12px}.form-grid{gap:10px}.modal-foot{padding:10px 12px}
}
