/* 全站紧凑布局：在不牺牲手机可点击性的前提下，提高单屏信息密度。 */
html{font-size:14px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:14px;line-height:1.42}
button,input,select,textarea{font-size:13px}
.shell{padding-bottom:58px}
.content{max-width:1360px;padding:14px 16px 34px}
.top{min-height:56px;padding:9px max(16px,calc((100vw - 1360px)/2))}
.top h1{font-size:16px}
.top small{margin-top:2px;font-size:12px}
.card{border-radius:14px;box-shadow:0 8px 24px rgba(16,24,40,.06)}
.panel{padding:14px;margin-top:10px}
.panel h2{font-size:16px;margin-bottom:9px}
.view-title{gap:10px;margin-bottom:9px}
.view-title h2{font-size:19px}
.section-heading{margin-top:15px;font-size:18px}
.muted{font-size:12px}

label{margin:9px 0 4px;font-size:12px}
input,select,textarea{min-height:38px;padding:8px 10px;border-radius:9px}
textarea{min-height:72px}
.btn{min-height:38px;padding:8px 13px;border-radius:9px}
.text-btn{min-height:34px;padding:6px 8px;border-radius:8px;font-size:12px}
.actions{gap:8px;margin-top:11px}
.actions .btn{min-width:96px}
.notice{padding:9px 13px;font-size:12px}
.empty{padding:22px 14px}

.metrics,.monthly-metrics,.workforce-metrics{gap:9px}
.metric{padding:12px}
.metric span{font-size:12px}
.metric b{margin-top:4px;font-size:20px}
.metric::after{width:54px;height:54px;right:-18px;top:-18px}
.pill{padding:4px 8px;font-size:11px}

.manager-welcome{padding-top:18px}
.manager-welcome>h2{margin:4px 0 12px;font-size:21px}
.manager-entry-grid{gap:10px}
.manager-entry,.role-entry-grid .manager-entry{min-height:128px;padding:15px;border-radius:16px}
.manager-entry span{width:42px;height:42px;margin-bottom:13px;border-radius:12px}
.manager-entry b{font-size:16px}
.manager-entry small{font-size:11px;line-height:1.4}
.manager-entry::after{right:14px;top:15px;font-size:20px}
.manager-context{padding:10px 13px}

.base-tabs{gap:6px;margin:9px 0;padding:2px 1px 5px}
.base-tabs button{min-height:36px;padding:7px 11px;font-size:12px}
.base-form{padding-bottom:14px!important}
.base-form label{margin-top:8px}
.base-form .btn:last-child{margin-top:11px}

.table th,.table td{padding:8px 7px;font-size:12px}
.table th{padding:8px 7px;font-size:11px}
.table-wrap{border-radius:11px}
.item,.choice-item{padding:10px;border-radius:12px}
.items{gap:8px}
.total{margin-top:11px;padding-top:10px}
.total b{font-size:18px}

.entry-workspace{gap:12px}
.entry-intro{padding-top:3px}
.entry-intro h2{margin:3px 0 4px;font-size:20px}
.entry-intro p{font-size:12px}
.entry-launch-grid{gap:8px}
.entry-launch{min-height:78px;padding:11px;border-radius:14px}
.entry-launch>span{top:9px;right:10px;font-size:10px}
.entry-launch>b{font-size:14px}
.entry-launch>small{margin-top:3px;font-size:10px}
.entry-list-panel{padding:14px!important}
.entry-list-title{gap:10px;margin-bottom:9px}
.entry-list-title h2{font-size:17px!important}
.entry-list-title>b{font-size:20px}
.entry-records{gap:6px}
.entry-record{grid-template-columns:36px minmax(0,1fr) auto auto auto!important;gap:8px;min-height:58px;padding:8px 10px!important;border-radius:11px!important}
.record-icon{width:34px;height:34px;border-radius:10px;font-size:12px}
.record-main b{font-size:13px}
.record-main small{margin-top:2px;font-size:10px}
.entry-record>strong{font-size:14px}
.record-edit,.record-delete{padding:6px 8px;font-size:11px}

.inventory-actions{gap:9px;margin:11px 0}
.inventory-action{padding:12px}
.inventory-action span{width:34px;height:34px;margin-bottom:8px;border-radius:10px}
.inventory-action b{font-size:15px}
.inventory-action small{margin-top:3px;font-size:11px}
.inventory-toolbar{gap:10px;margin-bottom:11px}
.inventory-toolbar b{font-size:17px}
.inventory-toolbar p{margin-top:3px}
.fixed-date{padding:7px 10px;border-radius:9px;font-size:12px}
.inventory-table-wrap,.opening-table-wrap{border-radius:11px}
.inventory-table th,.inventory-table td,.opening-table th,.opening-table td{padding:8px 9px;font-size:12px}
.inventory-table thead th,.opening-table thead th{font-size:10px}
.inventory-table tfoot td{font-size:14px}
.inventory-formula{padding:5px 8px;font-size:11px}
.table-number-input,.opening-qty{width:94px!important;min-height:36px!important;padding:6px 8px!important}
.stock-value{min-width:72px;min-height:32px;border-radius:8px}
.used-readonly{min-width:78px;min-height:36px;border-radius:8px}
.inventory-footer{margin-top:11px}
.inventory-save{min-width:140px}

.business-entry-table{margin:10px 0}
.business-entry-table th,.business-entry-table td{padding:8px;font-size:12px}
.business-entry-table input{width:108px}
.business-filters{gap:9px}
.business-filters label{min-width:170px}
.wide-action{margin-top:12px}
.simple-hours-row{padding:10px 3px}
.attendance-summary{padding:10px;margin:9px 0;border-radius:10px}
.attendance-summary strong{font-size:18px}
.opening-tip{margin:-2px 0 10px;padding:8px 10px;font-size:11px;line-height:1.45}
.export-grid{gap:9px;margin-top:10px}
.export-item{grid-template-columns:36px minmax(0,1fr) auto;gap:9px;padding:11px}
.export-item>span{width:34px;height:34px;border-radius:10px}
.export-item small{font-size:11px}

.salary-toolbar,.monthly-toolbar{gap:8px;margin-bottom:9px;padding:10px 12px}
.salary-state{gap:8px;margin-bottom:9px;padding:9px 11px}
.monthly-form{gap:8px}
.payroll-table input{padding:6px}

.value-overview{margin:10px 0;border-radius:11px}
.value-overview-table th{padding:7px 9px;font-size:11px}
.value-overview-table td{padding:8px 9px;font-size:17px}
.value-table-scroll th,.value-table-scroll td{padding:7px 6px;font-size:11px}
.value-daily-table{min-width:1050px}
.value-summary-table{min-width:960px}

.reimbursement-title h2{font-size:21px}
.reimbursement-create{grid-template-columns:46px 1fr auto;gap:11px;min-height:86px;padding:13px;border-radius:17px}
.reimbursement-create>span{width:42px;height:42px;border-radius:12px;font-size:24px}
.reimbursement-create b{font-size:17px}
.reimbursement-create small{margin-top:3px;font-size:11px}
.reimbursement-create i{font-size:25px}
.manager-reimburse-list{margin-top:11px!important}
.reimbursement-row{gap:8px;padding:9px 4px}
.reimbursement-row small{margin-top:2px;font-size:11px}
.reimbursement-row strong{font-size:14px}
.reimbursement-row i{font-size:19px}
.reimburse-summary{gap:9px;margin-top:9px}
.reimburse-filters{gap:7px}
.detail-grid{gap:7px;margin:9px 0}
.detail-grid p,.detail-note{padding:8px;border-radius:9px}
.reimbursement-detail{padding:13px}
.attachment-section{margin-top:10px;padding-top:10px}
.attachment-grid{gap:7px;margin-top:8px}
.attachment-preview{height:90px}
.reimburse-choices{gap:5px;margin-top:5px}
.reimburse-choices .category-choice{min-height:38px;padding:5px 3px;font-size:11px}
.receipt-before-submit{margin:8px 0;padding:8px}
.new-receipt-item img,.new-receipt-item .pdf-preview{height:66px}
.reimbursement-history-toggle,.manager-approved-toggle{padding:6px 8px;font-size:11px}

.modal{padding:12px}
.modal .card{max-height:94vh;padding:14px;border-radius:17px}
.business-sheet{max-height:94vh}
.entry-sheet-head{grid-template-columns:40px 1fr auto;gap:9px;margin-bottom:13px}
.entry-sheet-head h2{font-size:18px}
.entry-sheet-head small{font-size:10px}
.sheet-close{width:32px;height:32px;border-radius:9px;font-size:21px}
.entry-sheet label{margin-top:10px}
.entry-sheet input,.entry-sheet textarea{margin-top:4px}
.money-input>span{font-size:20px}
.money-input input{height:50px;padding-left:42px;font-size:21px}
.entry-primary-field>input{height:46px;font-size:17px}
.pricing-note{padding:9px 11px}
.sheet-save{min-height:42px;margin-top:13px;font-size:14px}
.category-settings-form hr{margin:14px 0}
.category-settings-form #adjustmentList,#planRows{margin-top:9px}

.login{padding:16px}
.login .card{width:min(390px,100%);padding:22px;border-radius:20px}
.logo{gap:9px;margin-bottom:19px}
.logo i{width:45px;height:45px;border-radius:13px;font-size:15px}
.logo h1{font-size:19px}
.logo p{margin-top:4px;font-size:12px;line-height:1.4}
.login .btn{margin-top:12px}

.nav button{padding:7px 2px;font-size:11px}

@media(max-width:800px){
  .content{padding:10px 10px 30px}
  .top{min-height:54px;padding:8px 11px}
  .top h1{font-size:15px}
  .top .btn{min-height:36px;padding:7px 10px}
  .panel{padding:11px}
  .view-title h2{font-size:18px}
  .manager-welcome{padding-top:12px}
  .manager-welcome>h2{font-size:19px}
  .manager-entry,.role-entry-grid .manager-entry{grid-template-columns:44px 1fr;column-gap:10px;min-height:82px;padding:11px}
  .manager-entry span{width:40px;height:40px}
  .manager-entry::after{right:10px}
  .metrics,.monthly-metrics{gap:7px}
  .metric{padding:10px}
  .metric b{font-size:18px}
  .entry-launch-grid{gap:7px}
  .entry-launch{min-height:72px;padding:10px}
  .entry-list-panel{padding:11px!important}
  .modal{padding:0}
  .modal .card{padding:12px 11px calc(12px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}
  .reimbursement-form-modal .card,.reimbursement-edit-modal .card{padding:11px 10px}
  .inventory-table th,.inventory-table td{padding:7px 8px}
  .business-entry-table{min-width:500px}
}

@media(max-width:600px){
  .business-modal{overflow-x:hidden}
  .business-modal .business-sheet{width:calc(100vw - 8px)!important;max-width:calc(100vw - 8px)!important;overflow-x:hidden}
  #purchaseRows{max-width:100%;overflow-x:hidden}
  .inventory-entry-form-table{width:100%;min-width:0!important;table-layout:fixed}
  .inventory-entry-form-table th,.inventory-entry-form-table td{min-width:0;padding:7px 3px;white-space:normal;overflow-wrap:anywhere}
  .inventory-entry-form-table thead th{font-size:10px;line-height:1.2}
  .inventory-entry-form-table tbody th{font-size:12px;line-height:1.25}
  .inventory-entry-form-table input{display:block;width:100%!important;min-width:0!important;padding:6px 4px;text-align:center}
  .purchase-entry-table th:nth-child(1){width:29%}
  .purchase-entry-table th:nth-child(2){width:13%}
  .purchase-entry-table th:nth-child(3){width:25%}
  .purchase-entry-table th:nth-child(4){width:33%}
  .count-entry-table th:nth-child(1){width:38%}
  .count-entry-table th:nth-child(2){width:27%}
  .count-entry-table th:nth-child(3){width:35%}
}

@media(max-width:480px){
  body{font-size:13px}
  .content{padding-left:8px;padding-right:8px}
  .card{border-radius:12px}
  .entry-intro h2{font-size:18px}
  .entry-launch{min-height:76px}
  .entry-launch>b{font-size:13px}
  .entry-record{grid-template-columns:34px minmax(0,1fr) auto!important;gap:7px;padding:8px!important}
  .reimbursement-create{grid-template-columns:42px 1fr auto;min-height:80px;padding:11px}
  .reimbursement-create>span{width:38px;height:38px}
  .reimbursement-create b{font-size:16px}
  .reimburse-choices .category-choice{min-height:38px;font-size:10px}
  .value-overview-table{min-width:540px}
  .value-overview-table td{font-size:15px}
  .attachment-grid{gap:6px}
}
